#-############################################# # mBank_auto_skrypt v3.0.3 # Made by Jedrzej Schmeidel (Yunnan) # on 2009/02 # www.yunnan.tk # yunnan@yunnan.tk #-############################################# #-## LICENCJA # Creative Commons License - Attribution, Share Alike # http://creativecommons.org/licenses/by-sa/2.5/pl/ # WOLNO: Kopiowac, rozpowszechniac, odtwarzac i wykonywac utwor. # WOLNO: Tworzyc utwory zalezne. # WARUNEK: Uznanie autorstwa. # WARUNEK: Na tych samych warunkach. #-## OPIS # Skrypt do zautomatyzowanego uzyskiwania wyciagu # z kont mBanku. # Bardzo przydatny do integracji z programami ksiegowymi itp. # Przy odpowiednich zmianach moze wysylac mejle, albo zapisywac # transakcje w bazie danych. # SKRYPT WYSWIETLA transakcje przychodzace i wychodzace # SKRYPT WYSWIETLA oplatydodatkowe (prowadzenie konta, przelew, oplaty za przelewy, stale zlecenia, podatek od odsetek itp) #-## HISTORIA # v0.1 dziala # v0.2 zakodowane hasla base64 # nie daja calkowitego bezpieczenstwa ! # zabezpieczaja jedynie przy przegladaniu kodu # v0.3 listowanie kont # v0.4 listowanie transakcji dla kazdego konta # v1.0 oczyszczenie kodu, definicje # v1.1 mozliwosc wybrania pojedynczego konta do listowania # v1.1 uzyskiwanie numeru transakcji # v1.2 opisy i instrukcje # v1.3 wybor rodzaju transakcji po numerze typu, mozliwosc wielokrotnego wyboru (regexp) # v1.4 wybor konta, mozliwosc wielokrotnego wyboru (regexp), wiecej pol transakcji # v1.5 usuwanie wielokrotnych spacji, oczyszczanie stringow, czytelniejsze domyslne wyswietlanie # v1.6 przechwytywanie bledow # v1.6.1 argument read byl za maly i nie wszystkie konta sie odczytywaly # v1.6.2 poprawki instrukcji i opisu # v1.6.3 dodatkowe opisy transakcji # v1.6.4 wyswietlanie w "prawdziwym" utf8 # v2.0.0 wersja dostosowana do nowego interfejsu mBanku # UWAGA: Tylko funkcje get_konta i get_trans zostaly zmienione i tylko je nalezy zaktualizowac # czyli jesli ktos uzywa tego skryptu jako modulu, wystarczy ze zamieni te dwie fukcje, a output # jest identyczny (komorki sa numerowane tak samo i sposob wyswietlania jest taki sam) # v2.0.1 drobny blad przy logowaniu (dziwna niepotrzebna komorka None=) # v2.0.2 get_konta: zmienna nr 3 to "saldo" konta, dodano zmienna 5, czyli "dostepne srodki" # v2.0.3 zmiana wyswietlania, obok salda dodano walute oraz w nawiasie wyswietlane sa "dostepne srodki" # UWAGA: dostepne srodki zawieraja zablokowane srodki (wykonane ale nie zaksiegowane transakcje) oraz odnawialne kredyty # v2.0.4 skrypt akceptuje ujemny stan konta # v2.0.5 mBankowcy znowu cos zmieniali, musialem przepisac regexpy # UWAGA: numeryczny kod transakcji nie jest juz podawany przez mBank, tak wiec filtrowanie po tym numerze nie dziala ! # UWAGA: tylko funkcje sz_konto, sz_trans1, sz_trans2 i sz_trans3 sie zmienily !!! wystarczy je podstawic # v2.1.0 znowu mozna wybierac rodzaje operacji, teraz przebiega to przez system mbanku uzywajac ich trzyliterowych kodow # mozna wybierac dowolny okres do wyswietlenia wstecz # wybieranie przedzialu bedzie w nastepnej wersji :) # v2.1.1 dodane pauzy na czekanie na odpowiedz # sa podejrzenia ze za szybkie zapytania do serwera byly powodem sporadycznych timeoutow # v2.1.2 drobne poprawki, optymalizacja sleepow, chyba bylo ich za duzo :) # v2.2.0 sciaganie calej listy transakcji, nawet jak jest na paru stronach # v3.0.0 podzial na plik glowny, funkcje i plik konfiguracyjny # v3.0.1 usprawnienie includowania pozostalych plikow # v3.0.2 Pawel Maziarz - poprawka pozwalajaca uruchamianie skryptu z dowolnego katalogu # v3.0.3 mbank znowu musial cos zmienic... poprawione :) #-## TODO # wykrywanie kredytu gotowkowego #-## Instalacja i uruchomienie # - program wymaga Python i Python-Mechanize # (w debianie to paczki "python" i "python-mechanize") # - plik skryptu wgrac do dowolnego katalogu # - z powodow bezpieczenstwa katalogowi i skryptowi nadac prawa odczytu tylko dla wlasciciela # - podac uzytkownika i haslo do mbanku, z powodow bezpieczenstwa jest zakodowane base64 # UWAGA: podajac prawdziwy login, nalezy podawac prawdziwe haslo !!! # 3 bledne logowania powoduja zablokowanie dostepu do konta !!! Trzeba potem odblokowywac przez telefon ;) # - mozna ustawic zmienna "wybrane" na jedno z kont ktore ma byc monitorowane, np: # wybor_konto = '(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)' # jesli zmienna jest '(.*)', skrypt wyswietla wszystkie konta tego uzytkownika, np: # wybor_konto = '(.*)' # zwykle wyrazenie regularne # - mozna wybrac tylko okreslone transakcje do wyswietlenia # ALL - Wszystkie # ABO - Uznania rachunku # CAR - Obciążenia rachunku # TRI - Przelewy przychodzące # TRO - Przelewy wychodzące # TUS - Przelewy podatkowe # TRZ - Przelewy do ZUS # LDS - Operacje kartowe # CRE - Operacje na kredycie # CAI - Wpłaty gotówkowe # CAO - Wypłaty gotówkowe # INT - Kapitalizacja odsetek # COM - Prowizje i opłaty # - jak zakodowac haslo i uzytkownika base64 ? # mozna uzyc dowolnego base64 calculator z googli # albo ponizszej funkcji pythona #print 'nasze_haslo'.encode('base64') #-## Integracja i edycja # - program zostal napisany w Linuxie, tak wiec mozna go dowolnie zintegrowac w Linuxie # - aby uruchomic program w Windowsie potrzebny jest Python do windowsa z pakietem Mechanize # ODRADZAM uzywania go na Windowsie, z powodu latwego dostepu do wszystkich plikow i zapisanych w nich hasel # nalezy posiadac zaufany komputer, najlepiej tylko z jednym (wlasnym) kontem uzytkownika # - funkcje podaja tablice z numerami kont oraz odpowiednio wyciag z konta # tablica moze byc w dowolny sposob przetworzona i wyswietlona, wyslana mejlem, lub zapisana do bazy # python w prosty sposob oferuje te wszystkie mozliwosci # - skrypt mozna bez problemu uruchamiac cronem # - pola danych sa wziete bezposrednio ze strony, tak wiec ich kolejnosc jest podobna jak na stronie # tabela z informacjami o koncie ma 6 pol # 0 - zmienna POST, niezbedna do uzyskania wyciagu, raczej nieczytelna :D # 1 - nazwa konta # 2 - numer konta # 3 - saldo # 4 - waluta # 5 - dostepne srodki # tabela z informacjami o transakcji ma 11 pol # 0 - data wydania polecenia transakcji # 1 - data wykonania polecenia transakcji # 2 - wewnetrzny systemowy numer transakcji, transakcje numerowane kolejno # 3 - numer oznaczajacy rodzaj transakcji (opisane ponizej) - NIEAKTUALNE ! NUMERYCZNY TYP TRANSAKCJI NIE JEST JUZ PODAWANY PRZEZ MBANK # 4 - slownie rodzaj transakcji # 5 - druga strona bioraca udzial w transakcji # 6 - numer konta drugiej strony bioracej udzial w transakcji (w niektorych przypadkach pusty) # 7 - tytul przelewu/transakcji # 8 - kwota transakcji # 9 - saldo po transakcji # 10- waluta transakcji #-## Bezpieczenstwo i gwarancje # Uzywanie na wlasna odpowiedzialnosc !!! Uzywajac programu zgadzasz sie na to ze nie # ponosze odpowiedzialnosci za za zadne szkody ktore moga powstac uzywajac tego skryptu. # Gwarantuje jednak ze moj oryginalny kod nie zawiera zadnych spyware, zadnych metod # podgladania i przechwytywania czulych danych. Mozna to oczywiscie zobaczyc przegladajac # krociutki kod. # Aby zwiekszyc bezpieczenstwo, niektore pola i zmienne sa zakodowane base64. To uniemozliwia # bezposrednie odczytanie lub znalezienie hasel w pliku.