From ad7c60e05a21e296882939b4e8c0c367011965fc Mon Sep 17 00:00:00 2001 From: rooki Date: Wed, 14 Aug 2024 15:50:57 +0200 Subject: [PATCH] Bugfix --- package-lock.json | 8 ++++---- package.json | 2 +- src/commands/logCommands.ts | 3 --- src/commands/utilCommands.ts | 2 +- src/commands/verifyCommands.ts | 2 -- src/helpers/lemmyHelper.ts | 6 +++--- src/helpers/logHelper.ts | 21 +++++++++------------ src/main.ts | 11 +++++++---- src/services/verifiedUserService.ts | 18 +++++++++++++----- 9 files changed, 38 insertions(+), 35 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2f20457..adae8bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "dotenv": "^16.3.1", "express": "^4.18.2", "http-proxy-middleware": "^2.0.6", - "lemmy-js-client": "^0.18.3-rc.3", + "lemmy-js-client": "^0.19.3-alpha.5", "mongodb": "^5.8.1", "move-cli": "^2.0.0", "node-cron": "^3.0.2", @@ -2180,9 +2180,9 @@ } }, "node_modules/lemmy-js-client": { - "version": "0.18.3-rc.3", - "resolved": "https://registry.npmjs.org/lemmy-js-client/-/lemmy-js-client-0.18.3-rc.3.tgz", - "integrity": "sha512-njixgXk4uMU4gGifnljwhSe9Kf445C4wAXcXhtpTtwPPLXpHQgxA1RASMb9Uq4zblfE6nC2JbrAka8y8N2N/Bw==", + "version": "0.19.3-alpha.6", + "resolved": "https://registry.npmjs.org/lemmy-js-client/-/lemmy-js-client-0.19.3-alpha.6.tgz", + "integrity": "sha512-ywDGNKxvqRKxSj6r0+KYi+N91B94UQBb6MJkzpY76QtRZ/dHkLIJQdBkC4uxlBNBZkO4t+XIyqMZ1QfBIA0tow==", "dependencies": { "cross-fetch": "^3.1.5", "form-data": "^4.0.0" diff --git a/package.json b/package.json index 74c7399..e7e126c 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "dotenv": "^16.3.1", "express": "^4.18.2", "http-proxy-middleware": "^2.0.6", - "lemmy-js-client": "^0.18.3-rc.3", + "lemmy-js-client": "^0.19.3-alpha.5", "mongodb": "^5.8.1", "move-cli": "^2.0.0", "node-cron": "^3.0.2", diff --git a/src/commands/logCommands.ts b/src/commands/logCommands.ts index 208dcec..f9c969d 100644 --- a/src/commands/logCommands.ts +++ b/src/commands/logCommands.ts @@ -19,7 +19,6 @@ export default class LogCommands { await interaction.deferReply(); try { const post = await client.getPost({ - auth: getAuth(), id: postId, }); @@ -47,7 +46,6 @@ export default class LogCommands { try { const post = await client.getPost({ - auth: getAuth(), id: postId, }); @@ -74,7 +72,6 @@ export default class LogCommands { await interaction.deferReply(); try { const user = await client.getPersonDetails({ - auth: getAuth(), username: userId, }); diff --git a/src/commands/utilCommands.ts b/src/commands/utilCommands.ts index c9981fc..6f2c4f2 100644 --- a/src/commands/utilCommands.ts +++ b/src/commands/utilCommands.ts @@ -149,7 +149,7 @@ export default class UtilCommands { return; } - const embed = LogHelper.userToEmbed({ person: verifiedUser.lemmyUser }); + const embed = LogHelper.userToEmbed({ person: verifiedUser.lemmyUser }); await interaction.editReply({ content: `**Discord:** <@${verifiedUser.discordUser.id}> diff --git a/src/commands/verifyCommands.ts b/src/commands/verifyCommands.ts index b58822f..1e0f38c 100644 --- a/src/commands/verifyCommands.ts +++ b/src/commands/verifyCommands.ts @@ -174,7 +174,6 @@ export default class VerifyCommands { return; } const user = await client.getPersonDetails({ - auth: getAuth(), username: username, }); @@ -235,7 +234,6 @@ export default class VerifyCommands { interaction.member as GuildMember ); client.createPrivateMessage({ - auth: getAuth(), recipient_id: user.person_view.person.id, content: `Hello ${user.person_view.person.name}! diff --git a/src/helpers/lemmyHelper.ts b/src/helpers/lemmyHelper.ts index 3d4c14c..96ea193 100644 --- a/src/helpers/lemmyHelper.ts +++ b/src/helpers/lemmyHelper.ts @@ -20,7 +20,7 @@ export function sleep(ms: number) { export const instanceUrl = process.env.LEMMY_URL || "https://lemmy.world"; export const isModOfCommunityPersonResponse = async (user: GetPersonDetailsResponse, communityId: number) => { - if(user.person_view.person.admin) return true; + if(user.person_view.is_admin) return true; try { const modIds = user.moderates.map((mod) => mod.community.id); return modIds.includes(communityId); @@ -30,8 +30,8 @@ export const isModOfCommunityPersonResponse = async (user: GetPersonDetailsRespo } }; -export const isModOfCommunityPerson = async (user: Person, communityId: number) => { - if(user.admin) return true; +export const isModOfCommunityPerson = async (user: Person, communityId: number, is_admin: boolean) => { + if(is_admin) return true; try { const commService = typeDiDependencyRegistryEngine.getService(CommunityService); if(!commService) return false; diff --git a/src/helpers/logHelper.ts b/src/helpers/logHelper.ts index 07a13b7..fb22d3b 100644 --- a/src/helpers/logHelper.ts +++ b/src/helpers/logHelper.ts @@ -42,7 +42,7 @@ export default class LogHelper { iconURL: creator.avatar ? creator.avatar : undefined, }) .setURL(`${instanceUrl}/comment/${comment.id}`) - .setTimestamp(new Date(counts.published + "Z")) + .setTimestamp(new Date(counts.published)) .setFooter({ text: `Posted in ${community.name}`, iconURL: community.icon ? `${community.icon}` : undefined, @@ -104,7 +104,7 @@ export default class LogHelper { ? post.body.slice(0, 4000) + "..." : post.body) || "No Body" ) - .setTimestamp(new Date(counts.published + "Z")) + .setTimestamp(new Date(counts.published)) .setFooter({ text: `Posted in ${community.name}`, iconURL: community.icon ? `${community.icon}` : undefined, @@ -171,7 +171,7 @@ export default class LogHelper { iconURL: creator.avatar ? creator.avatar : undefined, }) .setDescription(post_report.reason) - .setTimestamp(new Date(post_report.published + "Z")) + .setTimestamp(new Date(post_report.published)) .setFooter({ text: `Reported in ${community.name}`, iconURL: community.icon ? `${community.icon}` : undefined, @@ -204,7 +204,7 @@ export default class LogHelper { iconURL: creator.avatar ? creator.avatar : undefined, }) .setDescription(comment_report.reason) - .setTimestamp(new Date(comment_report.published + "Z")) + .setTimestamp(new Date(comment_report.published)) .setFooter({ text: `Reported in ${community.name}`, iconURL: community.icon ? `${community.icon}` : undefined, @@ -216,9 +216,11 @@ export default class LogHelper { static userToEmbed({ counts, person, + is_admin, }: { counts?: PersonAggregates; person: Person; + is_admin?: boolean; }) { const embed = new EmbedBuilder() .setTitle("Person Detail") @@ -232,10 +234,10 @@ export default class LogHelper { ), iconURL: person.avatar ? person.avatar : undefined, }) - .setTimestamp(new Date(person.published + "Z")) + .setTimestamp(new Date(person.published)) .addFields([ { name: "ID", value: String(person.id), inline: true }, - { name: "Admin", value: person.admin ? "Yes" : "No", inline: true }, + { name: "Admin", value: is_admin ? "Yes" : is_admin === undefined ? "Unknown" : "No", inline: true }, ]) .setURL( `${instanceUrl}/u/${ @@ -255,12 +257,7 @@ export default class LogHelper { embed.addFields([ { name: "Posts", value: String(counts.post_count), inline: true }, { name: "Comments", value: String(counts.comment_count), inline: true }, - { - name: "Comment Score", - value: String(counts.comment_score), - inline: true, - }, - { name: "Post Score", value: String(counts.post_score), inline: true }, + ]); } diff --git a/src/main.ts b/src/main.ts index d8e1ea2..992ba7f 100644 --- a/src/main.ts +++ b/src/main.ts @@ -23,11 +23,10 @@ process.on("uncaughtException", (error) => { }, 5000); }); - export const extended_guilds: string[] = [ "932286006156222495", - "1128644575276318801" -] + "1128644575276318801", +]; export const bot = new Client({ // To use only guild command @@ -89,6 +88,10 @@ async function start() { username_or_email: process.env.LEMMY_USERNAME || "", }); + client.setHeaders({ + Authorization: `Bearer ${results.jwt}`, + }); + if (!results.jwt) { throw new Error("Could not log in to Lemmy"); } @@ -107,7 +110,7 @@ async function start() { } else { console.log("BOT_TOKEN NOT FOUND. Doesnt starting discord Bot."); } - startServer() + startServer(); typeDiDependencyRegistryEngine.getService(verifiedUserService); } diff --git a/src/services/verifiedUserService.ts b/src/services/verifiedUserService.ts index 0fee535..098c527 100644 --- a/src/services/verifiedUserService.ts +++ b/src/services/verifiedUserService.ts @@ -7,7 +7,7 @@ import { import { Inject, Service } from "typedi"; import "reflect-metadata"; import verifiedUserRepository from "../repository/verifiedUserRepository"; -import { BaseGuildTextChannel, Guild, GuildMember, User } from "discord.js"; +import { BaseGuildTextChannel, DiscordAPIError, Guild, GuildMember, User } from "discord.js"; import { ObjectId } from "mongodb"; import CommunityService from "./communityService"; import BetterQueue from "better-queue"; @@ -92,6 +92,7 @@ class verifiedUserService { } }) .catch((e) => { + console.log("User not found! " + user.discordUser.id); console.log(e); }); await sleep(1000); @@ -104,12 +105,20 @@ class verifiedUserService { `Updated ${user.discordUser.username || user.discordUser.id}` ); } catch (e) { + if(e instanceof DiscordAPIError){ + console.log("Discord API Error"); + console.log(e); + if(e.code === 10007){ + console.log("Removing user from database"); + await this.removeConnection(undefined, undefined, user.discordUser); + } + } console.log(e); } }); cb(null, data); }, - batchDelay: 500, + batchDelay: 500, batchSize: 2, afterProcessDelay: 15000, }); @@ -379,7 +388,6 @@ class verifiedUserService { id: communityId, }); return ( - connection.lemmyUser.admin || (community && community.moderators.some( (m) => m.moderator.id === connection.lemmyUser.id @@ -406,8 +414,8 @@ class verifiedUserService { person.person_view.person.id + (Math.random() * 100) / 100 + Math.random() * - (person.person_view.counts.post_score + - person.person_view.counts.comment_score + + (person.person_view.counts.post_count + + person.person_view.counts.comment_count + Math.random() * 100) ); this.codes.push({