Skip to content

Commit b13e43d

Browse files
authored
feat!: Remove notification feature (#126)
1 parent 7170c11 commit b13e43d

18 files changed

+48
-671
lines changed

bun.lockb

-5.6 KB
Binary file not shown.

eslint.config.mjs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
// @ts-check
22

33
import eslint from "@eslint/js";
4-
import tsEslint from "typescript-eslint";
54
import globals from "globals";
6-
import react from "eslint-plugin-react";
7-
import prettier from "eslint-plugin-prettier/recommended";
85
import jsdoc from "eslint-plugin-jsdoc";
6+
import prettier from "eslint-plugin-prettier/recommended";
7+
import react from "eslint-plugin-react";
8+
import tsEslint from "typescript-eslint";
99

1010
export default tsEslint.config(
1111
eslint.configs.recommended,

package.json

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@
88
"license": "Apache-2.0",
99
"private": true,
1010
"scripts": {
11-
"dev:bot": "ts-node --esm src/bot/apps/release.ts",
11+
"dev:bot": "bun --inspect src/bot/apps/release.ts",
1212
"build:bot": "esbuild --outfile=dist/bundle.js --format=esm --sourcemap --bundle src/bot/apps/release.ts --platform=node --target=node16 --external:./node_modules/*",
1313
"start:bot": "node dist/bundle.js",
1414
"dev:web": "next ./src/web",
1515
"build:web": "next build ./src/web",
1616
"start:web": "next start ./src/web",
1717
"test": "vitest run",
18-
"lint": "eslint './src/**/*.{ts,tsx}'",
19-
"lint:fix": "eslint --fix --ext .ts,.tsx --ignore-path .gitignore --ignore-path .eslintignore ./src/"
18+
"lint": "eslint .",
19+
"lint:fix": "eslint --fix ."
2020
},
2121
"dependencies": {
2222
"@babel/core": "^7.22.9",
@@ -45,7 +45,6 @@
4545
"eslint-plugin-prettier": "^5.0.0",
4646
"eslint-plugin-react": "^7.33.0",
4747
"prettier": "^3.0.0",
48-
"ts-node": "^10.9.1",
4948
"typescript": "^5.1.6",
5049
"typescript-eslint": "^8.0.0",
5150
"vitest": "^3.0.0"

src/bot/adaptors/message-convert.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1+
import { EmbedBuilder } from "discord.js";
12
import type { EmbedMessage } from "../model/message.js";
2-
import { MessageEmbed } from "discord.js";
33

44
export const intoMessageEmbed = ({
55
author,
@@ -9,8 +9,8 @@ export const intoMessageEmbed = ({
99
footer,
1010
title,
1111
url,
12-
}: EmbedMessage): MessageEmbed => {
13-
const embed = new MessageEmbed();
12+
}: EmbedMessage): EmbedBuilder => {
13+
const embed = new EmbedBuilder();
1414
if (author) {
1515
embed.setAuthor({
1616
name: author.name,

src/bot/adaptors/mock/plain-db.ts

Lines changed: 0 additions & 110 deletions
This file was deleted.

src/bot/adaptors/mock/user-db.ts

Lines changed: 0 additions & 46 deletions
This file was deleted.

src/bot/adaptors/pagination.ts

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,33 @@
1-
import { MessageActionRow, MessageButton, MessageEmbed } from "discord.js";
1+
import {
2+
ActionRowBuilder,
3+
ButtonBuilder,
4+
ButtonStyle,
5+
EmbedBuilder,
6+
} from "discord.js";
27
import type { EmbedPage } from "../model/message.js";
38
import { intoMessageEmbed } from "./message-convert.js";
49

5-
const CONTROLS = new MessageActionRow().addComponents(
6-
new MessageButton()
7-
.setStyle("SECONDARY")
10+
const CONTROLS = new ActionRowBuilder().addComponents(
11+
new ButtonBuilder()
12+
.setStyle(ButtonStyle.Secondary)
813
.setCustomId("prev")
914
.setLabel("戻る")
1015
.setEmoji("⏪"),
11-
new MessageButton()
12-
.setStyle("SECONDARY")
16+
new ButtonBuilder()
17+
.setStyle(ButtonStyle.Secondary)
1318
.setCustomId("next")
1419
.setLabel("進む")
1520
.setEmoji("⏩"),
1621
);
17-
const DISABLED_CONTROLS = new MessageActionRow().addComponents(
18-
new MessageButton()
19-
.setStyle("SECONDARY")
22+
const DISABLED_CONTROLS = new ActionRowBuilder().addComponents(
23+
new ButtonBuilder()
24+
.setStyle(ButtonStyle.Secondary)
2025
.setCustomId("prev")
2126
.setLabel("戻る")
2227
.setEmoji("⏪")
2328
.setDisabled(true),
24-
new MessageButton()
25-
.setStyle("SECONDARY")
29+
new ButtonBuilder()
30+
.setStyle(ButtonStyle.Secondary)
2631
.setCustomId("next")
2732
.setLabel("進む")
2833
.setEmoji("⏩")
@@ -41,7 +46,7 @@ const pagesFooter = (currentPage: number, pagesLength: number) =>
4146

4247
const controlsHandler = (
4348
pagesLength: number,
44-
generatePage: (index: number) => MessageEmbed,
49+
generatePage: (index: number) => EmbedBuilder,
4550
) => {
4651
let currentPage = 0;
4752

@@ -70,15 +75,15 @@ const controlsHandler = (
7075

7176
export interface PageEditor {
7277
(message: {
73-
embeds?: MessageEmbed[];
74-
components?: MessageActionRow[];
78+
embeds?: EmbedBuilder[];
79+
components?: ActionRowBuilder[];
7580
}): Promise<void>;
7681
}
7782

7883
export interface PagesSender {
7984
send(message: {
80-
embeds: MessageEmbed[];
81-
components: MessageActionRow[];
85+
embeds: EmbedBuilder[];
86+
components: ActionRowBuilder[];
8287
}): Promise<void>;
8388
onClick(handler: (buttonId: ButtonId, edit: PageEditor) => void): void;
8489
onFinish(handler: (edit: PageEditor) => void): void;

src/bot/apps/release.ts

Lines changed: 14 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
1-
import { Client, Intents, Message as RawDiscordMessage } from "discord.js";
2-
import { CommandProcessor, connectProcessors } from "../runners/connector.js";
31
import {
4-
Message,
2+
Client,
3+
GatewayIntentBits,
4+
Message as RawDiscordMessage,
5+
} from "discord.js";
6+
import {
7+
type CommandProcessor,
8+
connectProcessors,
9+
} from "../runners/connector.js";
10+
import {
11+
type Message,
512
bringBranch,
613
bringIssue,
714
bringPR,
@@ -10,20 +17,15 @@ import {
1017
error,
1118
flavor,
1219
} from "../services/command.js";
13-
import { Analecta } from "../model/analecta.js";
20+
import type { Analecta } from "../model/analecta.js";
1421
import { DiscordMessage } from "../adaptors/discord-message.js";
15-
import { FaunaDB } from "../adaptors/fauna-db.js";
1622
import { GitHubApi } from "../adaptors/github-api.js";
1723
import {
1824
// Newline for format
1925
InteractionsCommandReceiver,
2026
} from "../adaptors/interactions-command.js";
21-
import { Scheduler } from "../runners/scheduler.js";
2227
import { TomlLoader } from "../adaptors/toml-loader.js";
2328
import dotenv from "dotenv";
24-
import { markAsRead } from "../services/notify/mark-as-read.js";
25-
import { subscribeNotification } from "../services/notify/subscribe.js";
26-
import { unsubNotification } from "../services/notify/unsubscribe.js";
2729

2830
dotenv.config();
2931

@@ -46,20 +48,17 @@ const messageHandler =
4648
const loader = new TomlLoader(
4749
process.env.TOML_PATH || "./analecta/laffey.toml",
4850
);
49-
const db = new FaunaDB(process.env.FAUNA_SECRET || "UNSET");
5051
const analecta = await loader.load();
5152

5253
const client = new Client({
5354
intents: [
54-
Intents.FLAGS.DIRECT_MESSAGES,
55-
Intents.FLAGS.GUILDS,
56-
Intents.FLAGS.GUILD_MESSAGES,
55+
GatewayIntentBits.DirectMessages,
56+
GatewayIntentBits.Guilds,
57+
GatewayIntentBits.GuildMessages,
5758
],
5859
});
5960
const query = new GitHubApi();
6061

61-
const scheduler = new Scheduler();
62-
6362
const builtProcs = connectProcessors([
6463
flavor(
6564
new RegExp(analecta.CallPattern, "u"),
@@ -71,16 +70,6 @@ const messageHandler =
7170
bringBranch(query, analecta),
7271
bringRepo(query, analecta),
7372
createIssue(query, analecta),
74-
subscribeNotification({
75-
db,
76-
registry: db,
77-
query,
78-
associator: query,
79-
analecta,
80-
scheduler,
81-
}),
82-
unsubNotification(db, analecta, scheduler),
83-
markAsRead(db, query, analecta),
8473
error(analecta),
8574
]);
8675

0 commit comments

Comments
 (0)