From f2947e73b3780fe53d9c942c9a0aa83acbae317c Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Tue, 26 Mar 2024 17:16:14 +0000 Subject: [PATCH] Filter updates from the server We don't want $:/StoryList etc. --- .../config-incoming-updates-filter.tid | 2 ++ .../multiwikiclient/multiwikiclientadaptor.js | 12 +++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 plugins/tiddlywiki/multiwikiclient/config-incoming-updates-filter.tid diff --git a/plugins/tiddlywiki/multiwikiclient/config-incoming-updates-filter.tid b/plugins/tiddlywiki/multiwikiclient/config-incoming-updates-filter.tid new file mode 100644 index 000000000..e327fbe58 --- /dev/null +++ b/plugins/tiddlywiki/multiwikiclient/config-incoming-updates-filter.tid @@ -0,0 +1,2 @@ +title: $:/config/multiwikiclient/incoming-updates-filter +text: [all[]] -[[$:/isEncrypted]] -[prefix[$:/temp/]] -[prefix[$:/status/]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] -[[$:/library/sjcl.js]] -[[$:/core]] -[[$:/StoryList]] -[[$:/HistoryList]] diff --git a/plugins/tiddlywiki/multiwikiclient/multiwikiclientadaptor.js b/plugins/tiddlywiki/multiwikiclient/multiwikiclientadaptor.js index 72b03bf83..3a1e90343 100644 --- a/plugins/tiddlywiki/multiwikiclient/multiwikiclientadaptor.js +++ b/plugins/tiddlywiki/multiwikiclient/multiwikiclientadaptor.js @@ -16,7 +16,8 @@ var CONFIG_HOST_TIDDLER = "$:/config/multiwikiclient/host", DEFAULT_HOST_TIDDLER = "$protocol$//$host$/", BAG_STATE_TIDDLER = "$:/state/multiwikiclient/tiddlers/bag", REVISION_STATE_TIDDLER = "$:/state/multiwikiclient/tiddlers/revision", - CONNECTION_STATE_TIDDLER = "$:/state/multiwikiclient/connection"; + CONNECTION_STATE_TIDDLER = "$:/state/multiwikiclient/connection", + INCOMING_UPDATES_FILTER_TIDDLER = "$:/config/multiwikiclient/incoming-updates-filter"; var SERVER_NOT_CONNECTED = "NOT CONNECTED", SERVER_CONNECTING_SSE = "CONNECTING SSE", @@ -32,6 +33,8 @@ function MultiWikiClientAdaptor(options) { this.isLoggedIn = false; this.isReadOnly = false; this.logoutIsAvailable = true; + // Compile the dirty tiddler filter + this.incomingUpdatesFilterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(INCOMING_UPDATES_FILTER_TIDDLER)); this.setUpdateConnectionStatus(SERVER_NOT_CONNECTED); } @@ -190,8 +193,11 @@ MultiWikiClientAdaptor.prototype.connectServerStream = function(options) { options.syncer.wiki.deleteTiddler(data.title); options.syncer.processTaskQueue(); } else { - self.setTiddlerInfo(data.title,data.tiddler_id,data.bag_name); - options.syncer.storeTiddler(data.tiddler); + var result = self.incomingUpdatesFilterFn.call(self.wiki,self.wiki.makeTiddlerIterator([data.title])); + if(result.length > 0) { + self.setTiddlerInfo(data.title,data.tiddler_id,data.bag_name); + options.syncer.storeTiddler(data.tiddler); + } } } });