OStatus moved to src

OStatus moved to Friendica\Protocol namespace. References and function calls updated.
Related to #3878
This commit is contained in:
Adam Magness 2017-11-15 23:09:11 -05:00
parent 8a0bec00c4
commit cd12de46f8
9 changed files with 110 additions and 98 deletions

View File

@ -1,5 +1,7 @@
<?php <?php
/**
* @file include/Contact.php
*/
use Friendica\App; use Friendica\App;
use Friendica\Core\PConfig; use Friendica\Core\PConfig;
use Friendica\Core\System; use Friendica\Core\System;
@ -8,6 +10,7 @@ use Friendica\Database\DBM;
use Friendica\Network\Probe; use Friendica\Network\Probe;
use Friendica\Protocol\Diaspora; use Friendica\Protocol\Diaspora;
use Friendica\Protocol\DFRN; use Friendica\Protocol\DFRN;
use Friendica\Protocol\OStatus;
// Included here for completeness, but this is a very dangerous operation. // Included here for completeness, but this is a very dangerous operation.
// It is the caller's responsibility to confirm the requestor's intent and // It is the caller's responsibility to confirm the requestor's intent and
@ -79,14 +82,11 @@ function terminate_friendship($user,$self,$contact) {
require_once 'include/datetime.php'; require_once 'include/datetime.php';
if ($contact['network'] === NETWORK_OSTATUS) { if ($contact['network'] === NETWORK_OSTATUS) {
require_once 'include/ostatus.php';
// create an unfollow slap // create an unfollow slap
$item = array(); $item = array();
$item['verb'] = NAMESPACE_OSTATUS."/unfollow"; $item['verb'] = NAMESPACE_OSTATUS."/unfollow";
$item['follow'] = $contact["url"]; $item['follow'] = $contact["url"];
$slap = ostatus::salmon($item, $user); $slap = OStatus::salmon($item, $user);
if ((x($contact,'notify')) && (strlen($contact['notify']))) { if ((x($contact,'notify')) && (strlen($contact['notify']))) {
require_once 'include/salmon.php'; require_once 'include/salmon.php';

View File

@ -9,11 +9,11 @@ use Friendica\Core\Worker;
use Friendica\Database\DBM; use Friendica\Database\DBM;
use Friendica\Network\Probe; use Friendica\Network\Probe;
use Friendica\Protocol\Diaspora; use Friendica\Protocol\Diaspora;
use Friendica\Protocol\OStatus;
use Friendica\Protocol\PortableContact; use Friendica\Protocol\PortableContact;
require_once 'include/group.php'; require_once 'include/group.php';
require_once 'include/salmon.php'; require_once 'include/salmon.php';
require_once 'include/ostatus.php';
require_once 'include/Photo.php'; require_once 'include/Photo.php';
function update_contact($id) { function update_contact($id) {
@ -267,7 +267,7 @@ function new_contact($uid, $url, $interactive = false, $network = '') {
$item = array(); $item = array();
$item['verb'] = ACTIVITY_FOLLOW; $item['verb'] = ACTIVITY_FOLLOW;
$item['follow'] = $contact["url"]; $item['follow'] = $contact["url"];
$slap = ostatus::salmon($item, $r[0]); $slap = OStatus::salmon($item, $r[0]);
slapper($r[0], $contact['notify'], $slap); slapper($r[0], $contact['notify'], $slap);
} }

View File

@ -13,6 +13,7 @@ use Friendica\Core\System;
use Friendica\Database\DBM; use Friendica\Database\DBM;
use Friendica\Model\GlobalContact; use Friendica\Model\GlobalContact;
use Friendica\Protocol\DFRN; use Friendica\Protocol\DFRN;
use Friendica\Protocol\OStatus;
use Friendica\Util\Lock; use Friendica\Util\Lock;
require_once 'include/bbcode.php'; require_once 'include/bbcode.php';
@ -26,7 +27,6 @@ require_once 'include/text.php';
require_once 'include/email.php'; require_once 'include/email.php';
require_once 'include/threads.php'; require_once 'include/threads.php';
require_once 'include/plaintext.php'; require_once 'include/plaintext.php';
require_once 'include/ostatus.php';
require_once 'include/feed.php'; require_once 'include/feed.php';
require_once 'include/Contact.php'; require_once 'include/Contact.php';
require_once 'mod/share.php'; require_once 'mod/share.php';
@ -542,9 +542,9 @@ function item_store($arr, $force_parent = false, $notify = false, $dontcache = f
/// @todo Check if this is really still needed /// @todo Check if this is really still needed
if ($arr['network'] == NETWORK_OSTATUS) { if ($arr['network'] == NETWORK_OSTATUS) {
if (isset($arr['plink'])) { if (isset($arr['plink'])) {
$arr['plink'] = ostatus::convert_href($arr['plink']); $arr['plink'] = OStatus::convertHref($arr['plink']);
} elseif (isset($arr['uri'])) { } elseif (isset($arr['uri'])) {
$arr['plink'] = ostatus::convert_href($arr['uri']); $arr['plink'] = OStatus::convertHref($arr['uri']);
} }
} }
@ -1532,7 +1532,7 @@ function consume_feed($xml, $importer, &$contact, &$hub, $datedir = 0, $pass = 0
//$tempfile = tempnam(get_temppath(), "ostatus2"); //$tempfile = tempnam(get_temppath(), "ostatus2");
//file_put_contents($tempfile, $xml); //file_put_contents($tempfile, $xml);
logger("Consume OStatus messages ", LOGGER_DEBUG); logger("Consume OStatus messages ", LOGGER_DEBUG);
ostatus::import($xml, $importer, $contact, $hub); OStatus::import($xml, $importer, $contact, $hub);
} }
return; return;
} }

View File

@ -6,10 +6,10 @@ use Friendica\Core\Worker;
use Friendica\Database\DBM; use Friendica\Database\DBM;
use Friendica\Network\Probe; use Friendica\Network\Probe;
use Friendica\Protocol\Diaspora; use Friendica\Protocol\Diaspora;
use Friendica\Protocol\OStatus;
require_once 'include/queue_fn.php'; require_once 'include/queue_fn.php';
require_once 'include/html2plain.php'; require_once 'include/html2plain.php';
require_once 'include/ostatus.php';
require_once 'include/salmon.php'; require_once 'include/salmon.php';
/* /*
@ -225,7 +225,7 @@ function notifier_run(&$argv, &$argc){
if (! ($mail || $fsuggest || $relocate)) { if (! ($mail || $fsuggest || $relocate)) {
$slap = ostatus::salmon($target_item,$owner); $slap = OStatus::salmon($target_item, $owner);
require_once 'include/group.php'; require_once 'include/group.php';

View File

@ -1,15 +1,18 @@
<?php <?php
/**
* @file include/pubsubpublish.php
*/
use Friendica\App; use Friendica\App;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Core\Config; use Friendica\Core\Config;
use Friendica\Core\Worker; use Friendica\Core\Worker;
use Friendica\Database\DBM; use Friendica\Database\DBM;
use Friendica\Protocol\OStatus;
require_once('include/items.php'); require_once 'include/items.php';
require_once('include/ostatus.php');
function pubsubpublish_run(&$argv, &$argc){ function pubsubpublish_run(&$argv, &$argc)
{
global $a; global $a;
if ($argc > 1) { if ($argc > 1) {
@ -47,7 +50,7 @@ function handle_pubsubhubbub($id) {
logger("Generate feed of user ".$rr['nickname']." to ".$rr['callback_url']." - last updated ".$rr['last_update'], LOGGER_DEBUG); logger("Generate feed of user ".$rr['nickname']." to ".$rr['callback_url']." - last updated ".$rr['last_update'], LOGGER_DEBUG);
$last_update = $rr['last_update']; $last_update = $rr['last_update'];
$params = ostatus::feed($a, $rr['nickname'], $last_update); $params = OStatus::feed($a, $rr['nickname'], $last_update);
if (!$params) { if (!$params) {
return; return;

View File

@ -1,14 +1,16 @@
<?php <?php
/**
* @file mod/dfrn_poll.php
*/
use Friendica\App; use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\DBM; use Friendica\Database\DBM;
use Friendica\Protocol\DFRN; use Friendica\Protocol\DFRN;
use Friendica\Protocol\OStatus;
require_once('include/items.php'); require_once 'include/items.php';
require_once('include/auth.php'); require_once 'include/auth.php';
require_once('include/ostatus.php');
function dfrn_poll_init(App $a) { function dfrn_poll_init(App $a) {
$dfrn_id = ((x($_GET,'dfrn_id')) ? $_GET['dfrn_id'] : ''); $dfrn_id = ((x($_GET,'dfrn_id')) ? $_GET['dfrn_id'] : '');
@ -25,7 +27,7 @@ function dfrn_poll_init(App $a) {
if (($a->argc > 1) && ($dfrn_id == '') && !strstr($_SERVER["HTTP_USER_AGENT"], 'Friendica')) { if (($a->argc > 1) && ($dfrn_id == '') && !strstr($_SERVER["HTTP_USER_AGENT"], 'Friendica')) {
$nickname = $a->argv[1]; $nickname = $a->argv[1];
header("Content-type: application/atom+xml"); header("Content-type: application/atom+xml");
echo ostatus::feed($a, $nickname, $last_update, 10); echo OStatus::feed($a, $nickname, $last_update, 10);
killme(); killme();
} }

View File

@ -1,14 +1,16 @@
<?php <?php
/**
* @file mod/salmon.php
*/
use Friendica\App; use Friendica\App;
use Friendica\Core\PConfig; use Friendica\Core\PConfig;
use Friendica\Database\DBM; use Friendica\Database\DBM;
use Friendica\Protocol\OStatus;
require_once('include/salmon.php'); require_once 'include/salmon.php';
require_once('include/ostatus.php'); require_once 'include/crypto.php';
require_once('include/crypto.php'); require_once 'include/items.php';
require_once('include/items.php'); require_once 'include/follow.php';
require_once('include/follow.php');
function salmon_return($val) { function salmon_return($val) {
@ -89,7 +91,7 @@ function salmon_post(App $a) {
// decode the data // decode the data
$data = base64url_decode($data); $data = base64url_decode($data);
$author = ostatus::salmon_author($data,$importer); $author = OStatus::salmonAuthor($data, $importer);
$author_link = $author["author-link"]; $author_link = $author["author-link"];
if(! $author_link) { if(! $author_link) {
@ -190,7 +192,7 @@ function salmon_post(App $a) {
$contact_rec = ((DBM::is_result($r)) ? $r[0] : null); $contact_rec = ((DBM::is_result($r)) ? $r[0] : null);
ostatus::import($data,$importer,$contact_rec, $hub); OStatus::import($data, $importer, $contact_rec, $hub);
http_status_exit(200); http_status_exit(200);
} }

View File

@ -14,12 +14,12 @@ use Friendica\Core\System;
use Friendica\Core\Worker; use Friendica\Core\Worker;
use Friendica\Model\GlobalContact; use Friendica\Model\GlobalContact;
use Friendica\Database\DBM; use Friendica\Database\DBM;
use Friendica\Protocol\OStatus;
use Friendica\Util\XML; use Friendica\Util\XML;
use dba; use dba;
use DOMDocument; use DOMDocument;
use DomXPath; use DomXPath;
use ostatus;
require_once "include/Contact.php"; require_once "include/Contact.php";
require_once "include/enotify.php"; require_once "include/enotify.php";
@ -554,7 +554,7 @@ class DFRN
if ($public) { if ($public) {
// DFRN itself doesn't uses this. But maybe someone else wants to subscribe to the public feed. // DFRN itself doesn't uses this. But maybe someone else wants to subscribe to the public feed.
ostatus::hublinks($doc, $root, $owner["nick"]); OStatus::hublinks($doc, $root, $owner["nick"]);
$attributes = array("rel" => "salmon", "href" => System::baseUrl()."/salmon/".$owner["nick"]); $attributes = array("rel" => "salmon", "href" => System::baseUrl()."/salmon/".$owner["nick"]);
XML::add_element($doc, $root, "link", "", $attributes); XML::add_element($doc, $root, "link", "", $attributes);

View File

@ -1,7 +1,8 @@
<?php <?php
/** /**
* @file include/ostatus.php * @file src/Protocol/OStatus.php
*/ */
namespace Friendica\Protocol;
use Friendica\App; use Friendica\App;
use Friendica\Core\Cache; use Friendica\Core\Cache;
@ -12,6 +13,9 @@ use Friendica\Model\GlobalContact;
use Friendica\Network\Probe; use Friendica\Network\Probe;
use Friendica\Util\Lock; use Friendica\Util\Lock;
use Friendica\Util\XML; use Friendica\Util\XML;
use dba;
use DOMDocument;
use DomXPath;
require_once 'include/Contact.php'; require_once 'include/Contact.php';
require_once 'include/threads.php'; require_once 'include/threads.php';
@ -28,7 +32,7 @@ require_once 'mod/proxy.php';
/** /**
* @brief This class contain functions for the OStatus protocol * @brief This class contain functions for the OStatus protocol
*/ */
class ostatus class OStatus
{ {
private static $itemlist; private static $itemlist;
private static $conv_list = array(); private static $conv_list = array();
@ -44,7 +48,7 @@ class ostatus
* *
* @return array Array of author related entries for the item * @return array Array of author related entries for the item
*/ */
private static function fetchauthor($xpath, $context, $importer, &$contact, $onlyfetch) private static function fetchAuthor($xpath, $context, $importer, &$contact, $onlyfetch)
{ {
$author = array(); $author = array();
$author["author-link"] = $xpath->evaluate('atom:author/atom:uri/text()', $context)->item(0)->nodeValue; $author["author-link"] = $xpath->evaluate('atom:author/atom:uri/text()', $context)->item(0)->nodeValue;
@ -241,7 +245,7 @@ class ostatus
* *
* @return array Array of author related entries for the item * @return array Array of author related entries for the item
*/ */
public static function salmon_author($xml, $importer) public static function salmonAuthor($xml, $importer)
{ {
if ($xml == "") { if ($xml == "") {
return; return;
@ -264,7 +268,7 @@ class ostatus
foreach ($entries as $entry) { foreach ($entries as $entry) {
// fetch the author // fetch the author
$author = self::fetchauthor($xpath, $entry, $importer, $contact, true); $author = self::fetchAuthor($xpath, $entry, $importer, $contact, true);
return $author; return $author;
} }
} }
@ -276,7 +280,7 @@ class ostatus
* *
* @return array attributes * @return array attributes
*/ */
private static function read_attributes($element) private static function readAttributes($element)
{ {
$attribute = array(); $attribute = array();
@ -380,7 +384,7 @@ class ostatus
// Fetch the first author // Fetch the first author
$authordata = $xpath->query('//author')->item(0); $authordata = $xpath->query('//author')->item(0);
$author = self::fetchauthor($xpath, $authordata, $importer, $contact, $stored); $author = self::fetchAuthor($xpath, $authordata, $importer, $contact, $stored);
$entry = $xpath->query('/atom:entry'); $entry = $xpath->query('/atom:entry');
@ -400,7 +404,7 @@ class ostatus
} }
if ($authorelement->length > 0) { if ($authorelement->length > 0) {
$author = self::fetchauthor($xpath, $entry, $importer, $contact, $stored); $author = self::fetchAuthor($xpath, $entry, $importer, $contact, $stored);
} }
$value = $xpath->evaluate('atom:author/poco:preferredUsername/text()', $entry)->item(0)->nodeValue; $value = $xpath->evaluate('atom:author/poco:preferredUsername/text()', $entry)->item(0)->nodeValue;
@ -542,7 +546,8 @@ class ostatus
return; return;
} }
// Currently we don't have a central deletion function that we could use in this case. The function "item_drop" doesn't work for that case // Currently we don't have a central deletion function that we could use in this case
// The function "item_drop" doesn't work for that case
dba::update( dba::update(
'item', 'item',
array('deleted' => true, 'title' => '', 'body' => '', array('deleted' => true, 'title' => '', 'body' => '',
@ -735,7 +740,7 @@ class ostatus
$links = $xpath->query('//link'); $links = $xpath->query('//link');
if ($links) { if ($links) {
foreach ($links as $link) { foreach ($links as $link) {
$attribute = ostatus::read_attributes($link); $attribute = self::readAttributes($link);
if (($attribute['rel'] == 'alternate') && ($attribute['type'] == 'application/atom+xml')) { if (($attribute['rel'] == 'alternate') && ($attribute['type'] == 'application/atom+xml')) {
$file = $attribute['href']; $file = $attribute['href'];
} }
@ -924,7 +929,7 @@ class ostatus
$links = $xpath->query('//link'); $links = $xpath->query('//link');
if ($links) { if ($links) {
foreach ($links as $link) { foreach ($links as $link) {
$attribute = self::read_attributes($link); $attribute = self::readAttributes($link);
if (($attribute['rel'] == 'alternate') && ($attribute['type'] == 'application/atom+xml')) { if (($attribute['rel'] == 'alternate') && ($attribute['type'] == 'application/atom+xml')) {
$atom_file = $attribute['href']; $atom_file = $attribute['href'];
} }
@ -952,7 +957,7 @@ class ostatus
// Even more worse workaround for GNU Social ;-) // Even more worse workaround for GNU Social ;-)
if ($xml == '') { if ($xml == '') {
$related_guess = ostatus::convert_href($related_uri); $related_guess = OStatus::convertHref($related_uri);
$related_atom = z_fetch_url(str_replace('/notice/', '/api/statuses/show/', $related_guess).'.atom'); $related_atom = z_fetch_url(str_replace('/notice/', '/api/statuses/show/', $related_guess).'.atom');
if ($related_atom['success']) { if ($related_atom['success']) {
@ -1012,7 +1017,7 @@ class ostatus
$orig_edited = $xpath->query('atom:updated/text()', $activityobjects)->item(0)->nodeValue; $orig_edited = $xpath->query('atom:updated/text()', $activityobjects)->item(0)->nodeValue;
$orig_contact = $contact; $orig_contact = $contact;
$orig_author = self::fetchauthor($xpath, $activityobjects, $importer, $orig_contact, false); $orig_author = self::fetchAuthor($xpath, $activityobjects, $importer, $orig_contact, false);
$item["author-name"] = $orig_author["author-name"]; $item["author-name"] = $orig_author["author-name"];
$item["author-link"] = $orig_author["author-link"]; $item["author-link"] = $orig_author["author-link"];
@ -1053,7 +1058,7 @@ class ostatus
$link_data = array('add_body' => '', 'self' => ''); $link_data = array('add_body' => '', 'self' => '');
foreach ($links as $link) { foreach ($links as $link) {
$attribute = self::read_attributes($link); $attribute = self::readAttributes($link);
if (($attribute['rel'] != "") && ($attribute['href'] != "")) { if (($attribute['rel'] != "") && ($attribute['href'] != "")) {
switch ($attribute['rel']) { switch ($attribute['rel']) {
@ -1115,7 +1120,7 @@ class ostatus
* *
* @return string URL in the format http(s)://.... * @return string URL in the format http(s)://....
*/ */
public static function convert_href($href) public static function convertHref($href)
{ {
$elements = explode(":", $href); $elements = explode(":", $href);
@ -1148,7 +1153,7 @@ class ostatus
* *
* @return string The guid if the post is a reshare * @return string The guid if the post is a reshare
*/ */
private static function get_reshared_guid($item) private static function getResharedGuid($item)
{ {
$body = trim($item["body"]); $body = trim($item["body"]);
@ -1190,7 +1195,7 @@ class ostatus
* *
* @return string The cleaned body * @return string The cleaned body
*/ */
private static function format_picture_post($body) private static function formatPicturePost($body)
{ {
$siteinfo = get_attached_data($body); $siteinfo = get_attached_data($body);
@ -1228,7 +1233,7 @@ class ostatus
* *
* @return object header root element * @return object header root element
*/ */
private static function add_header($doc, $owner) private static function addHeader($doc, $owner)
{ {
$a = get_app(); $a = get_app();
@ -1252,7 +1257,7 @@ class ostatus
XML::add_element($doc, $root, "logo", $owner["photo"]); XML::add_element($doc, $root, "logo", $owner["photo"]);
XML::add_element($doc, $root, "updated", datetime_convert("UTC", "UTC", "now", ATOM_TIME)); XML::add_element($doc, $root, "updated", datetime_convert("UTC", "UTC", "now", ATOM_TIME));
$author = self::add_author($doc, $owner); $author = self::addAuthor($doc, $owner);
$root->appendChild($author); $root->appendChild($author);
$attributes = array("href" => $owner["url"], "rel" => "alternate", "type" => "text/html"); $attributes = array("href" => $owner["url"], "rel" => "alternate", "type" => "text/html");
@ -1302,7 +1307,7 @@ class ostatus
* @param object $root XML root element where the hub links are added * @param object $root XML root element where the hub links are added
* @param array $item Data of the item that is to be posted * @param array $item Data of the item that is to be posted
*/ */
private static function get_attachment($doc, $root, $item) private static function getAttachment($doc, $root, $item)
{ {
$o = ""; $o = "";
$siteinfo = get_attached_data($item["body"]); $siteinfo = get_attached_data($item["body"]);
@ -1368,7 +1373,7 @@ class ostatus
* *
* @return object author element * @return object author element
*/ */
private static function add_author($doc, $owner) private static function addAuthor($doc, $owner)
{ {
$r = q("SELECT `homepage`, `publish` FROM `profile` WHERE `uid` = %d AND `is-default` LIMIT 1", intval($owner["uid"])); $r = q("SELECT `homepage`, `publish` FROM `profile` WHERE `uid` = %d AND `is-default` LIMIT 1", intval($owner["uid"]));
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
@ -1445,7 +1450,7 @@ class ostatus
* *
* @return string activity * @return string activity
*/ */
private static function construct_verb($item) private static function constructVerb($item)
{ {
if ($item['verb']) { if ($item['verb']) {
return $item['verb']; return $item['verb'];
@ -1461,7 +1466,7 @@ class ostatus
* *
* @return string Object type * @return string Object type
*/ */
private static function construct_objecttype($item) private static function constructObjecttype($item)
{ {
if (in_array($item['object-type'], array(ACTIVITY_OBJ_NOTE, ACTIVITY_OBJ_COMMENT))) if (in_array($item['object-type'], array(ACTIVITY_OBJ_NOTE, ACTIVITY_OBJ_COMMENT)))
return $item['object-type']; return $item['object-type'];
@ -1480,9 +1485,9 @@ class ostatus
*/ */
private static function entry($doc, $item, $owner, $toplevel = false) private static function entry($doc, $item, $owner, $toplevel = false)
{ {
$repeated_guid = self::get_reshared_guid($item); $repeated_guid = self::getResharedGuid($item);
if ($repeated_guid != "") { if ($repeated_guid != "") {
$xml = self::reshare_entry($doc, $item, $owner, $repeated_guid, $toplevel); $xml = self::reshareEntry($doc, $item, $owner, $repeated_guid, $toplevel);
} }
if ($xml) { if ($xml) {
@ -1490,11 +1495,11 @@ class ostatus
} }
if ($item["verb"] == ACTIVITY_LIKE) { if ($item["verb"] == ACTIVITY_LIKE) {
return self::like_entry($doc, $item, $owner, $toplevel); return self::likeEntry($doc, $item, $owner, $toplevel);
} elseif (in_array($item["verb"], array(ACTIVITY_FOLLOW, NAMESPACE_OSTATUS."/unfollow"))) { } elseif (in_array($item["verb"], array(ACTIVITY_FOLLOW, NAMESPACE_OSTATUS."/unfollow"))) {
return self::follow_entry($doc, $item, $owner, $toplevel); return self::followEntry($doc, $item, $owner, $toplevel);
} else { } else {
return self::note_entry($doc, $item, $owner, $toplevel); return self::noteEntry($doc, $item, $owner, $toplevel);
} }
} }
@ -1506,7 +1511,7 @@ class ostatus
* *
* @return object Source element * @return object Source element
*/ */
private static function source_entry($doc, $contact) private static function sourceEntry($doc, $contact)
{ {
$source = $doc->createElement("source"); $source = $doc->createElement("source");
XML::add_element($doc, $source, "id", $contact["poll"]); XML::add_element($doc, $source, "id", $contact["poll"]);
@ -1527,7 +1532,7 @@ class ostatus
* *
* @return array Contact array * @return array Contact array
*/ */
private static function contact_entry($url, $owner) private static function contactEntry($url, $owner)
{ {
$r = q( $r = q(
"SELECT * FROM `contact` WHERE `nurl` = '%s' AND `uid` IN (0, %d) ORDER BY `uid` DESC LIMIT 1", "SELECT * FROM `contact` WHERE `nurl` = '%s' AND `uid` IN (0, %d) ORDER BY `uid` DESC LIMIT 1",
@ -1582,13 +1587,13 @@ class ostatus
* *
* @return object Entry element * @return object Entry element
*/ */
private static function reshare_entry($doc, $item, $owner, $repeated_guid, $toplevel) private static function reshareEntry($doc, $item, $owner, $repeated_guid, $toplevel)
{ {
if (($item["id"] != $item["parent"]) && (normalise_link($item["author-link"]) != normalise_link($owner["url"]))) { if (($item["id"] != $item["parent"]) && (normalise_link($item["author-link"]) != normalise_link($owner["url"]))) {
logger("OStatus entry is from author ".$owner["url"]." - not from ".$item["author-link"].". Quitting.", LOGGER_DEBUG); logger("OStatus entry is from author ".$owner["url"]." - not from ".$item["author-link"].". Quitting.", LOGGER_DEBUG);
} }
$title = self::entry_header($doc, $entry, $owner, $toplevel); $title = self::entryHeader($doc, $entry, $owner, $toplevel);
$r = q( $r = q(
"SELECT * FROM `item` WHERE `uid` = %d AND `guid` = '%s' AND NOT `private` AND `network` IN ('%s', '%s', '%s') LIMIT 1", "SELECT * FROM `item` WHERE `uid` = %d AND `guid` = '%s' AND NOT `private` AND `network` IN ('%s', '%s', '%s') LIMIT 1",
@ -1603,42 +1608,42 @@ class ostatus
} else { } else {
return false; return false;
} }
$contact = self::contact_entry($repeated_item['author-link'], $owner); $contact = self::contactEntry($repeated_item['author-link'], $owner);
$parent_item = (($item['thr-parent']) ? $item['thr-parent'] : $item['parent-uri']); $parent_item = (($item['thr-parent']) ? $item['thr-parent'] : $item['parent-uri']);
$title = $owner["nick"]." repeated a notice by ".$contact["nick"]; $title = $owner["nick"]." repeated a notice by ".$contact["nick"];
self::entry_content($doc, $entry, $item, $owner, $title, ACTIVITY_SHARE, false); self::entryContent($doc, $entry, $item, $owner, $title, ACTIVITY_SHARE, false);
$as_object = $doc->createElement("activity:object"); $as_object = $doc->createElement("activity:object");
XML::add_element($doc, $as_object, "activity:object-type", NAMESPACE_ACTIVITY_SCHEMA."activity"); XML::add_element($doc, $as_object, "activity:object-type", NAMESPACE_ACTIVITY_SCHEMA."activity");
self::entry_content($doc, $as_object, $repeated_item, $owner, "", "", false); self::entryContent($doc, $as_object, $repeated_item, $owner, "", "", false);
$author = self::add_author($doc, $contact); $author = self::addAuthor($doc, $contact);
$as_object->appendChild($author); $as_object->appendChild($author);
$as_object2 = $doc->createElement("activity:object"); $as_object2 = $doc->createElement("activity:object");
XML::add_element($doc, $as_object2, "activity:object-type", self::construct_objecttype($repeated_item)); XML::add_element($doc, $as_object2, "activity:object-type", self::constructObjecttype($repeated_item));
$title = sprintf("New comment by %s", $contact["nick"]); $title = sprintf("New comment by %s", $contact["nick"]);
self::entry_content($doc, $as_object2, $repeated_item, $owner, $title); self::entryContent($doc, $as_object2, $repeated_item, $owner, $title);
$as_object->appendChild($as_object2); $as_object->appendChild($as_object2);
self::entry_footer($doc, $as_object, $item, $owner, false); self::entryFooter($doc, $as_object, $item, $owner, false);
$source = self::source_entry($doc, $contact); $source = self::sourceEntry($doc, $contact);
$as_object->appendChild($source); $as_object->appendChild($source);
$entry->appendChild($as_object); $entry->appendChild($as_object);
self::entry_footer($doc, $entry, $item, $owner); self::entryFooter($doc, $entry, $item, $owner);
return $entry; return $entry;
} }
@ -1653,16 +1658,16 @@ class ostatus
* *
* @return object Entry element with "like" * @return object Entry element with "like"
*/ */
private static function like_entry($doc, $item, $owner, $toplevel) private static function likeEntry($doc, $item, $owner, $toplevel)
{ {
if (($item["id"] != $item["parent"]) && (normalise_link($item["author-link"]) != normalise_link($owner["url"]))) { if (($item["id"] != $item["parent"]) && (normalise_link($item["author-link"]) != normalise_link($owner["url"]))) {
logger("OStatus entry is from author ".$owner["url"]." - not from ".$item["author-link"].". Quitting.", LOGGER_DEBUG); logger("OStatus entry is from author ".$owner["url"]." - not from ".$item["author-link"].". Quitting.", LOGGER_DEBUG);
} }
$title = self::entry_header($doc, $entry, $owner, $toplevel); $title = self::entryHeader($doc, $entry, $owner, $toplevel);
$verb = NAMESPACE_ACTIVITY_SCHEMA."favorite"; $verb = NAMESPACE_ACTIVITY_SCHEMA."favorite";
self::entry_content($doc, $entry, $item, $owner, "Favorite", $verb, false); self::entryContent($doc, $entry, $item, $owner, "Favorite", $verb, false);
$as_object = $doc->createElement("activity:object"); $as_object = $doc->createElement("activity:object");
@ -1673,13 +1678,13 @@ class ostatus
); );
$parent_item = (($item['thr-parent']) ? $item['thr-parent'] : $item['parent-uri']); $parent_item = (($item['thr-parent']) ? $item['thr-parent'] : $item['parent-uri']);
XML::add_element($doc, $as_object, "activity:object-type", self::construct_objecttype($parent[0])); XML::add_element($doc, $as_object, "activity:object-type", self::constructObjecttype($parent[0]));
self::entry_content($doc, $as_object, $parent[0], $owner, "New entry"); self::entryContent($doc, $as_object, $parent[0], $owner, "New entry");
$entry->appendChild($as_object); $entry->appendChild($as_object);
self::entry_footer($doc, $entry, $item, $owner); self::entryFooter($doc, $entry, $item, $owner);
return $entry; return $entry;
} }
@ -1693,7 +1698,7 @@ class ostatus
* *
* @return object author element * @return object author element
*/ */
private static function add_person_object($doc, $owner, $contact) private static function addPersonObject($doc, $owner, $contact)
{ {
$object = $doc->createElement("activity:object"); $object = $doc->createElement("activity:object");
XML::add_element($doc, $object, "activity:object-type", ACTIVITY_OBJ_PERSON); XML::add_element($doc, $object, "activity:object-type", ACTIVITY_OBJ_PERSON);
@ -1739,7 +1744,7 @@ class ostatus
* *
* @return object Entry element * @return object Entry element
*/ */
private static function follow_entry($doc, $item, $owner, $toplevel) private static function followEntry($doc, $item, $owner, $toplevel)
{ {
$item["id"] = $item["parent"] = 0; $item["id"] = $item["parent"] = 0;
$item["created"] = $item["edited"] = date("c"); $item["created"] = $item["edited"] = date("c");
@ -1782,14 +1787,14 @@ class ostatus
$item["body"] = sprintf($message, $owner["nick"], $contact["nick"]); $item["body"] = sprintf($message, $owner["nick"], $contact["nick"]);
self::entry_header($doc, $entry, $owner, $toplevel); self::entryHeader($doc, $entry, $owner, $toplevel);
self::entry_content($doc, $entry, $item, $owner, $title); self::entryContent($doc, $entry, $item, $owner, $title);
$object = self::add_person_object($doc, $owner, $contact); $object = self::addPersonObject($doc, $owner, $contact);
$entry->appendChild($object); $entry->appendChild($object);
self::entry_footer($doc, $entry, $item, $owner); self::entryFooter($doc, $entry, $item, $owner);
return $entry; return $entry;
} }
@ -1804,19 +1809,19 @@ class ostatus
* *
* @return object Entry element * @return object Entry element
*/ */
private static function note_entry($doc, $item, $owner, $toplevel) private static function noteEntry($doc, $item, $owner, $toplevel)
{ {
if (($item["id"] != $item["parent"]) && (normalise_link($item["author-link"]) != normalise_link($owner["url"]))) { if (($item["id"] != $item["parent"]) && (normalise_link($item["author-link"]) != normalise_link($owner["url"]))) {
logger("OStatus entry is from author ".$owner["url"]." - not from ".$item["author-link"].". Quitting.", LOGGER_DEBUG); logger("OStatus entry is from author ".$owner["url"]." - not from ".$item["author-link"].". Quitting.", LOGGER_DEBUG);
} }
$title = self::entry_header($doc, $entry, $owner, $toplevel); $title = self::entryHeader($doc, $entry, $owner, $toplevel);
XML::add_element($doc, $entry, "activity:object-type", ACTIVITY_OBJ_NOTE); XML::add_element($doc, $entry, "activity:object-type", ACTIVITY_OBJ_NOTE);
self::entry_content($doc, $entry, $item, $owner, $title); self::entryContent($doc, $entry, $item, $owner, $title);
self::entry_footer($doc, $entry, $item, $owner); self::entryFooter($doc, $entry, $item, $owner);
return $entry; return $entry;
} }
@ -1831,7 +1836,7 @@ class ostatus
* *
* @return string The title for the element * @return string The title for the element
*/ */
private static function entry_header($doc, &$entry, $owner, $toplevel) private static function entryHeader($doc, &$entry, $owner, $toplevel)
{ {
/// @todo Check if this title stuff is really needed (I guess not) /// @todo Check if this title stuff is really needed (I guess not)
if (!$toplevel) { if (!$toplevel) {
@ -1849,7 +1854,7 @@ class ostatus
$entry->setAttribute("xmlns:statusnet", NAMESPACE_STATUSNET); $entry->setAttribute("xmlns:statusnet", NAMESPACE_STATUSNET);
$entry->setAttribute("xmlns:mastodon", NAMESPACE_MASTODON); $entry->setAttribute("xmlns:mastodon", NAMESPACE_MASTODON);
$author = self::add_author($doc, $owner); $author = self::addAuthor($doc, $owner);
$entry->appendChild($author); $entry->appendChild($author);
$title = sprintf("New comment by %s", $owner["nick"]); $title = sprintf("New comment by %s", $owner["nick"]);
@ -1868,16 +1873,16 @@ class ostatus
* @param string $verb The activity verb * @param string $verb The activity verb
* @param bool $complete Add the "status_net" element? * @param bool $complete Add the "status_net" element?
*/ */
private static function entry_content($doc, $entry, $item, $owner, $title, $verb = "", $complete = true) private static function entryContent($doc, $entry, $item, $owner, $title, $verb = "", $complete = true)
{ {
if ($verb == "") { if ($verb == "") {
$verb = self::construct_verb($item); $verb = self::constructVerb($item);
} }
XML::add_element($doc, $entry, "id", $item["uri"]); XML::add_element($doc, $entry, "id", $item["uri"]);
XML::add_element($doc, $entry, "title", $title); XML::add_element($doc, $entry, "title", $title);
$body = self::format_picture_post($item['body']); $body = self::formatPicturePost($item['body']);
if ($item['title'] != "") { if ($item['title'] != "") {
$body = "[b]".$item['title']."[/b]\n\n".$body; $body = "[b]".$item['title']."[/b]\n\n".$body;
@ -1910,7 +1915,7 @@ class ostatus
* @param array $owner Contact data of the poster * @param array $owner Contact data of the poster
* @param bool $complete default true * @param bool $complete default true
*/ */
private static function entry_footer($doc, $entry, $item, $owner, $complete = true) private static function entryFooter($doc, $entry, $item, $owner, $complete = true)
{ {
$mentioned = array(); $mentioned = array();
@ -2028,7 +2033,7 @@ class ostatus
} }
} }
self::get_attachment($doc, $entry, $item); self::getAttachment($doc, $entry, $item);
if ($complete && ($item["id"] > 0)) { if ($complete && ($item["id"] > 0)) {
$app = $item["app"]; $app = $item["app"];
@ -2110,7 +2115,7 @@ class ostatus
$doc = new DOMDocument('1.0', 'utf-8'); $doc = new DOMDocument('1.0', 'utf-8');
$doc->formatOutput = true; $doc->formatOutput = true;
$root = self::add_header($doc, $owner); $root = self::addHeader($doc, $owner);
foreach ($items as $item) { foreach ($items as $item) {
if (Config::get('system', 'ostatus_debug')) { if (Config::get('system', 'ostatus_debug')) {