def doLogin(login, password, opener=None): '''Logs in, returns page content.''' result = download('{}belepes'.format(home), opener=opener, data={'email': login, 'password': password, 'remember': 1, 'loginSubmit': 'Bejelentkezés'}) if login in accounts: params = accounts[login] params['lastAccess'] = datetime.now(timezone(TIME_ZONE)) if 'nextAccess' in params: del params['nextAccess'] return result
def getContacts(login, opener, queue): '''Collects contacts while progressing.''' contacts = [] doLogin(login, accounts[login]['password'], opener) page = download('{}sms+kuldes'.format(home), opener=opener) parsed = BeautifulSoup(page, 'html5lib') contactList = parsed.body.find('table', attrs={'class': 'list'}) for tr in contactList.find_all('tr'): tds = tr.find_all('td') if len(tds) == 0: continue contacts.append({'name': tds[0].a.text, 'number': tds[1].text[3:]}) queue.put(contacts)
def checkSent(login, opener): '''After communicating with the server about sending the SMS, polling, if it has been sent.''' page = download('{}elkuldott+smsek'.format(home), opener=opener) parsed = BeautifulSoup(page, 'html5lib') result = parsed.body.find('table', attrs={'class': 'sentSms'}).tbody.find_all('tr')[1].td.b.next_sibling.string.strip() if result in ('SMS küldés alatt. Az állapot frissítéséhez frissítsd az oldalt.', 'Az üzenetet sikeresen elküldtük!'): if login not in a['wait4send']: a['wait4send'][login] = [19, result] return (None, result) a['wait4send'][login][0] -= 1 if a['wait4send'][login][0] == 0: del a['wait4send'][login] return (False, None) if result == a['wait4send'][login][1]: return (None, None) a['wait4send'][login][1] = result return (None, result) reqMessage = 'Az sms-t a címzett megkapta a mobilkészülékre!' if result == reqMessage: return (True, result) return (False, result)
def doSend(self, q): download('{}sms+kuldes'.format(home), opener=self.opener, data={'text': self.fldMessage.toPlainText().translate(CHAR_REPLACE), 'next': ''}) download('{}sms+kuldes'.format(home), opener=self.opener, data={'next': ''}) a['main'].addPeriodic({'function': checkSent, 'args': (self.login, self.opener)}) self.hide() q.put(True)
def sendToOldName(self, currentIndex, q): download('{}sms+kuldes/telefonszam/36{}'.format(home, self.contacts[currentIndex - 1]['number']), opener=self.opener) self.doSend(q)
def sendToNewName(self, name, number, q): url = '{}nevjegyzek+szerkesztese/sms'.format(home) download(url, opener=self.opener) download(url, opener=self.opener, data={'name': name, 'phone_number': '36{}'.format(number), 'submitPhoneBook': 'Névjegy+mentése'}) self.doSend(q)