displaying "years" correcty in abyss for old items
This commit is contained in:
@@ -3,6 +3,7 @@ import util from "util";
|
||||
import db from "./sql.mjs";
|
||||
|
||||
import cfg from "./config.mjs";
|
||||
import { createI18n } from "./i18n.mjs";
|
||||
|
||||
|
||||
|
||||
@@ -43,11 +44,14 @@ export default new class {
|
||||
calcSpeed(b, s) {
|
||||
return (Math.round((b * 8 / s / 1e6) * 1e4) / 1e4);
|
||||
};
|
||||
timeAgo(date) {
|
||||
timeAgo(date, lang = 'en') {
|
||||
const { t } = createI18n(lang);
|
||||
const duration = getDuration(~~((new Date() - new Date(date)) / 1e3));
|
||||
if (!duration) return "just now";
|
||||
if (!duration) return t('timeago.just_now');
|
||||
const { interval, epoch } = duration;
|
||||
return `${interval} ${epoch}${interval === 1 ? "" : "s"} ago`;
|
||||
const unitKey = interval === 1 ? `timeago.${epoch}` : `timeago.${epoch}s`;
|
||||
const timeStr = t(unitKey, { n: interval });
|
||||
return t('timeago.ago', { t: timeStr });
|
||||
};
|
||||
md5(str) {
|
||||
return crypto.createHash('md5').update(str).digest("hex");
|
||||
|
||||
@@ -290,7 +290,7 @@ export default {
|
||||
view_mode: fav ? 'favs' : 'uploads'
|
||||
};
|
||||
},
|
||||
getf0ck: async ({ user: rawUser, tag: rawTag, hall: rawHall, mime: rawMime, itemid: rawItemid, mode, session, strict, exclude, user_id, fav, random, userHall: rawUserHall, userHallOwner: rawUserHallOwner } = {}) => {
|
||||
getf0ck: async ({ user: rawUser, tag: rawTag, hall: rawHall, mime: rawMime, itemid: rawItemid, mode, session, strict, exclude, user_id, fav, random, userHall: rawUserHall, userHallOwner: rawUserHallOwner, lang } = {}) => {
|
||||
const user = rawUser ? lib.escapeLike(decodeURI(rawUser)) : null;
|
||||
const tag = lib.parseTag(rawTag ?? null);
|
||||
let hall = rawHall ?? null;
|
||||
@@ -614,7 +614,7 @@ export default {
|
||||
mime: actitem.mime,
|
||||
size: lib.formatSize(actitem.size),
|
||||
timestamp: {
|
||||
timeago: lib.timeAgo(new Date(actitem.stamp * 1e3).toISOString()),
|
||||
timeago: lib.timeAgo(new Date(actitem.stamp * 1e3).toISOString(), lang),
|
||||
timefull: new Date(actitem.stamp * 1e3).toISOString()
|
||||
},
|
||||
favorites: favorites,
|
||||
|
||||
@@ -136,7 +136,7 @@ export default (router, tpl) => {
|
||||
}
|
||||
|
||||
userData.timestamp = {
|
||||
timeago: lib.timeAgo(userData.created_at),
|
||||
timeago: lib.timeAgo(userData.created_at, req.lang),
|
||||
timefull: userData.created_at
|
||||
};
|
||||
userData.age_days = Math.floor((Date.now() - new Date(userData.created_at).getTime()) / 86400000);
|
||||
@@ -228,7 +228,8 @@ export default (router, tpl) => {
|
||||
strict: !!(req.query?.strict || req.url.qs?.strict || req.session?.strict_mode),
|
||||
explicitStrict: !!(req.query?.strict || req.url.qs?.strict),
|
||||
random: req.cookies.random_mode === '1',
|
||||
minXdScore: req.params.itemid ? 0 : (req.url.qs?.min_xd !== undefined ? +req.url.qs.min_xd : (req.session?.min_xd_score || 0))
|
||||
minXdScore: req.params.itemid ? 0 : (req.url.qs?.min_xd !== undefined ? +req.url.qs.min_xd : (req.session?.min_xd_score || 0)),
|
||||
lang: req.lang
|
||||
});
|
||||
console.log(`[DEBUG] Checking strict mode: query=${req.query?.strict}, session=${req.session?.strict_mode}, effective=${!!(req.query?.strict || req.url.qs?.strict || req.session?.strict_mode)}`);
|
||||
console.log(`[${new Date().toISOString()}] [ROUTE] Data fetch complete in ${Date.now() - tRouteStart}ms`);
|
||||
|
||||
@@ -285,7 +285,7 @@ export default (router, tpl) => {
|
||||
avatar: row.avatar_file ? `/a/${row.avatar_file}` : (row.avatar ? `/t/${row.avatar}.webp` : '/a/default.png'),
|
||||
username_color: row.username_color || null,
|
||||
stamp: row.stamp,
|
||||
timeago: lib.timeAgo(new Date(row.stamp * 1e3).toISOString()),
|
||||
timeago: lib.timeAgo(new Date(row.stamp * 1e3).toISOString(), req.lang),
|
||||
tags: row.tag_list || '',
|
||||
is_oc: row.is_oc || false,
|
||||
is_faved: row.is_faved || false,
|
||||
|
||||
Reference in New Issue
Block a user