Advertisement
andyherbert

Untitled

Jul 25th, 2020
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.20 KB | None | 0 0
  1. const discord = require("discord.js");
  2. const client = new discord.Client;
  3. var request = require("request");
  4. var query = "";
  5.  
  6. // Duck Duck Go search function
  7. async function duckduckgo(input){
  8. return new Promise(resolve => {
  9. request({url: "https://api.duckduckgo.com/?q="+encodeURI(input)+"&format=json&pretty=1", json: true}, (error, response, body) => {
  10. if(!error && response.statusCode === 200){
  11. resolve(body);
  12. }
  13. })
  14. });
  15. }
  16.  
  17. // YouTube search function
  18. async function youtube(input){
  19. return new Promise(resolve => {
  20. request({url: "https://www.googleapis.com/youtube/v3/search?part=snippet&q="+encodeURI(input)+"&type=video&key="+ytapikey, json: true}, (error, response, body) => {
  21. if(!error && response.statusCode === 200){
  22. resolve(body);
  23. }
  24. })
  25. });
  26. }
  27.  
  28. // Discord.js ready
  29. client.once("ready", () => {
  30. console.log("Ready!");
  31. });
  32.  
  33. // Message received through Discord
  34. client.on("message", message =>{
  35. query = "";
  36. // ============================================================ REACTIONS
  37. if(message.content.toLowerCase().includes("ducktest")){
  38. // message.react(":722576975696232498:");
  39. }
  40. // ============================================================ RULES
  41. if(message.content.toLowerCase() == "!rules"){
  42. message.channel.send("```Just don't be a dink.```");
  43. // ============================================================ SEARCH
  44. }else if(message.content.toLowerCase().substr(0,3) == "!s "){
  45. // Get the command via message
  46. query = message.content.slice(3);
  47. // Initiate Duck Duck Go query
  48. duckduckgo(query).then(json =>{
  49. // Check if search results in a title
  50. if((json.Heading.length > 0)&&(json.AbstractText.length > 0)){
  51. // If result has image
  52. if(json.Image.length > 0){
  53. message.channel.send("**"+json.Heading+"**"+" \r\n"+"> "+json.AbstractText+" \r\n"+json.Image);
  54. // If result doesn't have image
  55. }else{
  56. message.channel.send("**"+json.Heading+"**"+" \r\n"+"> "+json.AbstractText);
  57. }
  58. // Look for fallbacks if search results in no title
  59. }else{
  60. // If no related results exist
  61. if((json.RelatedTopics === undefined)||(json.RelatedTopics.length == 0)){
  62. message.channel.send("**"+query+"**"+" \r\n"+"No results, chump.");
  63. // If related results exist
  64. }else{
  65. // If related result has text
  66. if(json.RelatedTopics[0].Text.length > 0){
  67. // If related result has an image
  68. if(json.RelatedTopics[0].Icon.URL.length > 0){
  69. message.channel.send("**"+query+"**"+" \r\n"+"> "+json.RelatedTopics[0].Text+" \r\n"+json.RelatedTopics[0].Icon.URL);
  70. // If related result has no image
  71. }else{
  72. message.channel.send("**"+query+"**"+" \r\n"+"> "+json.RelatedTopics[0].Text);
  73. }
  74. // If related result has no text
  75. }else{
  76. message.channel.send("**"+query+"**"+" \r\n"+"No results, chump.");
  77. }
  78. }
  79. }
  80. // console.log("============================================");
  81. // console.log("====================== "+json.Heading+" ======================");
  82. // console.log("============================================");
  83. // console.log(json);
  84. // console.log("============================================");
  85. // console.log("============================================");
  86. // console.log("============================================");
  87. });
  88. // ============================================================ YOUTUBE
  89. }else if(message.content.toLowerCase().substr(0,4) == "!yt "){
  90. // Get the command via message
  91. query = message.content.slice(4);
  92. // Initiate YouTube query
  93. youtube(query).then(json => {
  94. // If no search items are defined
  95. if((json.items === undefined)||(json.items == 0)){
  96. message.channel.send("**"+query+"**"+" \r\n"+"No results, chump.");
  97. // If search result item and its video ID and title exist
  98. }else if((json.items[0].id["videoId"].length > 0)&&(json.items[0].snippet["title"].length > 0)){
  99. message.channel.send("**"+query+"**"+" \r\n"+"http://youtu.be/"+json.items[0].id["videoId"]);
  100. // Fallback to no results
  101. }else{
  102. message.channel.send("**"+query+"**"+" \r\n"+"No results, chump.");
  103. }
  104. });
  105. // ============================================================ JAM
  106. }
  107. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement