X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=pumpio%2Fpumpio.php;h=cb2ee000431c157ceed463ece56d55f98e58f132;hb=8bd0cf1d56cd93d43a1f00d5579be1d8ee152515;hp=a8304a7fac3d7b135919cb4da818b4a103dc6813;hpb=92ad7f294dcc62940aeea50c1a96335151b9d3bc;p=friendica-addons.git diff --git a/pumpio/pumpio.php b/pumpio/pumpio.php old mode 100755 new mode 100644 index a8304a7f..cb2ee000 --- a/pumpio/pumpio.php +++ b/pumpio/pumpio.php @@ -2,30 +2,32 @@ /** * Name: pump.io Post Connector * Description: Post to pump.io - * Version: 0.1 + * Version: 0.2 * Author: Michael Vogel */ - -//require_once('library/OAuth1.php'); -//require_once('addon/pumpio/pumpiooauth/pumpiooauth.php'); - require('addon/pumpio/oauth/http.php'); require('addon/pumpio/oauth/oauth_client.php'); -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'); +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('queue_predeliver', 'addon/pumpio/pumpio.php', 'pumpio_queue_hook'); } + 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('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'); } function pumpio_module() {} @@ -37,6 +39,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": @@ -52,41 +57,47 @@ function pumpio_content(&$a) { return $o; } -function pumpio_registerclient($host) { +function pumpio_registerclient(&$a, $host) { $url = "https://".$host."/api/client/register"; - $params = array(); + $params = array(); - $params["type"] = "client_associate"; - $params["contacts"] = "icarus@dabo.de"; - $params["application_type"] = "native"; - $params["application_name"] = "pirati.ca"; - $params["logo_url"] = "https://pirati.ca/images/friendica-256.png"; - $params["redirect_uris"] = "http://pirati.ca/addon/pumpio/pumpio.php"; + $application_name = get_config('pumpio', 'application_name'); - $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"); + if ($application_name == "") + $application_name = $a->get_hostname(); - $s = curl_exec($ch); - $curl_info = curl_getinfo($ch); + $params["type"] = "client_associate"; + $params["contacts"] = $a->config['admin_email']; + $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"; - if ($curl_info["http_code"] == "200") { - $values = json_decode($s); + 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"); + + $s = curl_exec($ch); + $curl_info = curl_getinfo($ch); + + 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(); @@ -96,16 +107,23 @@ function pumpio_connect($a) { $hostname = get_pconfig(local_user(), 'pumpio','host'); if ((($consumer_key == "") OR ($consumer_secret == "")) AND ($hostname != "")) { - $clientdata = pumpio_registerclient($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); $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 == "") OR ($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"; @@ -131,132 +149,194 @@ function pumpio_connect($a) { if (($success = $client->Initialize())) { if (($success = $client->Process())) { if (strlen($client->access_token)) { + logger("pumpio_connect: otoken: ".$client->access_token." osecrect: ".$client->access_token_secret, LOGGER_DEBUG); set_pconfig(local_user(), "pumpio", "oauth_token", $client->access_token); set_pconfig(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 = 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') . '
'; + } } function pumpio_settings(&$a,&$s) { - if(! local_user()) - return; - - /* Add our stylesheet to the page so we can make our settings look nice */ - - $a->page['htmlhead'] .= '' . "\r\n"; + if(! local_user()) + return; - /* Get the current state of our config variables */ + /* Add our stylesheet to the page so we can make our settings look nice */ - $enabled = get_pconfig(local_user(),'pumpio','post'); + $a->page['htmlhead'] .= '' . "\r\n"; - $checked = (($enabled) ? ' checked="checked" ' : ''); + /* Get the current state of our config variables */ - $def_enabled = get_pconfig(local_user(),'pumpio','post_by_default'); + $import_enabled = get_pconfig(local_user(),'pumpio','import'); + $import_checked = (($import_enabled) ? ' checked="checked" ' : ''); - $def_checked = (($def_enabled) ? ' checked="checked" ' : ''); + $enabled = get_pconfig(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 = get_pconfig(local_user(),'pumpio','post_by_default'); + $def_checked = (($def_enabled) ? ' checked="checked" ' : ''); - /* Add some HTML to the existing form */ + $public_enabled = get_pconfig(local_user(),'pumpio','public'); + $public_checked = (($public_enabled) ? ' checked="checked" ' : ''); - $s .= '
'; - $s .= '

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

'; + $mirror_enabled = get_pconfig(local_user(),'pumpio','mirror'); + $mirror_checked = (($mirror_enabled) ? ' checked="checked" ' : ''); - $s .= '
'; - $s .= ''; - $s .= ''; - $s .= '
'; + $servername = get_pconfig(local_user(), "pumpio", "host"); + $username = get_pconfig(local_user(), "pumpio", "user"); - $s .= '
'; - $s .= ''; - $s .= ''; - $s .= '
'; + /* Add some HTML to the existing form */ - if (($username != '') AND ($servername != '')) { - $s .= '
'; + $s .= ''; + $s .= '

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

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