39 lines
820 B
TypeScript
39 lines
820 B
TypeScript
import 'dotenv/config';
|
|
|
|
import { createLog } from '../log';
|
|
import type { Logger } from 'winston';
|
|
import { Database } from 'sqlite3';
|
|
import { envString } from '../env';
|
|
|
|
interface Photos {
|
|
name : string;
|
|
hash : string;
|
|
width : number;
|
|
height : number;
|
|
discovered ?: number;
|
|
posted? : boolean;
|
|
score? : number;
|
|
}
|
|
|
|
export class DB {
|
|
private db : Database;
|
|
private log : Logger;
|
|
|
|
constructor () {
|
|
this.log = createLog('db');
|
|
this.db = new Database(envString('DB', 'data/site.db'));
|
|
}
|
|
|
|
private async run (query : string, args : any[] = null) {
|
|
return new Promise((resolve : Function, reject : Function) => {
|
|
return this.db.run(query, args, (err : Error, rows : any[]) => {
|
|
if (err) return reject(err);
|
|
return resolve(true);
|
|
});
|
|
});
|
|
}
|
|
|
|
}
|
|
|
|
module.exports = { DB };
|
|
export type { Photos }; |