Portál AbcLinuxu, 30. dubna 2025 13:12
Trochu jsem od minula pokročil a už mám plasmoid a nějaký ten (neuhlazený) obsah...
Abych to jen přiblížil těm co nečetli první zápisek - chci vytvořit jednu obecnou miniaplikaci (plasmoid, screenlet...) a té jen budete cpát URL podle toho jaký obsah si budete chtít zobrazit. O získávání a zpracování obsahu se bude starat serverová část, ta by zas měla programátorům ulehčit přidávání dalšího obsahu (pod obsahem si představte nejspíš kus webové stránky).
Získávání obsahuServerová část je psána v Ruby on Rails. Zatím je to tak, že když chcete přidat další obsah tak vytvoříte nový model, který zdědí Content, jež obsahuje metody (funkce) které vám usnadní různé věci - zatím toho nemám moc, ale třeba tvoření XML výstupu nebo galerie - stačí mít URL na obrázky, ty nacpat do pole a zavolat na to funci create_gallery a ono se to obalí HTML a jquery humusem:)
Takhle vypadá zatím šablona na zpracování obsahu:
1 class Model < Content 2 attr_accessor :name 3 4 def self.parse_raw_html 5 @html = Hpricot(open("")) 6 7 save_me 8 end 9 10 def self.parse_xml 11 save_me 12 end 13 14 end
U některých stránek je to opravdu snadné, třeba ty kurzy měn co vidíte na obrázku jsou na dva řádky.
@html = Hpricot(open("http://www.cnb.cz/cs/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/denni_kurz.jsp")) @html = @html.at("//table[@class='kurzy_tisk']")
což si myslím že je pohoda, místo toho aby uživatel stahoval nový plasmoid...
Moje smyšlené XMLkoŘekl jsem si, že by se někdy mohlo hodit posílat XML místo HTML, pak si to může miniaplikace rozparsovat a použít nativní widgety, naformátovat jak chce... jenže problém je formát toho XML, zatím jsem vymyslel tohle: (dávám to sem bez zobáčků, nechce se mi to nahrazovat)
document label Text labelu jedna /label image http://www.example.com/obrazek.jpg /image video http://www.example.com/video.avi /video label Text labelu dva /label /document
Tohle jsem naučil ten plasmoid parsovat a dělat z toho nativní widgety (teda ještě na to video/phonon musím mrknout, ale zatím se mi nepodařil ani image:)) ale v XML se nevyznám, možná bych měl použít něco co už je, nějaké DTD a tak... samozřejmě QT i GTk mají svoje .ui/.glade soubory které v XML obsahují popis jaké widgety tam mají být, ale zkoušel jsem to QT a to se mi nedaří načíst za běhu a navíc je to dost specifické... tohle ještě musím promyslet.
PushDalší věc co by se mi hodně líbila by byla Push aktualizace obsahu (http://en.wikipedia.org/wiki/Push_technology) nebo jak se tomu říká. Že když budu v miniaplikaci mít počasí z googlu tak ho nebudu muset co 5 minut stahovat znovu ale počkám si na server ať mi řekne... nějaké nápady jak tohle implementovat? Otevřít si port a tam čekat až se mi někdo ozve?
Na závěr povzdech, plasmoid píšu v ruby a dokumentace mi přijde nic moc... čtyři dny jsem hledal jak odstranit widget... nemá někdo nějaké tipy?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.