misc: Add gimg and fimg
This commit is contained in:
parent
0218f0f0e0
commit
1f1e7531af
3 changed files with 158 additions and 0 deletions
|
@ -20,6 +20,7 @@
|
|||
"colorcolor": "^1.1.1",
|
||||
"dumpy": "github:Cynosphere/dumpy.js",
|
||||
"eris": "^0.16.1",
|
||||
"google-images": "^2.1.0",
|
||||
"jimp": "^0.16.1",
|
||||
"murmurhash": "^2.0.0",
|
||||
"node-fetch": "^2.6.1",
|
||||
|
|
|
@ -5,6 +5,7 @@ specifiers:
|
|||
dumpy: github:Cynosphere/dumpy.js
|
||||
eris: ^0.16.1
|
||||
eslint: ^7.26.0
|
||||
google-images: ^2.1.0
|
||||
jimp: ^0.16.1
|
||||
murmurhash: ^2.0.0
|
||||
node-fetch: ^2.6.1
|
||||
|
@ -17,6 +18,7 @@ dependencies:
|
|||
colorcolor: 1.1.1
|
||||
dumpy: github.com/Cynosphere/dumpy.js/5fc22353cdcb97084bab572266390e780d9f7a7b
|
||||
eris: 0.16.1
|
||||
google-images: 2.1.0
|
||||
jimp: 0.16.1
|
||||
murmurhash: 2.0.0
|
||||
node-fetch: 2.6.1
|
||||
|
@ -621,6 +623,11 @@ packages:
|
|||
engines: {node: '>=6'}
|
||||
dev: true
|
||||
|
||||
/capture-stack-trace/1.0.1:
|
||||
resolution: {integrity: sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/caseless/0.12.0:
|
||||
resolution: {integrity: sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=}
|
||||
dev: false
|
||||
|
@ -709,6 +716,13 @@ packages:
|
|||
resolution: {integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=}
|
||||
dev: false
|
||||
|
||||
/create-error-class/3.0.2:
|
||||
resolution: {integrity: sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dependencies:
|
||||
capture-stack-trace: 1.0.1
|
||||
dev: false
|
||||
|
||||
/cross-spawn/7.0.3:
|
||||
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
|
||||
engines: {node: '>= 8'}
|
||||
|
@ -787,6 +801,10 @@ packages:
|
|||
resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==}
|
||||
dev: false
|
||||
|
||||
/duplexer3/0.1.4:
|
||||
resolution: {integrity: sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=}
|
||||
dev: false
|
||||
|
||||
/ecc-jsbn/0.1.2:
|
||||
resolution: {integrity: sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=}
|
||||
dependencies:
|
||||
|
@ -1055,6 +1073,11 @@ packages:
|
|||
wide-align: 1.1.3
|
||||
dev: false
|
||||
|
||||
/get-stream/3.0.0:
|
||||
resolution: {integrity: sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=}
|
||||
engines: {node: '>=4'}
|
||||
dev: false
|
||||
|
||||
/getpass/0.1.7:
|
||||
resolution: {integrity: sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=}
|
||||
dependencies:
|
||||
|
@ -1123,6 +1146,30 @@ packages:
|
|||
type-fest: 0.20.2
|
||||
dev: true
|
||||
|
||||
/google-images/2.1.0:
|
||||
resolution: {integrity: sha1-EnSuQEgll4Jk06T48tUmuI0L8Cw=}
|
||||
engines: {node: '>= 4'}
|
||||
dependencies:
|
||||
got: 6.7.1
|
||||
dev: false
|
||||
|
||||
/got/6.7.1:
|
||||
resolution: {integrity: sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
create-error-class: 3.0.2
|
||||
duplexer3: 0.1.4
|
||||
get-stream: 3.0.0
|
||||
is-redirect: 1.0.0
|
||||
is-retry-allowed: 1.2.0
|
||||
is-stream: 1.1.0
|
||||
lowercase-keys: 1.0.1
|
||||
safe-buffer: 5.2.1
|
||||
timed-out: 4.0.1
|
||||
unzip-response: 2.0.1
|
||||
url-parse-lax: 1.0.0
|
||||
dev: false
|
||||
|
||||
/graceful-fs/4.2.6:
|
||||
resolution: {integrity: sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==}
|
||||
dev: false
|
||||
|
@ -1253,6 +1300,21 @@ packages:
|
|||
is-extglob: 2.1.1
|
||||
dev: true
|
||||
|
||||
/is-redirect/1.0.0:
|
||||
resolution: {integrity: sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/is-retry-allowed/1.2.0:
|
||||
resolution: {integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/is-stream/1.1.0:
|
||||
resolution: {integrity: sha1-EtSj3U5o4Lec6428hBc66A2RykQ=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/is-typedarray/1.0.0:
|
||||
resolution: {integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=}
|
||||
dev: false
|
||||
|
@ -1358,6 +1420,11 @@ packages:
|
|||
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
|
||||
dev: true
|
||||
|
||||
/lowercase-keys/1.0.1:
|
||||
resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/lru-cache/6.0.0:
|
||||
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
|
||||
engines: {node: '>=10'}
|
||||
|
@ -1710,6 +1777,11 @@ packages:
|
|||
engines: {node: '>= 0.8.0'}
|
||||
dev: true
|
||||
|
||||
/prepend-http/1.0.4:
|
||||
resolution: {integrity: sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/prettier/2.3.0:
|
||||
resolution: {integrity: sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==}
|
||||
engines: {node: '>=10.13.0'}
|
||||
|
@ -2107,6 +2179,11 @@ packages:
|
|||
resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=}
|
||||
dev: true
|
||||
|
||||
/timed-out/4.0.1:
|
||||
resolution: {integrity: sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/timm/1.7.1:
|
||||
resolution: {integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==}
|
||||
dev: false
|
||||
|
@ -2158,11 +2235,23 @@ packages:
|
|||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/unzip-response/2.0.1:
|
||||
resolution: {integrity: sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=}
|
||||
engines: {node: '>=4'}
|
||||
dev: false
|
||||
|
||||
/uri-js/4.4.1:
|
||||
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
|
||||
dependencies:
|
||||
punycode: 2.1.1
|
||||
|
||||
/url-parse-lax/1.0.0:
|
||||
resolution: {integrity: sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dependencies:
|
||||
prepend-http: 1.0.4
|
||||
dev: false
|
||||
|
||||
/utif/2.0.1:
|
||||
resolution: {integrity: sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==}
|
||||
dependencies:
|
||||
|
|
|
@ -3,6 +3,9 @@ const CATEGORY = "misc";
|
|||
|
||||
const fetch = require("node-fetch");
|
||||
const {hastebin, safeString, parseHtmlEntities} = require("../lib/utils.js");
|
||||
const GoogleImages = require("google-images");
|
||||
|
||||
const imagesClient = new GoogleImages(hf.apikeys.gimg, hf.apikeys.google);
|
||||
|
||||
const yt = new Command("youtube");
|
||||
yt.addAlias("yt");
|
||||
|
@ -144,3 +147,68 @@ wolfram.callback = async function (msg, line) {
|
|||
}
|
||||
};
|
||||
hf.registerCommand(wolfram);
|
||||
|
||||
const gimg = new Command("gimg");
|
||||
gimg.category = CATEGORY;
|
||||
gimg.helpText = "Search Google Images";
|
||||
gimg.usage = "[query]";
|
||||
gimg.addAlias("img");
|
||||
gimg.callback = async function (msg, line) {
|
||||
if (!line) return "No arguments given.";
|
||||
|
||||
const images = await imagesClient.search(line, {
|
||||
safe:
|
||||
msg.channel.nsfw && !msg.channel?.topic.includes("[no_nsfw]")
|
||||
? "off"
|
||||
: "high",
|
||||
});
|
||||
|
||||
const index = Math.floor(Math.random() * images.length);
|
||||
const image = images[index];
|
||||
|
||||
return {
|
||||
embeds: [
|
||||
{
|
||||
title: image.description,
|
||||
url: image.parentPage,
|
||||
image: {
|
||||
url: image.url,
|
||||
},
|
||||
footer: {
|
||||
text: `Image ${index}/${images.length}. Rerun to get a different image.`,
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
hf.registerCommand(gimg);
|
||||
|
||||
const fimg = new Command("fimg");
|
||||
fimg.category = CATEGORY;
|
||||
fimg.helpText = "Send first result from Google Images";
|
||||
fimg.usage = "[query]";
|
||||
fimg.callback = async function (msg, line) {
|
||||
if (!line) return "No arguments given.";
|
||||
|
||||
const images = await imagesClient.search(line, {
|
||||
safe:
|
||||
msg.channel.nsfw && !msg.channel?.topic.includes("[no_nsfw]")
|
||||
? "off"
|
||||
: "high",
|
||||
});
|
||||
|
||||
const image = images[0];
|
||||
|
||||
return {
|
||||
embeds: [
|
||||
{
|
||||
title: image.description,
|
||||
url: image.parentPage,
|
||||
image: {
|
||||
url: image.url,
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
hf.registerCommand(fimg);
|
||||
|
|
Loading…
Reference in a new issue