function diaspora_dispatch($importer, $msg) { $ret = 0; if (!array_key_exists('system', $importer)) { $importer['system'] = false; } $enabled = intval(get_config('system', 'diaspora_enabled')); if (!$enabled) { logger('mod-diaspora: disabled'); return; } $allowed = get_pconfig($importer['channel_id'], 'system', 'diaspora_allowed'); if ($allowed === false) { $allowed = 1; } if (!intval($allowed)) { logger('mod-diaspora: disallowed for channel ' . $importer['channel_name']); return; } // php doesn't like dashes in variable names $msg['message'] = str_replace(array('<activity_streams-photo>', '</activity_streams-photo>'), array('<asphoto>', '</asphoto>'), $msg['message']); $parsed_xml = parse_xml_string($msg['message'], false); $xmlbase = $parsed_xml->post; // logger('diaspora_dispatch: ' . print_r($xmlbase,true), LOGGER_DATA); if ($xmlbase->request) { $ret = diaspora_request($importer, $xmlbase->request); } elseif ($xmlbase->status_message) { $ret = diaspora_post($importer, $xmlbase->status_message, $msg); } elseif ($xmlbase->profile) { $ret = diaspora_profile($importer, $xmlbase->profile, $msg); } elseif ($xmlbase->comment) { $ret = diaspora_comment($importer, $xmlbase->comment, $msg); } elseif ($xmlbase->like) { $ret = diaspora_like($importer, $xmlbase->like, $msg); } elseif ($xmlbase->asphoto) { $ret = diaspora_asphoto($importer, $xmlbase->asphoto, $msg); } elseif ($xmlbase->reshare) { $ret = diaspora_reshare($importer, $xmlbase->reshare, $msg); } elseif ($xmlbase->retraction) { $ret = diaspora_retraction($importer, $xmlbase->retraction, $msg); } elseif ($xmlbase->signed_retraction) { $ret = diaspora_signed_retraction($importer, $xmlbase->signed_retraction, $msg); } elseif ($xmlbase->relayable_retraction) { $ret = diaspora_signed_retraction($importer, $xmlbase->relayable_retraction, $msg); } elseif ($xmlbase->photo) { $ret = diaspora_photo($importer, $xmlbase->photo, $msg); } elseif ($xmlbase->conversation) { $ret = diaspora_conversation($importer, $xmlbase->conversation, $msg); } elseif ($xmlbase->message) { $ret = diaspora_message($importer, $xmlbase->message, $msg); } else { logger('diaspora_dispatch: unknown message type: ' . print_r($xmlbase, true)); } return $ret; }
function diaspora_dispatch($importer, $msg, $attempt = 1) { $ret = 0; $enabled = intval(get_config('system', 'diaspora_enabled')); if (!$enabled) { logger('mod-diaspora: disabled'); return; } // php doesn't like dashes in variable names $msg['message'] = str_replace(array('<activity_streams-photo>', '</activity_streams-photo>'), array('<asphoto>', '</asphoto>'), $msg['message']); $parsed_xml = parse_xml_string($msg['message'], false); $xmlbase = $parsed_xml->post; logger('diaspora_dispatch: ' . print_r($xmlbase, true), LOGGER_DEBUG); if ($xmlbase->request) { $ret = diaspora_request($importer, $xmlbase->request); } elseif ($xmlbase->status_message) { $ret = diaspora_post($importer, $xmlbase->status_message, $msg); } elseif ($xmlbase->profile) { $ret = diaspora_profile($importer, $xmlbase->profile, $msg); } elseif ($xmlbase->comment) { $ret = diaspora_comment($importer, $xmlbase->comment, $msg); } elseif ($xmlbase->like) { $ret = diaspora_like($importer, $xmlbase->like, $msg); } elseif ($xmlbase->asphoto) { $ret = diaspora_asphoto($importer, $xmlbase->asphoto, $msg); } elseif ($xmlbase->reshare) { $ret = diaspora_reshare($importer, $xmlbase->reshare, $msg); } elseif ($xmlbase->retraction) { $ret = diaspora_retraction($importer, $xmlbase->retraction, $msg); } elseif ($xmlbase->signed_retraction) { $ret = diaspora_signed_retraction($importer, $xmlbase->signed_retraction, $msg); } elseif ($xmlbase->relayable_retraction) { $ret = diaspora_signed_retraction($importer, $xmlbase->relayable_retraction, $msg); } elseif ($xmlbase->photo) { $ret = diaspora_photo($importer, $xmlbase->photo, $msg, $attempt); } elseif ($xmlbase->conversation) { $ret = diaspora_conversation($importer, $xmlbase->conversation, $msg); } elseif ($xmlbase->message) { $ret = diaspora_message($importer, $xmlbase->message, $msg); } elseif ($xmlbase->participation) { $ret = diaspora_participation($importer, $xmlbase->participation); } else { logger('diaspora_dispatch: unknown message type: ' . print_r($xmlbase, true)); } return $ret; }
function diaspora_dispatch($importer, $msg) { $ret = 0; if (!array_key_exists('system', $importer)) { $importer['system'] = false; } $host = substr($msg['author'], strpos($msg['author'], '@') + 1); $ssl = array_key_exists('HTTPS', $_SERVER) && strtolower($_SERVER['HTTPS']) === 'on' ? true : false; $url = ($ssl ? 'https://' : 'http://') . $host; q("update site set site_dead = 0, site_update = '%s' where site_type = %d and site_url = '%s'", dbesc(datetime_convert()), intval(SITE_TYPE_NOTZOT), dbesc($url)); $allowed = get_pconfig($importer['channel_id'], 'system', 'diaspora_allowed'); if (!intval($allowed)) { logger('mod-diaspora: disallowed for channel ' . $importer['channel_name']); return; } // php doesn't like dashes in variable names $msg['message'] = str_replace(array('<activity_streams-photo>', '</activity_streams-photo>'), array('<asphoto>', '</asphoto>'), $msg['message']); $parsed_xml = parse_xml_string($msg['message'], false); $xmlbase = $parsed_xml->post; // logger('diaspora_dispatch: ' . print_r($xmlbase,true), LOGGER_DATA); if ($xmlbase->request) { $ret = diaspora_request($importer, $xmlbase->request); } elseif ($xmlbase->status_message) { $ret = diaspora_post($importer, $xmlbase->status_message, $msg); } elseif ($xmlbase->profile) { $ret = diaspora_profile($importer, $xmlbase->profile, $msg); } elseif ($xmlbase->comment) { $ret = diaspora_comment($importer, $xmlbase->comment, $msg); } elseif ($xmlbase->like) { $ret = diaspora_like($importer, $xmlbase->like, $msg); } elseif ($xmlbase->asphoto) { $ret = diaspora_asphoto($importer, $xmlbase->asphoto, $msg); } elseif ($xmlbase->reshare) { $ret = diaspora_reshare($importer, $xmlbase->reshare, $msg); } elseif ($xmlbase->retraction) { $ret = diaspora_retraction($importer, $xmlbase->retraction, $msg); } elseif ($xmlbase->signed_retraction) { $ret = diaspora_signed_retraction($importer, $xmlbase->signed_retraction, $msg); } elseif ($xmlbase->relayable_retraction) { $ret = diaspora_signed_retraction($importer, $xmlbase->relayable_retraction, $msg); } elseif ($xmlbase->photo) { $ret = diaspora_photo($importer, $xmlbase->photo, $msg); } elseif ($xmlbase->conversation) { $ret = diaspora_conversation($importer, $xmlbase->conversation, $msg); } elseif ($xmlbase->message) { $ret = diaspora_message($importer, $xmlbase->message, $msg); } else { logger('diaspora_dispatch: unknown message type: ' . print_r($xmlbase, true)); } return $ret; }