A self hosted solution for privately rating and reviewing different sorts of media
1import path from 'path';
2import { promises as fs } from 'fs';
3
4export async function get_data() {
5 const jsonDirectory = path.join(process.cwd(), 'data');
6 const fileContents = await fs.readFile(jsonDirectory + '/data.json', 'utf8');
7 let parsed = {}
8 try {
9 parsed = JSON.parse(fileContents);
10 } catch {
11 parsed = {"err": "no"}
12 }
13 return parsed
14}
15
16export async function set_data(data: object) {
17 let date = new Date().toUTCString().substring(5, new Date().toUTCString().length - 4).replaceAll(" ", "-");
18
19 const dataDirectory = path.join(process.cwd(), 'data');
20 const backupDirectory = path.join(process.cwd(), 'data', 'backup');
21
22 await fs.writeFile(backupDirectory + `/data-${date}.json`, JSON.stringify(await get_data()));
23 await fs.writeFile(dataDirectory + '/data.json', JSON.stringify(data));
24}