]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Added realtime streams for all and showstream timelines
authorSarven Capadisli <csarven@status.net>
Sun, 20 Sep 2009 15:14:46 +0000 (15:14 +0000)
committerSarven Capadisli <csarven@status.net>
Sun, 20 Sep 2009 15:14:46 +0000 (15:14 +0000)
plugins/Meteor/meteorupdater.js
plugins/Realtime/RealtimePlugin.php

index 2e688336f1d19624590d47ddeac6f65117907e2f..e8bca3eb4965f458c54c5b3a0a9b3c62348414e1 100644 (file)
@@ -7,8 +7,17 @@ var MeteorUpdater = function()
 
           init: function(server, port, timeline)
           {
+               var screen_name;
+
                Meteor.callbacks["process"] = function(data) {
-                    RealtimeUpdate.receive(JSON.parse(data));
+                    var d = JSON.parse(data);
+                    screen_name = d['user']['screen_name'];
+
+                    if (timeline == 'public' ||
+                        $('address .url')[0].href+screen_name+'/all' == window.location.href ||
+                        $('address .url')[0].href+screen_name == window.location.href) {
+                        RealtimeUpdate.receive(d);
+                    }
                };
 
                Meteor.host = server;
index 82eca3d08c0d1cd67700ee69394563af534d5a73..1703ef0995bcd8fef057a08420c14ab8a9810ae4 100644 (file)
@@ -63,20 +63,22 @@ class RealtimePlugin extends Plugin
     {
         $path = null;
 
-        switch ($action->trimmed('action')) {
-         case 'public':
-            $path = array('public');
-            break;
-         case 'tag':
-            $tag = $action->trimmed('tag');
-            if (!empty($tag)) {
-                $path = array('tag', $tag);
-            } else {
+        $a = $action->trimmed('action');
+
+        switch ($a) {
+            case 'public': case 'all': case 'replies': case 'showstream':
+                $path = array($a);
+                break;
+            case 'tag':
+                $tag = $action->trimmed('tag');
+                if (!empty($tag)) {
+                    $path = array('tag', $tag);
+                } else {
+                    return true;
+                }
+                break;
+             default:
                 return true;
-            }
-            break;
-         default:
-            return true;
         }
 
         $timeline = $this->_pathToChannel($path);
@@ -108,11 +110,13 @@ class RealtimePlugin extends Plugin
     {
         $paths = array();
 
-        // XXX: Add other timelines; this is just for the public one
+        // TODO: Replies timeline
 
         if ($notice->is_local ||
             ($notice->is_local == 0 && !common_config('public', 'localonly'))) {
-            $paths[] = array('public');
+            foreach (array('public', 'all', 'replies', 'showstream') as $a) {
+                $paths[] = array($a);
+            }
         }
 
         $tags = $this->getNoticeTags($notice);