From 7053d9a8b8db54b349f39e3c19a38cee8e4fdb18 Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Mon, 11 Oct 2021 16:34:18 +0200 Subject: :art: gifs --- api/src/util/Message.ts | 1 + 1 file changed, 1 insertion(+) (limited to 'api/src/util') diff --git a/api/src/util/Message.ts b/api/src/util/Message.ts index f8230124..40d96b42 100644 --- a/api/src/util/Message.ts +++ b/api/src/util/Message.ts @@ -25,6 +25,7 @@ import cheerio from "cheerio"; import { MessageCreateSchema } from "../routes/channels/#channel_id/messages"; // TODO: check webhook, application, system author +// TODO: embed gifs/videos/images const LINK_REGEX = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/g; -- cgit 1.5.1 From 8257e2631ae5c4237d08b48b365ce7f367de74c6 Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Thu, 14 Oct 2021 00:32:15 +0200 Subject: :bug: fix migration + autojoin --- api/src/util/Instance.ts | 2 +- util/src/migrations/migrate_db_engine.js | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'api/src/util') diff --git a/api/src/util/Instance.ts b/api/src/util/Instance.ts index a7b3205a..d1d9e1ab 100644 --- a/api/src/util/Instance.ts +++ b/api/src/util/Instance.ts @@ -8,7 +8,7 @@ export async function initInstance() { // TODO: check if any current user is not part of autoJoinGuilds const { autoJoin } = Config.get().guild; - if (autoJoin.enabled && autoJoin.guilds?.length) { + if (autoJoin.enabled && !autoJoin.guilds?.length) { let guild = await Guild.findOne({}); if (!guild) guild = await Guild.createGuild({}); diff --git a/util/src/migrations/migrate_db_engine.js b/util/src/migrations/migrate_db_engine.js index eab30bc4..79e9d86f 100644 --- a/util/src/migrations/migrate_db_engine.js +++ b/util/src/migrations/migrate_db_engine.js @@ -8,6 +8,7 @@ const { Attachment, Ban, Channel, + ConfigEntity, ConnectedAccount, Emoji, Guild, @@ -32,6 +33,7 @@ async function main() { // manually arrange them because of foreign keys const entities = [ + ConfigEntity, User, Guild, Channel, @@ -61,12 +63,13 @@ async function main() { const isSqlite = type.includes("sqlite"); // @ts-ignore - const oldDB = await createConnection({ + const newDB = await createConnection({ type, url: isSqlite ? undefined : process.env.TO, database: isSqlite ? process.env.TO : undefined, entities, - name: "old", + name: "new", + synchronize: true, }); let i = 0; -- cgit 1.5.1 From d4b6840faefed2c73b9939dafc4aff9d3665c6d5 Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Thu, 14 Oct 2021 21:25:17 +0200 Subject: :art: do not automatically create default guild --- api/src/util/Instance.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'api/src/util') diff --git a/api/src/util/Instance.ts b/api/src/util/Instance.ts index d1d9e1ab..7dcd126e 100644 --- a/api/src/util/Instance.ts +++ b/api/src/util/Instance.ts @@ -10,9 +10,9 @@ export async function initInstance() { if (autoJoin.enabled && !autoJoin.guilds?.length) { let guild = await Guild.findOne({}); - if (!guild) guild = await Guild.createGuild({}); - - // @ts-ignore - await Config.set({ guild: { autoJoin: { guilds: [guild.id] } } }); + if (guild) { + // @ts-ignore + await Config.set({ guild: { autoJoin: { guilds: [guild.id] } } }); + } } } -- cgit 1.5.1 From 0ccc478c54f6e6ae8c8e6574e24ab6796738c83a Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Fri, 15 Oct 2021 00:03:05 +0200 Subject: :bug: fix message sticker sending --- api/client_test/index.html | 4 +++- api/src/routes/channels/#channel_id/messages/index.ts | 1 + api/src/routes/guilds/#guild_id/premium.ts | 10 ++++++++++ api/src/util/Message.ts | 5 +++-- util/src/entities/Message.ts | 2 +- 5 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 api/src/routes/guilds/#guild_id/premium.ts (limited to 'api/src/util') diff --git a/api/client_test/index.html b/api/client_test/index.html index 20b431b8..5a795253 100644 --- a/api/client_test/index.html +++ b/api/client_test/index.html @@ -37,6 +37,7 @@ HTML_TIMESTAMP: Date.now(), ALGOLIA_KEY: "aca0d7082e4e63af5ba5917d5e96bed0" }; + GLOBAL_ENV.MEDIA_PROXY_ENDPOINT = location.protocol + "//" + GLOBAL_ENV.CDN_HOST; const localStorage = window.localStorage; // TODO: remote auth // window.GLOBAL_ENV.REMOTE_AUTH_ENDPOINT = window.GLOBAL_ENV.GATEWAY_ENDPOINT.replace(/wss?:/, ""); @@ -105,7 +106,8 @@ } const settings = JSON.parse(localStorage.getItem("UserSettingsStore")); - if (settings && settings.locale === "en") { + if (settings && settings.locale.length <= 2) { + // fix client locale wrong and client not loading at all settings.locale = "en-US"; localStorage.setItem("UserSettingsStore", JSON.stringify(settings)); } diff --git a/api/src/routes/channels/#channel_id/messages/index.ts b/api/src/routes/channels/#channel_id/messages/index.ts index 26bb9e5d..20c102ef 100644 --- a/api/src/routes/channels/#channel_id/messages/index.ts +++ b/api/src/routes/channels/#channel_id/messages/index.ts @@ -63,6 +63,7 @@ export interface MessageCreateSchema { payload_json?: string; file?: any; attachments?: any[]; //TODO we should create an interface for attachments + sticker_ids?: string[]; } // https://discord.com/developers/docs/resources/channel#create-message diff --git a/api/src/routes/guilds/#guild_id/premium.ts b/api/src/routes/guilds/#guild_id/premium.ts new file mode 100644 index 00000000..75361ac6 --- /dev/null +++ b/api/src/routes/guilds/#guild_id/premium.ts @@ -0,0 +1,10 @@ +import { Router, Request, Response } from "express"; +import { route } from "@fosscord/api"; +const router = Router(); + +router.get("/subscriptions", route({}), async (req: Request, res: Response) => { + // TODO: + res.json([]); +}); + +export default router; diff --git a/api/src/util/Message.ts b/api/src/util/Message.ts index 40d96b42..d14d3aa2 100644 --- a/api/src/util/Message.ts +++ b/api/src/util/Message.ts @@ -24,7 +24,7 @@ import fetch from "node-fetch"; import cheerio from "cheerio"; import { MessageCreateSchema } from "../routes/channels/#channel_id/messages"; -// TODO: check webhook, application, system author +// TODO: check webhook, application, system author, stickers // TODO: embed gifs/videos/images const LINK_REGEX = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/g; @@ -46,6 +46,7 @@ export async function handleMessage(opts: MessageOptions): Promise { const message = new Message({ ...opts, + sticker_items: opts.sticker_ids?.map((x) => ({ id: x })), guild_id: channel.guild_id, channel_id: opts.channel_id, attachments: opts.attachments || [], @@ -82,7 +83,7 @@ export async function handleMessage(opts: MessageOptions): Promise { } // TODO: stickers/activity - if (!opts.content && !opts.embeds?.length && !opts.attachments?.length) { + if (!opts.content && !opts.embeds?.length && !opts.attachments?.length && !opts.sticker_ids?.length) { throw new HTTPError("Empty messages are not allowed", 50006); } diff --git a/util/src/entities/Message.ts b/util/src/entities/Message.ts index 63cd6ad3..a4d38315 100644 --- a/util/src/entities/Message.ts +++ b/util/src/entities/Message.ts @@ -127,7 +127,7 @@ export class Message extends BaseClass { mention_channels: Channel[]; @JoinTable({ name: "message_stickers" }) - @ManyToMany(() => Sticker) + @ManyToMany(() => Sticker, { cascade: true, onDelete: "CASCADE" }) sticker_items?: Sticker[]; @OneToMany(() => Attachment, (attachment: Attachment) => attachment.message, { -- cgit 1.5.1 From 841f1d6d2a83d0cdd19dbd92a77e9229acb17610 Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Sun, 17 Oct 2021 00:41:21 +0200 Subject: :art: clean up instances on start --- api/src/util/Instance.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'api/src/util') diff --git a/api/src/util/Instance.ts b/api/src/util/Instance.ts index 7dcd126e..6bddfa98 100644 --- a/api/src/util/Instance.ts +++ b/api/src/util/Instance.ts @@ -1,4 +1,4 @@ -import { Config, Guild } from "@fosscord/util"; +import { Config, Guild, Session } from "@fosscord/util"; export async function initInstance() { // TODO: clean up database and delete tombstone data @@ -15,4 +15,7 @@ export async function initInstance() { await Config.set({ guild: { autoJoin: { guilds: [guild.id] } } }); } } + + // TODO: do no clear sessions for instance cluster + await Session.delete({}); } -- cgit 1.5.1