#!/usr/bin/env python # coding: utf8 #-############################################# # mBank_auto_skrypt v3.0.3 # Made by Jedrzej Schmeidel (Yunnan) # on 2009/02 # www.yunnan.tk # yunnan@yunnan.tk #-############################################# import os import time import re import sys from mechanize import Browser from urllib import urlencode #from urllib2 import Request #-############################################# # KONFIGURACJA i FUNKCJE #-############################################# execfile(os.path.dirname(sys.argv[0]) + '/mbank_auto_skrypt.conf') execfile(os.path.dirname(sys.argv[0]) + '/mbank_auto_skrypt.func') #-########mBank##################################### print "===> Uruchomienie wersja mBank_auto_skrypt v3.0.3" br = Browser() # uruchomienie przegladarki # ewentualny debugging #br.set_debug_redirects(True) #br.set_debug_responses(True) #br.set_debug_http(True) br.open("https://www.mbank.com.pl/") ################## # LOGOWANIE #time.sleep(1) br.select_form(name="MainForm") # wypelnienie formularza try: br['Y3VzdG9tZXI='.decode('base64')] = Y3VzdG9tZXI.decode('base64') br['cGFzc3dvcmQ='.decode('base64')] = cGFzc3dvcmQ.decode('base64') except: print "===> BLAD przy odszyfrowywaniu - ", sys.exc_info()[1] sys.exit() #time.sleep(1) response_in = br.submit() # wyslanie formularza if response_in.geturl() == "https://www.mbank.com.pl/frames.aspx": print "===> Zalogowano poprawnie" else: print "===> BLAD przy logowywaniu" sys.exit() ################## # Wyswietlanie listy kont i wyciagow # funkcja get_konta pobiera wszystkie konta i potrzebne dane do uzyskania wyciagu z konta # jako opcje przyjmuje numer/numery konta bez spacji ktore maja zostac wyswietlone # funkcja get_trans pobiera transakcje w ostatnich 14 dniach (domyslnie w mbanku) # jako opcje przyjmuje zmienna post do uzyskania wyciagu oraz rodzaj transakcji do wyswietlenia # (wg specjalnej numeracji mbanku) ################## ################## konta = get_konta(br, wybor_konto) print "===> Znalezione konta:",konta.__len__() for konto in konta: print ("---> "+konto[2]+" "+(konto[3]+"("+konto[5]+")"+konto[4]).rjust(15, ' ')+" "+konto[1]).encode("utf8") trans = get_trans(br, konto[0], wybor_typ) for transa in trans: # print transa print (" -> "+transa[2].ljust(4, ' ')+" "+transa[0]+" "+transa[3]+" "+transa[6].ljust(32,' ')+" "+transa[8].rjust(10,' ')+" "+transa[7]).encode("utf8") ################## ################## # WYLOGOWANIE response_out = br.open("https://www.mbank.com.pl/logout.aspx") response_out.seek(2000) if response_out.read(6000).find('Poprawne wylogowanie z cz') > 0: print "===> Wylogowano poprawnie" else: print "===> BLAD przy wylogowywaniu"