Implement Dynamic Presence #19

## Added Dynamic Presence to Functions
- Added default to startup
- Added to RSS manager
- Added to interaction create event
- Added to message create function

## Related Work #15
### LinkCop
- Updated with new regex string and logic approved and restricted channels
- Implemented new config storage
### Guild Member Add (event)
- Implemented new config storage for welcome channel
### Message Create (event)
- Implemented new config storage for ignored channel IDs
- Improved the logic for gpt interactions to reset presence
### Mongo Config Wrappers
- Updated logic in order to handle different data types the same way
- Updated set functions to wrap the value in the key
- Updated get functions to return the keyyed value ie `config[key]`
This commit is contained in:
Logan Cusano
2024-08-11 20:13:57 -04:00
parent d18ffd4c11
commit 94374b4d45
7 changed files with 73 additions and 30 deletions

View File

@@ -10,6 +10,7 @@ import { DebugBuilder } from "../modules/debugger.mjs";
import { removeSource } from "./sourceManager.mjs";
import UserAgent from "user-agents";
import Parser from "rss-parser";
import PresenceManager from "../discordBot/modules/presenceManager.mjs";
import dotenv from "dotenv";
dotenv.config();
@@ -41,6 +42,10 @@ export const returnHash = (...stringsIncluded) => {
export const updateFeeds = async (client) => {
if (!client) throw new Error("Client object not passed");
// Setup presence manager
const feedPm = new PresenceManager(client);
await feedPm.setPresence("online", "WATCHING", "for RSS feed updates");
try {
const records = await getAllFeeds();
@@ -106,6 +111,7 @@ export const updateFeeds = async (client) => {
await Promise.all(sourcePromiseArray);
log.DEBUG("All sources processed");
await feedPm.resetToDefault();
} catch (error) {
log.ERROR("Error updating feeds:", error);
throw error;