f0ckv2/debug/autotagger.mjs

78 lines
1.6 KiB
JavaScript
Raw Normal View History

2022-05-05 14:02:17 +00:00
import db from "../src/inc/sql.mjs";
import lib from "../src/inc/lib.mjs";
import { exec as _exec } from "child_process";
import { promisify } from "util";
const exec = promisify(_exec);
//import fetch from "flumm-fetch-cookies";
const isNSFW = res => {
let nsfw = false;
if(res.neutral >= .7)
nsfw = false;
else if((res.sexy + res.porn + res.hentai) >= .7)
nsfw = true;
else if(res.drawings >= .4)
nsfw = false;
else
nsfw = false;
return nsfw;
};
2021-12-26 16:24:42 +00:00
(async () => {
const _args = process.argv.slice(2);
const _from = +_args[0];
2022-05-05 14:02:17 +00:00
const _to = _from + 0;
2021-12-26 16:24:42 +00:00
2022-05-05 14:02:17 +00:00
const f0cks = await db`
select *
from items
where
id not in (select item_id from tags_assign group by item_id) and
mime like 'image/%' and
id between ${_from} and ${_to}
`;
2021-12-26 16:24:42 +00:00
2022-05-05 14:02:17 +00:00
console.time('blah');
2021-12-26 16:24:42 +00:00
for(let f of f0cks) {
2022-05-05 14:02:17 +00:00
const tmp = await lib.detectNSFW(f.dest);
console.log(
'https://f0ck.me/' + f.id,
tmp.isNSFW,
tmp.score.toFixed(2),
{
sexy: tmp.scores.sexy.toFixed(2),
porn: tmp.scores.porn.toFixed(2),
hentai: tmp.scores.hentai.toFixed(2),
neutral: tmp.scores.neutral.toFixed(2)
}
);
await db`
insert into "tags_assign" ${
db({
item_id: f.id,
tag_id: tmp.nsfw ? 2 : 1,
user_id: 7
})
}
`;
if(tmp.hentai >= .7) {
await db`
insert into "tags_assign" ${
db({
item_id: f.id,
tag_id: 8, // hentai
user_id: 7 // autotagger
})
}
`;
2021-12-26 16:24:42 +00:00
}
2022-05-05 14:02:17 +00:00
2021-12-26 16:24:42 +00:00
};
2022-05-05 14:02:17 +00:00
console.timeEnd('blah');
process.exit();
2021-12-26 16:24:42 +00:00
})();