webp lol
This commit is contained in:
@ -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),
|
||||
|
@ -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":
|
||||
|
@ -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);
|
||||
|
@ -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")
|
||||
|
Reference in New Issue
Block a user