Skip to content

Commit

Permalink
feat: auto reuse last server sync
Browse files Browse the repository at this point in the history
fixes #24
  • Loading branch information
linonetwo committed Jun 8, 2023
1 parent e36d81f commit 80b69ba
Show file tree
Hide file tree
Showing 7 changed files with 55 additions and 21 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@
"ts-jest": "29.0.3",
"tslib": "2.4.1",
"tw5-plugin-packer": "0.0.10",
"tw5-typed": "0.2.14",
"tw5-typed": "0.2.27",
"typescript": "4.9.4",
"typesync": "0.9.2",
"ws": "^8.11.0",
Expand Down
34 changes: 30 additions & 4 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions src/browser-background-sync.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import type { Tiddler, IServerStatus, ITiddlerFieldsParam } from 'tiddlywiki';
import mapValues from 'lodash/mapValues';
import { activeServerStateTiddlerTitle, clientStatusStateTiddlerTitle, getLoopInterval } from './data/constants';
import { getDiffFilter, serverListFilter } from './data/filters';
import { getDiffFilter, getServerListFilter } from './data/filters';
import { getClientInfoPoint, getFullHtmlEndPoint, getStatusEndPoint, getSyncEndPoint } from './data/getEndPoint';
import type { ISyncEndPointRequest, IClientInfo } from './types';
import { ConnectionState } from './types';
Expand Down Expand Up @@ -310,7 +310,7 @@ class BackgroundSyncManager {

get serverList() {
// get server list using filter
const serverList: string[] = $tw.wiki.compileFilter(serverListFilter)() ?? [];
const serverList: string[] = $tw.wiki.compileFilter(getServerListFilter())() ?? [];
return serverList.map((serverInfoTiddlerTitle) => {
return $tw.wiki.getTiddler(serverInfoTiddlerTitle) as IServerInfoTiddler;
});
Expand Down
2 changes: 1 addition & 1 deletion src/data/filters.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ export function getDiffFilter(lastSync: string | undefined) {
/**
* also in src/ui/ServerList.tid 's list widget
*/
export const serverListFilter = `[prefix[$:/state/tw-mobile-sync/server/]] -[[$:/state/tw-mobile-sync/server/new]] -[[$:/state/tw-mobile-sync/server/new/scan-qr-widget-open]] -[[$:/state/tw-mobile-sync/server/existed/scan-qr-widget-open]] -[[$:/state/tw-mobile-sync/server/existed/update]]`;
export const getServerListFilter = () => $tw.wiki.getTiddlerText('$:/plugins/linonetwo/tw-mobile-sync/ServerListFilter');
29 changes: 17 additions & 12 deletions src/ui/AddNewToServerList.tid
Original file line number Diff line number Diff line change
Expand Up @@ -55,17 +55,22 @@ type: text/vnd.tiddlywiki
<$button style="width: 160px; margin-top: 10px;">
<div>新增服务器</div>
<div>Add New</div>
<$action-createtiddler
$basetitle={{{ [<now "YYYY-MM-DD-0hh0mm0ss">] +[addprefix[$:/state/tw-mobile-sync/server/]] }}}
text="offline"
name={{$:/state/tw-mobile-sync/server/new!!name}}
caption={{$:/state/tw-mobile-sync/server/new!!name}}
ipAddress={{$:/state/tw-mobile-sync/server/new!!ipAddress}}
port={{$:/state/tw-mobile-sync/server/new!!port}}
lastSync=<<now "[UTC]YYYY0MM0DD0hh0mm0ssXXX">>
>
<$action-setfield $tiddler="$:/state/tw-mobile-sync/server/new" text="" name="" ipAddress="" port="" />
<$action-sendmessage $message="tw-mobile-sync-set-active-server-and-sync" title=<<createTiddler-title>> />
</$action-createtiddler>
<$set name="existedServers" filter={{$:/plugins/linonetwo/tw-mobile-sync/ServerListFilter}} >
<$set name="latestLastSync" filter="[<existedServers>sort[lastSync]limit[1]get[lastSync]]" emptyValue=<<now "[UTC]YYYY0MM0DD0hh0mm0ssXXX">> >
<$log />
<$action-createtiddler
$basetitle={{{ [<now "YYYY-MM-DD-0hh0mm0ss">] +[addprefix[$:/state/tw-mobile-sync/server/]] }}}
text="offline"
name={{$:/state/tw-mobile-sync/server/new!!name}}
caption={{$:/state/tw-mobile-sync/server/new!!name}}
ipAddress={{$:/state/tw-mobile-sync/server/new!!ipAddress}}
port={{$:/state/tw-mobile-sync/server/new!!port}}
lastSync=<<latestLastSync>>
>
<$action-setfield $tiddler="$:/state/tw-mobile-sync/server/new" text="" name="" ipAddress="" port="" />
<$action-sendmessage $message="tw-mobile-sync-set-active-server-and-sync" title=<<createTiddler-title>> />
</$action-createtiddler>
</$set>
</$set>
</$button>
</div>
2 changes: 1 addition & 1 deletion src/ui/ServerList.tid
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ title: $:/plugins/linonetwo/tw-mobile-sync/ui/ServerList
type: text/vnd.tiddlywiki

<div class="tw-mobile-sync-server-list">
<$list filter="[prefix[$:/state/tw-mobile-sync/server/]] -[[$:/state/tw-mobile-sync/server/new]] -[[$:/state/tw-mobile-sync/server/new/scan-qr-widget-open]] -[[$:/state/tw-mobile-sync/server/existed/scan-qr-widget-open]] -[[$:/state/tw-mobile-sync/server/existed/update]]">
<$list filter={{$:/plugins/linonetwo/tw-mobile-sync/ServerListFilter}}>
<div class="tw-mobile-sync-server-list-item">
{{||$:/plugins/linonetwo/tw-mobile-sync/ui/ServerItemViewTemplateBasic}}
{{||$:/plugins/linonetwo/tw-mobile-sync/ui/ServerItemCopyTemplate}}
Expand Down
3 changes: 3 additions & 0 deletions src/ui/ServerListFilter.tid
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
title: $:/plugins/linonetwo/tw-mobile-sync/ServerListFilter

[prefix[$:/state/tw-mobile-sync/server/]] -[[$:/state/tw-mobile-sync/server/new]] -[[$:/state/tw-mobile-sync/server/new/scan-qr-widget-open]] -[[$:/state/tw-mobile-sync/server/existed/scan-qr-widget-open]] -[[$:/state/tw-mobile-sync/server/existed/update]]

0 comments on commit 80b69ba

Please sign in to comment.