infrastructure for salmon
This commit is contained in:
parent
98ebcada61
commit
a0ecdd025e
8 changed files with 63 additions and 2 deletions
1
boot.php
1
boot.php
|
@ -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_TOMB' , 'http://purl.org/atompub/tombstones/1.0' );
|
||||||
define ( 'NAMESPACE_ACTIVITY', 'http://activitystrea.ms/spec/1.0/' );
|
define ( 'NAMESPACE_ACTIVITY', 'http://activitystrea.ms/spec/1.0/' );
|
||||||
define ( 'NAMESPACE_ACTIVITY_SCHEMA', 'http://activitystrea.ms/schema/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_LIKE', NAMESPACE_ACTIVITY_SCHEMA . 'like' );
|
||||||
define ( 'ACTIVITY_DISLIKE', NAMESPACE_DFRN . '/dislike' );
|
define ( 'ACTIVITY_DISLIKE', NAMESPACE_DFRN . '/dislike' );
|
||||||
|
|
|
@ -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" : '');
|
$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(
|
$atom .= replace_macros($feed_template, array(
|
||||||
'$feed_id' => xmlify($a->get_baseurl() . '/profile/' . $owner_nick),
|
'$feed_id' => xmlify($a->get_baseurl() . '/profile/' . $owner_nick),
|
||||||
'$feed_title' => xmlify($owner['name']),
|
'$feed_title' => xmlify($owner['name']),
|
||||||
'$feed_updated' => xmlify(datetime_convert('UTC', 'UTC', $updated . '+00:00' , ATOM_TIME)) ,
|
'$feed_updated' => xmlify(datetime_convert('UTC', 'UTC', $updated . '+00:00' , ATOM_TIME)) ,
|
||||||
'$hub' => $hubxml,
|
'$hub' => $hubxml,
|
||||||
|
'$salmon' => $salmon,
|
||||||
'$name' => xmlify($owner['name']),
|
'$name' => xmlify($owner['name']),
|
||||||
'$profile_page' => xmlify($owner['url']),
|
'$profile_page' => xmlify($owner['url']),
|
||||||
'$photo' => xmlify($owner['photo']),
|
'$photo' => xmlify($owner['photo']),
|
||||||
|
|
|
@ -157,6 +157,7 @@
|
||||||
'$feed_title' => xmlify($owner['name']),
|
'$feed_title' => xmlify($owner['name']),
|
||||||
'$feed_updated' => xmlify(datetime_convert('UTC', 'UTC', $updated . '+00:00' , ATOM_TIME)) ,
|
'$feed_updated' => xmlify(datetime_convert('UTC', 'UTC', $updated . '+00:00' , ATOM_TIME)) ,
|
||||||
'$hub' => $hubxml,
|
'$hub' => $hubxml,
|
||||||
|
'$salmon' => '', // private feed, we don't use salmon here
|
||||||
'$name' => xmlify($owner['name']),
|
'$name' => xmlify($owner['name']),
|
||||||
'$profile_page' => xmlify($owner['url']),
|
'$profile_page' => xmlify($owner['url']),
|
||||||
'$photo' => xmlify($owner['photo']),
|
'$photo' => xmlify($owner['photo']),
|
||||||
|
|
|
@ -87,7 +87,7 @@ function pubsub_post(&$a) {
|
||||||
|
|
||||||
$debugging = get_config('system','debugging');
|
$debugging = get_config('system','debugging');
|
||||||
if($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])) : '');
|
$nick = (($a->argc > 1) ? notags(trim($a->argv[1])) : '');
|
||||||
$contact_id = (($a->argc > 2) ? intval($a->argv[2]) : 0);
|
$contact_id = (($a->argc > 2) ? intval($a->argv[2]) : 0);
|
||||||
|
|
52
mod/salmon.php
Normal file
52
mod/salmon.php
Normal file
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,8 @@ function xrd_content(&$a) {
|
||||||
$o = replace_macros($tpl, array(
|
$o = replace_macros($tpl, array(
|
||||||
'$accturi' => $uri,
|
'$accturi' => $uri,
|
||||||
'$profile_url' => $a->get_baseurl() . '/profile/' . $r[0]['nickname'],
|
'$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;
|
echo $o;
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
<generator uri="http://mistpark.com" version="2.0">Mistpark</generator>
|
<generator uri="http://mistpark.com" version="2.0">Mistpark</generator>
|
||||||
<link rel="license" href="http://creativecommons.org/licenses/by/3.0/" />
|
<link rel="license" href="http://creativecommons.org/licenses/by/3.0/" />
|
||||||
$hub
|
$hub
|
||||||
|
$salmon
|
||||||
|
|
||||||
<updated>$feed_updated</updated>
|
<updated>$feed_updated</updated>
|
||||||
|
|
||||||
|
|
|
@ -14,4 +14,6 @@
|
||||||
href='$profile_url' />
|
href='$profile_url' />
|
||||||
<Link rel='http://webfinger.net/rel/avatar'
|
<Link rel='http://webfinger.net/rel/avatar'
|
||||||
href='$photo' />
|
href='$photo' />
|
||||||
|
<Link rel="salmon" href="$salmon" />
|
||||||
|
|
||||||
</XRD>
|
</XRD>
|
||||||
|
|
Loading…
Reference in a new issue