diff options
author | Mike Macgirvin <mike@macgirvin.com> | 2010-10-06 19:46:44 -0700 |
---|---|---|
committer | Mike Macgirvin <mike@macgirvin.com> | 2010-10-06 19:46:44 -0700 |
commit | a0ecdd025eadf22142c7ed5018b930127ea10d9f (patch) | |
tree | 861eac177aea2bde9a16d3c4d0739a2396d664d8 | |
parent | 98ebcada61dd76b0707869ca6e3ee6b16613cadf (diff) | |
download | volse-hubzilla-a0ecdd025eadf22142c7ed5018b930127ea10d9f.tar.gz volse-hubzilla-a0ecdd025eadf22142c7ed5018b930127ea10d9f.tar.bz2 volse-hubzilla-a0ecdd025eadf22142c7ed5018b930127ea10d9f.zip |
infrastructure for salmon
-rw-r--r-- | boot.php | 1 | ||||
-rw-r--r-- | include/items.php | 3 | ||||
-rw-r--r-- | include/notifier.php | 1 | ||||
-rw-r--r-- | mod/pubsub.php | 2 | ||||
-rw-r--r-- | mod/salmon.php | 52 | ||||
-rw-r--r-- | mod/xrd.php | 3 | ||||
-rw-r--r-- | view/atom_feed.tpl | 1 | ||||
-rw-r--r-- | view/xrd_person.tpl | 2 |
8 files changed, 63 insertions, 2 deletions
@@ -28,6 +28,7 @@ define ( 'NAMESPACE_THREAD' , 'http://purl.org/syndication/thread/1.0' ) define ( 'NAMESPACE_TOMB' , 'http://purl.org/atompub/tombstones/1.0' ); define ( 'NAMESPACE_ACTIVITY', 'http://activitystrea.ms/spec/1.0/' ); define ( 'NAMESPACE_ACTIVITY_SCHEMA', 'http://activitystrea.ms/schema/1.0/'); +define ( 'NAMESPACE_SALMON_ME', 'http://salmon-protocol.org/ns/magic-env'); define ( 'ACTIVITY_LIKE', NAMESPACE_ACTIVITY_SCHEMA . 'like' ); define ( 'ACTIVITY_DISLIKE', NAMESPACE_DFRN . '/dislike' ); diff --git a/include/items.php b/include/items.php index 799af48ac..e4376fbee 100644 --- a/include/items.php +++ b/include/items.php @@ -127,12 +127,15 @@ function get_feed_for(&$a, $dfrn_id, $owner_id, $last_update, $direction = 0) { $hubxml = ((strlen($hub)) ? '<link rel="hub" href="' . xmlify($hub) . '" />' . "\n" : ''); + $salmon = '<link rel="salmon" href="' . xmlify($a->get_baseurl() . '/salmon/' . $owner_nick) . '" />' . "\n" ; + $salmon = ''; // remove this line when salmon handler is finished $atom .= replace_macros($feed_template, array( '$feed_id' => xmlify($a->get_baseurl() . '/profile/' . $owner_nick), '$feed_title' => xmlify($owner['name']), '$feed_updated' => xmlify(datetime_convert('UTC', 'UTC', $updated . '+00:00' , ATOM_TIME)) , '$hub' => $hubxml, + '$salmon' => $salmon, '$name' => xmlify($owner['name']), '$profile_page' => xmlify($owner['url']), '$photo' => xmlify($owner['photo']), diff --git a/include/notifier.php b/include/notifier.php index f7d2844c3..ce4e5fed4 100644 --- a/include/notifier.php +++ b/include/notifier.php @@ -157,6 +157,7 @@ '$feed_title' => xmlify($owner['name']), '$feed_updated' => xmlify(datetime_convert('UTC', 'UTC', $updated . '+00:00' , ATOM_TIME)) , '$hub' => $hubxml, + '$salmon' => '', // private feed, we don't use salmon here '$name' => xmlify($owner['name']), '$profile_page' => xmlify($owner['url']), '$photo' => xmlify($owner['photo']), diff --git a/mod/pubsub.php b/mod/pubsub.php index 1feb80031..7dea2afb1 100644 --- a/mod/pubsub.php +++ b/mod/pubsub.php @@ -87,7 +87,7 @@ function pubsub_post(&$a) { $debugging = get_config('system','debugging'); if($debugging) - file_put_contents('pubsub.out',$xml); + file_put_contents('pubsub.out',$xml,FILE_APPEND); $nick = (($a->argc > 1) ? notags(trim($a->argv[1])) : ''); $contact_id = (($a->argc > 2) ? intval($a->argv[2]) : 0); diff --git a/mod/salmon.php b/mod/salmon.php new file mode 100644 index 000000000..d68c74658 --- /dev/null +++ b/mod/salmon.php @@ -0,0 +1,52 @@ +<?php + +function salmon_return($val) { + + if($val >= 500) + $err = 'Error'; + if($val == 200) + $err = 'OK'; + + header($_SERVER["SERVER_PROTOCOL"] . ' ' . $val . ' ' . $err); + killme(); + +} + +function salmon_post(&$a) { + + $xml = file_get_contents('php://input'); + + $debugging = get_config('system','debugging'); + if($debugging) + file_put_contents('salmon.out',$xml,FILE_APPEND); + + $nick = (($a->argc > 1) ? notags(trim($a->argv[1])) : ''); + $mentions = (($a->argc > 2 && $a->argv[2] === 'mention') ? true : false); + + $r = q("SELECT * FROM `user` WHERE `nickname` = '%s' LIMIT 1", + dbesc($nick) + ); + if(! count($r)) + salmon_return(500); + + $importer = $r[0]; + + require_once('include/items.php'); + + // Create a fake feed wrapper so simplepie doesn't choke + + $tpl = load_view_file('view/atom_feed.tpl'); + + $base = substr($xml,strpos($xml,'<entry')); + + $xml = $tpl . $base . '</feed>'; + +salmon_return(500); // until the handler is finished + +// consume_salmon($xml,$importer); + + salmon_return(200); +} + + + diff --git a/mod/xrd.php b/mod/xrd.php index e60fda48d..d36b47519 100644 --- a/mod/xrd.php +++ b/mod/xrd.php @@ -21,7 +21,8 @@ function xrd_content(&$a) { $o = replace_macros($tpl, array( '$accturi' => $uri, '$profile_url' => $a->get_baseurl() . '/profile/' . $r[0]['nickname'], - '$photo' => $a->get_baseurl() . '/photo/profile/' . $r[0]['uid'] + '$photo' => $a->get_baseurl() . '/photo/profile/' . $r[0]['uid'], + '$salmon' => $a->get_baseurl() . '/salmon/' . $r[0]['nickname'] . '/mention' )); echo $o; diff --git a/view/atom_feed.tpl b/view/atom_feed.tpl index 893d42036..7918c0d09 100644 --- a/view/atom_feed.tpl +++ b/view/atom_feed.tpl @@ -11,6 +11,7 @@ <generator uri="http://mistpark.com" version="2.0">Mistpark</generator> <link rel="license" href="http://creativecommons.org/licenses/by/3.0/" /> $hub + $salmon <updated>$feed_updated</updated> diff --git a/view/xrd_person.tpl b/view/xrd_person.tpl index 121062160..b559bfadc 100644 --- a/view/xrd_person.tpl +++ b/view/xrd_person.tpl @@ -14,4 +14,6 @@ href='$profile_url' /> <Link rel='http://webfinger.net/rel/avatar' href='$photo' /> + <Link rel="salmon" href="$salmon" /> + </XRD> |