Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const discord = require("discord.js");
- const client = new discord.Client;
- var request = require("request");
- var query = "";
- // Duck Duck Go search function
- async function duckduckgo(input){
- return new Promise(resolve => {
- request({url: "https://api.duckduckgo.com/?q="+encodeURI(input)+"&format=json&pretty=1", json: true}, (error, response, body) => {
- if(!error && response.statusCode === 200){
- resolve(body);
- }
- })
- });
- }
- // YouTube search function
- async function youtube(input){
- return new Promise(resolve => {
- request({url: "https://www.googleapis.com/youtube/v3/search?part=snippet&q="+encodeURI(input)+"&type=video&key="+ytapikey, json: true}, (error, response, body) => {
- if(!error && response.statusCode === 200){
- resolve(body);
- }
- })
- });
- }
- // Discord.js ready
- client.once("ready", () => {
- console.log("Ready!");
- });
- // Message received through Discord
- client.on("message", message =>{
- query = "";
- // ============================================================ REACTIONS
- if(message.content.toLowerCase().includes("ducktest")){
- // message.react(":722576975696232498:");
- }
- // ============================================================ RULES
- if(message.content.toLowerCase() == "!rules"){
- message.channel.send("```Just don't be a dink.```");
- // ============================================================ SEARCH
- }else if(message.content.toLowerCase().substr(0,3) == "!s "){
- // Get the command via message
- query = message.content.slice(3);
- // Initiate Duck Duck Go query
- duckduckgo(query).then(json =>{
- // Check if search results in a title
- if((json.Heading.length > 0)&&(json.AbstractText.length > 0)){
- // If result has image
- if(json.Image.length > 0){
- message.channel.send("**"+json.Heading+"**"+" \r\n"+"> "+json.AbstractText+" \r\n"+json.Image);
- // If result doesn't have image
- }else{
- message.channel.send("**"+json.Heading+"**"+" \r\n"+"> "+json.AbstractText);
- }
- // Look for fallbacks if search results in no title
- }else{
- // If no related results exist
- if((json.RelatedTopics === undefined)||(json.RelatedTopics.length == 0)){
- message.channel.send("**"+query+"**"+" \r\n"+"No results, chump.");
- // If related results exist
- }else{
- // If related result has text
- if(json.RelatedTopics[0].Text.length > 0){
- // If related result has an image
- if(json.RelatedTopics[0].Icon.URL.length > 0){
- message.channel.send("**"+query+"**"+" \r\n"+"> "+json.RelatedTopics[0].Text+" \r\n"+json.RelatedTopics[0].Icon.URL);
- // If related result has no image
- }else{
- message.channel.send("**"+query+"**"+" \r\n"+"> "+json.RelatedTopics[0].Text);
- }
- // If related result has no text
- }else{
- message.channel.send("**"+query+"**"+" \r\n"+"No results, chump.");
- }
- }
- }
- // console.log("============================================");
- // console.log("====================== "+json.Heading+" ======================");
- // console.log("============================================");
- // console.log(json);
- // console.log("============================================");
- // console.log("============================================");
- // console.log("============================================");
- });
- // ============================================================ YOUTUBE
- }else if(message.content.toLowerCase().substr(0,4) == "!yt "){
- // Get the command via message
- query = message.content.slice(4);
- // Initiate YouTube query
- youtube(query).then(json => {
- // If no search items are defined
- if((json.items === undefined)||(json.items == 0)){
- message.channel.send("**"+query+"**"+" \r\n"+"No results, chump.");
- // If search result item and its video ID and title exist
- }else if((json.items[0].id["videoId"].length > 0)&&(json.items[0].snippet["title"].length > 0)){
- message.channel.send("**"+query+"**"+" \r\n"+"http://youtu.be/"+json.items[0].id["videoId"]);
- // Fallback to no results
- }else{
- message.channel.send("**"+query+"**"+" \r\n"+"No results, chump.");
- }
- });
- // ============================================================ JAM
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement