From 84d25077b5cbe92734e390ae3ddf6a85582f7d81 Mon Sep 17 00:00:00 2001 From: Xeltica Date: Fri, 24 Sep 2021 02:46:08 +0900 Subject: [PATCH] wip --- src/backend/const.ts | 4 +++- src/backend/functions/get-scores.ts | 2 +- src/backend/render.ts | 1 - src/backend/services/send-alert.ts | 2 +- src/{backend => common}/functions/format.ts | 20 +++++-------------- .../functions/to-signed-string.ts | 0 6 files changed, 10 insertions(+), 19 deletions(-) rename src/{backend => common}/functions/format.ts (67%) rename src/{backend => common}/functions/to-signed-string.ts (100%) diff --git a/src/backend/const.ts b/src/backend/const.ts index 7c84202..6b172b1 100644 --- a/src/backend/const.ts +++ b/src/backend/const.ts @@ -4,4 +4,6 @@ export default { 'インスタンスの接続エラーにより後続処理が行えなくなる重大な不具合を修正', '全員分の算出が終わるまで、ランキングを非表示に', ], -}; \ No newline at end of file +}; + +export const defaultTemplate = '昨日のMisskeyの活動は\n\nノート: {notesCount}({notesDelta})\nフォロー : {followingCount}({followingDelta})\nフォロワー :{followersCount}({followersDelta})\n\nでした。\n{url}'; diff --git a/src/backend/functions/get-scores.ts b/src/backend/functions/get-scores.ts index 46b4d2d..88b66cd 100644 --- a/src/backend/functions/get-scores.ts +++ b/src/backend/functions/get-scores.ts @@ -1,7 +1,7 @@ import { User } from '../models/entities/user'; import { Score } from '../../common/types/score'; import { api } from '../services/misskey'; -import { toSignedString } from './to-signed-string'; +import { toSignedString } from '../../common/functions/to-signed-string'; /** * ユーザーのスコアを取得します。 diff --git a/src/backend/render.ts b/src/backend/render.ts index 1304f48..9558a42 100644 --- a/src/backend/render.ts +++ b/src/backend/render.ts @@ -1,6 +1,5 @@ import views from 'koa-views'; - import constant from './const'; export const render = views(__dirname + '/views', { diff --git a/src/backend/services/send-alert.ts b/src/backend/services/send-alert.ts index 5ff9425..9d02adb 100644 --- a/src/backend/services/send-alert.ts +++ b/src/backend/services/send-alert.ts @@ -1,5 +1,5 @@ import { User } from '../models/entities/user'; -import { format } from '../functions/format'; +import { format } from '../../common/functions/format'; import { getScores } from '../functions/get-scores'; import { api } from './misskey'; diff --git a/src/backend/functions/format.ts b/src/common/functions/format.ts similarity index 67% rename from src/backend/functions/format.ts rename to src/common/functions/format.ts index 68750f3..75fd615 100644 --- a/src/backend/functions/format.ts +++ b/src/common/functions/format.ts @@ -1,13 +1,13 @@ import { config } from '../../config'; -import { User } from '../models/entities/user'; -import { Score } from '../../common/types/score'; -import { defaultTemplate } from '../../common/default-template'; +import { User } from '../../backend/models/entities/user'; +import { Score } from '../types/score'; +import { defaultTemplate } from '../../backend/const'; +import { IUser } from '../types/user'; /** * 埋め込み変数の型 */ export type Variable = { - description?: string; replace?: string | ((score: Score, user: User) => string); }; @@ -16,43 +16,33 @@ export type Variable = { */ export const variables: Record = { notesCount: { - description: 'ノート数', replace: (score) => String(score.notesCount), }, followingCount: { - description: 'フォロー数', replace: (score) => String(score.followingCount), }, followersCount: { - description: 'フォロワー数', replace: (score) => String(score.followersCount), }, notesDelta: { - description: '昨日とのノート数の差', replace: (score) => String(score.notesDelta), }, followingDelta: { - description: '昨日とのフォロー数の差', replace: (score) => String(score.followingDelta), }, followersDelta: { - description: '昨日とのフォロワー数の差', replace: (score) => String(score.followersDelta), }, url: { - description: 'みす廃アラートのURL', replace: config.url, }, username: { - description: 'ユーザー名', replace: (_, user) => String(user.username), }, host: { - description: '所属するインスタンスのホスト名', replace: (_, user) => String(user.host), }, rating: { - description: 'みす廃レート', replace: (_, user) => String(user.rating), }, }; @@ -65,7 +55,7 @@ const variableRegex = /\{([a-zA-Z0-9_]+?)\}/g; * @param user ユーザー情報 * @returns 生成したテキスト */ -export const format = (score: Score, user: User): string => { +export const format = (score: Score, user: IUser): string => { const template = user.template || defaultTemplate; return template.replace(variableRegex, (m, name) => { const v = variables[name]; diff --git a/src/backend/functions/to-signed-string.ts b/src/common/functions/to-signed-string.ts similarity index 100% rename from src/backend/functions/to-signed-string.ts rename to src/common/functions/to-signed-string.ts