revert various fixes to get it working for myself
This commit is contained in:
2026-01-23 13:24:43 +00:00
parent b72fcaa426
commit 4a2925b141
4 changed files with 88 additions and 122 deletions

View File

@@ -1,15 +0,0 @@
import db from "../src/inc/sql.mjs";
(async () => {
try {
const item = (await db`select * from items order by id desc limit 1`)?.[0];
console.log("Last Item:", item);
if (item) {
const tags = await db`select * from tags_assign where item_id = ${item.id}`;
console.log("Tags:", tags);
}
} catch (err) {
console.error(err);
}
process.exit(0);
})();

View File

@@ -6,14 +6,13 @@ import { promises as fs } from "fs";
network: "console", network: "console",
message: _args.join(" "), message: _args.join(" "),
args: _args.slice(1), args: _args.slice(1),
channel: "#w0bm", channel: "console",
user: { user: {
prefix: "console!console@console", prefix: "console!console@console",
nick: "console", nick: "console",
username: "console", username: "console",
account: "console" account: "console"
}, },
raw: {},
reply: (...args) => console.log(args), reply: (...args) => console.log(args),
replyAction: (...args) => console.log(args), replyAction: (...args) => console.log(args),
replyNotice: (...args) => console.log(args) replyNotice: (...args) => console.log(args)
@@ -27,12 +26,9 @@ import { promises as fs } from "fs";
try { try {
if(trigger.length === 0) if(trigger.length === 0)
return console.error("no matches"); return console.error("no matches");
for (const t of trigger) { console.log(`triggered > ${trigger[0].name} (${_e.message})`);
console.log(`triggered > ${t.name} (${_e.message})`); await trigger[0].f(_e);
await t.f(_e);
}
} catch(err) { } catch(err) {
console.error(err); console.error(err);
} }
process.exit(0);
})(); })();

View File

@@ -1,3 +0,0 @@
#!/bin/bash
npm i
npm start

View File

