5.4.2012 – Hratky s Pythonem

Probudil jsem se v 5h ale byla mi takova zima ze jsem byl nucen zalezt znovu po postele a i kdyz jsem se porad budil, tak jsem vstanul az v 14:30. Rano jsem si akorat nez jsem skoncil v pelechu cetl na DSD, ale to co jsem hledal, to jsem nenasel. Jinak tento pokoj ve kterem jsem byl je ten nejstudenejsi, protoze v nem nefunguje topeni – zadne tu totiz ani neni.

V posteli bylo zase totalni vedro, az pri psani tohoto blogpostu jsem si vzpomnel na to ze bych mohl mit teplotu ale to se nepotvrdilo – ted jsem nameril normalnich 36,55 °C. Po tom probuzeni jsem zjistil ze (kupodivu! 😀 ) na WP neni zadny klient pro Google Music. Tak kdyz jsem si vcera nez jsem sel spat nainstaloval Visual C# for Windows Phone Express, rekl jsem si ze se o jeden pokusim, kdyz tak bude pouze pro me az bez toho telefonu nedokazu zit.

Z drivejsich pokusu jsem vedel ze z Pythonu .NET assembly vytvorit nejde – to jsem si overil uz pri delani toho programu na prenos blogu na Blogger. Tak jsem to zacal prepisovat do C# ale skoncil jsem presne tam kde jsem cekal, prepsat bych to jeste nejak dokazal, ale autentizovat se u Googlu uz ne. Zkousel jsem to pomoci .NET trid, tak i pomoci trid z Google-Data ale proste ne. Ale nelituji toho, aspon jesm zase trochu vice poznal Python.

Tak vecer jsem si znovu vyhledal, zda nejak nejde prece jen vytvorit to dll z pythonu. Nasel jsem 2 zpusoby – bud v SharpDevelop nebo pres ipy.exe (kompiler do .netu IronPythonu, dnes PTVS). Prvni jsem zkusil tu snazsi moznost na prvni pohled ale dopadlo to tak jak predtim(najednou jsem si vzpomnel) – nejaka chyba, ktere jesm nerozumel a Google mi k ni nerekl jedinou vec. Druha cesta byla pres ipy.exe.

Bez vahani jsem nastartoval SunamoVisualStudio, upravil jesm ho aby bral i soubory .py(projekty .pyproj nebylo nutno, to zvladl sam, bere obecne jakykoliv typ projektu, ktery je v souboru .sln) a dal kompilovat. Jeste jsem musel vyresit to ze jsem presunul slozku test, kde byly z valne vetsiny jen multimedialni soubory ale nedoslo mi ze i kdyz to je ve slozce “test” tak na ne budou jine soubory odkazovat. Vratil jsem je tam a ou-je, kompilace byla uspesna:


Kompilace pyc.py byla uspesna

Pak jsem se pokousel to importovat do toho klientu Google Music pro WP ale ou-ha, neslo to, protoze WP pracuje pouze se SilverLight assembly a ne s klasickymi .NET. A neexistuje zadna cesta Interopu nebo tak. Takze jsem se dostal pouze zde:

Silverlight assembly nekompatibilni se zbytkem

Pokusil jsem se dekompilovat tu assembly a ale uz jak dekompilace trvala dele nez 5s mi bylo jasne jak to dopadne. Nakonec trvala skoro 2minuty a procesor mi to vytizilo po celou dobu na 100%:

PyGoogleMusicAPI Decompilation Complete

Vlozil jsem to do Visual C# ale hned 67 erroru:

PyGoogleMusicAPI 67 erroru

Napadlo me ze bych mohl zkusit odstranit ty spatne znaky(vidim tam zatim jen $) tak jsem to udelal – pocet chyb se ale vysplhal na zavratnych 1500 tak jsem si rekl ze toto nema cenu.. Jedine co me napada je delat to pres webovou sluzbu, ale to muze byt zase znacne pomale, zvlaste kdyz k ni bude pristupovat velke mnozstvi lidi. Ale stejne tak jako tak to jde pres net, takze clovek neceka reakci v radu ms. A mam chut to aspon zkusit, ja se jen tak nevzdavam kdyz uz jsem se dostal tak daleko! 🙂

EDIT 6.4.2012:

Tak pres webovou sluzbu to take nejde protoze ty metody maji v sobe znak dolaru a VS je tak nevidi:

metody s dolarem

Zkousel jsem i program, ktery by mi mel prevest .NET Assembly na Silverlight Assembly, ale ten se zacyklil a vzdy hlasil jen “failure”:

Silverlighter

Samozrejme jsem nasel i pokrocilejsi a nizkourovnovejsi techniky jak tu assembly prevest ale podle me by to k nicemu nevedlo, kdyz se mi nepodarila nacist ani jako klasicka .NET assembly.

Leave a Reply

Your email address will not be published. Required fields are marked *