This commit is contained in:
Flummi
2022-01-05 20:21:50 +01:00
parent d558977176
commit 90a86133db
12 changed files with 63 additions and 44 deletions

View File

@ -201,11 +201,11 @@ export default {
.select("tags_assign.item_id", "tags.tag")
.leftJoin("tags_assign", "tags_assign.tag_id", "tags.id")
.where("tags.tag", "ilike", "%"+tag+"%")
.groupBy("tags_assign.item_id", "tags.tag")
.groupBy("tags.tag", "tags_assign.item_id")
.as("st"),
"st.item_id", "items.id"
)
.groupBy('items.id', 'st.item_id', 'st.tag');
.groupBy('st.tag', 'st.item_id', 'items.id');
}
else
items = items.groupBy('items.id');
@ -215,6 +215,9 @@ export default {
items = items.andWhere("items.mime", "ilike", mime + "/%");
items = await items;
if(tag)
items = items.filter((v, i, s) => i === s.findIndex(t => t.id === v.id));
const item = items.findIndex(i => i.id === itemid);
const actitem = items[item];
@ -227,7 +230,7 @@ export default {
}
const tags = await lib.getTags(itemid);
const cheat = items.slice(Math.max(0, item - 3), item + 4).map(i => i.id);
const cheat = [...new Set(items.slice(Math.max(0, item - 3), item + 4).map(i => i.id))];
const link = lib.genLink({ user, tag, mime, type: o.fav ? 'favs' : 'f0cks' });
const favorites = await sql('favorites')
.select('user.user', 'user_options.avatar')
@ -249,7 +252,7 @@ export default {
short: url.parse(actitem.src).hostname,
},
thumbnail: `${cfg.websrv.paths.thumbnails}/${actitem.id}.png`,
coverart: `${cfg.websrv.paths.coverarts}/${actitem.id}.png`,
coverart: `${cfg.websrv.paths.coverarts}/${actitem.id}.webp`,
dest: `${cfg.websrv.paths.images}/${actitem.dest}`,
mime: actitem.mime,
size: lib.formatSize(actitem.size),

View File

@ -51,13 +51,15 @@ export default async bot => {
case "stats":
const dirs = {
b: await fs.readdir("./public/b"),
t: await fs.readdir("./public/t")
t: await fs.readdir("./public/t"),
ca: await fs.readdir("./public/ca")
};
const sizes = {
b: lib.formatSize((await Promise.all(dirs.b.map(async file => (await fs.stat(`./public/b/${file}`)).size))).reduce((a, b) => b + a)),
t: lib.formatSize((await Promise.all(dirs.t.map(async file => (await fs.stat(`./public/t/${file}`)).size))).reduce((a, b) => b + a)),
ca: lib.formatSize((await Promise.all(dirs.ca.map(async file => (await fs.stat(`./public/ca/${file}`)).size))).reduce((a, b) => b + a)),
};
return e.reply(`${dirs.b.length} f0cks: ${sizes.b}, ${dirs.t.length} thumbnails: ${sizes.t}`);
return e.reply(`${dirs.b.length} f0cks: ${sizes.b}, ${dirs.t.length} thumbnails: ${sizes.t}, ${dirs.ca.length} coverarts: ${sizes.ca}`);
case "limit":
return e.reply(`up to ${lib.formatSize(cfg.main.maxfilesize)} (${lib.formatSize(cfg.main.maxfilesize * 2.5)} for admins)`);
case "thumb":

View File

@ -142,24 +142,28 @@ export default async bot => {
try {
await exec(`wget "${cover}" -O ./tmp/${itemid}.jpg`);
const size = (await fs.promises.stat(`./tmp/${itemid}.jpg`)).size;
if(size >= 0)
if(size >= 0) {
await exec(`convert ./tmp/${itemid}.jpg ./tmp/${itemid}.png`);
await fs.promises.unlink(`./tmp/${itemid}.jpg`);
await exec(`convert ./tmp/${itemid}.jpg -resize 50% ./public/ca/${itemid}.webp`);
}
} catch(err) {}
}
else
else {
await exec(`ffmpeg -i ./public/b/${filename} -update 1 -map 0:v -map 0:1 -c copy ./tmp/${itemid}.png`);
await exec(`convert ./tmp/${itemid}.png ./public/ca/${itemid}.webp`);
}
}
else
else {
await exec(`ffmpeg -i ./public/b/${filename} -update 1 -map 0:v -map 0:1 -c copy ./tmp/${itemid}.png`);
await fs.promises.copyFile(`./tmp/${itemid}.png`, `./public/ca/${itemid}.png`);
await exec(`convert ./tmp/${itemid}.png ./public/ca/${itemid}.webp`);
}
}
await exec(`convert "./tmp/${itemid}.png" -resize "128x128^" -gravity center -crop 128x128+0+0 +repage ./public/t/${itemid}.png`);
await fs.promises.unlink(`./tmp/${itemid}.png`);
await exec(`convert "./tmp/${itemid}.png" -resize "128x128^" -gravity center -crop 128x128+0+0 +repage ./public/t/${itemid}.webp`);
await fs.promises.unlink(`./tmp/${itemid}.png`).catch(err => {});
await fs.promises.unlink(`./tmp/${itemid}.jpg`).catch(err => {});
} catch(err) {
await fs.promises.copyFile('./mugge.png', `./public/t/${itemid}.png`);
await exec(`convert ./mugge.png ./public/t/${itemid}.webp`);
}
let speed = lib.calcSpeed(size, end);

View File

@ -65,7 +65,7 @@ import flummpress from "flummpress";
if(req.cookies.session) {
const user = await sql("user_sessions") // get user
.select("user.id", "user.login", "user.user", "user.level", "user_sessions.id as sess_id", "user_options.mode", "user_options.theme", "user_options.avatar")
.select("user.id", "user.login", "user.user", "user.level", "user_sessions.id as sess_id", "user_options.*")
.where("user_sessions.session", lib.md5(req.cookies.session))
.leftJoin("user", "user.id", "user_sessions.user_id")
.leftJoin("user_options", "user_options.user_id", "user_sessions.user_id")