Compare commits

..

No commits in common. "macrosystem-km" and "master" have entirely different histories.

2 changed files with 0 additions and 38 deletions

View file

@ -7,7 +7,6 @@ from .ledatel import LedatelFxcker
from .ipartners import IPartnersFxcker
from .kfchotspot import KFCHotspotFxcker
from .justwifi import JustWifiFxcker
from .macrosystem import MacrosystemFxcker
fxckers_map = [
([r"re:MZK Opole \d{3}(?: (?:2.4|5)GHz)?"], DummyFxcker),
@ -20,7 +19,6 @@ fxckers_map = [
"_PKP_WIFI",
"Poznan Airport by JustWiFi",
], JustWifiFxcker),
(["km-wifi"], MacrosystemFxcker),
]
__all__ = ['fxckers_map']

View file

@ -1,36 +0,0 @@
from __future__ import unicode_literals
from ._common import BaseFxcker
from ..utils import (
dump_qs,
hidden_inputs,
js_to_json,
regex_search_string,
TEST_URL,
)
import datetime
import json
import urllib.parse
# not tested, intended for Koleje Mazowieckie (https://www.mazowieckie.com.pl/) and possibly others
class MacrosystemFxcker(BaseFxcker):
def unfxck(self, location=None):
first_page = self.request("GET", location or TEST_URL)
qs = regex_search_string(r'(?s)function toDeviceLogin\(\)\s*{.+?queryParams\(({.+?})\);', first_page.text)
qs = qs.replace('new Date().getTime()', str(datetime.datetime.now().microsecond()))
first_url = urllib.parse.urlparse(first_page.url)
browser = urllib.parse.parse_qs(first_url.query)['browser'][0]
qs = qs.replace('getUrlParam("browser")', browser)
qs = js_to_json(qs)
qs = json.loads(qs)
qs = dump_qs(qs)
login_url = urllib.parse.urljoin(first_page.url, './login.html') + '?' + qs
login_page_req = self.request('GET', login_url)
login_page = login_page_req.text()
login_form = hidden_inputs(login_page)
login_req_url = regex_search_string(r"<form\b[^>]*?action='([^']+)'", login_page)
# redirects to KM's own webpage
login_req = self.request('POST', login_req_url, body=dump_qs(login_form), follow_redirects=False)
return login_req.status_code == 302