X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=pumpio%2Fpumpio.php;h=357f17433b1bf495eb1868760b8fc00ae124b264;hb=7777f080475df3218c851bd48ab609bcc54a071d;hp=92132a98a7e68b1bf7ba14f160b55fd30d9b27a3;hpb=1eb23e3667ac780ea59bad219fb1e3a0517421d9;p=friendica-addons.git
diff --git a/pumpio/pumpio.php b/pumpio/pumpio.php
index 92132a98..357f1743 100644
--- a/pumpio/pumpio.php
+++ b/pumpio/pumpio.php
@@ -9,9 +9,7 @@
use Friendica\App;
use Friendica\Content\Text\BBCode;
use Friendica\Content\Text\HTML;
-use Friendica\Core\Config;
use Friendica\Core\Hook;
-use Friendica\Core\L10n;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Core\Worker;
@@ -20,12 +18,12 @@ use Friendica\DI;
use Friendica\Model\Contact;
use Friendica\Model\Group;
use Friendica\Model\Item;
+use Friendica\Model\Post;
use Friendica\Model\User;
use Friendica\Protocol\Activity;
use Friendica\Protocol\ActivityNamespace;
use Friendica\Util\ConfigFileLoader;
use Friendica\Util\DateTimeFormat;
-use Friendica\Util\Network;
use Friendica\Util\Strings;
use Friendica\Util\XML;
@@ -48,25 +46,12 @@ function pumpio_install()
Hook::register('check_item_notification', 'addon/pumpio/pumpio.php', 'pumpio_check_item_notification');
}
-function pumpio_uninstall()
-{
- Hook::unregister('load_config', 'addon/pumpio/pumpio.php', 'pumpio_load_config');
- Hook::unregister('hook_fork', 'addon/pumpio/pumpio.php', 'pumpio_hook_fork');
- Hook::unregister('post_local', 'addon/pumpio/pumpio.php', 'pumpio_post_local');
- Hook::unregister('notifier_normal', 'addon/pumpio/pumpio.php', 'pumpio_send');
- Hook::unregister('jot_networks', 'addon/pumpio/pumpio.php', 'pumpio_jot_nets');
- Hook::unregister('connector_settings', 'addon/pumpio/pumpio.php', 'pumpio_settings');
- Hook::unregister('connector_settings_post', 'addon/pumpio/pumpio.php', 'pumpio_settings_post');
- Hook::unregister('cron', 'addon/pumpio/pumpio.php', 'pumpio_cron');
- Hook::unregister('check_item_notification', 'addon/pumpio/pumpio.php', 'pumpio_check_item_notification');
-}
-
function pumpio_module() {}
function pumpio_content(App $a)
{
if (!local_user()) {
- notice(L10n::t('Permission denied.') . EOL);
+ notice(DI::l10n()->t('Permission denied.') . EOL);
return '';
}
@@ -102,13 +87,13 @@ function pumpio_registerclient(App $a, $host)
$params = [];
- $application_name = Config::get('pumpio', 'application_name');
+ $application_name = DI::config()->get('pumpio', 'application_name');
if ($application_name == "") {
$application_name = DI::baseUrl()->getHostname();
}
- $adminlist = explode(",", str_replace(" ", "", Config::get('config', 'admin_email')));
+ $adminlist = explode(",", str_replace(" ", "", DI::config()->get('config', 'admin_email')));
$params["type"] = "client_associate";
$params["contacts"] = $adminlist[0];
@@ -161,8 +146,7 @@ function pumpio_connect(App $a)
if (($consumer_key == "") || ($consumer_secret == "")) {
Logger::log("pumpio_connect: ".sprintf("Unable to register the client at the pump.io server '%s'.", $hostname));
- $o .= L10n::t("Unable to register the client at the pump.io server '%s'.", $hostname);
- return $o;
+ return DI::l10n()->t("Unable to register the client at the pump.io server '%s'.", $hostname);
}
// The callback URL is the script that gets called after the user authenticates with pumpio
@@ -202,8 +186,8 @@ function pumpio_connect(App $a)
if ($success) {
Logger::log("pumpio_connect: authenticated");
- $o = L10n::t("You are now authenticated to pumpio.");
- $o .= ''.L10n::t("return to the connector page").' ';
+ $o = DI::l10n()->t("You are now authenticated to pumpio.");
+ $o .= ''.DI::l10n()->t("return to the connector page").' ';
} else {
Logger::log("pumpio_connect: could not connect");
$o = 'Could not connect to pumpio. Refresh the page or try again later.';
@@ -223,7 +207,7 @@ function pumpio_jot_nets(App $a, array &$jotnets_fields)
'type' => 'checkbox',
'field' => [
'pumpio_enable',
- L10n::t('Post to pumpio'),
+ DI::l10n()->t('Post to pumpio'),
DI::pConfig()->get(local_user(), 'pumpio', 'post_by_default')
]
];
@@ -264,20 +248,20 @@ function pumpio_settings(App $a, &$s)
/* Add some HTML to the existing form */
$s .= '';
- $s .= ''. L10n::t('Pump.io Import/Export/Mirror').' ';
+ $s .= ''. DI::l10n()->t('Pump.io Import/Export/Mirror').' ';
$s .= ' ';
$s .= '
';
$s .= '
';
- $s .= ''. L10n::t('Pump.io Import/Export/Mirror').' ';
+ $s .= ''. DI::l10n()->t('Pump.io Import/Export/Mirror').' ';
$s .= ' ';
$s .= '
';
- $s .= ''.L10n::t('pump.io username (without the servername)').' ';
+ $s .= ''.DI::l10n()->t('pump.io username (without the servername)').' ';
$s .= ' ';
$s .= '
';
$s .= '
';
- $s .= ''.L10n::t('pump.io servername (without "http://" or "https://" )').' ';
+ $s .= ''.DI::l10n()->t('pump.io servername (without "http://" or "https://" )').' ';
$s .= ' ';
$s .= '
';
@@ -288,36 +272,36 @@ function pumpio_settings(App $a, &$s)
$s .= '
';
if (($oauth_token == "") || ($oauth_token_secret == "")) {
$s .= '
';
} else {
$s .= '
';
- $s .= '' . L10n::t('Import the remote timeline') . ' ';
+ $s .= '' . DI::l10n()->t('Import the remote timeline') . ' ';
$s .= ' ';
$s .= '
';
$s .= '
';
- $s .= '' . L10n::t('Enable pump.io Post Addon') . ' ';
+ $s .= '' . DI::l10n()->t('Enable pump.io Post Addon') . ' ';
$s .= ' ';
$s .= '
';
$s .= '
';
- $s .= '' . L10n::t('Post to pump.io by default') . ' ';
+ $s .= '' . DI::l10n()->t('Post to pump.io by default') . ' ';
$s .= ' ';
$s .= '
';
$s .= '
';
- $s .= '' . L10n::t('Should posts be public?') . ' ';
+ $s .= '' . DI::l10n()->t('Should posts be public?') . ' ';
$s .= ' ';
$s .= '
';
$s .= '
';
- $s .= '' . L10n::t('Mirror all public posts') . ' ';
+ $s .= '' . DI::l10n()->t('Mirror all public posts') . ' ';
$s .= ' ';
$s .= '
';
$s .= '
';
- $s .= '' . L10n::t('Check to delete this preset') . ' ';
+ $s .= '' . DI::l10n()->t('Check to delete this preset') . ' ';
$s .= ' ';
$s .= '
';
}
@@ -327,7 +311,7 @@ function pumpio_settings(App $a, &$s)
/* provide a submit button */
- $s .= '
';
+ $s .= '
';
}
function pumpio_settings_post(App $a, array &$b)
@@ -405,7 +389,7 @@ function pumpio_hook_fork(App $a, array &$b)
if (DI::pConfig()->get($post['uid'], 'pumpio', 'import')) {
// Don't fork if it isn't a reply to a pump.io post
- if (($post['parent'] != $post['id']) && !Item::exists(['id' => $post['parent'], 'network' => Protocol::PUMPIO])) {
+ if (($post['parent'] != $post['id']) && !Post::exists(['id' => $post['parent'], 'network' => Protocol::PUMPIO])) {
Logger::log('No pump.io parent found for item ' . $post['id']);
$b['execute'] = false;
return;
@@ -455,7 +439,7 @@ function pumpio_send(App $a, array &$b)
if ($b['parent'] != $b['id']) {
// Looking if its a reply to a pumpio post
$condition = ['id' => $b['parent'], 'network' => Protocol::PUMPIO];
- $orig_post = Item::selectFirst([], $condition);
+ $orig_post = Post::selectFirst([], $condition);
if (!DBA::isResult($orig_post)) {
Logger::log("pumpio_send: no pumpio post ".$b["parent"]);
@@ -528,7 +512,7 @@ function pumpio_send(App $a, array &$b)
if ($oauth_token && $oauth_token_secret) {
$title = trim($b['title']);
- $content = BBCode::convert($b['body'], false, 4);
+ $content = BBCode::convert($b['body'], false, BBCode::CONNECTORS);
$params = [];
@@ -626,7 +610,7 @@ function pumpio_action(App $a, $uid, $uri, $action, $content = "")
$hostname = DI::pConfig()->get($uid, 'pumpio', 'host');
$username = DI::pConfig()->get($uid, "pumpio", "user");
- $orig_post = Item::selectFirst([], ['uri' => $uri, 'uid' => $uid]);
+ $orig_post = Post::selectFirst([], ['uri' => $uri, 'uid' => $uid]);
if (!DBA::isResult($orig_post)) {
return;
@@ -674,7 +658,7 @@ function pumpio_action(App $a, $uid, $uri, $action, $content = "")
if ($success) {
Logger::log('pumpio_action '.$username.' '.$action.': success '.$uri);
} else {
- Logger::log('pumpio_action '.$username.' '.$action.': general error: '.$uri.' '.print_r($user, true));
+ Logger::log('pumpio_action '.$username.' '.$action.': general error: '.$uri);
Worker::defer();
}
}
@@ -687,9 +671,9 @@ function pumpio_sync(App $a)
return;
}
- $last = Config::get('pumpio', 'last_poll');
+ $last = DI::config()->get('pumpio', 'last_poll');
- $poll_interval = intval(Config::get('pumpio', 'poll_interval', PUMPIO_DEFAULT_POLL_INTERVAL));
+ $poll_interval = intval(DI::config()->get('pumpio', 'poll_interval', PUMPIO_DEFAULT_POLL_INTERVAL));
if ($last) {
$next = $last + ($poll_interval * 60);
@@ -708,7 +692,7 @@ function pumpio_sync(App $a)
}
}
- $abandon_days = intval(Config::get('system', 'account_abandon_days'));
+ $abandon_days = intval(DI::config()->get('system', 'account_abandon_days'));
if ($abandon_days < 1) {
$abandon_days = 0;
}
@@ -746,7 +730,7 @@ function pumpio_sync(App $a)
Logger::log('pumpio: cron_end');
- Config::set('pumpio', 'last_poll', time());
+ DI::config()->set('pumpio', 'last_poll', time());
}
function pumpio_cron(App $a, $b)
@@ -769,7 +753,7 @@ function pumpio_fetchtimeline(App $a, $uid)
// hostname of the node if neither one is set.
$application_name = DI::pConfig()->get($uid, 'pumpio', 'application_name');
if ($application_name == "") {
- $application_name = Config::get('pumpio', 'application_name');
+ $application_name = DI::config()->get('pumpio', 'application_name');
}
if ($application_name == "") {
$application_name = DI::baseUrl()->getHostname();
@@ -889,9 +873,9 @@ function pumpio_dounlike(App $a, $uid, $self, $post, $own_id)
{
// Searching for the unliked post
// Two queries for speed issues
- $orig_post = Item::selectFirst([], ['uri' => $post->object->id, 'uid' => $uid]);
+ $orig_post = Post::selectFirst([], ['uri' => $post->object->id, 'uid' => $uid]);
if (!DBA::isResult($orig_post)) {
- $orig_post = Item::selectFirst([], ['extid' => $post->object->id, 'uid' => $uid]);
+ $orig_post = Post::selectFirst([], ['extid' => $post->object->id, 'uid' => $uid]);
if (!DBA::isResult($orig_post)) {
return;
}
@@ -916,7 +900,7 @@ function pumpio_dounlike(App $a, $uid, $self, $post, $own_id)
}
}
- Item::delete(['verb' => Activity::LIKE, 'uid' => $uid, 'contact-id' => $contactid, 'thr-parent' => $orig_post['uri']]);
+ Item::markForDeletion(['verb' => Activity::LIKE, 'uid' => $uid, 'contact-id' => $contactid, 'thr-parent' => $orig_post['uri']]);
if (DBA::isResult($r)) {
Logger::log("pumpio_dounlike: unliked existing like. User ".$own_id." ".$uid." Contact: ".$contactid." Url ".$orig_post['uri']);
@@ -927,8 +911,6 @@ function pumpio_dounlike(App $a, $uid, $self, $post, $own_id)
function pumpio_dolike(App $a, $uid, $self, $post, $own_id, $threadcompletion = true)
{
- require_once('include/items.php');
-
if (empty($post->object->id)) {
Logger::log('Got empty like: '.print_r($post, true), Logger::DEBUG);
return;
@@ -936,9 +918,9 @@ function pumpio_dolike(App $a, $uid, $self, $post, $own_id, $threadcompletion =
// Searching for the liked post
// Two queries for speed issues
- $orig_post = Item::selectFirst([], ['uri' => $post->object->id, 'uid' => $uid]);
+ $orig_post = Post::selectFirst([], ['uri' => $post->object->id, 'uid' => $uid]);
if (!DBA::isResult($orig_post)) {
- $orig_post = Item::selectFirst([], ['extid' => $post->object->id, 'uid' => $uid]);
+ $orig_post = Post::selectFirst([], ['extid' => $post->object->id, 'uid' => $uid]);
if (!DBA::isResult($orig_post)) {
return;
}
@@ -972,7 +954,7 @@ function pumpio_dolike(App $a, $uid, $self, $post, $own_id, $threadcompletion =
}
$condition = ['verb' => Activity::LIKE, 'uid' => $uid, 'contact-id' => $contactid, 'thr-parent' => $orig_post['uri']];
- if (Item::exists($condition)) {
+ if (Post::exists($condition)) {
Logger::log("pumpio_dolike: found existing like. User ".$own_id." ".$uid." Contact: ".$contactid." Url ".$orig_post['uri']);
return;
}
@@ -985,7 +967,7 @@ function pumpio_dolike(App $a, $uid, $self, $post, $own_id, $threadcompletion =
$likedata['wall'] = 0;
$likedata['network'] = Protocol::PUMPIO;
$likedata['uri'] = Item::newURI($uid);
- $likedata['parent-uri'] = $orig_post["uri"];
+ $likedata['thr-parent'] = $orig_post['uri'];
$likedata['contact-id'] = $contactid;
$likedata['app'] = $post->generator->displayName;
$likedata['author-name'] = $post->actor->displayName;
@@ -996,11 +978,11 @@ function pumpio_dolike(App $a, $uid, $self, $post, $own_id, $threadcompletion =
$author = '[url=' . $likedata['author-link'] . ']' . $likedata['author-name'] . '[/url]';
$objauthor = '[url=' . $orig_post['author-link'] . ']' . $orig_post['author-name'] . '[/url]';
- $post_type = L10n::t('status');
+ $post_type = DI::l10n()->t('status');
$plink = '[url=' . $orig_post['plink'] . ']' . $post_type . '[/url]';
$likedata['object-type'] = Activity\ObjectType::NOTE;
- $likedata['body'] = L10n::t('%1$s likes %2$s\'s %3$s', $author, $objauthor, $plink);
+ $likedata['body'] = DI::l10n()->t('%1$s likes %2$s\'s %3$s', $author, $objauthor, $plink);
$likedata['object'] = '' . Activity\ObjectType::NOTE . ' 1 ' .
'' . $orig_post['uri'] . ' ' . XML::escape(' ') . '' . $orig_post['title'] . ' ' . $orig_post['body'] . ' ';
@@ -1073,7 +1055,7 @@ function pumpio_get_contact($uid, $contact, $no_insert = false)
}
if (!empty($contact->image->url)) {
- Contact::updateAvatar($contact->image->url, $uid, $contact_id);
+ Contact::updateAvatar($contact_id, $contact->image->url);
}
return $contact_id;
@@ -1083,14 +1065,14 @@ function pumpio_dodelete(App $a, $uid, $self, $post, $own_id)
{
// Two queries for speed issues
$condition = ['uri' => $post->object->id, 'uid' => $uid];
- if (Item::exists($condition)) {
- Item::delete($condition);
+ if (Post::exists($condition)) {
+ Item::markForDeletion($condition);
return true;
}
$condition = ['extid' => $post->object->id, 'uid' => $uid];
- if (Item::exists($condition)) {
- Item::delete($condition);
+ if (Post::exists($condition)) {
+ Item::markForDeletion($condition);
return true;
}
return false;
@@ -1098,8 +1080,6 @@ function pumpio_dodelete(App $a, $uid, $self, $post, $own_id)
function pumpio_dopost(App $a, $client, $uid, $self, $post, $own_id, $threadcompletion = true)
{
- require_once('include/items.php');
-
if (($post->verb == "like") || ($post->verb == "favorite")) {
return pumpio_dolike($a, $uid, $self, $post, $own_id);
}
@@ -1114,10 +1094,10 @@ function pumpio_dopost(App $a, $client, $uid, $self, $post, $own_id, $threadcomp
if ($post->verb != "update") {
// Two queries for speed issues
- if (Item::exists(['uri' => $post->object->id, 'uid' => $uid])) {
+ if (Post::exists(['uri' => $post->object->id, 'uid' => $uid])) {
return false;
}
- if (Item::exists(['extid' => $post->object->id, 'uid' => $uid])) {
+ if (Post::exists(['extid' => $post->object->id, 'uid' => $uid])) {
return false;
}
}
@@ -1158,7 +1138,7 @@ function pumpio_dopost(App $a, $client, $uid, $self, $post, $own_id, $threadcomp
$contact_id = $self[0]['id'];
}
- $postarray['parent-uri'] = $post->object->id;
+ $postarray['thr-parent'] = $post->object->id;
if (!$public) {
$postarray['private'] = 1;
@@ -1219,7 +1199,7 @@ function pumpio_dopost(App $a, $client, $uid, $self, $post, $own_id, $threadcomp
$reply->url = $post->object->inReplyTo->url;
pumpio_dopost($a, $client, $uid, $self, $reply, $own_id, false);
- $postarray['parent-uri'] = $post->object->inReplyTo->id;
+ $postarray['thr-parent'] = $post->object->inReplyTo->id;
}
// When there is no content there is no need to continue
@@ -1279,9 +1259,8 @@ function pumpio_dopost(App $a, $client, $uid, $self, $post, $own_id, $threadcomp
$created = '';
}
- $postarray['body'] = share_header($share_author, $post->object->author->url,
- $post->object->author->image->url, "",
- $created, $post->links->self->href).
+ $postarray['body'] = Friendica\Content\Text\BBCode::getShareOpeningTag($share_author, $post->object->author->url,
+ $post->object->author->image->url, $post->links->self->href, $created) .
$postarray['body']."[/share]";
}
@@ -1299,7 +1278,7 @@ function pumpio_dopost(App $a, $client, $uid, $self, $post, $own_id, $threadcomp
}
if (($post->object->objectType == "comment") && $threadcompletion) {
- pumpio_fetchallcomments($a, $uid, $postarray['parent-uri']);
+ pumpio_fetchallcomments($a, $uid, $postarray['thr-parent']);
}
return $top_item;
@@ -1320,10 +1299,10 @@ function pumpio_fetchinbox(App $a, $uid)
$self = q("SELECT * FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1",
intval($uid));
- $lastitems = q("SELECT `uri` FROM `thread`
- INNER JOIN `item` ON `item`.`id` = `thread`.`iid`
- WHERE `thread`.`network` = '%s' AND `thread`.`uid` = %d AND `item`.`extid` != ''
- ORDER BY `thread`.`commented` DESC LIMIT 10",
+ $lastitems = q("SELECT `uri` FROM `post-thread-user`
+ INNER JOIN `post-view` ON `post-view`.`id` = `post-thread-user`.`iid`
+ WHERE `post-thread-user`.`network` = '%s' AND `post-thread-user`.`uid` = %d AND `post-view`.`extid` != ''
+ ORDER BY `post-thread-user`.`commented` DESC LIMIT 10",
DBA::escape(Protocol::PUMPIO),
intval($uid)
);
@@ -1525,12 +1504,12 @@ function pumpio_fetchallcomments(App $a, $uid, $id)
// Fetching the original post
$condition = ["`uri` = ? AND `uid` = ? AND `extid` != ''", $id, $uid];
- $item = Item::selectFirst(['extid'], $condition);
- if (!DBA::isResult($item)) {
+ $original = Post::selectFirst(['extid'], $condition);
+ if (!DBA::isResult($original)) {
return false;
}
- $url = $item["extid"];
+ $url = $original["extid"];
$client = new oauth_client_class;
$client->oauth_version = '1.0a';
@@ -1582,11 +1561,11 @@ function pumpio_fetchallcomments(App $a, $uid, $id)
}
// Checking if the comment already exists - Two queries for speed issues
- if (Item::exists(['uri' => $item->id, 'uid' => $uid])) {
+ if (Post::exists(['uri' => $item->id, 'uid' => $uid])) {
continue;
}
- if (Item::exists(['extid' => $item->id, 'uid' => $uid])) {
+ if (Post::exists(['extid' => $item->id, 'uid' => $uid])) {
continue;
}
@@ -1612,7 +1591,7 @@ function pumpio_fetchallcomments(App $a, $uid, $id)
function pumpio_reachable($url)
{
- return Network::curl($url, false, ['timeout' => 10])->isSuccess();
+ return DI::httpRequest()->get($url, ['timeout' => 10])->isSuccess();
}
/*