cleaner prune function
This commit is contained in:
parent
135c772723
commit
0a0d9b9802
4 changed files with 40 additions and 34 deletions
|
@ -1,7 +1,6 @@
|
|||
import sqlite3 from "sqlite3";
|
||||
import mkdirp from "mkdirp";
|
||||
import crypto from "crypto";
|
||||
import { FileFilterCallback } from "multer";
|
||||
|
||||
mkdirp.sync("./uploads");
|
||||
mkdirp.sync("./var/db");
|
||||
|
@ -9,7 +8,8 @@ mkdirp.sync("./var/db");
|
|||
export const db = new sqlite3.Database("./var/db/media.db");
|
||||
|
||||
export function createUser(username: string, password: string) {
|
||||
var salt = crypto.randomBytes(16);
|
||||
let salt = crypto.randomBytes(16);
|
||||
|
||||
db.run("INSERT OR IGNORE INTO users (username, hashed_password, salt) VALUES (?, ?, ?)", [
|
||||
username,
|
||||
crypto.pbkdf2Sync(password, salt, 310000, 32, "sha256"),
|
||||
|
@ -20,6 +20,7 @@ export function createUser(username: string, password: string) {
|
|||
export function getPath(id: number | string) {
|
||||
return new Promise((resolve, reject) => {
|
||||
let query: string = `SELECT path FROM media WHERE id = ?`;
|
||||
|
||||
db.get(query, [id], (err: Error, path: object) => {
|
||||
if (err) {reject(err)}
|
||||
resolve(path)
|
||||
|
@ -30,6 +31,7 @@ export function getPath(id: number | string) {
|
|||
export function deleteId(database: string, id: number | string) {
|
||||
return new Promise((resolve, reject) => {
|
||||
let query: string = `DELETE FROM ${database} WHERE id = ?`
|
||||
|
||||
db.run(query, [id], (err: Error) => {
|
||||
if (err) {reject(err); return;}
|
||||
resolve(null)
|
||||
|
@ -37,22 +39,40 @@ export function deleteId(database: string, id: number | string) {
|
|||
})
|
||||
}
|
||||
|
||||
export function expire(database: string, column: string, expiration:number) {
|
||||
return new Promise((resolve, reject) => {
|
||||
let query: string = `SELECT * FROM ${database} WHERE ${column} < ?`;
|
||||
|
||||
db.each(query, [expiration], async (err: Error, row: GenericRow) => {
|
||||
await deleteId(database, row.id)
|
||||
|
||||
resolve(null);
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
export interface GenericRow {
|
||||
id? : number | string,
|
||||
username?: string
|
||||
expire? :Date
|
||||
}
|
||||
|
||||
export interface MediaRow {
|
||||
id? : Number,
|
||||
path: String,
|
||||
id? : number | string,
|
||||
path: string,
|
||||
expire: Date,
|
||||
username?: String
|
||||
username?: string
|
||||
}
|
||||
|
||||
export type MediaParams = [
|
||||
path: String,
|
||||
path: string,
|
||||
expire: Date,
|
||||
username?: String
|
||||
username?: string
|
||||
]
|
||||
|
||||
export interface UserRow {
|
||||
id? : Number,
|
||||
username: String,
|
||||
username: string,
|
||||
hashed_password: any,
|
||||
salt: any
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue