From d92200a6d6a81ac0c6a739f0297935bb060a974f Mon Sep 17 00:00:00 2001 From: dogcraft Date: Sun, 10 Jul 2022 10:02:46 +0800 Subject: fix: QueryFailedError when logging user's IPs (#8973) * fix QueryFailedError when logging user's IPs * use `orIgnore` to fix --- packages/backend/src/server/api/api-handler.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'packages/backend/src/server') diff --git a/packages/backend/src/server/api/api-handler.ts b/packages/backend/src/server/api/api-handler.ts index 34ff970b4c..ec71ddd2c0 100644 --- a/packages/backend/src/server/api/api-handler.ts +++ b/packages/backend/src/server/api/api-handler.ts @@ -68,11 +68,11 @@ export default (endpoint: IEndpoint, ctx: Koa.Context) => new Promise((res } try { - UserIps.insert({ + UserIps.createQueryBuilder().insert().values({ createdAt: new Date(), userId: user.id, ip: ip, - }); + }).orIgnore(true).execute(); } catch { } } -- cgit v1.2.3-freya From a5648fb07f16be9b6f6ad4ad53f6cefe4292becd Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 11 Jul 2022 23:13:23 +0900 Subject: re: update mfm-js 0.23.0-canary.1 --- packages/backend/src/server/api/endpoints/i/update.ts | 2 +- packages/client/package.json | 2 +- packages/client/src/components/mfm.ts | 2 +- packages/client/yarn.lock | 12 ++++++------ 4 files changed, 9 insertions(+), 9 deletions(-) (limited to 'packages/backend/src/server') diff --git a/packages/backend/src/server/api/endpoints/i/update.ts b/packages/backend/src/server/api/endpoints/i/update.ts index 122120f275..3c2f1cea0d 100644 --- a/packages/backend/src/server/api/endpoints/i/update.ts +++ b/packages/backend/src/server/api/endpoints/i/update.ts @@ -214,7 +214,7 @@ export default define(meta, paramDef, async (ps, _user, token) => { const newDescription = profileUpdates.description === undefined ? profile.description : profileUpdates.description; if (newName != null) { - const tokens = mfm.parsePlain(newName); + const tokens = mfm.parseSimple(newName); emojis = emojis.concat(extractCustomEmojisFromMfm(tokens!)); } diff --git a/packages/client/package.json b/packages/client/package.json index f65e70870e..7743e9e9b0 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -40,7 +40,7 @@ "json5": "2.2.1", "katex": "0.15.6", "matter-js": "0.18.0", - "mfm-js": "0.22.1", + "mfm-js": "0.23.0-canary.1", "misskey-js": "0.0.14", "mocha": "10.0.0", "ms": "2.1.3", diff --git a/packages/client/src/components/mfm.ts b/packages/client/src/components/mfm.ts index f7dbca0d30..14ec5ffc84 100644 --- a/packages/client/src/components/mfm.ts +++ b/packages/client/src/components/mfm.ts @@ -47,7 +47,7 @@ export default defineComponent({ render() { if (this.text == null || this.text === '') return; - const ast = (this.plain ? mfm.parsePlain : mfm.parse)(this.text, { fnNameList: MFM_TAGS }); + const ast = (this.plain ? mfm.parseSimple : mfm.parse)(this.text, { fnNameList: MFM_TAGS }); const validTime = (t: string | null | undefined) => { if (t == null) return null; diff --git a/packages/client/yarn.lock b/packages/client/yarn.lock index e5459b8dda..cfb9645e7a 100644 --- a/packages/client/yarn.lock +++ b/packages/client/yarn.lock @@ -2866,12 +2866,12 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -mfm-js@0.22.1: - version "0.22.1" - resolved "https://registry.yarnpkg.com/mfm-js/-/mfm-js-0.22.1.tgz#ad5f0b95cc903ca5a5e414e2edf64ac4648dc8c2" - integrity sha512-UV5zvDKlWPpBFeABhyCzuOTJ3RwrNrmVpJ+zz/dFX6D/ntEywljgxkfsLamcy0ZSwUAr0O+WQxGHvAwyxUgsAQ== +mfm-js@0.23.0-canary.1: + version "0.23.0-canary.1" + resolved "https://registry.yarnpkg.com/mfm-js/-/mfm-js-0.23.0-canary.1.tgz#1b7b7635f18bed9776054406b72e6bd613c8d0eb" + integrity sha512-SkMrW1rQAv+mFGtLKN9DSv6vxSREDu8ChmkBl1Ch5sQfp47BhuvcRg5EKGmt3WAQRAOylXYMg8wVYR7C5BHKeA== dependencies: - twemoji-parser "14.0.x" + twemoji-parser "14.0.0" micromatch@^4.0.2: version "4.0.2" @@ -4085,7 +4085,7 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= -twemoji-parser@14.0.0, twemoji-parser@14.0.x: +twemoji-parser@14.0.0: version "14.0.0" resolved "https://registry.yarnpkg.com/twemoji-parser/-/twemoji-parser-14.0.0.tgz#13dabcb6d3a261d9efbf58a1666b182033bf2b62" integrity sha512-9DUOTGLOWs0pFWnh1p6NF+C3CkQ96PWmEFwhOVmT3WbecRC+68AIqpsnJXygfkFcp4aXbOp8Dwbhh/HQgvoRxA== -- cgit v1.2.3-freya From 714c80bf3f29b92dc249ce64be9a04bcaba48997 Mon Sep 17 00:00:00 2001 From: Johann150 Date: Wed, 13 Jul 2022 14:06:24 +0200 Subject: enhance: read theme color nodeinfo (#8977) * provide theme color in nodeinfo metadata * read theme color from nodeinfo Prefer to read the theme color from the nodeinfo since it is more performant than performing selector search on a DOM. --- packages/backend/src/server/nodeinfo.ts | 1 + packages/backend/src/services/fetch-instance-metadata.ts | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'packages/backend/src/server') diff --git a/packages/backend/src/server/nodeinfo.ts b/packages/backend/src/server/nodeinfo.ts index 13a362a75f..f139d203d2 100644 --- a/packages/backend/src/server/nodeinfo.ts +++ b/packages/backend/src/server/nodeinfo.ts @@ -78,6 +78,7 @@ const nodeinfo2 = async () => { enableEmail: meta.enableEmail, enableServiceWorker: meta.enableServiceWorker, proxyAccountName: proxyAccount ? proxyAccount.username : null, + themeColor: meta.themeColor || '#86b300', }, }; }; diff --git a/packages/backend/src/services/fetch-instance-metadata.ts b/packages/backend/src/services/fetch-instance-metadata.ts index 029c388dc2..ee1245132a 100644 --- a/packages/backend/src/services/fetch-instance-metadata.ts +++ b/packages/backend/src/services/fetch-instance-metadata.ts @@ -34,7 +34,7 @@ export async function fetchInstanceMetadata(instance: Instance, force = false): const [favicon, icon, themeColor, name, description] = await Promise.all([ fetchFaviconUrl(instance, dom).catch(() => null), fetchIconUrl(instance, dom, manifest).catch(() => null), - getThemeColor(dom, manifest).catch(() => null), + getThemeColor(info, dom, manifest).catch(() => null), getSiteName(info, dom, manifest).catch(() => null), getDescription(info, dom, manifest).catch(() => null), ]); @@ -208,8 +208,8 @@ async function fetchIconUrl(instance: Instance, doc: DOMWindow['document'] | nul return null; } -async function getThemeColor(doc: DOMWindow['document'] | null, manifest: Record | null): Promise { - const themeColor = doc?.querySelector('meta[name="theme-color"]')?.getAttribute('content') || manifest?.theme_color; +async function getThemeColor(info: NodeInfo | null, doc: DOMWindow['document'] | null, manifest: Record | null): Promise { + const themeColor = info?.metadata?.themeColor || doc?.querySelector('meta[name="theme-color"]')?.getAttribute('content') || manifest?.theme_color; if (themeColor) { const color = new tinycolor(themeColor); -- cgit v1.2.3-freya From ae92378689e73895c3a250419a1ad874b25e40e3 Mon Sep 17 00:00:00 2001 From: tamaina Date: Wed, 13 Jul 2022 21:07:49 +0900 Subject: fix(sw, notification): Don't issue an event if there is no affect (#8979) * test * ]v] --- packages/backend/src/server/api/common/read-notification.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'packages/backend/src/server') diff --git a/packages/backend/src/server/api/common/read-notification.ts b/packages/backend/src/server/api/common/read-notification.ts index 17dd8e6f02..cf993ade3e 100644 --- a/packages/backend/src/server/api/common/read-notification.ts +++ b/packages/backend/src/server/api/common/read-notification.ts @@ -12,13 +12,15 @@ export async function readNotification( if (notificationIds.length === 0) return; // Update documents - await Notifications.update({ + const result = await Notifications.update({ id: In(notificationIds), isRead: false, }, { isRead: true, }); + if (result.affected === 0) return; + if (!await Users.getHasUnreadNotification(userId)) return postReadAllNotifications(userId); else return postReadNotifications(userId, notificationIds); } -- cgit v1.2.3-freya