diff --git a/librefi/fxckers/_map.py b/librefi/fxckers/_map.py index e418924..dcaee1c 100644 --- a/librefi/fxckers/_map.py +++ b/librefi/fxckers/_map.py @@ -2,10 +2,15 @@ from ._dummy import DummyFxcker from .umwarszawa import UMWarszawaFxcker from .ledatel import LedatelFxcker from .ipartners import IPartnersFxcker +from .justwifi import JustWifiFxcker fxckers_map = [ ([r"re:MZK Opole \d{3}(?: (?:2.4|5)GHz)?"], DummyFxcker), (["UM-Warszawa"], UMWarszawaFxcker), (["Pendolino_WiFi"], LedatelFxcker), (["McD-Hotspot"], IPartnersFxcker), + ([ + "Intercity_WiFi", + "_PKP_WIFI", + ], JustWifiFxcker), ] diff --git a/librefi/fxckers/justwifi.py b/librefi/fxckers/justwifi.py new file mode 100644 index 0000000..ed6b9da --- /dev/null +++ b/librefi/fxckers/justwifi.py @@ -0,0 +1,95 @@ +from ._common import BaseFxcker +from ..utils import regex_search_string, absolute_url, dump_qs + + +class JustWifiFxcker(BaseFxcker): + # tested with Intercity_WiFi (PKP IC Dart) + def unfxck(self, location=None): + start = self.request( + # flake8: noqa: E501 + "GET", location or "http://tank.justwifi.pl/connect?returnurl=http://detectportal.firefox.com/success.txt%3f", + resource="start redir") + redir_url = regex_search_string([ + r'window\.location\.href = "([^"]+)";', + ], start.text) + sgu = self.request("GET", redir_url, resource="splash page") + glash_form_url = absolute_url(regex_search_string([ + r"\$\('#glash_form(?:_adv)?'\).attr\('action', '([^']+)'\);", + r'