Futzing and Displaying Unruly RSS Feeds

I am currently working on a Web site for my latest and absolutely greatest adventure of competing in the 2010 Montgomery Country Agricultural Fair‘s demolition derby. I want this Web site to provide multimedia content, descriptions and plans, as well as nicely displayed RSS feeds of my blog and SMS systems relevant to my demolition derby effort. Probably because of my own ignorance and lack of knowledge (remember, I’m a political/economic analyst, not a developer) but possibly because of a(nother) bug with StatusNet, I had difficulty using PHP to repost posts that contain a certain hashtag. After trying to do it the “correct” way for an hour or two, I decided to do it the easy hacky way and did so in five minutes. Here’s the deal in case you come across a similar problem:

For my homepage, I swiped Matt Thommes’ PHP to display RSS/ATOM feeds in another page. It took some tweaking (and learning), but I used his structure/framework to get my blog and sms sites to load. This works well, is clear, and allows for a good degree of flexibility.

For the demolition derby Web site, I want to post notices from my sms site that contain the #demoderby hashtag. That way, I can continue to use whatever information delivery methods I prefer (e.g., blog or sms) with it all being delivered to one place for people who want to follow the destruction. At first, I played with the various badges (for StatusNet systems) that exist out there, but I could not get the first two I tried to work and none of them seemed well configured for limiting posts to certain hashtags. The next step was to use Thommes’ PHP structure to use the RSS feed a StatusNet install provides for a given hashtag. This, however, wouldn’t work because–I think–of the URL StatusNet uses for hashtags’ RSS feeds.

After about two hours of total hunting and searching (starting from the badge search), I gave up and decided to add a tweak to Thommes’ code. I essentially include a line that checks to see if a given notice contains the hashtag. If it doesn’t, do nothing and move on to the next notice. If it does, then display the tag. It took me five minutes to do, and should have been how I started. Oh well.

Here’s the tweaked code:

# INSTANTIATE CURL.
$curl = curl_init();

# CURL SETTINGS.
curl_setopt($curl, CURLOPT_URL, "http://sms.jasonkoepke.com/api/statuses/user_timeline/1.atom");
Curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 0);

# GRAB THE XML FILE.
$xmlSMSFeed = curl_exec($curl);

curl_close($curl);

# SET UP XML OBJECT.
$xmlObjSMSFeed = simplexml_load_string($xmlSMSFeed);

$tempCounter = 0;

#Specify the hash you care about
$hashofconcern = "#demoderby";

foreach ($xmlObjSMSFeed->entry as $smsitem)
{
# DISPLAY ONLY 3 ITEMS.
if ( $tempCounter < 3 )
{
$pos = strpos($smsitem->title, $hashofconcern);
if ($pos === false)
{
#We don't want to display non-hashtagged posts, so this if statment has nothing.
}
else
{
echo " id."">".$smsitem -> published.": ".$smsitem -> title."

";
}
}

$tempCounter += 1;
}

Hope that helps someone, or someone comments the obvious and easier way of doing all this.

2 thoughts on “Futzing and Displaying Unruly RSS Feeds

  1. zak

    oh snap… i could just use ecards or even evites to get her the message. holy shit, this is probably the way taliban cells do it….

Comments are closed.