Rendszerüzenetek Firefoxból és Turulcsirip Growl [update 3]

2008-03-26 06:31 | kommentek

Az elmúlt héten egy olyan Firefox kiterjesztést fejlesztgettem, ami lehetővé teszi, hogy JavaScript kódból küldjünk üzeneteket a felhasználónak. Persze nem a mindenki által utált alert('hello world') módon, hanem úgy, hogy az Macen Growl segítségével, Windowson az ottani jobb alsó sarokban felbújó rendszerüzenetben, Linuxon pedig valami hasonló módon jelenjen meg.

Könnyen végig lehet gondolni, hogy ez milyen hasznos lehet, ha valami olyan folyamatosan változó oldalt szeretnénk követni, mint például a Turulcsirip. Ehhez csak egy Greasemonkey user szkriptet kellene írni, ami az új csiripeket a kiterjesztés által biztosított API-n keresztül elküldi nekünk ezen a csatornán is.

Ne aggódjatok, ezzel nektek már nem kell foglalkozni. Minden szükséges összetevő elkészült és itt le is tölthető.

Türelmetleneknek

  • Callout telepítés: Callout 0.3.2 (a fent említett kiterjesztés)
  • Csipp telepítés: Csipp 0.3 (a turulcsiripes greasemonkey szkript)
  • CsiripRóka: CsiripRóka (az új verzió kell ahhoz, hogy a sidebarban menjen a Csipp)

Callout

Az említett kiterjesztés telepítés után egy callout objektumot tesz minden oldal és GreaseMonkey szkript számára elérhetővé. Ennek segítségével tudnak üzenni a felhasználónak az alábbi módon (demo):

callout.notify('title', 'message');

Lehetőség van az ikon megváltoztatására is. Ehhez a harmadik opcionális paraméterben kell megadni az ikon url-jét (demo):

callout.notify('title', 'message',
  {icon: 'http://example.com/icon.png'});

Végiggondolva, hogy milyen idegesítő lehet, ha minden oldal elkezdi ezt az apit használni, egyelőre egy három állású kapcsolót építettem be a kiterjesztés beállításaiba. Ezzel lehet szabályozni, hogy bárki küldhessen üzenetet (alapbeállítás), csak GreaseMonkey-ból jöhet üzenet, vagy akár teljesen ki is lehet kapcsolni az egészet. Később lehet majd url alapján is szűrni.

A kiterjesztés a Firefox 2 és az a fölötti verziókat támogatja, beleértve a legújabb Firefox 3 bétákat is, és telepítéséhez szükséges egy 0.7-es, vagy annál újabb GreaseMonkey is.

Update

Az új 0.3-as verzióhoz már nem szükséges, hogy a GreaseMonkey telepítve legyen. E nélkül is működik ha valamilyen oldalból hívják meg.

Update 2

Új feature került a kiterjesztésbe, mely akkor is lehetővé teszi az üzenet kattinthatóságát, ha amúgy az üzenetben nincs url. Ennek ötlete akkor jött, amikor egy nemzetközibb példaszkriptet írtam a kiterjesztéshez. Ha a szövegben nincs is url, a notify metódus harmadik options paraméterében meg lehet adni a href értékeként egy url-t (demo):

callout.notify('lackac.hu', 'LacKac blogja',
  {href: 'http://lackac.hu'});

Update 3

Javítva egy bug, ami miatt egy idő után a GreaseMonkey kiterjesztések nem működtek (pl. TurulRewind sem).

Csipp

Az első példa GreaseMonkey szkript András ötlete alapján egy olyan user script, ami az új csiripeket küldi ki. Igazából ez adta a motivációt a kiterjesztés kifejlesztésére is, amire szintén András késztetett. Amikor Benedeknek mutattam az elkészült alkotást, annyira belelkesült, hogy azonnal elkezdte a Csippet beleépíteni a Turulcsiripbe. Ha ez megtörténik, akkor erre a GM szkriptre már nem is lesz szükség. Bár valószínűleg a sidebarban úgy még nem fog működni.

Van egy másik példaszkript is, ami egyszerűbb. Ez a callouttesting szkript, ami itt a Rólam oldalan működik, és a képemre való kattintáskor hoz fel egy üzenetet. A Csipp mindegyik turulcsirip módban működik (twitterikus, barátkozós, mindent bele), viszont a csiriprókában való használathoz új verziót kell feltelepíteni.

Update

Az új 0.3-as verzióban lekorlátoztam a Csippet a sidebarra, mivel Benedek elkészítette a Turulcsirip update-et. Ezen kívül pedig már itt is működik az avatar mutatása az üzenetek mellett (eddig egy Turulcsirip logo volt itt).

CsiripRóka új verzió

Az új CsiripRókára azért volt szükség, mert a GreaseMonkey nem épül be a sidebarban megnyitott oldalakba. Szerencsére azonban a GM fejlesztők egy nyílt service-en keresztül elérhetővé tették a kiterjesztés API-ját más kiterjesztés fejlesztők felé is. Ennek segítségével bárhova beépíthetővé válnak a GM szkriptek. Tulajdonképpen csupán ezt az újítást hozza be a friss CsiripRóka verzió.

Köszönetnyilvánítás

Anyukámnak, apukámnak, hogy felneveltek. Kedvesemnek, Editnek, hogy mindenkinél jobban szeret :). Bártházi Andrásnak, akitől az alapötlet származik, és minden turulcsiripes ismerősnek, akit a teszteléssel zaklattam.

Ez itt Bácsi László blogja Rubyról, Ruby on Railsről, JavaScriptről, saját projektekről.

Ajánlj engem