forked from f0ck/f0ckv2
78 lines
1.6 KiB
JavaScript
78 lines
1.6 KiB
JavaScript
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;
|
|
};
|
|
|
|
(async () => {
|
|
const _args = process.argv.slice(2);
|
|
const _from = +_args[0];
|
|
const _to = _from + 0;
|
|
|
|
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}
|
|
`;
|
|
|
|
console.time('blah');
|
|
for(let f of f0cks) {
|
|
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
|
|
})
|
|
}
|
|
`;
|
|
}
|
|
|
|
};
|
|
|
|
console.timeEnd('blah');
|
|
process.exit();
|
|
})();
|