From a2699e66871a237e124f03b00c8d8e89e75cdbce Mon Sep 17 00:00:00 2001 From: naskya <m@naskya.net> Date: Sat, 20 Apr 2024 23:04:12 +0900 Subject: [PATCH 1/8] chore (backend): fix imports --- packages/backend/src/misc/cache.ts | 2 +- packages/backend/src/server/activitypub.ts | 2 +- .../src/server/file/byte-range-readable.ts | 2 +- .../src/services/chart/charts/active-users.ts | 1 - packages/backend/src/services/fetch-rel-me.ts | 1 + packages/backend/src/services/note/read.ts | 31 ------------------- 6 files changed, 4 insertions(+), 35 deletions(-) diff --git a/packages/backend/src/misc/cache.ts b/packages/backend/src/misc/cache.ts index 30a50e5714..e99b17a5f7 100644 --- a/packages/backend/src/misc/cache.ts +++ b/packages/backend/src/misc/cache.ts @@ -1,6 +1,6 @@ import { redisClient } from "@/db/redis.js"; import { encode, decode } from "msgpackr"; -import { ChainableCommander } from "ioredis"; +import type { ChainableCommander } from "ioredis"; export class Cache<T> { private ttl: number; diff --git a/packages/backend/src/server/activitypub.ts b/packages/backend/src/server/activitypub.ts index 00c8a6babe..71d95709b7 100644 --- a/packages/backend/src/server/activitypub.ts +++ b/packages/backend/src/server/activitypub.ts @@ -32,7 +32,7 @@ import Followers from "./activitypub/followers.js"; import Outbox, { packActivity } from "./activitypub/outbox.js"; import { serverLogger } from "./index.js"; import config from "@/config/index.js"; -import Koa from "koa"; +import type Koa from "koa"; import * as crypto from "node:crypto"; import { inspect } from "node:util"; import type { IActivity } from "@/remote/activitypub/type.js"; diff --git a/packages/backend/src/server/file/byte-range-readable.ts b/packages/backend/src/server/file/byte-range-readable.ts index 96dcbc4a52..9699f95092 100644 --- a/packages/backend/src/server/file/byte-range-readable.ts +++ b/packages/backend/src/server/file/byte-range-readable.ts @@ -1,4 +1,4 @@ -import { Readable, ReadableOptions } from "node:stream"; +import { Readable, type ReadableOptions } from "node:stream"; import { Buffer } from "node:buffer"; import * as fs from "node:fs"; diff --git a/packages/backend/src/services/chart/charts/active-users.ts b/packages/backend/src/services/chart/charts/active-users.ts index 3f4b7e3381..067334005e 100644 --- a/packages/backend/src/services/chart/charts/active-users.ts +++ b/packages/backend/src/services/chart/charts/active-users.ts @@ -1,4 +1,3 @@ -import type { KVs } from "../core.js"; import Chart from "../core.js"; import type { User } from "@/models/entities/user.js"; import { name, schema } from "./entities/active-users.js"; diff --git a/packages/backend/src/services/fetch-rel-me.ts b/packages/backend/src/services/fetch-rel-me.ts index c9a37d1c88..70faa01aa7 100644 --- a/packages/backend/src/services/fetch-rel-me.ts +++ b/packages/backend/src/services/fetch-rel-me.ts @@ -1,4 +1,5 @@ import { Window } from "happy-dom"; +import type { HTMLAnchorElement, HTMLLinkElement } from "happy-dom"; import config from "@/config/index.js"; async function getRelMeLinks(url: string): Promise<string[]> { diff --git a/packages/backend/src/services/note/read.ts b/packages/backend/src/services/note/read.ts index 3c49501416..7eab66c41b 100644 --- a/packages/backend/src/services/note/read.ts +++ b/packages/backend/src/services/note/read.ts @@ -3,7 +3,6 @@ import type { Note } from "@/models/entities/note.js"; import type { User } from "@/models/entities/user.js"; import { NoteUnreads, - Users, Followings, ChannelFollowings, } from "@/models/index.js"; @@ -120,34 +119,4 @@ export default async function ( ]), }); } - - // if (readAntennaNotes.length > 0) { - // await AntennaNotes.update( - // { - // antennaId: In(myAntennas.map((a) => a.id)), - // noteId: In(readAntennaNotes.map((n) => n.id)), - // }, - // { - // read: true, - // }, - // ); - - // // TODO: まとめてクエリしたい - // for (const antenna of myAntennas) { - // const count = await AntennaNotes.countBy({ - // antennaId: antenna.id, - // read: false, - // }); - - // if (count === 0) { - // publishMainStream(userId, "readAntenna", antenna); - // } - // } - - // Users.getHasUnreadAntenna(userId).then((unread) => { - // if (!unread) { - // publishMainStream(userId, "readAllAntennas"); - // } - // }); - // } } From 488323cc8ec252447907a4b7e9f19a7b7ef7c24e Mon Sep 17 00:00:00 2001 From: naskya <m@naskya.net> Date: Sun, 21 Apr 2024 05:57:05 +0900 Subject: [PATCH 2/8] chore: format --- packages/backend/src/services/note/read.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/packages/backend/src/services/note/read.ts b/packages/backend/src/services/note/read.ts index 7eab66c41b..d7fda27a85 100644 --- a/packages/backend/src/services/note/read.ts +++ b/packages/backend/src/services/note/read.ts @@ -1,11 +1,7 @@ import { publishMainStream } from "@/services/stream.js"; import type { Note } from "@/models/entities/note.js"; import type { User } from "@/models/entities/user.js"; -import { - NoteUnreads, - Followings, - ChannelFollowings, -} from "@/models/index.js"; +import { NoteUnreads, Followings, ChannelFollowings } from "@/models/index.js"; import { Not, IsNull, In } from "typeorm"; import type { Channel } from "@/models/entities/channel.js"; import { readNotificationByQuery } from "@/server/api/common/read-notification.js"; From 2760e7feeeba3d68a8770d3458adf3a53a22dfae Mon Sep 17 00:00:00 2001 From: naskya <m@naskya.net> Date: Sun, 21 Apr 2024 06:40:53 +0900 Subject: [PATCH 3/8] chore (minor): use ** in lieu of Math.pow --- packages/backend/src/queue/initialize.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend/src/queue/initialize.ts b/packages/backend/src/queue/initialize.ts index 0f9c83132f..a874005fbd 100644 --- a/packages/backend/src/queue/initialize.ts +++ b/packages/backend/src/queue/initialize.ts @@ -34,7 +34,7 @@ export function initialize<T>(name: string, limitPerSec = -1) { function apBackoff(attemptsMade: number, err: Error) { const baseDelay = 60 * 1000; // 1min const maxBackoff = 8 * 60 * 60 * 1000; // 8hours - let backoff = (Math.pow(2, attemptsMade) - 1) * baseDelay; + let backoff = (2 ** attemptsMade - 1) * baseDelay; backoff = Math.min(backoff, maxBackoff); backoff += Math.round(backoff * Math.random() * 0.2); return backoff; From dc02a077742bfc81bba089acd69520f189d64fda Mon Sep 17 00:00:00 2001 From: mei23 <m@m544.net> Date: Sun, 21 Apr 2024 09:29:00 +0900 Subject: [PATCH 4/8] fix (backend): add Cache-Control to Bull Dashboard --- packages/backend/src/server/web/index.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/backend/src/server/web/index.ts b/packages/backend/src/server/web/index.ts index 939fcfab14..4473165be7 100644 --- a/packages/backend/src/server/web/index.ts +++ b/packages/backend/src/server/web/index.ts @@ -54,6 +54,10 @@ app.use(async (ctx, next) => { const url = decodeURI(ctx.path); if (url === bullBoardPath || url.startsWith(`${bullBoardPath}/`)) { + if (!url.startsWith(`${bullBoardPath}/static/`)) { + ctx.set("Cache-Control", "private, max-age=0, must-revalidate"); + } + const token = ctx.cookies.get("token"); if (token == null) { ctx.status = 401; From d1e898c0d0eb1d9258bffed10816cce510847077 Mon Sep 17 00:00:00 2001 From: naskya <m@naskya.net> Date: Sun, 21 Apr 2024 09:32:05 +0900 Subject: [PATCH 5/8] docs: update changelog --- docs/changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/changelog.md b/docs/changelog.md index a818e09835..860dfbad8c 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -5,6 +5,10 @@ Critical security updates are indicated by the :warning: icon. - Server administrators should check [notice-for-admins.md](./notice-for-admins.md) as well. - Third-party client/bot developers may want to check [api-change.md](./api-change.md) as well. +## Unreleased + +- Fix bugs + ## [v20240413](https://firefish.dev/firefish/firefish/-/merge_requests/10741/commits) - Add "Media" tab to user page From dac4043dd9bdca046c4a60b1a1662abdfff76dde Mon Sep 17 00:00:00 2001 From: naskya <m@naskya.net> Date: Sun, 21 Apr 2024 10:09:45 +0900 Subject: [PATCH 6/8] v20240421 --- docs/changelog.md | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/changelog.md b/docs/changelog.md index 860dfbad8c..70f8b34fbe 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -5,7 +5,7 @@ Critical security updates are indicated by the :warning: icon. - Server administrators should check [notice-for-admins.md](./notice-for-admins.md) as well. - Third-party client/bot developers may want to check [api-change.md](./api-change.md) as well. -## Unreleased +## [v20240421](https://firefish.dev/firefish/firefish/-/merge_requests/10756/commits) - Fix bugs diff --git a/package.json b/package.json index dd0766bc7b..a62fae09f0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "firefish", - "version": "20240413", + "version": "20240421", "repository": { "type": "git", "url": "https://firefish.dev/firefish/firefish.git" From 9f3396af21bf459394287cdf16656a72065a8b5b Mon Sep 17 00:00:00 2001 From: naskya <m@naskya.net> Date: Sun, 21 Apr 2024 10:30:13 +0900 Subject: [PATCH 7/8] chore (backend): translate Japanese comments into English --- packages/backend/src/services/logger.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/backend/src/services/logger.ts b/packages/backend/src/services/logger.ts index e53279e31c..3fcf28671e 100644 --- a/packages/backend/src/services/logger.ts +++ b/packages/backend/src/services/logger.ts @@ -144,12 +144,12 @@ export default class Logger { } } + // Used when the process can't continue (fatal error) public error( x: string | Error, data?: Record<string, any> | null, important = false, ): void { - // 実行を継続できない状況で使う if (x instanceof Error) { data = data || {}; data.e = x; @@ -166,30 +166,30 @@ export default class Logger { } } + // Used when the process can continue but some action should be taken public warn( message: string, data?: Record<string, any> | null, important = false, ): void { - // 実行を継続できるが改善すべき状況で使う this.log("warning", message, data, important); } + // Used when something is successful public succ( message: string, data?: Record<string, any> | null, important = false, ): void { - // 何かに成功した状況で使う this.log("success", message, data, important); } + // Used for debugging (information necessary for developers but unnecessary for users) public debug( message: string, data?: Record<string, any> | null, important = false, ): void { - // Used for debugging (information necessary for developers but unnecessary for users) // Fixed if statement is ignored when logLevel includes debug if ( config.logLevel?.includes("debug") || @@ -200,12 +200,12 @@ export default class Logger { } } + // Other generic logs public info( message: string, data?: Record<string, any> | null, important = false, ): void { - // それ以外 this.log("info", message, data, important); } } From 28f7ac1acd835ea2059289b060ec6b74b7609929 Mon Sep 17 00:00:00 2001 From: naskya <m@naskya.net> Date: Sun, 21 Apr 2024 10:31:00 +0900 Subject: [PATCH 8/8] fix (backend): typo --- packages/backend/src/services/logger.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/backend/src/services/logger.ts b/packages/backend/src/services/logger.ts index 3fcf28671e..f4b4454ef8 100644 --- a/packages/backend/src/services/logger.ts +++ b/packages/backend/src/services/logger.ts @@ -28,9 +28,9 @@ export default class Logger { if (config.syslog) { this.syslogClient = new SyslogPro.RFC5424({ - applacationName: "Firefish", + applicationName: "Firefish", timestamp: true, - encludeStructuredData: true, + includeStructuredData: true, color: true, extendedColor: true, server: {