diff --git a/package.json b/package.json index 6fc2fc6..6deeeb8 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3e6fb30..380f43d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -172,8 +172,8 @@ devDependencies: specifier: 0.0.10 version: 0.0.10 tw5-typed: - specifier: 0.2.14 - version: 0.2.14 + specifier: 0.2.27 + version: 0.2.27 typescript: specifier: 4.9.4 version: 4.9.4 @@ -1236,6 +1236,18 @@ packages: '@babel/types': 7.20.5 dev: true + /@types/codemirror@5.60.8: + resolution: {integrity: sha512-VjFgDF/eB+Aklcy15TtOTLQeMjTo07k7KAjql8OK5Dirr7a6sJY4T1uVBDuTVG9VEmn1uUsohOpYnVfgC6/jyw==} + dependencies: + '@types/tern': 0.23.4 + dev: true + + /@types/echarts@4.9.18: + resolution: {integrity: sha512-Qav4M1i1qmPemMywMnDGIbvIBB/9pdrDKLI1dyMho4Yz/ldCB3ry2zGeH0UhAhgmaoPgwYrCDo8xd1UeByz+rw==} + dependencies: + '@types/zrender': 4.0.3 + dev: true + /@types/eslint-plugin-prettier@3.1.0: resolution: {integrity: sha512-6/UIuz99F0IvtDez4U3bRwAmN4VKnuw10Ibblf0iZhtNbmbonMSLqs/qqsXrGIAWvjy+vXqYwOljgtLhrETSMg==} dependencies: @@ -1343,6 +1355,12 @@ packages: resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} dev: true + /@types/tern@0.23.4: + resolution: {integrity: sha512-JAUw1iXGO1qaWwEOzxTKJZ/5JxVeON9kvGZ/osgZaJImBnyjyn0cjovPsf6FNLmyGY8Vw9DoXZCMlfMkMwHRWg==} + dependencies: + '@types/estree': 1.0.0 + dev: true + /@types/ua-parser-js@0.7.36: resolution: {integrity: sha512-N1rW+njavs70y2cApeIw1vLMYXRwfBy+7trgavGuuTfOd7j1Yh7QTRc/yqsPl6ncokt72ZXuxEU0PiCp9bSwNQ==} dev: true @@ -1365,6 +1383,10 @@ packages: '@types/yargs-parser': 21.0.0 dev: true + /@types/zrender@4.0.3: + resolution: {integrity: sha512-EPI269lkHNsObwILJ1k1z7znLjKyePuWRy/XKK0shSGpBb9cIX307arcwJV4+2NeZj5wEjN06r4D8yFv7sI06g==} + dev: true + /@typescript-eslint/eslint-plugin@5.46.1(@typescript-eslint/parser@5.46.1)(eslint@8.30.0)(typescript@4.9.4): resolution: {integrity: sha512-YpzNv3aayRBwjs4J3oz65eVLXc9xx0PDbIRisHj+dYhvBn02MjYOD96P8YGiWEIFBrojaUjxvkaUpakD82phsA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5584,8 +5606,12 @@ packages: - encoding dev: true - /tw5-typed@0.2.14: - resolution: {integrity: sha512-8kFjnk1oKM533qmD6dwfkAlKWOR27N0gQ+tVKE226lUHigSNCCaBCpahdLWvLjT7sq8/MEkfF7xH+AHhYUvLJQ==} + /tw5-typed@0.2.27: + resolution: {integrity: sha512-ATJaMZh1udwzcgqNOoPTmH9nzI/yMo5TLgv5u3O8WKDIE8SzuDVteah0G4gSsx/ogDyHAdmn0Wu5m+2hQ2wc7A==} + dependencies: + '@types/codemirror': 5.60.8 + '@types/echarts': 4.9.18 + '@types/node': 18.11.16 dev: true /type-check@0.4.0: diff --git a/src/browser-background-sync.ts b/src/browser-background-sync.ts index ae2061f..e219399 100644 --- a/src/browser-background-sync.ts +++ b/src/browser-background-sync.ts @@ -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'; @@ -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; }); diff --git a/src/data/filters.ts b/src/data/filters.ts index 21557f5..99cae40 100644 --- a/src/data/filters.ts +++ b/src/data/filters.ts @@ -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'); diff --git a/src/ui/AddNewToServerList.tid b/src/ui/AddNewToServerList.tid index 85aaeb6..d950d56 100644 --- a/src/ui/AddNewToServerList.tid +++ b/src/ui/AddNewToServerList.tid @@ -55,17 +55,22 @@ type: text/vnd.tiddlywiki <$button style="width: 160px; margin-top: 10px;">
新增服务器
Add New
- <$action-createtiddler - $basetitle={{{ [] +[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=<> - > - <$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=<> /> - + <$set name="existedServers" filter={{$:/plugins/linonetwo/tw-mobile-sync/ServerListFilter}} > + <$set name="latestLastSync" filter="[sort[lastSync]limit[1]get[lastSync]]" emptyValue=<> > + <$log /> + <$action-createtiddler + $basetitle={{{ [] +[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=<> + > + <$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=<> /> + + + diff --git a/src/ui/ServerList.tid b/src/ui/ServerList.tid index 4d61f8b..2d6a68c 100644 --- a/src/ui/ServerList.tid +++ b/src/ui/ServerList.tid @@ -2,7 +2,7 @@ title: $:/plugins/linonetwo/tw-mobile-sync/ui/ServerList type: text/vnd.tiddlywiki
- <$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}}>
{{||$:/plugins/linonetwo/tw-mobile-sync/ui/ServerItemViewTemplateBasic}} {{||$:/plugins/linonetwo/tw-mobile-sync/ui/ServerItemCopyTemplate}} diff --git a/src/ui/ServerListFilter.tid b/src/ui/ServerListFilter.tid new file mode 100644 index 0000000..3d51bd9 --- /dev/null +++ b/src/ui/ServerListFilter.tid @@ -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]] \ No newline at end of file