Fix all dates

This commit is contained in:
mmcwilliams 2024-12-21 01:04:22 -05:00
parent b376070ca6
commit 86e60cb25d
6 changed files with 98 additions and 1 deletions

16
dist/db/index.js vendored
View File

@ -99,6 +99,22 @@ class DB {
}
return rows;
}
async update(photo, fields) {
if (fields.indexOf('updated') === -1) {
fields.push('updated');
photo.updated = Date.now();
}
const values = fields.map(el => photo[el]);
const query = `UPDATE photos SET ${fields.map(el => { return el + ' = ?'; }).join(',')} WHERE id = ?;`;
values.push(photo.id);
try {
await this.run(query, values);
}
catch (err) {
this.log.error(`Error updating photo with columns: ${fields.join(', ')}`, err);
this.log.info(query);
}
}
async getBsky(random = false) {
const order = random ? 'RANDOM()' : 'score ASC, created DESC';
const query = `SELECT * FROM photos WHERE bsky = 0 ORDER BY ${order} LIMIT 1;`;

File diff suppressed because one or more lines are too long

32
dist/fix.js vendored Normal file
View File

@ -0,0 +1,32 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
require("dotenv/config");
const log_1 = require("./log");
const db_1 = require("./db");
async function fixDates() {
const log = (0, log_1.createLog)('fixDates');
const db = new db_1.DB();
let rows;
let parts;
let d;
try {
rows = await db.getAll();
}
catch (err) {
log.error(err);
}
for (let row of rows) {
parts = row.name.split('_');
d = new Date(parseInt(parts[0]), parseInt(parts[1]) - 1, parseInt(parts[2]));
row.created = +d;
try {
await db.update(row, ['created']);
log.info(`Updated row ${row.id}: created == ${row.created}`);
}
catch (err) {
log.error('Error updating row', err);
}
}
}
fixDates();
//# sourceMappingURL=fix.js.map

1
dist/fix.js.map vendored Normal file
View File

@ -0,0 +1 @@
{"version":3,"file":"fix.js","sourceRoot":"","sources":["../src/fix.ts"],"names":[],"mappings":";;AAAA,yBAAuB;AACvB,+BAAkC;AAElC,6BAA0B;AAE1B,KAAK,UAAU,QAAQ;IACtB,MAAM,GAAG,GAAY,IAAA,eAAS,EAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,EAAE,GAAQ,IAAI,OAAE,EAAE,CAAC;IACzB,IAAI,IAAY,CAAC;IACjB,IAAI,KAAgB,CAAC;IACrB,IAAI,CAAQ,CAAC;IAEb,IAAI,CAAC;QACJ,IAAI,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IACD,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACtB,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,GAAG,CAAC,OAAO,GAAG,CAAE,CAAC,CAAC;QAClB,IAAI,CAAC;YACJ,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;YAClC,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,gBAAgB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC;IACF,CAAC;AACF,CAAC;AAED,QAAQ,EAAE,CAAC"}

View File

@ -11,6 +11,7 @@ interface LatLng {
}
interface Photo {
[key: string] : any;
id : string;
name : string;
description : string;
@ -131,6 +132,22 @@ export class DB {
return rows;
}
public async update (photo : Photo, fields : string[]) {
if (fields.indexOf('updated') === -1) {
fields.push('updated');
photo.updated = Date.now();
}
const values : any[] = fields.map(el => photo[el]);
const query : string = `UPDATE photos SET ${fields.map(el => { return el + ' = ?'}).join(',')} WHERE id = ?;`;
values.push(photo.id);
try {
await this.run(query, values);
} catch (err) {
this.log.error(`Error updating photo with columns: ${fields.join(', ')}`, err);
this.log.info(query);
}
}
public async getBsky (random : boolean = false) : Promise<Photo> {
const order : string = random ? 'RANDOM()' : 'score ASC, created DESC';
const query : string = `SELECT * FROM photos WHERE bsky = 0 ORDER BY ${order} LIMIT 1;`;

31
src/fix.ts Normal file
View File

@ -0,0 +1,31 @@
import 'dotenv/config';
import { createLog } from './log';
import type { Logger } from 'winston';
import { DB } from './db';
async function fixDates () {
const log : Logger = createLog('fixDates');
const db : DB = new DB();
let rows : any[];
let parts : string[];
let d : Date;
try {
rows = await db.getAll();
} catch (err) {
log.error(err);
}
for (let row of rows) {
parts = row.name.split('_')
d = new Date(parseInt(parts[0]), parseInt(parts[1])-1, parseInt(parts[2]));
row.created = + d;
try {
await db.update(row, ['created']);
log.info(`Updated row ${row.id}: created == ${row.created}`);
} catch (err) {
log.error('Error updating row', err);
}
}
}
fixDates();