basic post message from diaspora (untested)
This commit is contained in:
parent
c9225a691b
commit
4b4ff75b72
1 changed files with 73 additions and 0 deletions
|
@ -319,6 +319,79 @@ function diaspora_request($importer,$contact,$xml) {
|
|||
|
||||
function diaspora_post($importer,$contact,$xml) {
|
||||
|
||||
$guid = notags(unxmlify($xml->guid));
|
||||
$diaspora_handle = notags(unxmlify($xml->diaspora_handle));
|
||||
$message_id = $diaspora_handle . ':' . $guid;
|
||||
$r = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s' AND `guid` = '%s' LIMIT 1",
|
||||
intval($importer['uid']),
|
||||
dbesc($message_id),
|
||||
dbesc($guid)
|
||||
);
|
||||
if(count($r))
|
||||
return;
|
||||
|
||||
$owner = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 1 LIMIT 1",
|
||||
intval($importer['uid'])
|
||||
);
|
||||
if(! count($owner))
|
||||
return;
|
||||
|
||||
$created = unxmlify($xml->created_at);
|
||||
$private = ((unxmlify($xml->public) == 'false') ? 1 : 0);
|
||||
|
||||
$body = unxmlify($xml->raw_message);
|
||||
|
||||
require_once('library/HTMLPurifier.auto.php');
|
||||
require_once('include/html2bbcode.php');
|
||||
|
||||
$maxlen = get_max_import_size();
|
||||
if($maxlen && (strlen($body) > $maxlen))
|
||||
$body = substr($body,0, $maxlen);
|
||||
|
||||
if((strpos($body,'<') !== false) || (strpos($body,'>') !== false)) {
|
||||
|
||||
$body = preg_replace('#<object[^>]+>.+?' . 'http://www.youtube.com/((?:v|cp)/[A-Za-z0-9\-_=]+).+?</object>#s',
|
||||
'[youtube]$1[/youtube]', $body);
|
||||
|
||||
$body = preg_replace('#<iframe[^>].+?' . 'http://www.youtube.com/embed/([A-Za-z0-9\-_=]+).+?</iframe>#s',
|
||||
'[youtube]$1[/youtube]', $body);
|
||||
|
||||
$body = oembed_html2bbcode($body);
|
||||
|
||||
$config = HTMLPurifier_Config::createDefault();
|
||||
$config->set('Cache.DefinitionImpl', null);
|
||||
|
||||
// we shouldn't need a whitelist, because the bbcode converter
|
||||
// will strip out any unsupported tags.
|
||||
// $config->set('HTML.Allowed', 'p,b,a[href],i');
|
||||
|
||||
$purifier = new HTMLPurifier($config);
|
||||
$body = $purifier->purify($body);
|
||||
|
||||
$body = html2bbcode($body);
|
||||
}
|
||||
|
||||
$datarray = array();
|
||||
$datarray['uid'] = $importer['uid'];
|
||||
$datarray['contact-id'] = $contact['id'];
|
||||
$datarray['wall'] = 0;
|
||||
$datarray['guid'] = $guid;
|
||||
$datarray['uri'] = $message_id;
|
||||
$dattarray['created'] = $datarray['edited'] = datetime_convert('UTC','UTC',$created);
|
||||
$dattarray['private'] = $private;
|
||||
$dattarray['parent'] = 0;
|
||||
$datarray['owner-name'] = $owner[0]['name'];
|
||||
$datarray['owner-link'] = $owner[0]['url'];
|
||||
$datarray['owner-avatar'] = $owner[0]['thumb'];
|
||||
$datarray['author-name'] = $contact['name'];
|
||||
$datarray['author-link'] = $contact['url'];
|
||||
$datarray['author-avatar'] = $contact['thumb'];
|
||||
|
||||
item_store($datarray);
|
||||
|
||||
return;
|
||||
|
||||
|
||||
}
|
||||
|
||||
function diaspora_comment($importer,$contact,$xml) {
|
||||
|
|
Loading…
Reference in a new issue