DEV Community

Cover image for My First UWA Widget for Netvibes and iGoogle (2009)
Hamdi LAADHARI
Hamdi LAADHARI

Posted on

My First UWA Widget for Netvibes and iGoogle (2009)

Archival repost — originally published on my old blog on January 18, 2009. Lightly cleaned up for dev.to (translated from French; I also dropped my personal TVRage feed hash from the example URL rather than repost a token — TVRage itself shut down years ago anyway). Netvibes and iGoogle are both long gone as platforms and the UWA widget format died with them, but the "aggregate a messy feed into something clean" approach still holds up.

Originally this project was meant for the same rabbit from my Nabaztag hack, but I ended up wanting to play with Netvibes' UWA widget framework instead. This widget shows the air times for the TV shows I watch regularly.

I'm a sucker for mashups, so instead of manually listing out every show, I used a service from TVRage. Once you created a TVRage account and added your favorite shows to it, TVRage gave you a personalized RSS feed of everything airing during the current week.

The feed was pretty messy — hard to work with, the items were inconsistent in structure — so aggregating it into the shape I wanted took more effort than expected.

Wanting to get the widget working as fast as possible, I wrote a small PHP5 API that aggregates the feed and sorts the data properly. You could also use the UWA/JS parser that Netvibes provided directly, and that's honestly the better approach — as it stood, the widget depended on an API I'd written and hosted on one of my own sites. But it didn't matter much: I wasn't planning to distribute the widget, so the PHP solution worked fine for my own use.

The widget takes three parameters: the tid and hash you'd find in your own personalized feed URL, and a third one pointing at my API.

Nothing about this stack survives today — Netvibes, iGoogle, TVRage, and UWA are all gone — but "aggregate a messy feed into a clean personal widget" is a shape I still reach for.

Top comments (0)