X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=pumpio%2Fpumpio.php;h=367879e61f8cedca0737cd053591e6417d37a997;hb=42eefed6e68d241bd8bdf9eceea96abc445a9cac;hp=52587e1101f7528f2e173ec7e3b6dbec5aa32c8b;hpb=1ce748332746b5c05da65199201fae32ac15ed3e;p=friendica-addons.git diff --git a/pumpio/pumpio.php b/pumpio/pumpio.php old mode 100755 new mode 100644 index 52587e11..ff9a3ac3 --- a/pumpio/pumpio.php +++ b/pumpio/pumpio.php @@ -1,35 +1,45 @@ */ -//require_once('library/OAuth1.php'); -//require_once('addon/pumpio/pumpiooauth/pumpiooauth.php'); +use Friendica\Core\Worker; require('addon/pumpio/oauth/http.php'); require('addon/pumpio/oauth/oauth_client.php'); +require_once('include/enotify.php'); +require_once('include/socgraph.php'); +require_once("include/Photo.php"); +require_once("mod/share.php"); + +use Friendica\Core\Config; +use Friendica\Core\PConfig; define('PUMPIO_DEFAULT_POLL_INTERVAL', 5); // given in minutes function pumpio_install() { - register_hook('post_local', 'addon/pumpio/pumpio.php', 'pumpio_post_local'); - register_hook('notifier_normal', 'addon/pumpio/pumpio.php', 'pumpio_send'); - register_hook('jot_networks', 'addon/pumpio/pumpio.php', 'pumpio_jot_nets'); - register_hook('connector_settings', 'addon/pumpio/pumpio.php', 'pumpio_settings'); - register_hook('connector_settings_post', 'addon/pumpio/pumpio.php', 'pumpio_settings_post'); - register_hook('cron', 'addon/pumpio/pumpio.php', 'pumpio_cron'); - + register_hook('post_local', 'addon/pumpio/pumpio.php', 'pumpio_post_local'); + register_hook('notifier_normal', 'addon/pumpio/pumpio.php', 'pumpio_send'); + register_hook('jot_networks', 'addon/pumpio/pumpio.php', 'pumpio_jot_nets'); + register_hook('connector_settings', 'addon/pumpio/pumpio.php', 'pumpio_settings'); + register_hook('connector_settings_post', 'addon/pumpio/pumpio.php', 'pumpio_settings_post'); + register_hook('cron', 'addon/pumpio/pumpio.php', 'pumpio_cron'); + register_hook('queue_predeliver', 'addon/pumpio/pumpio.php', 'pumpio_queue_hook'); + register_hook('check_item_notification','addon/pumpio/pumpio.php', 'pumpio_check_item_notification'); } + function pumpio_uninstall() { - unregister_hook('post_local', 'addon/pumpio/pumpio.php', 'pumpio_post_local'); - unregister_hook('notifier_normal', 'addon/pumpio/pumpio.php', 'pumpio_send'); - unregister_hook('jot_networks', 'addon/pumpio/pumpio.php', 'pumpio_jot_nets'); - unregister_hook('connector_settings', 'addon/pumpio/pumpio.php', 'pumpio_settings'); - unregister_hook('connector_settings_post', 'addon/pumpio/pumpio.php', 'pumpio_settings_post'); - unregister_hook('cron', 'addon/pumpio/pumpio.php', 'pumpio_cron'); + unregister_hook('post_local', 'addon/pumpio/pumpio.php', 'pumpio_post_local'); + unregister_hook('notifier_normal', 'addon/pumpio/pumpio.php', 'pumpio_send'); + unregister_hook('jot_networks', 'addon/pumpio/pumpio.php', 'pumpio_jot_nets'); + unregister_hook('connector_settings', 'addon/pumpio/pumpio.php', 'pumpio_settings'); + unregister_hook('connector_settings_post', 'addon/pumpio/pumpio.php', 'pumpio_settings_post'); + unregister_hook('cron', 'addon/pumpio/pumpio.php', 'pumpio_cron'); + unregister_hook('queue_predeliver', 'addon/pumpio/pumpio.php', 'pumpio_queue_hook'); + unregister_hook('check_item_notification','addon/pumpio/pumpio.php', 'pumpio_check_item_notification'); } function pumpio_module() {} @@ -41,6 +51,9 @@ function pumpio_content(&$a) { return ''; } + require_once("mod/settings.php"); + settings_init($a); + if (isset($a->argv[1])) switch ($a->argv[1]) { case "connect": @@ -56,66 +69,83 @@ function pumpio_content(&$a) { return $o; } -function pumpio_registerclient($a, $host) { +function pumpio_check_item_notification($a, &$notification_data) { + $hostname = PConfig::get($notification_data["uid"], 'pumpio','host'); + $username = PConfig::get($notification_data["uid"], "pumpio", "user"); + + $notification_data["profiles"][] = "https://".$hostname."/".$username; +} + + +function pumpio_registerclient(&$a, $host) { $url = "https://".$host."/api/client/register"; - $params = array(); + $params = array(); - $application_name = get_config('pumpio', 'application_name'); + $application_name = Config::get('pumpio', 'application_name'); if ($application_name == "") $application_name = $a->get_hostname(); + $adminlist = explode(",", str_replace(" ", "", $a->config['admin_email'])); + + $params["type"] = "client_associate"; + $params["contacts"] = $adminlist[0]; + $params["application_type"] = "native"; + $params["application_name"] = $application_name; + $params["logo_url"] = $a->get_baseurl()."/images/friendica-256.png"; + $params["redirect_uris"] = $a->get_baseurl()."/pumpio/connect"; - $params["type"] = "client_associate"; - //$params["contacts"] = "icarus@dabo.de"; - $params["application_type"] = "native"; - $params["application_name"] = $application_name; - //$params["logo_url"] = $a->get_baseurl()."/images/friendica-256.png"; - //$params["redirect_uris"] = $a->get_baseurl()."a/addon/pumpio/pumpio.php"; + logger("pumpio_registerclient: ".$url." parameters ".print_r($params, true), LOGGER_DEBUG); - $ch = curl_init($url); - curl_setopt($ch, CURLOPT_HEADER, false); - curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); - curl_setopt($ch, CURLOPT_POST,1); - curl_setopt($ch, CURLOPT_POSTFIELDS,$params); - curl_setopt($ch, CURLOPT_USERAGENT, "Friendica"); + $ch = curl_init($url); + curl_setopt($ch, CURLOPT_HEADER, false); + curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); + curl_setopt($ch, CURLOPT_POST,1); + curl_setopt($ch, CURLOPT_POSTFIELDS,$params); + curl_setopt($ch, CURLOPT_USERAGENT, "Friendica"); - $s = curl_exec($ch); - $curl_info = curl_getinfo($ch); + $s = curl_exec($ch); + $curl_info = curl_getinfo($ch); - if ($curl_info["http_code"] == "200") { - $values = json_decode($s); + if ($curl_info["http_code"] == "200") { + $values = json_decode($s); + logger("pumpio_registerclient: success ".print_r($values, true), LOGGER_DEBUG); return($values); - $pumpio = array(); - $pumpio["client_id"] = $values->client_id; - $pumpio["client_secret"] = $values->client_secret; - print_r($values); - } + } + logger("pumpio_registerclient: failed: ".print_r($curl_info, true), LOGGER_DEBUG); return(false); + } -function pumpio_connect($a) { +function pumpio_connect(&$a) { // Start a session. This is necessary to hold on to a few keys the callback script will also need session_start(); // Define the needed keys - $consumer_key = get_pconfig(local_user(), 'pumpio','consumer_key'); - $consumer_secret = get_pconfig(local_user(), 'pumpio','consumer_secret'); - $hostname = get_pconfig(local_user(), 'pumpio','host'); + $consumer_key = PConfig::get(local_user(), 'pumpio','consumer_key'); + $consumer_secret = PConfig::get(local_user(), 'pumpio','consumer_secret'); + $hostname = PConfig::get(local_user(), 'pumpio','host'); - if ((($consumer_key == "") OR ($consumer_secret == "")) AND ($hostname != "")) { + if ((($consumer_key == "") || ($consumer_secret == "")) && ($hostname != "")) { + logger("pumpio_connect: register client"); $clientdata = pumpio_registerclient($a, $hostname); - set_pconfig(local_user(), 'pumpio','consumer_key', $clientdata->client_id); - set_pconfig(local_user(), 'pumpio','consumer_secret', $clientdata->client_secret); + PConfig::set(local_user(), 'pumpio','consumer_key', $clientdata->client_id); + PConfig::set(local_user(), 'pumpio','consumer_secret', $clientdata->client_secret); + + $consumer_key = PConfig::get(local_user(), 'pumpio','consumer_key'); + $consumer_secret = PConfig::get(local_user(), 'pumpio','consumer_secret'); - $consumer_key = get_pconfig(local_user(), 'pumpio','consumer_key'); - $consumer_secret = get_pconfig(local_user(), 'pumpio','consumer_secret'); + logger("pumpio_connect: ckey: ".$consumer_key." csecrect: ".$consumer_secret, LOGGER_DEBUG); } - if (($consumer_key == "") OR ($consumer_secret == "")) - return; + if (($consumer_key == "") || ($consumer_secret == "")) { + logger("pumpio_connect: ".sprintf("Unable to register the client at the pump.io server '%s'.", $hostname)); + + $o .= sprintf(t("Unable to register the client at the pump.io server '%s'."), $hostname); + return($o); + } // The callback URL is the script that gets called after the user authenticates with pumpio $callback_url = $a->get_baseurl()."/pumpio/connect"; @@ -141,151 +171,211 @@ function pumpio_connect($a) { if (($success = $client->Initialize())) { if (($success = $client->Process())) { if (strlen($client->access_token)) { - set_pconfig(local_user(), "pumpio", "oauth_token", $client->access_token); - set_pconfig(local_user(), "pumpio", "oauth_token_secret", $client->access_token_secret); + logger("pumpio_connect: otoken: ".$client->access_token." osecrect: ".$client->access_token_secret, LOGGER_DEBUG); + PConfig::set(local_user(), "pumpio", "oauth_token", $client->access_token); + PConfig::set(local_user(), "pumpio", "oauth_token_secret", $client->access_token_secret); } } $success = $client->Finalize($success); } - if($client->exit) - $o = 'Could not connect to pumpio. Refresh the page or try again later.'; + if($client->exit) + $o = 'Could not connect to pumpio. Refresh the page or try again later.'; - if($success) { + if($success) { + logger("pumpio_connect: authenticated"); $o .= t("You are now authenticated to pumpio."); $o .= '
'.t("return to the connector page").''; + } else { + logger("pumpio_connect: could not connect"); + $o = 'Could not connect to pumpio. Refresh the page or try again later.'; } return($o); } function pumpio_jot_nets(&$a,&$b) { - if(! local_user()) - return; - - $pumpio_post = get_pconfig(local_user(),'pumpio','post'); - if(intval($pumpio_post) == 1) { - $pumpio_defpost = get_pconfig(local_user(),'pumpio','post_by_default'); - $selected = ((intval($pumpio_defpost) == 1) ? ' checked="checked" ' : ''); - $b .= '
' - . t('Post to pumpio') . '
'; - } + if(! local_user()) + return; + + $pumpio_post = PConfig::get(local_user(),'pumpio','post'); + if(intval($pumpio_post) == 1) { + $pumpio_defpost = PConfig::get(local_user(),'pumpio','post_by_default'); + $selected = ((intval($pumpio_defpost) == 1) ? ' checked="checked" ' : ''); + $b .= '
' + . t('Post to pumpio') . '
'; + } } function pumpio_settings(&$a,&$s) { - if(! local_user()) - return; - - /* Add our stylesheet to the page so we can make our settings look nice */ + if(! local_user()) + return; - $a->page['htmlhead'] .= '' . "\r\n"; + /* Add our stylesheet to the page so we can make our settings look nice */ - /* Get the current state of our config variables */ + $a->page['htmlhead'] .= '' . "\r\n"; - $enabled = get_pconfig(local_user(),'pumpio','post'); - $checked = (($enabled) ? ' checked="checked" ' : ''); + /* Get the current state of our config variables */ - $def_enabled = get_pconfig(local_user(),'pumpio','post_by_default'); - $def_checked = (($def_enabled) ? ' checked="checked" ' : ''); + $import_enabled = PConfig::get(local_user(),'pumpio','import'); + $import_checked = (($import_enabled) ? ' checked="checked" ' : ''); - $public_enabled = get_pconfig(local_user(),'pumpio','public'); - $public_checked = (($public_enabled) ? ' checked="checked" ' : ''); + $enabled = PConfig::get(local_user(),'pumpio','post'); + $checked = (($enabled) ? ' checked="checked" ' : ''); + $css = (($enabled) ? '' : '-disabled'); - $servername = get_pconfig(local_user(), "pumpio", "host"); - $username = get_pconfig(local_user(), "pumpio", "user"); + $def_enabled = PConfig::get(local_user(),'pumpio','post_by_default'); + $def_checked = (($def_enabled) ? ' checked="checked" ' : ''); - /* Add some HTML to the existing form */ + $public_enabled = PConfig::get(local_user(),'pumpio','public'); + $public_checked = (($public_enabled) ? ' checked="checked" ' : ''); - $s .= '
'; - $s .= '

' . t('Pump.io Post Settings') . '

'; + $mirror_enabled = PConfig::get(local_user(),'pumpio','mirror'); + $mirror_checked = (($mirror_enabled) ? ' checked="checked" ' : ''); - $s .= '
'; - $s .= ''; - $s .= ''; - $s .= '
'; + $servername = PConfig::get(local_user(), "pumpio", "host"); + $username = PConfig::get(local_user(), "pumpio", "user"); - $s .= '
'; - $s .= ''; - $s .= ''; - $s .= '
'; + /* Add some HTML to the existing form */ - if (($username != '') AND ($servername != '')) { - $s .= '
'; - $s .= ''.t("(Re-)Authenticate your pump.io connection").''; - $s .= '
'; - - $s .= '
'; - $s .= ''; - $s .= ''; - $s .= '
'; + $s .= ''; + $s .= '

'. t('Pump.io Import/Export/Mirror').'

'; + $s .= '
'; + $s .= '