13 nov. 2012

Aptoide downloader

Post destinat celor cu telefoane bazate pe Android si au auzit de aptoide. Si care folosesc Linux sau stiu de Cygwin. Posibil sa mearga si pe MacOS cu utilitarele specifice instalate.

Povestea incepe acum ceva timp, cam cu 2 luni in urma. Am dat peste un programel care descarca apk-uri din alta parte decat de pe Google Store/Play Store.

Partea naspa e ca nu mi-a placut mie prea mult aplicatia lor. Mi s-a parut dubioasa, la fel cum mi se par toate marketurile in afara de cele oficiale. In fine, nu ne mai lungim, ideea e ca Aptoide e ca un fel de Installous pentru aifonisti.

Partea buna e ca au si un site care descarca de fapt un fisier .myapp, fisier text ce e pe urma parsat de catre aplicatia lor dubioasa si fisier ce contine de fapt link-ul catre *.apk. Am mai avut o tentativa pana acum de a face un script ce descarca direct apk-urile fara sa ai instalata aplicatia pe telefon, dar m-am luat cu altele si nici ca am inceput-o vreodata.

Tentativa a fost de fapt o idee ce mi-a trecut prin cap si am ramas la transformarea agentului Firefox in Android, cat *.myapp, click link, descarcare *.apk. Totul era ok, zic eu, doar ca numele apk-urilor erau exact ca si cum ar fi trecut printr-un bombardament si era greu la un moment dat sa distingi intre apk-uri, mai ales daca aveai destul de multe in folderul de Download.
Asa ca azi l-am facut. L-am scris. L-am facut pe motherfucker.

M-am pus pe scris, m-am chinuit 10 minute si mi-am dat seama ca nu merge treaba asa si ca daca nu urmez un plan se duce totul. Mi-am adus aminte cum trebuie sa incepi orice proiect.





Am luat o foaie de hartie, am scris algoritmul
(stiu, stiu, arata jalnic, nu respecta regulile, ma rog, fiind un one man job si necitind-ul si altcineva e destul de bine) si m-am reapucat de treaba.







Bucata cu bucata am inceput sa scriu scriptul. Iar. 15 minute mai tarziu aveam bucatile cu checkmark + extragerea.
Inca 15 minute mai tarziu ascultam Megadeth si Black Sabbath si dadeam cu bash -x in script sa ma prind ce variabila nu functiona cum trebuie, fix in mijlocul scriptului. Si... De ce! Dupa inca 10 minute mi-am bagat picioarele in el, in algoritm, in foaie, mi-am luat o friptura in fata si m-am uitat la Mythbusters.
Dupa masa am bagat iara Black Sabbath si in alte 15 minute aveam tot scriptul.
Rulat cu bash -x sa vedem cum merge. Totul era ok. 10 minute de infrumusetare, si hai sa-l bagam pe github.
Publicat pe git, testat de o persoana, raportat: "Dom'ne, nu merge!" Baaaa, ce naiba? Testat personal, totul mergea cum trebuie, totul era bine. Si l-am incercat iara cu alt link si bash -x si aici mi-a folosit "curatenia de primavara" din script.

Erorile raportate la sfarsitul scriptului:
+ rm /tmp/Facebook%20Messenger
+ rm /tmp/Facebook%20Messenger.myapp
rm: cannot remove ‘/tmp/Facebook%20Messenger.myapp’: No such file or directory
m-au facut sa ma prind ca nici macar nu se descarca pagina. Si am gasit vinovatul pana la urma. Un rahat de sed. Bineinteles, vinovatul era intre scaun si monitor. Long short story, Aptoide are mai multe store-uri si eu ii facusem modifcarea adresei doar pentru unul. Fixed, released din nou pe git, should work.

Cum functioneaza? Pai... algoritmul e mai sus. Cum se foloseste?
./aptoide adresa_http
Se poate modifica locul de salvare a aplicatiilor si evident, tot scriptul.

Licenta: GPL
Adresa HTTP: https://github.com/StefanescuCristian/Aptoide-Downloader.git
Adresa git: git://github.com/StefanescuCristian/Aptoide-Downloader.git
Cygwin: http://www.cygwin.com/