]> git.mxchange.org Git - friendica-addons.git/blobdiff - statusnet/statusnet.php
App.net/Pump.io/GNU Social/Twitter: Support for new notifications
[friendica-addons.git] / statusnet / statusnet.php
index f92dde76c8e60012311aab25b9320ca3aec392bb..e030232f184fb42e5b01ea415e2774a6d53b49e7 100644 (file)
@@ -44,6 +44,7 @@
 define('STATUSNET_DEFAULT_POLL_INTERVAL', 5); // given in minutes
 
 require_once('library/twitteroauth.php');
+require_once('include/enotify.php');
 
 class StatusNetOAuth extends TwitterOAuth {
     function get_maxlength() {
@@ -119,6 +120,7 @@ function statusnet_install() {
        register_hook('jot_networks',    'addon/statusnet/statusnet.php', 'statusnet_jot_nets');
        register_hook('cron', 'addon/statusnet/statusnet.php', 'statusnet_cron');
        register_hook('prepare_body', 'addon/statusnet/statusnet.php', 'statusnet_prepare_body');
+       register_hook('check_item_notification','addon/statusnet/statusnet.php', 'statusnet_check_item_notification');
        logger("installed GNU Social");
 }
 
@@ -131,6 +133,7 @@ function statusnet_uninstall() {
        unregister_hook('jot_networks',    'addon/statusnet/statusnet.php', 'statusnet_jot_nets');
        unregister_hook('cron', 'addon/statusnet/statusnet.php', 'statusnet_cron');
        unregister_hook('prepare_body', 'addon/statusnet/statusnet.php', 'statusnet_prepare_body');
+       unregister_hook('check_item_notification','addon/statusnet/statusnet.php', 'statusnet_check_item_notification');
 
        // old setting - remove only
        unregister_hook('post_local_end', 'addon/statusnet/statusnet.php', 'statusnet_post_hook');
@@ -139,6 +142,10 @@ function statusnet_uninstall() {
 
 }
 
+function statusnet_check_item_notification($a, &$notification_data) {
+       $notification_data["profiles"][] = get_pconfig($notification_data["uid"], 'statusnet', 'own_url');
+}
+
 function statusnet_jot_nets(&$a,&$b) {
        if(! local_user())
                return;
@@ -1443,7 +1450,7 @@ function statusnet_fetchhometimeline($a, $uid, $mode = 1) {
 
                                        logger('statusnet_fetchhometimeline: User '.$self["nick"].' posted home timeline item '.$item);
 
-                                       if ($item != 0)
+                                       if ($item AND !function_exists("check_item_notification"))
                                                statusnet_checknotification($a, $uid, $nick, $item, $postarray);
                                }
 
@@ -1493,6 +1500,9 @@ function statusnet_fetchhometimeline($a, $uid, $mode = 1) {
                                        $postarray["id"] = $item;
 
                                        logger('statusnet_fetchhometimeline: User '.$self["nick"].' posted mention timeline item '.$item);
+
+                                       if ($item AND function_exists("check_item_notification"))
+                                               check_item_notification($item, $uid, NOTIFY_TAGSELF);
                                }
                        }
 
@@ -1505,7 +1515,7 @@ function statusnet_fetchhometimeline($a, $uid, $mode = 1) {
                                $parent_id = $r[0]['parent'];
                        }
 
-                       if ($item != 0) {
+                       if (($item != 0) AND !function_exists("check_item_notification")) {
                                require_once('include/enotify.php');
                                notification(array(
                                        'type'         => NOTIFY_TAGSELF,
@@ -1536,6 +1546,7 @@ function statusnet_complete_conversation($a, $uid, $self, $create_user, $nick, $
        $api     = get_pconfig($uid, 'statusnet', 'baseapi');
        $otoken  = get_pconfig($uid, 'statusnet', 'oauthtoken');
        $osecret = get_pconfig($uid, 'statusnet', 'oauthsecret');
+       $own_url = get_pconfig($uid, 'statusnet', 'own_url');
 
        require_once('library/twitteroauth.php');
 
@@ -1559,7 +1570,7 @@ function statusnet_complete_conversation($a, $uid, $self, $create_user, $nick, $
 
                        logger('statusnet_complete_conversation: User '.$self["nick"].' posted home timeline item '.$item);
 
-                       if ($item != 0)
+                       if ($item AND !function_exists("check_item_notification"))
                                statusnet_checknotification($a, $uid, $nick, $item, $postarray);
                }
        }