Portál AbcLinuxu, 30. dubna 2025 13:12

Obecné miniaplikace II

17.10.2009 16:19 | Přečteno: 1799× | poslední úprava: 17.10.2009 17:20

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í obsahu

Serverová čá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.

Push

Další 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?

       

Hodnocení: 100 %

        špatnédobré        

Obrázky

Obecné miniaplikace II, obrázek 1

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

vlastikroot avatar 17.10.2009 16:54 vlastikroot | skóre: 24 | blog: vlastikovo | Milevsko
Rozbalit Rozbalit vše Re: Obecné miniaplikace II
Odpovědět | Sbalit | Link | Blokovat | Admin
Comet návrh by ti mohl pomoct s server pushem.
We will destroys the Christian's legion ... and the cross, will be inverted
Rezza avatar 17.10.2009 17:21 Rezza | skóre: 25 | blog: rezza | Brno
Rozbalit Rozbalit vše Re: Obecné miniaplikace II
Odpovědět | Sbalit | Link | Blokovat | Admin
Libi ;-) Push neni spatny napad, to XML nevim, mozna by mohly stacit styly na strane klienta.
Fluttershy, yay! avatar 17.10.2009 19:00 Fluttershy, yay! | skóre: 93 | blog:
Rozbalit Rozbalit vše Re: Obecné miniaplikace II
OT: co je to za avatara?
🇵🇸Touch grass🇺🇦 ✊ ani boha, ani pána
Rezza avatar 17.10.2009 19:29 Rezza | skóre: 25 | blog: rezza | Brno
Rozbalit Rozbalit vše Re: Obecné miniaplikace II
Nemam tucha ;-)
Salamek avatar 18.10.2009 02:51 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: Obecné miniaplikace II
vypada to jak prdel v ni ruka a vsude kolem sracky :-D
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
Fluttershy, yay! avatar 18.10.2009 17:23 Fluttershy, yay! | skóre: 93 | blog:
Rozbalit Rozbalit vše Re: Obecné miniaplikace II
Nebo dětská hlava se zasranou rukou zabodnutou v oku.
🇵🇸Touch grass🇺🇦 ✊ ani boha, ani pána
Salamek avatar 18.10.2009 17:34 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: Obecné miniaplikace II
jo to spis, kdyz se na to ted divam bliz
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
xkucf03 avatar 18.10.2009 13:21 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Obecné miniaplikace II
Odpovědět | Sbalit | Link | Blokovat | Admin
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
Rezza avatar 18.10.2009 16:14 Rezza | skóre: 25 | blog: rezza | Brno
Rozbalit Rozbalit vše Re: Obecné miniaplikace II
No to se da docilit tim, ze by to byl Plasma::DataEngine, ze ktereho si muzou widgety brat data a pro ten data engine staci jedno spojeni. Ale nevim, jestli bych do toho to XMPP tlacil, mozna zbytecne komplikovane. I kdyz ty widgety by i za tohohle stavu mely mit spolecny data engine a z neho brat.
18.10.2009 18:47 phax7 | skóre: 34 | blog: PhaX_blog
Rozbalit Rozbalit vše Re: Obecné miniaplikace II
ad ČNB, díky za info, ale já pochopil že by jak HTML tak TXT by mělo být "API" http://www.cnb.cz/cs/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/faq_format_kurzy.html

každopádně to TXT použiju taky, chtěl bych udělat applet kde by ty kurzy za sebou tak pěkně běhaly v jednom řádku...

ad push XMPP, pak DataEngine... nechte mi taky něco na diplomku kluci, času už moc nezbývá;) Asi vyzkouším tohle: http://juggernaut.rubyforge.org/

Ale určitě bych rád ve vývoji (GPL) pokračoval i po bakalářce...

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.