removed db maintenance and comment storage as these are in redis now
parent
34a3de1fce
commit
6a8bacd265
|
@ -26,43 +26,6 @@ export class DatabaseService {
|
|||
return db
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts a new comment into the database.
|
||||
* This static method constructs an SQL statement to insert all fields of the Comment object
|
||||
* into the corresponding columns in the 'comments' table.
|
||||
*
|
||||
* @example
|
||||
* await DatabaseService.insertComment({
|
||||
* id: 1,
|
||||
* author_id: 123,
|
||||
* author_name: 'exampleUser',
|
||||
* body: 'This is a comment.',
|
||||
* // More fields as per the Comment type
|
||||
* });
|
||||
*
|
||||
* @param {Comment} comment - The comment object to insert.
|
||||
* @throws {Error} Will throw an error if the insert operation fails.
|
||||
*/
|
||||
public static async insertComment(comment: Comment): Promise<void> {
|
||||
const db = await DatabaseService.getDatabase()
|
||||
const sql = `
|
||||
INSERT INTO comments (
|
||||
id, author_id, author_name, body, body_html, created_utc, deleted_utc,
|
||||
distinguished, downvotes, edited_utc, is_banned, is_bot, is_nsfw, level,
|
||||
permalink, pinned, post_id, replies, reports, score, upvotes
|
||||
) VALUES (
|
||||
?, ?, ?, ?, ?, ?, ?,
|
||||
?, ?, ?, ?, ?, ?, ?,
|
||||
?, ?, ?, ?, ?, ?, ?
|
||||
)
|
||||
`;
|
||||
await db.run(sql, [
|
||||
comment.id, comment.author_id, comment.author_name, comment.body, comment.body_html, comment.created_utc, comment.deleted_utc,
|
||||
comment.distinguished ? 1 : 0, comment.downvotes, comment.edited_utc, comment.is_banned ? 1 : 0, comment.is_bot ? 1 : 0, comment.is_nsfw ? 1 : 0, comment.level,
|
||||
comment.permalink, comment.pinned, comment.post_id, JSON.stringify(comment.replies), JSON.stringify(comment.reports), comment.score, comment.upvotes
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts a new user mention into the database.
|
||||
* This static method adds a record of a user being mentioned in a comment.
|
||||
|
@ -86,24 +49,6 @@ export class DatabaseService {
|
|||
await db.run(sql, [mention.rdrama_comment_id, mention.username, mention.message]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Queries the database for an existing comment by its ID.
|
||||
*
|
||||
* @example
|
||||
* const exists = await DatabaseService.commentExists('123');
|
||||
* console.log(exists ? 'Comment exists.' : 'Comment does not exist.');
|
||||
*
|
||||
* @param {string} commentId - The ID of the comment to search for.
|
||||
* @returns {Promise<boolean>} A boolean indicating whether the comment exists.
|
||||
* @throws {Error} Will throw an error if the query operation fails.
|
||||
*/
|
||||
public static async commentExists(commentId: string): Promise<boolean> {
|
||||
const db = await DatabaseService.getDatabase()
|
||||
const sql = `SELECT 1 FROM comments WHERE id = ?`;
|
||||
const result = await db.get(sql, [commentId]);
|
||||
return !!result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Queries the database to check if a username has been mentioned.
|
||||
*
|
||||
|
@ -122,60 +67,6 @@ export class DatabaseService {
|
|||
return !!result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the last run timestamp for a maintenance task, using an "upsert" approach.
|
||||
*
|
||||
* @example
|
||||
* await DatabaseService.updateLastRunTimestamp('purgeOldComments');
|
||||
*
|
||||
* @param {string} taskName - The name of the maintenance task.
|
||||
* @throws {Error} Will throw an error if the update operation fails.
|
||||
*/
|
||||
public static async getLastRunTimestamp(taskName: string): Promise<Date | null> {
|
||||
const db = await DatabaseService.getDatabase()
|
||||
const result = await db.get(`SELECT last_run FROM maintenance_log WHERE task_name = ?`, [taskName]);
|
||||
return result ? new Date(result.last_run) : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the last run timestamp for a maintenance task, using an "upsert" approach.
|
||||
*
|
||||
* @example
|
||||
* await DatabaseService.updateLastRunTimestamp('purgeOldComments');
|
||||
*
|
||||
* @param {string} taskName - The name of the maintenance task.
|
||||
* @throws {Error} Will throw an error if the update operation fails.
|
||||
*/
|
||||
public static async updateLastRunTimestamp(taskName: string): Promise<void> {
|
||||
// Assumes an "upsert" approach for the maintenance_log table
|
||||
const db = await DatabaseService.getDatabase()
|
||||
await db.run(
|
||||
`INSERT INTO maintenance_log (task_name, last_run)
|
||||
VALUES (?, ?)
|
||||
ON CONFLICT(task_name)
|
||||
DO UPDATE SET last_run = ?`,
|
||||
[taskName, new Date(), new Date()]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes comments from the database older than a specified number of days.
|
||||
*
|
||||
* @example
|
||||
* await DatabaseService.purgeOldComments(30); // Purge comments older than 30 days
|
||||
*
|
||||
* @param {number} days - The age of comments to be purged, in days.
|
||||
* @throws {Error} Will throw an error if the purge operation fails.
|
||||
*/
|
||||
public static async purgeOldComments(days: number = 1): Promise<void> {
|
||||
const db = await DatabaseService.getDatabase()
|
||||
console.log(`Purging comments older than ${days} days...`);
|
||||
await db.run(`
|
||||
DELETE FROM comments
|
||||
WHERE datetime(created_utc, 'unixepoch') < datetime('now', '-${days} days')
|
||||
`);
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts or updates the OAuth token in the database for a specific service.
|
||||
*
|
||||
|
@ -261,9 +152,9 @@ export class DatabaseService {
|
|||
const lastNotificationTime = new Date(result.last_notification_time).getTime();
|
||||
const currentTime = new Date(new Date().toISOString().slice(0, 19).replace('T', ' ')).getTime();
|
||||
const timeElapsed = currentTime - lastNotificationTime;
|
||||
console.log('timeElapsed', timeElapsed)
|
||||
//console.log('timeElapsed', timeElapsed)
|
||||
const cooldownPeriod = +cooldownHours * 60 * 60 * 1000; // Convert hours to milliseconds
|
||||
console.log('cooldownPeriod', cooldownPeriod)
|
||||
//console.log('cooldownPeriod', cooldownPeriod)
|
||||
|
||||
return timeElapsed >= cooldownPeriod;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue