]>
Tony Duckles's Git Repositories (git.nynim.org) - delicious-utils.git/blob - delicious-xml2rss/delicious-xml2rss.php
3 Name: delicious-xml2rss.php
4 Description: Given a Delicious "posts/all"-style XML text, output an
6 Author: Tony Duckles <tony@nynim.org>
9 1) Create the "userinfo.inc.php" file, with your Delicious username and
12 define('DELICIOUS_USERNAME', 'username');
14 2) Run this script and redirect the output as needed:
15 $ php delicious-xml2rss.php < delicious-posts.xml > delicious-rss.xml
18 // Load the (private) "auth_info.inc.php" file
19 require('userinfo.inc.php');
20 if (!defined('DELICIOUS_USERNAME'))
21 define('DELICIOUS_USERNAME', 'username');
23 // Print the initial '<?xml ... >' line using PHP code, so that the trailing
24 // "?"+">" doesn't confuse PHP and/or editor syntax-highlighting.
25 print '<?xml version="1.0" encoding="UTF-8"?>'."\n";
27 <rss version
="2.0" xmlns
:atom
="http://www.w3.org/2005/Atom" xmlns
:content
="http://purl.org/rss/1.0/modules/content/" xmlns
:wfw
="http://wellformedweb.org/CommentAPI/" xmlns
:rdf
="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns
:dc
="http://purl.org/dc/elements/1.1/" xmlns
:cc
="http://web.resource.org/cc/">
29 <title
>Delicious
/<? print DELICIOUS_USERNAME
; ?></title
>
30 <link
>http
://delicious.com/<? print DELICIOUS_USERNAME; ?></link>
31 <description
>bookmarks posted by
<? print DELICIOUS_USERNAME
; ?></description
>
32 <atom
:link rel
="self" type
="application/rss+xml" href
="http://feeds.delicious.com/v2/rss/<? print DELICIOUS_USERNAME; ?>?count=15"/>
33 <cc
:license rdf
:resource="http://creativecommons.org/licenses/by/2.5/"/>
35 $lines = file('php://stdin');
36 foreach ($lines as $line_num => $line) {
38 $pattern = '/<post href="(.*)" hash="(.*)" description="(.*)" tag="(.*)" time="(.*)" extended="(.*)" meta="(.*)"/';
39 if (preg_match($pattern, $line, $matches) > 0) {
41 echo ' <title>'.$matches[3].'</title>'."\n";
42 echo ' <pubDate>'.date('r', strtotime(str_replace('T', ' ',$matches[5]))).'</pubDate>'."\n";
43 echo ' <guid isPermaLink="false">http://delicious.com/url/'.$matches[2].'#'.DELICIOUS_USERNAME
.'</guid>'."\n";
44 echo ' <link>'.$matches[1].'</link>'."\n";
45 echo ' <dc:creator><![CDATA['.DELICIOUS_USERNAME
.']]></dc:creator>'."\n";
46 echo ' <comments>http://delicious.com/url/'.$matches[2].'</comments>'."\n";
47 echo ' <wfw:commentRss>http://feeds.delicious.com/v2/rss/url/'.$matches[2].'</wfw:commentRss>'."\n";
48 echo ' <source url="http://feeds.delicious.com/v2/rss/'.DELICIOUS_USERNAME
.'">'.DELICIOUS_USERNAME
.'\'s bookmarks</source>'."\n";
49 $tags = explode(' ', $matches[4]);
50 foreach ($tags as $tag) {
51 echo ' <category domain="http://delicious.com/'.DELICIOUS_USERNAME
.'/">'.$tag.'</category>'."\n";