X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=pumpio%2Fpumpio.php;h=1702971ce87dae29207a97e9bc7cc3cac2e30ffd;hb=91757d72d870ef57ab325d8c45b6730e1251e49f;hp=08668e15a4d62e6b09844398706a2178b653b220;hpb=699fa4c44f4da655c55a68e2d3995b8dc38d5429;p=friendica-addons.git diff --git a/pumpio/pumpio.php b/pumpio/pumpio.php index 08668e15..1702971c 100644 --- a/pumpio/pumpio.php +++ b/pumpio/pumpio.php @@ -7,6 +7,7 @@ */ require('addon/pumpio/oauth/http.php'); require('addon/pumpio/oauth/oauth_client.php'); +require_once('include/enotify.php'); define('PUMPIO_DEFAULT_POLL_INTERVAL', 5); // given in minutes @@ -18,6 +19,7 @@ function pumpio_install() { 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() { @@ -28,6 +30,7 @@ function pumpio_uninstall() { 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() {} @@ -57,6 +60,14 @@ function pumpio_content(&$a) { return $o; } +function pumpio_check_item_notification($a, &$notification_data) { + $hostname = get_pconfig($notification_data["uid"], 'pumpio','host'); + $username = get_pconfig($notification_data["uid"], "pumpio", "user"); + + $notification_data["profiles"][] = "https://".$hostname."/".$username; +} + + function pumpio_registerclient(&$a, $host) { $url = "https://".$host."/api/client/register"; @@ -857,17 +868,19 @@ function pumpio_dolike(&$a, $uid, $self, $post, $own_id, $threadcompletion = tru // Searching for the liked post // Two queries for speed issues - $r = q("SELECT * FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1", + $r = q("SELECT * FROM `item` WHERE `uri` = '%s' AND `uid` = %d AND `network` = '%s' LIMIT 1", dbesc($post->object->id), - intval($uid) + intval($uid), + dbesc(NETWORK_PUMPIO) ); if (count($r)) $orig_post = $r[0]; else { - $r = q("SELECT * FROM `item` WHERE `extid` = '%s' AND `uid` = %d LIMIT 1", + $r = q("SELECT * FROM `item` WHERE `extid` = '%s' AND `uid` = %d AND `network` = '%s' LIMIT 1", dbesc($post->object->id), - intval($uid) + intval($uid), + dbesc(NETWORK_PUMPIO) ); if (!count($r)) @@ -944,27 +957,35 @@ function pumpio_dolike(&$a, $uid, $self, $post, $own_id, $threadcompletion = tru function pumpio_get_contact($uid, $contact) { - $r = q("SELECT id FROM unique_contacts WHERE url='%s' LIMIT 1", - dbesc(normalise_link($contact->url))); - - if (count($r) == 0) - q("INSERT INTO unique_contacts (url, name, nick, avatar) VALUES ('%s', '%s', '%s', '%s')", - dbesc(normalise_link($contact->url)), - dbesc($contact->displayName), - dbesc($contact->preferredUsername), - dbesc($contact->image->url)); - else - q("UPDATE unique_contacts SET name = '%s', nick = '%s', avatar = '%s' WHERE url = '%s'", - dbesc($contact->displayName), - dbesc($contact->preferredUsername), - dbesc($contact->image->url), + if (function_exists("update_gcontact")) + update_gcontact(array("url" => $contact->url, "network" => NETWORK_PUMPIO, "generation" => 2, + "photo" => $contact->image->url, "name" => $contact->displayName, "hide" => true, + "nick" => $contact->preferredUsername, "location" => $contact->location->displayName, + "about" => $contact->summary, "addr" => str_replace("acct:", "", $contact->id))); + else { + // Old Code + $r = q("SELECT id FROM unique_contacts WHERE url='%s' LIMIT 1", dbesc(normalise_link($contact->url))); - if (DB_UPDATE_VERSION >= "1177") - q("UPDATE `unique_contacts` SET `location` = '%s', `about` = '%s' WHERE url = '%s'", - dbesc($contact->location->displayName), - dbesc($contact->summary), - dbesc(normalise_link($contact->url))); + if (count($r) == 0) + q("INSERT INTO unique_contacts (url, name, nick, avatar) VALUES ('%s', '%s', '%s', '%s')", + dbesc(normalise_link($contact->url)), + dbesc($contact->displayName), + dbesc($contact->preferredUsername), + dbesc($contact->image->url)); + else + q("UPDATE unique_contacts SET name = '%s', nick = '%s', avatar = '%s' WHERE url = '%s'", + dbesc($contact->displayName), + dbesc($contact->preferredUsername), + dbesc($contact->image->url), + dbesc(normalise_link($contact->url))); + + if (DB_UPDATE_VERSION >= "1177") + q("UPDATE `unique_contacts` SET `location` = '%s', `about` = '%s' WHERE url = '%s'", + dbesc($contact->location->displayName), + dbesc($contact->summary), + dbesc(normalise_link($contact->url))); + } $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `url` = '%s' LIMIT 1", intval($uid), dbesc($contact->url)); @@ -1298,42 +1319,44 @@ function pumpio_dopost(&$a, $client, $uid, $self, $post, $own_id, $threadcomplet if (link_compare($own_id, $postarray['author-link'])) return $top_item; - $myconv = q("SELECT `author-link`, `author-avatar`, `parent` FROM `item` WHERE `parent-uri` = '%s' AND `uid` = %d AND `parent` != 0 AND `deleted` = 0", - dbesc($postarray['parent-uri']), - intval($uid) - ); - - if(count($myconv)) { - - foreach($myconv as $conv) { - // now if we find a match, it means we're in this conversation - - if(!link_compare($conv['author-link'],$importer_url) AND !link_compare($conv['author-link'],$own_id)) - continue; + if (!function_exists("check_item_notification")) { + $myconv = q("SELECT `author-link`, `author-avatar`, `parent` FROM `item` WHERE `parent-uri` = '%s' AND `uid` = %d AND `parent` != 0 AND `deleted` = 0", + dbesc($postarray['parent-uri']), + intval($uid) + ); - require_once('include/enotify.php'); - - $conv_parent = $conv['parent']; - - notification(array( - 'type' => NOTIFY_COMMENT, - 'notify_flags' => $user[0]['notify-flags'], - 'language' => $user[0]['language'], - 'to_name' => $user[0]['username'], - 'to_email' => $user[0]['email'], - 'uid' => $user[0]['uid'], - 'item' => $postarray, - 'link' => $a->get_baseurl().'/display/'.urlencode(get_item_guid($top_item)), - 'source_name' => $postarray['author-name'], - 'source_link' => $postarray['author-link'], - 'source_photo' => $postarray['author-avatar'], - 'verb' => ACTIVITY_POST, - 'otype' => 'item', - 'parent' => $conv_parent, - )); - - // only send one notification - break; + if(count($myconv)) { + + foreach($myconv as $conv) { + // now if we find a match, it means we're in this conversation + + if(!link_compare($conv['author-link'],$importer_url) AND !link_compare($conv['author-link'],$own_id)) + continue; + + require_once('include/enotify.php'); + + $conv_parent = $conv['parent']; + + notification(array( + 'type' => NOTIFY_COMMENT, + 'notify_flags' => $user[0]['notify-flags'], + 'language' => $user[0]['language'], + 'to_name' => $user[0]['username'], + 'to_email' => $user[0]['email'], + 'uid' => $user[0]['uid'], + 'item' => $postarray, + 'link' => $a->get_baseurl().'/display/'.urlencode(get_item_guid($top_item)), + 'source_name' => $postarray['author-name'], + 'source_link' => $postarray['author-link'], + 'source_photo' => $postarray['author-avatar'], + 'verb' => ACTIVITY_POST, + 'otype' => 'item', + 'parent' => $conv_parent, + )); + + // only send one notification + break; + } } } }