summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/Meteor/meteorupdater.js11
-rw-r--r--plugins/Realtime/RealtimePlugin.php34
2 files changed, 29 insertions, 16 deletions
diff --git a/plugins/Meteor/meteorupdater.js b/plugins/Meteor/meteorupdater.js
index 2e688336f..e8bca3eb4 100644
--- a/plugins/Meteor/meteorupdater.js
+++ b/plugins/Meteor/meteorupdater.js
@@ -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;
diff --git a/plugins/Realtime/RealtimePlugin.php b/plugins/Realtime/RealtimePlugin.php
index 82eca3d08..1703ef099 100644
--- a/plugins/Realtime/RealtimePlugin.php
+++ b/plugins/Realtime/RealtimePlugin.php
@@ -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);