@@ -23,7 +23,7 @@ export default async bot => {
name: "parser", name: "parser",
call: regex.all, call: regex.all,
active: true, active: true,
f: async e => { f: e => {
const links = e.message.match(regex.all)?.filter(link => !link.includes(cfg.main.url.domain)) || []; const links = e.message.match(regex.all)?.filter(link => !link.includes(cfg.main.url.domain)) || [];
let repost; let repost;
if(e.media) if(e.media)
@@ -51,7 +51,7 @@ export default async bot => {
console.log(`parsing ${links.length} link${links.length > 1 ? "s" : ""}...`); console.log(`parsing ${links.length} link${links.length > 1 ? "s" : ""}...`);
for (const link of links) { links.forEach(async link => {
//if(regex.imgur.test(link)) //if(regex.imgur.test(link))
// return await e.reply(`fuck imgur... seriously`); // return await e.reply(`fuck imgur... seriously`);
@@ -73,12 +73,11 @@ export default async bot => {
// read metadata // read metadata
let ext; let ext;
const proxyArgs = cfg.main.socks ? `--proxy ${cfg.main.socks}` : '';
if(link.match(regex.instagram)) { if(link.match(regex.instagram)) {
// is instagram // is instagram
try { try {
// @flummi -> is there a variable for the actual work directory so it doesn't have to be hardcoded? // @flummi -> is there a variable for the actual work directory so it doesn't have to be hardcoded?
const meta = JSON.parse((await queue.exec(`yt-dlp ${proxyArgs} -f 'bv*[height<=720]+ba/b[height<=720] / wv*+ba/w' --skip-download --dump-json "${link}"`)).stdout); const meta = JSON.parse((await queue.exec(`yt-dlp --proxy ${cfg.main.socks} -f 'bv*[height<=720]+ba/b[height<=720] / wv*+ba/w' --skip-download --dump-json "${link}"`)).stdout);
ext = meta.ext; ext = meta.ext;
} catch(err) { } catch(err) {
const tmphead = (await fetch(link, { method: "HEAD" })).headers["content-type"]; const tmphead = (await fetch(link, { method: "HEAD" })).headers["content-type"];
@@ -93,10 +92,9 @@ export default async bot => {
else if(link.match(regex.yt)) { else if(link.match(regex.yt)) {
//yt - fuck anti bot protection //yt - fuck anti bot protection
try { try {
const meta = JSON.parse((await queue.exec(`yt-dlp ${proxyArgs} -f 'bv*[height<=720]+ba/b[height<=720] / wv*+ba/w' -I 1 --skip-download --dump-json "${link}"`)).stdout); const meta = JSON.parse((await queue.exec(`yt-dlp --proxy ${cfg.main.socks} -f 'bv*[height<=720]+ba/b[height<=720] / wv*+ba/w' -I 1 --skip-download --dump-json "${link}"`)).stdout);
ext = meta.ext; ext = meta.ext;
} catch(err) { } catch(err) {
console.error("YT-DLP Error:", err);
const tmphead = (await fetch(link, { method: "HEAD" })).headers["content-type"]; const tmphead = (await fetch(link, { method: "HEAD" })).headers["content-type"];
// this can be undefined for unsupported mime types, but will be caught in the general mime check below // this can be undefined for unsupported mime types, but will be caught in the general mime check below
ext = cfg.mimes[tmphead]; ext = cfg.mimes[tmphead];
@@ -105,7 +103,7 @@ export default async bot => {
else if(link.match(regex.fourchan)) { else if(link.match(regex.fourchan)) {
//4chan - fuck cloudflare :) //4chan - fuck cloudflare :)
try { try {
const meta = JSON.parse((await queue.exec(`yt-dlp ${proxyArgs} -f 'bv*[height<=720]+ba/b[height<=720] / wv*+ba/w' --skip-download --dump-json "${link}"`)).stdout); const meta = JSON.parse((await queue.exec(`yt-dlp --proxy ${cfg.main.socks} -f 'bv*[height<=720]+ba/b[height<=720] / wv*+ba/w' --skip-download --dump-json "${link}"`)).stdout);
ext = meta.ext; ext = meta.ext;
} catch(err) { } catch(err) {
const tmphead = (await fetch(link, { method: "HEAD" })).headers["content-type"]; const tmphead = (await fetch(link, { method: "HEAD" })).headers["content-type"];
@@ -120,10 +118,9 @@ export default async bot => {
const meta = JSON.parse((await queue.exec(`yt-dlp -f 'bv*[height<=720]+ba/b[height<=720] / wv*+ba/w' --skip-download --dump-json "${link}"`)).stdout); const meta = JSON.parse((await queue.exec(`yt-dlp -f 'bv*[height<=720]+ba/b[height<=720] / wv*+ba/w' --skip-download --dump-json "${link}"`)).stdout);
ext = meta.ext; ext = meta.ext;
} catch(err) { } catch(err) {
console.error('err:', err); const tmphead = (await fetch(link, { method: "HEAD" })).headers["content-type"];
if (e.type == 'tg') // this can be undefined for unsupported mime types, but will be caught in the general mime check below
return await e.editMessageText(msg.result.chat.id, msg.result.message_id, err); ext = cfg.mimes[tmphead];
return await e.reply('something went wrong lol / check maxfilesize?');
} }
} }
@@ -142,7 +139,7 @@ export default async bot => {
if(link.match(regex.instagram)) { if(link.match(regex.instagram)) {
try { try {
// add --cookies <path-to-cookies-file> on local instance if you want to avoid getting rate limited or optionally use a socks proxy from a network that is not being detected as a public network // add --cookies <path-to-cookies-file> on local instance if you want to avoid getting rate limited or optionally use a socks proxy from a network that is not being detected as a public network
source = (await queue.exec(`yt-dlp ${proxyArgs} -f 'bv*[height<=1080]+ba/b[height<=1080] / wv*+ba/w' "${link}" --max-filesize ${maxfilesize / 1024}k --postprocessor-args "ffmpeg:-bitexact" -o "./tmp/${uuid}.%(ext)s" --print after_move:filepath --merge-output-format "mp4"`)).stdout.trim(); source = (await queue.exec(`yt-dlp --proxy ${cfg.main.socks} -f 'bv*[height<=1080]+ba/b[height<=1080] / wv*+ba/w' "${link}" --max-filesize ${maxfilesize / 1024}k --postprocessor-args "ffmpeg:-bitexact" -o "./tmp/${uuid}.%(ext)s" --print after_move:filepath --merge-output-format "mp4"`)).stdout.trim();
} catch(err) { } catch(err) {
if(e.type == 'tg') if(e.type == 'tg')
return await e.editMessageText(msg.result.chat.id, msg.result.message_id, "instagram dl error"); return await e.editMessageText(msg.result.chat.id, msg.result.message_id, "instagram dl error");
@@ -164,7 +161,7 @@ export default async bot => {
else if(link.match(regex.yt)) { else if(link.match(regex.yt)) {
try { try {
// add --cookies <path-to-cookies-file> on local instance if you want to avoid getting rate limited or optionally use a socks proxy from a network that is not being detected as a public network // add --cookies <path-to-cookies-file> on local instance if you want to avoid getting rate limited or optionally use a socks proxy from a network that is not being detected as a public network
source = (await queue.exec(`yt-dlp ${proxyArgs} -f 'bv*[height<=720]+ba/b[height<=720] / wv*+ba/w' "${link}" -I 1 --max-filesize ${maxfilesize / 1024}k --postprocessor-args "ffmpeg:-bitexact" -o "./tmp/${uuid}.%(ext)s" --print after_move:filepath --merge-output-format "mp4"`)).stdout.trim(); source = (await queue.exec(`yt-dlp --proxy ${cfg.main.socks} -f 'bv*[height<=720]+ba/b[height<=720] / wv*+ba/w' "${link}" -I 1 --max-filesize ${maxfilesize / 1024}k --postprocessor-args "ffmpeg:-bitexact" -o "./tmp/${uuid}.%(ext)s" --print after_move:filepath --merge-output-format "mp4"`)).stdout.trim();
} catch(err) { } catch(err) {
if(e.type == 'tg') if(e.type == 'tg')
return await e.editMessageText(msg.result.chat.id, msg.result.message_id, "yt dl error"); return await e.editMessageText(msg.result.chat.id, msg.result.message_id, "yt dl error");
@@ -174,7 +171,7 @@ export default async bot => {
else if(link.match(regex.fourchan)) { else if(link.match(regex.fourchan)) {
// 4chan via proxy - fuck cloudflare // 4chan via proxy - fuck cloudflare
try { try {
source = (await queue.exec(`yt-dlp ${proxyArgs} -f 'bv*[height<=720]+ba/b[height<=720] / wv*+ba/w' "${link}" --max-filesize ${maxfilesize / 1024}k --postprocessor-args "ffmpeg:-bitexact" -o "./tmp/${uuid}.%(ext)s" --print after_move:filepath --merge-output-format "mp4"`)).stdout.trim(); source = (await queue.exec(`yt-dlp --proxy ${cfg.main.socks} -f 'bv*[height<=720]+ba/b[height<=720] / wv*+ba/w' "${link}" --max-filesize ${maxfilesize / 1024}k --postprocessor-args "ffmpeg:-bitexact" -o "./tmp/${uuid}.%(ext)s" --print after_move:filepath --merge-output-format "mp4"`)).stdout.trim();
} catch(err) { } catch(err) {
if(e.type == 'tg') if(e.type == 'tg')
return await e.editMessageText(msg.result.chat.id, msg.result.message_id, "yt dl error"); return await e.editMessageText(msg.result.chat.id, msg.result.message_id, "yt dl error");
@@ -276,7 +273,8 @@ export default async bot => {
} }
await db` await db`
insert into items ${db({ insert into items ${
db({
src: e.media ? "" : link, src: e.media ? "" : link,
dest: filename, dest: filename,
mime: mime, mime: mime,
@@ -293,16 +291,6 @@ export default async bot => {
const itemid = await queue.getItemID(filename); const itemid = await queue.getItemID(filename);
// auto-tag sfw
await db`
insert into tags_assign ${db({
item_id: itemid,
tag_id: 1, // sfw
user_id: 2 // f0ck
}, 'item_id', 'tag_id', 'user_id')
}
`;
// generate thumbnail // generate thumbnail
try { try {
await queue.genThumbnail(filename, mime, itemid, link); await queue.genThumbnail(filename, mime, itemid, link);
@@ -351,7 +339,7 @@ export default async bot => {
else { else {
await e.reply(outputmsgirc); await e.reply(outputmsgirc);
} }
} });
} }
}]; }];
}; };