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;
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;
*/
function pumpio_module() {}
-function pumpio_content(App $a)
+function pumpio_content()
{
if (!DI::userSession()->getLocalUserId()) {
DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
if (isset(DI::args()->getArgv()[1])) {
switch (DI::args()->getArgv()[1]) {
case 'connect':
- $o = pumpio_connect($a);
+ $o = pumpio_connect();
break;
default:
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');
$notification_data['profiles'][] = 'https://' . $hostname . '/' . $username;
}
-function pumpio_registerclient(App $a, $host)
+function pumpio_registerclient($host)
{
$url = 'https://' . $host . '/api/client/register';
$application_name = DI::config()->get('pumpio', 'application_name');
if ($application_name == '') {
- $application_name = DI::baseUrl()->getHostname();
+ $application_name = DI::baseUrl()->getHost();
}
$firstAdmin = User::getFirstAdmin(['email']);
$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);
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);
}
-function pumpio_connect(App $a)
+function pumpio_connect()
{
// Define the needed keys
$consumer_key = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'pumpio', 'consumer_key');
if ((($consumer_key == '') || ($consumer_secret == '')) && ($hostname != '')) {
Logger::notice('pumpio_connect: register client');
- $clientdata = pumpio_registerclient($a, $hostname);
+ $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);
}
// 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.
if ($success) {
Logger::notice('pumpio_connect: authenticated');
$o = DI::l10n()->t('You are now authenticated to pumpio.');
- $o .= '<br /><a href="' . DI::baseUrl()->get() . '/settings/connectors">' . DI::l10n()->t('return to the connector page') . '</a>';
+ $o .= '<br /><a href="' . DI::baseUrl() . '/settings/connectors">' . DI::l10n()->t('return to the connector page') . '</a>';
} else {
Logger::notice('pumpio_connect: could not connect');
$o = 'Could not connect to pumpio. Refresh the page or try again later.';
return $o;
}
-function pumpio_jot_nets(App $a, array &$jotnets_fields)
+function pumpio_jot_nets(array &$jotnets_fields)
{
if (!DI::userSession()->getLocalUserId()) {
return;
}
}
-function pumpio_settings(App $a, array &$data)
+function pumpio_settings(array &$data)
{
if (!DI::userSession()->getLocalUserId()) {
return;
'$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],
];
}
-function pumpio_settings_post(App $a, array &$b)
+function pumpio_settings_post(array &$b)
{
if (!empty($_POST['pumpio_delete'])) {
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'pumpio', 'consumer_key' , '');
}
}
-function pumpio_load_config(App $a, ConfigFileLoader $loader)
+function pumpio_load_config(ConfigFileManager $loader)
{
- $a->getConfigCache()->load($loader->loadAddonConfig('pumpio'), \Friendica\Core\Config\ValueObject\Cache::SOURCE_STATIC);
+ 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;
}
}
-function pumpio_post_local(App $a, array &$b)
+function pumpio_post_local(array &$b)
{
if (!DI::userSession()->getLocalUserId() || (DI::userSession()->getLocalUserId() != $b['uid'])) {
return;
$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;
} else {
$iscomment = false;
- $receiver = pumpio_getreceiver($a, $b);
+ $receiver = pumpio_getreceiver($b);
Logger::notice('pumpio_send: receiver ', $receiver);
}
// 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;
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;
}
}
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'])) {
}
}
-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')) {
}
}
-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));
$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'));
}
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');
}
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(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');
$application_name = DI::config()->get('pumpio', 'application_name');
}
if ($application_name == '') {
- $application_name = DI::baseUrl()->getHostname();
+ $application_name = DI::baseUrl()->getHost();
}
$first_time = ($lastdate == '');
}
}
-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
}
}
-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));
// thread completion
if ($threadcompletion) {
- pumpio_fetchallcomments($a, $uid, $post->object->id);
+ pumpio_fetchallcomments($uid, $post->object->id);
}
$contactid = 0;
$contact_id = $r['id'];
- Group::addMember(User::getDefaultGroup($uid), $contact_id);
+ Circle::addMember(User::getDefaultCircle($uid), $contact_id);
} else {
$contact_id = $r['id'];
}
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];
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') {
$reply->generator->displayName = 'pumpio';
$reply->published = $post->object->inReplyTo->published;
$reply->received = $post->object->inReplyTo->updated;
- 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;
}
}
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');
$csecret = DI::pConfig()->get($uid, 'pumpio', 'consumer_secret');
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');
$csecret = DI::pConfig()->get($uid, 'pumpio', 'consumer_secret');
}
}
-function pumpio_getreceiver(App $a, array $b)
+function pumpio_getreceiver(array $b)
{
$receiver = [];
$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)) {
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');
$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);
}
}
$post->object = $item;
Logger::notice('pumpio_fetchallcomments: posting comment ' . $post->object->id . ' ', json_decode(json_encode($post), true));
- pumpio_dopost($a, $client, $uid, $self, $post, $own_id, false);
+ pumpio_dopost($client, $uid, $self, $post, $own_id, false);
}
}