X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=pumpio%2Fpumpio.php;h=6600696ec93a29714939f6ad82929003e8ab9250;hb=a3dc032a51af30e87a659116b9bc5c6c6ab6d6b3;hp=774db17285c06fabc97926826b875d810c1ce26b;hpb=e895b55f6d1151636f8f4832037b5177411ed8f2;p=friendica-addons.git diff --git a/pumpio/pumpio.php b/pumpio/pumpio.php index 774db172..6600696e 100644 --- a/pumpio/pumpio.php +++ b/pumpio/pumpio.php @@ -18,7 +18,7 @@ use Friendica\Core\Worker; use Friendica\Database\DBA; use Friendica\DI; use Friendica\Model\Contact; -use Friendica\Model\Group; +use Friendica\Model\Circle; use Friendica\Model\Item; use Friendica\Model\Post; use Friendica\Model\User; @@ -26,14 +26,13 @@ use Friendica\Network\HTTPClient\Client\HttpClientAccept; use Friendica\Network\HTTPClient\Client\HttpClientOptions; use Friendica\Protocol\Activity; use Friendica\Protocol\ActivityNamespace; -use Friendica\Core\Config\Util\ConfigFileLoader; +use Friendica\Core\Config\Util\ConfigFileManager; use Friendica\Util\DateTimeFormat; use Friendica\Util\Strings; use Friendica\Util\XML; require 'addon/pumpio/oauth/http.php'; require 'addon/pumpio/oauth/oauth_client.php'; -require_once 'mod/share.php'; define('PUMPIO_DEFAULT_POLL_INTERVAL', 5); // given in minutes @@ -50,22 +49,24 @@ function pumpio_install() Hook::register('check_item_notification', 'addon/pumpio/pumpio.php', 'pumpio_check_item_notification'); } +/** + * This is a statement rather than an actual function definition. The simple + * existence of this method is checked to figure out if the addon offers a + * module. + */ function pumpio_module() {} -function pumpio_content(App $a) +function pumpio_content() { - if (!local_user()) { - notice(DI::l10n()->t('Permission denied.') . EOL); + if (!DI::userSession()->getLocalUserId()) { + DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); return ''; } - require_once 'mod/settings.php'; - settings_init($a); - if (isset(DI::args()->getArgv()[1])) { switch (DI::args()->getArgv()[1]) { case 'connect': - $o = pumpio_connect($a); + $o = pumpio_connect(); break; default: @@ -73,12 +74,12 @@ function pumpio_content(App $a) break; } } else { - $o = pumpio_connect($a); + $o = pumpio_connect(); } return $o; } -function pumpio_check_item_notification(App $a, array &$notification_data) +function pumpio_check_item_notification(array &$notification_data) { $hostname = DI::pConfig()->get($notification_data['uid'], 'pumpio', 'host'); $username = DI::pConfig()->get($notification_data['uid'], 'pumpio', 'user'); @@ -86,7 +87,7 @@ function pumpio_check_item_notification(App $a, array &$notification_data) $notification_data['profiles'][] = 'https://' . $hostname . '/' . $username; } -function pumpio_registerclient(App $a, $host) +function pumpio_registerclient($host) { $url = 'https://' . $host . '/api/client/register'; @@ -95,17 +96,17 @@ function pumpio_registerclient(App $a, $host) $application_name = DI::config()->get('pumpio', 'application_name'); if ($application_name == '') { - $application_name = DI::baseUrl()->getHostname(); + $application_name = DI::baseUrl()->getHost(); } - $adminlist = explode(',', str_replace(' ', '', DI::config()->get('config', 'admin_email'))); + $firstAdmin = User::getFirstAdmin(['email']); $params['type'] = 'client_associate'; - $params['contacts'] = $adminlist[0]; + $params['contacts'] = $firstAdmin['email']; $params['application_type'] = 'native'; $params['application_name'] = $application_name; - $params['logo_url'] = DI::baseUrl()->get() . '/images/friendica-256.png'; - $params['redirect_uris'] = DI::baseUrl()->get() . '/pumpio/connect'; + $params['logo_url'] = DI::baseUrl() . '/images/friendica-256.png'; + $params['redirect_uris'] = DI::baseUrl() . '/pumpio/connect'; Logger::info('pumpio_registerclient: ' . $url . ' parameters', $params); @@ -122,7 +123,7 @@ function pumpio_registerclient(App $a, $host) if ($curl_info['http_code'] == '200') { $values = json_decode($s); - Logger::info('pumpio_registerclient: success ', $values); + Logger::info('pumpio_registerclient: success ', (array)$values); return $values; } Logger::info('pumpio_registerclient: failed: ', $curl_info); @@ -130,21 +131,21 @@ function pumpio_registerclient(App $a, $host) } -function pumpio_connect(App $a) +function pumpio_connect() { // Define the needed keys - $consumer_key = DI::pConfig()->get(local_user(), 'pumpio', 'consumer_key'); - $consumer_secret = DI::pConfig()->get(local_user(), 'pumpio', 'consumer_secret'); - $hostname = DI::pConfig()->get(local_user(), 'pumpio', 'host'); + $consumer_key = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'pumpio', 'consumer_key'); + $consumer_secret = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'pumpio', 'consumer_secret'); + $hostname = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'pumpio', 'host'); if ((($consumer_key == '') || ($consumer_secret == '')) && ($hostname != '')) { Logger::notice('pumpio_connect: register client'); - $clientdata = pumpio_registerclient($a, $hostname); - DI::pConfig()->set(local_user(), 'pumpio', 'consumer_key', $clientdata->client_id); - DI::pConfig()->set(local_user(), 'pumpio', 'consumer_secret', $clientdata->client_secret); + $clientdata = pumpio_registerclient($hostname); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'consumer_key', $clientdata->client_id); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'consumer_secret', $clientdata->client_secret); - $consumer_key = DI::pConfig()->get(local_user(), 'pumpio', 'consumer_key'); - $consumer_secret = DI::pConfig()->get(local_user(), 'pumpio', 'consumer_secret'); + $consumer_key = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'pumpio', 'consumer_key'); + $consumer_secret = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'pumpio', 'consumer_secret'); Logger::info('pumpio_connect: ckey: ' . $consumer_key . ' csecrect: ' . $consumer_secret); } @@ -156,7 +157,7 @@ function pumpio_connect(App $a) } // The callback URL is the script that gets called after the user authenticates with pumpio - $callback_url = DI::baseUrl()->get() . '/pumpio/connect'; + $callback_url = DI::baseUrl() . '/pumpio/connect'; // Let's begin. First we need a Request Token. The request token is required to send the user // to pumpio's login page. @@ -180,8 +181,8 @@ function pumpio_connect(App $a) if (($success = $client->Process())) { if (strlen($client->access_token)) { Logger::info('pumpio_connect: otoken: ' . $client->access_token . ', osecrect: ' . $client->access_token_secret); - DI::pConfig()->set(local_user(), 'pumpio', 'oauth_token', $client->access_token); - DI::pConfig()->set(local_user(), 'pumpio', 'oauth_token_secret', $client->access_token_secret); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'oauth_token', $client->access_token); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'oauth_token_secret', $client->access_token_secret); } } $success = $client->Finalize($success); @@ -193,7 +194,7 @@ function pumpio_connect(App $a) if ($success) { Logger::notice('pumpio_connect: authenticated'); $o = DI::l10n()->t('You are now authenticated to pumpio.'); - $o .= '
' . DI::l10n()->t('return to the connector page') . ''; + $o .= '
' . DI::l10n()->t('return to the connector page') . ''; } else { Logger::notice('pumpio_connect: could not connect'); $o = 'Could not connect to pumpio. Refresh the page or try again later.'; @@ -202,40 +203,40 @@ function pumpio_connect(App $a) return $o; } -function pumpio_jot_nets(App $a, array &$jotnets_fields) +function pumpio_jot_nets(array &$jotnets_fields) { - if (!local_user()) { + if (!DI::userSession()->getLocalUserId()) { return; } - if (DI::pConfig()->get(local_user(), 'pumpio', 'post')) { + if (DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'pumpio', 'post')) { $jotnets_fields[] = [ 'type' => 'checkbox', 'field' => [ 'pumpio_enable', DI::l10n()->t('Post to pumpio'), - DI::pConfig()->get(local_user(), 'pumpio', 'post_by_default') + DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'pumpio', 'post_by_default') ] ]; } } -function pumpio_settings(App $a, array &$data) +function pumpio_settings(array &$data) { - if (!local_user()) { + if (!DI::userSession()->getLocalUserId()) { return; } - $pumpio_host = DI::pConfig()->get(local_user(), 'pumpio', 'host'); - $pumpio_user = DI::pConfig()->get(local_user(), 'pumpio', 'user'); - $oauth_token = DI::pConfig()->get(local_user(), 'pumpio', 'oauth_token'); - $oauth_token_secret = DI::pConfig()->get(local_user(), 'pumpio', 'oauth_token_secret'); + $pumpio_host = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'pumpio', 'host'); + $pumpio_user = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'pumpio', 'user'); + $oauth_token = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'pumpio', 'oauth_token'); + $oauth_token_secret = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'pumpio', 'oauth_token_secret'); - $import_enabled = DI::pConfig()->get(local_user(), 'pumpio', 'import', false); - $enabled = DI::pConfig()->get(local_user(), 'pumpio', 'post', false); - $def_enabled = DI::pConfig()->get(local_user(), 'pumpio', 'post_by_default', false); - $public_enabled = DI::pConfig()->get(local_user(), 'pumpio', 'public', false); - $mirror_enabled = DI::pConfig()->get(local_user(), 'pumpio', 'mirror', false); + $import_enabled = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'pumpio', 'import', false); + $enabled = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'pumpio', 'post', false); + $def_enabled = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'pumpio', 'post_by_default', false); + $public_enabled = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'pumpio', 'public', false); + $mirror_enabled = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'pumpio', 'mirror', false); $submit = ['pumpio-submit' => DI::l10n()->t('Save Settings')]; if ($oauth_token && $oauth_token_secret) { @@ -251,7 +252,7 @@ function pumpio_settings(App $a, array &$data) '$pumpio_user' => $pumpio_user, '$oauth_token' => $oauth_token, '$oauth_token_secret' => $oauth_token_secret, - '$authenticate_url' => DI::baseUrl()->get() . '/pumpio/connect', + '$authenticate_url' => DI::baseUrl() . '/pumpio/connect', '$servername' => ['pumpio_host', DI::l10n()->t('Pump.io servername (without "http://" or "https://" )'), $pumpio_host], '$username' => ['pumpio_user', DI::l10n()->t('Pump.io username (without the servername)'), $pumpio_user], '$import' => ['pumpio_import', DI::l10n()->t('Import the remote timeline'), $import_enabled], @@ -271,22 +272,22 @@ function pumpio_settings(App $a, array &$data) ]; } -function pumpio_settings_post(App $a, array &$b) +function pumpio_settings_post(array &$b) { if (!empty($_POST['pumpio_delete'])) { - DI::pConfig()->set(local_user(), 'pumpio', 'consumer_key' , ''); - DI::pConfig()->set(local_user(), 'pumpio', 'consumer_secret' , ''); - DI::pConfig()->set(local_user(), 'pumpio', 'oauth_token' , ''); - DI::pConfig()->set(local_user(), 'pumpio', 'oauth_token_secret', ''); - DI::pConfig()->set(local_user(), 'pumpio', 'post' , false); - DI::pConfig()->set(local_user(), 'pumpio', 'import' , false); - DI::pConfig()->set(local_user(), 'pumpio', 'host' , ''); - DI::pConfig()->set(local_user(), 'pumpio', 'user' , ''); - DI::pConfig()->set(local_user(), 'pumpio', 'public' , false); - DI::pConfig()->set(local_user(), 'pumpio', 'mirror' , false); - DI::pConfig()->set(local_user(), 'pumpio', 'post_by_default' , false); - DI::pConfig()->set(local_user(), 'pumpio', 'lastdate' , 0); - DI::pConfig()->set(local_user(), 'pumpio', 'last_id' , ''); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'consumer_key' , ''); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'consumer_secret' , ''); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'oauth_token' , ''); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'oauth_token_secret', ''); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'post' , false); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'import' , false); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'host' , ''); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'user' , ''); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'public' , false); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'mirror' , false); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'post_by_default' , false); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'lastdate' , 0); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'last_id' , ''); } elseif (!empty($_POST['pumpio-submit'])) { // filtering the username if it is filled wrong $user = $_POST['pumpio_user']; @@ -303,26 +304,26 @@ function pumpio_settings_post(App $a, array &$b) $host = trim($host); $host = str_replace(['https://', 'http://'], ['', ''], $host); - DI::pConfig()->set(local_user(), 'pumpio', 'post' , $_POST['pumpio'] ?? false); - DI::pConfig()->set(local_user(), 'pumpio', 'import' , $_POST['pumpio_import'] ?? false); - DI::pConfig()->set(local_user(), 'pumpio', 'host' , $host); - DI::pConfig()->set(local_user(), 'pumpio', 'user' , $user); - DI::pConfig()->set(local_user(), 'pumpio', 'public' , $_POST['pumpio_public'] ?? false); - DI::pConfig()->set(local_user(), 'pumpio', 'mirror' , $_POST['pumpio_mirror'] ?? false); - DI::pConfig()->set(local_user(), 'pumpio', 'post_by_default', $_POST['pumpio_bydefault'] ?? false); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'post' , $_POST['pumpio'] ?? false); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'import' , $_POST['pumpio_import'] ?? false); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'host' , $host); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'user' , $user); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'public' , $_POST['pumpio_public'] ?? false); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'mirror' , $_POST['pumpio_mirror'] ?? false); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'post_by_default', $_POST['pumpio_bydefault'] ?? false); if (!empty($_POST['pumpio_mirror'])) { - DI::pConfig()->delete(local_user(), 'pumpio', 'lastdate'); + DI::pConfig()->delete(DI::userSession()->getLocalUserId(), 'pumpio', 'lastdate'); } } } -function pumpio_load_config(App $a, ConfigFileLoader $loader) +function pumpio_load_config(ConfigFileManager $loader) { - $a->getConfigCache()->load($loader->loadAddonConfig('pumpio')); + DI::app()->getConfigCache()->load($loader->loadAddonConfig('pumpio'), \Friendica\Core\Config\ValueObject\Cache::SOURCE_STATIC); } -function pumpio_hook_fork(App $a, array &$b) +function pumpio_hook_fork(array &$b) { if ($b['name'] != 'notifier_normal') { return; @@ -358,17 +359,17 @@ function pumpio_hook_fork(App $a, array &$b) } } -function pumpio_post_local(App $a, array &$b) +function pumpio_post_local(array &$b) { - if (!local_user() || (local_user() != $b['uid'])) { + if (!DI::userSession()->getLocalUserId() || (DI::userSession()->getLocalUserId() != $b['uid'])) { return; } - $pumpio_post = intval(DI::pConfig()->get(local_user(), 'pumpio', 'post')); + $pumpio_post = intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'pumpio', 'post')); $pumpio_enable = (($pumpio_post && !empty($_REQUEST['pumpio_enable'])) ? intval($_REQUEST['pumpio_enable']) : 0); - if ($b['api_source'] && intval(DI::pConfig()->get(local_user(), 'pumpio', 'post_by_default'))) { + if ($b['api_source'] && intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'pumpio', 'post_by_default'))) { $pumpio_enable = 1; } @@ -383,7 +384,7 @@ function pumpio_post_local(App $a, array &$b) $b['postopts'] .= 'pumpio'; } -function pumpio_send(App $a, array &$b) +function pumpio_send(array &$b) { if (!DI::pConfig()->get($b['uid'], 'pumpio', 'import') && ($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited']))) { return; @@ -391,7 +392,7 @@ function pumpio_send(App $a, array &$b) Logger::debug('pumpio_send: parameter ', $b); - $b['body'] = Post\Media::addAttachmentsToBody($b['uri-id'], $b['body']); + $b['body'] = Post\Media::addAttachmentsToBody($b['uri-id'], DI::contentItem()->addSharedPost($b)); if ($b['parent'] != $b['id']) { // Looking if its a reply to a pumpio post @@ -407,7 +408,7 @@ function pumpio_send(App $a, array &$b) } else { $iscomment = false; - $receiver = pumpio_getreceiver($a, $b); + $receiver = pumpio_getreceiver($b); Logger::notice('pumpio_send: receiver ', $receiver); @@ -416,7 +417,7 @@ function pumpio_send(App $a, array &$b) } // Dont't post if the post doesn't belong to us. - // This is a check for forum postings + // This is a check for group postings $self = User::getOwnerDataById($b['uid']); if ($b['contact-id'] != $self['id']) { return; @@ -425,9 +426,9 @@ function pumpio_send(App $a, array &$b) if ($b['verb'] == Activity::LIKE) { if ($b['deleted']) { - pumpio_action($a, $b['uid'], $b['thr-parent'], 'unlike'); + pumpio_action($b['uid'], $b['thr-parent'], 'unlike'); } else { - pumpio_action($a, $b['uid'], $b['thr-parent'], 'like'); + pumpio_action($b['uid'], $b['thr-parent'], 'like'); } return; } @@ -437,11 +438,11 @@ function pumpio_send(App $a, array &$b) } if (($b['verb'] == Activity::POST) && ($b['created'] !== $b['edited']) && !$b['deleted']) { - pumpio_action($a, $b['uid'], $b['uri'], 'update', $b['body']); + pumpio_action($b['uid'], $b['uri'], 'update', $b['body']); } if (($b['verb'] == Activity::POST) && $b['deleted']) { - pumpio_action($a, $b['uid'], $b['uri'], 'delete'); + pumpio_action($b['uid'], $b['uri'], 'delete'); } if ($b['deleted'] || ($b['created'] !== $b['edited'])) { @@ -457,13 +458,13 @@ function pumpio_send(App $a, array &$b) // Support for native shares // http:///api//shares?id= - $oauth_token = DI::pConfig()->get($b['uid'], 'pumpio', 'oauth_token'); + $oauth_token = DI::pConfig()->get($b['uid'], 'pumpio', 'oauth_token'); $oauth_token_secret = DI::pConfig()->get($b['uid'], 'pumpio', 'oauth_token_secret'); - $consumer_key = DI::pConfig()->get($b['uid'], 'pumpio', 'consumer_key'); - $consumer_secret = DI::pConfig()->get($b['uid'], 'pumpio', 'consumer_secret'); + $consumer_key = DI::pConfig()->get($b['uid'], 'pumpio', 'consumer_key'); + $consumer_secret = DI::pConfig()->get($b['uid'], 'pumpio', 'consumer_secret'); - $host = DI::pConfig()->get($b['uid'], 'pumpio', 'host'); - $user = DI::pConfig()->get($b['uid'], 'pumpio', 'user'); + $host = DI::pConfig()->get($b['uid'], 'pumpio', 'host'); + $user = DI::pConfig()->get($b['uid'], 'pumpio', 'user'); $public = DI::pConfig()->get($b['uid'], 'pumpio', 'public'); if ($oauth_token && $oauth_token_secret) { @@ -555,7 +556,7 @@ function pumpio_send(App $a, array &$b) } } -function pumpio_action(App $a, int $uid, string $uri, string $action, string $content = '') +function pumpio_action(int $uid, string $uri, string $action, string $content = '') { // Don't do likes and other stuff if you don't import the timeline if (!DI::pConfig()->get($uid, 'pumpio', 'import')) { @@ -624,13 +625,13 @@ function pumpio_action(App $a, int $uid, string $uri, string $action, string $co } } -function pumpio_sync(App $a) +function pumpio_sync() { if (!Addon::isEnabled('pumpio')) { return; } - $last = DI::config()->get('pumpio', 'last_poll'); + $last = DI::keyValue()->get('pumpio_last_poll'); $poll_interval = intval(DI::config()->get('pumpio', 'poll_interval', PUMPIO_DEFAULT_POLL_INTERVAL)); @@ -646,7 +647,7 @@ function pumpio_sync(App $a) $pconfigs = DBA::selectToArray('pconfig', ['uid'], ['cat' => 'pumpio', 'k' => 'mirror', 'v' => '1']); foreach ($pconfigs as $rr) { Logger::notice('pumpio: mirroring user '.$rr['uid']); - pumpio_fetchtimeline($a, $rr['uid']); + pumpio_fetchtimeline($rr['uid']); } $abandon_days = intval(DI::config()->get('system', 'account_abandon_days')); @@ -666,7 +667,7 @@ function pumpio_sync(App $a) } Logger::notice('pumpio: importing timeline from user '.$rr['uid']); - pumpio_fetchinbox($a, $rr['uid']); + pumpio_fetchinbox($rr['uid']); // check for new contacts once a day $last_contact_check = DI::pConfig()->get($rr['uid'], 'pumpio', 'contact_check'); @@ -677,27 +678,27 @@ function pumpio_sync(App $a) } if ($next_contact_check <= time()) { - pumpio_getallusers($a, $rr['uid']); + pumpio_getallusers($rr['uid']); DI::pConfig()->set($rr['uid'], 'pumpio', 'contact_check', time()); } } Logger::notice('pumpio: cron_end'); - DI::config()->set('pumpio', 'last_poll', time()); + DI::keyValue()->set('pumpio_last_poll', time()); } -function pumpio_cron(App $a, $b) +function pumpio_cron($b) { - Worker::add(PRIORITY_MEDIUM, 'addon/pumpio/pumpio_sync.php'); + Worker::add(Worker::PRIORITY_MEDIUM, 'addon/pumpio/pumpio_sync.php'); } -function pumpio_fetchtimeline(App $a, int $uid) +function pumpio_fetchtimeline(int $uid) { - $ckey = DI::pConfig()->get($uid, 'pumpio', 'consumer_key'); - $csecret = DI::pConfig()->get($uid, 'pumpio', 'consumer_secret'); - $otoken = DI::pConfig()->get($uid, 'pumpio', 'oauth_token'); - $osecret = DI::pConfig()->get($uid, 'pumpio', 'oauth_token_secret'); + $ckey = DI::pConfig()->get($uid, 'pumpio', 'consumer_key'); + $csecret = DI::pConfig()->get($uid, 'pumpio', 'consumer_secret'); + $otoken = DI::pConfig()->get($uid, 'pumpio', 'oauth_token'); + $osecret = DI::pConfig()->get($uid, 'pumpio', 'oauth_token_secret'); $lastdate = DI::pConfig()->get($uid, 'pumpio', 'lastdate'); $hostname = DI::pConfig()->get($uid, 'pumpio', 'host'); $username = DI::pConfig()->get($uid, 'pumpio', 'user'); @@ -710,7 +711,7 @@ function pumpio_fetchtimeline(App $a, int $uid) $application_name = DI::config()->get('pumpio', 'application_name'); } if ($application_name == '') { - $application_name = DI::baseUrl()->getHostname(); + $application_name = DI::baseUrl()->getHost(); } $first_time = ($lastdate == ''); @@ -779,40 +780,30 @@ function pumpio_fetchtimeline(App $a, int $uid) } if ($public && !stristr($post->generator->displayName, $application_name)) { - $_SESSION['authenticated'] = true; - $_SESSION['uid'] = $uid; - - unset($_REQUEST); - $_REQUEST['api_source'] = true; - $_REQUEST['profile_uid'] = $uid; - $_REQUEST['source'] = 'pump.io'; - - if (isset($post->object->id)) { - $_REQUEST['message_id'] = Protocol::PUMPIO . ':' . $post->object->id; - } + $postarray['uid'] = $uid; + $postarray['app'] = 'pump.io'; if ($post->object->displayName != '') { - $_REQUEST['title'] = HTML::toBBCode($post->object->displayName); + $postarray['title'] = HTML::toBBCode($post->object->displayName); } else { - $_REQUEST['title'] = ''; + $postarray['title'] = ''; } - $_REQUEST['body'] = HTML::toBBCode($post->object->content); + $postarray['body'] = HTML::toBBCode($post->object->content); // To-Do: Picture has to be cached and stored locally if ($post->object->fullImage->url != '') { if ($post->object->fullImage->pump_io->proxyURL != '') { - $_REQUEST['body'] = '[url=' . $post->object->fullImage->pump_io->proxyURL . '][img]' . $post->object->image->pump_io->proxyURL . "[/img][/url]\n" . $_REQUEST['body']; + $postarray['body'] = '[url=' . $post->object->fullImage->pump_io->proxyURL . '][img]' . $post->object->image->pump_io->proxyURL . "[/img][/url]\n" . $postarray['body']; } else { - $_REQUEST['body'] = '[url=' . $post->object->fullImage->url . '][img]' . $post->object->image->url . "[/img][/url]\n" . $_REQUEST['body']; + $postarray['body'] = '[url=' . $post->object->fullImage->url . '][img]' . $post->object->image->url . "[/img][/url]\n" . $postarray['body']; } } Logger::notice('pumpio: posting for user ' . $uid); - require_once 'mod/item.php'; + Item::insert($postarray, true); - item_post($a); Logger::notice('pumpio: posting done - user ' . $uid); } } @@ -823,7 +814,7 @@ function pumpio_fetchtimeline(App $a, int $uid) } } -function pumpio_dounlike(App $a, int $uid, array $self, $post, string $own_id) +function pumpio_dounlike(int $uid, array $self, $post, string $own_id) { // Searching for the unliked post // Two queries for speed issues @@ -859,7 +850,7 @@ function pumpio_dounlike(App $a, int $uid, array $self, $post, string $own_id) } } -function pumpio_dolike(App $a, int $uid, array $self, $post, string $own_id, $threadcompletion = true) +function pumpio_dolike(int $uid, array $self, $post, string $own_id, $threadcompletion = true) { if (empty($post->object->id)) { Logger::info('Got empty like: '.print_r($post, true)); @@ -878,7 +869,7 @@ function pumpio_dolike(App $a, int $uid, array $self, $post, string $own_id, $th // thread completion if ($threadcompletion) { - pumpio_fetchallcomments($a, $uid, $post->object->id); + pumpio_fetchallcomments($uid, $post->object->id); } $contactid = 0; @@ -914,11 +905,11 @@ function pumpio_dolike(App $a, int $uid, array $self, $post, string $own_id, $th $likedata = []; $likedata['parent'] = $orig_post['id']; $likedata['verb'] = Activity::LIKE; - $likedata['gravity'] = GRAVITY_ACTIVITY; + $likedata['gravity'] = Item::GRAVITY_ACTIVITY; $likedata['uid'] = $uid; $likedata['wall'] = 0; $likedata['network'] = Protocol::PUMPIO; - $likedata['uri'] = Item::newURI($uid); + $likedata['uri'] = Item::newURI(); $likedata['thr-parent'] = $orig_post['uri']; $likedata['contact-id'] = $contactid; $likedata['app'] = $post->generator->displayName; @@ -985,7 +976,7 @@ function pumpio_get_contact($uid, $contact, $no_insert = false) $contact_id = $r['id']; - Group::addMember(User::getDefaultGroup($uid), $contact_id); + Circle::addMember(User::getDefaultCircle($uid), $contact_id); } else { $contact_id = $r['id']; } @@ -997,7 +988,7 @@ function pumpio_get_contact($uid, $contact, $no_insert = false) return $contact_id; } -function pumpio_dodelete(App $a, int $uid, array $self, $post, string $own_id) +function pumpio_dodelete(int $uid, array $self, $post, string $own_id) { // Two queries for speed issues $condition = ['uri' => $post->object->id, 'uid' => $uid]; @@ -1014,18 +1005,18 @@ function pumpio_dodelete(App $a, int $uid, array $self, $post, string $own_id) return false; } -function pumpio_dopost(App $a, $client, int $uid, array $self, $post, string $own_id, bool $threadcompletion = true) +function pumpio_dopost($client, int $uid, array $self, $post, string $own_id, bool $threadcompletion = true) { if (($post->verb == 'like') || ($post->verb == 'favorite')) { - return pumpio_dolike($a, $uid, $self, $post, $own_id); + return pumpio_dolike($uid, $self, $post, $own_id); } if (($post->verb == 'unlike') || ($post->verb == 'unfavorite')) { - return pumpio_dounlike($a, $uid, $self, $post, $own_id); + return pumpio_dounlike($uid, $self, $post, $own_id); } if ($post->verb == 'delete') { - return pumpio_dodelete($a, $uid, $self, $post, $own_id); + return pumpio_dodelete($uid, $self, $post, $own_id); } if ($post->verb != 'update') { @@ -1119,8 +1110,7 @@ function pumpio_dopost(App $a, $client, int $uid, array $self, $post, string $ow $reply->generator->displayName = 'pumpio'; $reply->published = $post->object->inReplyTo->published; $reply->received = $post->object->inReplyTo->updated; - $reply->url = $post->object->inReplyTo->url; - pumpio_dopost($a, $client, $uid, $self, $reply, $own_id, false); + pumpio_dopost($client, $uid, $self, $reply, $own_id, false); $postarray['thr-parent'] = $post->object->inReplyTo->id; } @@ -1205,15 +1195,15 @@ function pumpio_dopost(App $a, $client, int $uid, array $self, $post, string $ow } if (($post->object->objectType == 'comment') && $threadcompletion) { - pumpio_fetchallcomments($a, $uid, $postarray['thr-parent']); + pumpio_fetchallcomments($uid, $postarray['thr-parent']); } return $top_item; } -function pumpio_fetchinbox(App $a, int $uid) +function pumpio_fetchinbox(int $uid) { - $ckey= DI::pConfig()->get($uid, 'pumpio', 'consumer_key'); + $ckey = DI::pConfig()->get($uid, 'pumpio', 'consumer_key'); $csecret = DI::pConfig()->get($uid, 'pumpio', 'consumer_secret'); $otoken = DI::pConfig()->get($uid, 'pumpio', 'oauth_token'); $osecret = DI::pConfig()->get($uid, 'pumpio', 'oauth_token_secret'); @@ -1226,7 +1216,7 @@ function pumpio_fetchinbox(App $a, int $uid) $self = User::getOwnerDataById($uid); $lastitems = DBA::p("SELECT `uri` FROM `post-thread-user` - INNER JOIN `post-view` ON `post-view`.`id` = `post-thread-user`.`id` + INNER JOIN `post-view` ON `post-view`.`uri-id` = `post-thread-user`.`uri-id` WHERE `post-thread-user`.`network` = ? AND `post-thread-user`.`uid` = ? AND `post-view`.`extid` != '' ORDER BY `post-thread-user`.`commented` DESC LIMIT 10", Protocol::PUMPIO, $uid); @@ -1264,22 +1254,22 @@ function pumpio_fetchinbox(App $a, int $uid) if (count($posts)) { foreach ($posts as $post) { $last_id = $post->id; - pumpio_dopost($a, $client, $uid, $self, $post, $own_id, true); + pumpio_dopost($client, $uid, $self, $post, $own_id, true); } } } while ($item = DBA::fetch($lastitems)) { - pumpio_fetchallcomments($a, $uid, $item['uri']); + pumpio_fetchallcomments($uid, $item['uri']); } DBA::close($lastitems); DI::pConfig()->set($uid, 'pumpio', 'last_id', $last_id); } -function pumpio_getallusers(App &$a, int $uid) +function pumpio_getallusers(int $uid) { - $ckey= DI::pConfig()->get($uid, 'pumpio', 'consumer_key'); + $ckey = DI::pConfig()->get($uid, 'pumpio', 'consumer_key'); $csecret = DI::pConfig()->get($uid, 'pumpio', 'consumer_secret'); $otoken = DI::pConfig()->get($uid, 'pumpio', 'oauth_token'); $osecret = DI::pConfig()->get($uid, 'pumpio', 'oauth_token_secret'); @@ -1325,7 +1315,7 @@ function pumpio_getallusers(App &$a, int $uid) } } -function pumpio_getreceiver(App $a, array $b) +function pumpio_getreceiver(array $b) { $receiver = []; @@ -1363,8 +1353,8 @@ function pumpio_getreceiver(App $a, array $b) $gid = trim($gid, ' <>'); $contacts = DBA::p("SELECT `contact`.`name`, `contact`.`nick`, `contact`.`url`, `contact`.`network` - FROM `group_member`, `contact` WHERE `group_member`.`gid` = ? - AND `contact`.`id` = `group_member`.`contact-id` AND `contact`.`network` = ?", + FROM `group_member` AS `circle_member`, `contact` WHERE `circle_member`.`gid` = ? + AND `contact`.`id` = `circle_member`.`contact-id` AND `contact`.`network` = ?", $gid, Protocol::PUMPIO); while ($row = DBA::fetch($contacts)) { @@ -1404,7 +1394,7 @@ function pumpio_getreceiver(App $a, array $b) return $receiver; } -function pumpio_fetchallcomments(App $a, $uid, $id) +function pumpio_fetchallcomments($uid, $id) { $ckey = DI::pConfig()->get($uid, 'pumpio', 'consumer_key'); $csecret = DI::pConfig()->get($uid, 'pumpio', 'consumer_secret'); @@ -1464,7 +1454,7 @@ function pumpio_fetchallcomments(App $a, $uid, $id) $like->actor->url = $item->url; $like->generator = new stdClass; $like->generator->displayName = 'pumpio'; - pumpio_dolike($a, $uid, $self, $post, $own_id, false); + pumpio_dolike($uid, $self, $post, $own_id, false); } } @@ -1501,8 +1491,8 @@ function pumpio_fetchallcomments(App $a, $uid, $id) $post->object = $item; - Logger::notice('pumpio_fetchallcomments: posting comment ' . $post->object->id . ' ', $post); - pumpio_dopost($a, $client, $uid, $self, $post, $own_id, false); + Logger::notice('pumpio_fetchallcomments: posting comment ' . $post->object->id . ' ', json_decode(json_encode($post), true)); + pumpio_dopost($client, $uid, $self, $post, $own_id, false); } }