Advertisement
samiroexpikachu

Stackoverflow

Feb 27th, 2024
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const axios = require('axios');
  2.  
  3. module.exports = {
  4.   config: {
  5.     name: 'stackoverflow',
  6.     aliases: 'stack',
  7.     version: '1.0',
  8.     author: 'Samir Œ , Faith Xe',
  9.     countDown: 5,
  10.     role: 0,
  11.     shortDescription: {
  12.       en: 'Stack Overflow search'
  13.     },
  14.     longDescription: {
  15.       en: 'Search for a question on Stack Overflow'
  16.     },
  17.     category: 'programming',
  18.     guide: {
  19.       en: '{prefix}stackoverflow <search query>'
  20.     }
  21.   },
  22.  
  23.   onStart: async function ({ api, event, args }) {
  24.     const searchQuery = args.join(' ');
  25.     if (!searchQuery) {
  26.       return api.sendMessage('Please provide a search query.', event.threadID, event.messageID);
  27.     }
  28.  
  29.     try {
  30.       const apiUrl = `https://api-samir.onrender.com/stackoverflow/search?q=${encodeURIComponent(searchQuery)}`;
  31.       const response = await axios.get(apiUrl);
  32.  
  33.       const items = response.data.items;
  34.       if (!items || items.length === 0) {
  35.         return api.sendMessage('No results found on Stack Overflow.', event.threadID, event.messageID);
  36.       }
  37.  
  38.       const selectedResult = items[Math.floor(Math.random() * items.length)];
  39.  
  40.       const ownerInfo = selectedResult.owner;
  41.       const profileImage = ownerInfo.profile_image;
  42.  
  43.       const message = {
  44.     body: `🌳 𝙎𝙩𝙖𝙘𝙠 𝙊𝙫𝙚𝙧𝙛𝙡𝙤𝙬 𝙍𝙚𝙨𝙪𝙡𝙩𝙨𝐬 \n` +
  45.           `─────────────────\n` +
  46.           `📌 𝐓𝐢𝐭𝐥𝐞: ${selectedResult.title}\n\n` +
  47.           `🏷 𝐓𝐚𝐠𝐬: ${selectedResult.tags.join(', ')}\n\n` +
  48.           `👀 𝐕𝐢𝐞𝐰 𝐂𝐨𝐮𝐧𝐭: ${selectedResult.view_count}\n\n` +
  49.           `👤 𝐃𝐢𝐬𝐩𝐥𝐚𝐲 𝐍𝐚𝐦𝐞: ${ownerInfo.display_name}\n\n` +
  50.           `💬 𝐀𝐧𝐬𝐰𝐞𝐫 𝐂𝐨𝐮𝐧𝐭: ${selectedResult.answer_count}\n\n` +
  51.           `📅 𝐂𝐫𝐞𝐚𝐭𝐢𝐨𝐧 𝐃𝐚𝐭𝐞: ${new Date(selectedResult.creation_date * 1000).toLocaleString()}\n\n` +
  52.           `🔄 𝐋𝐚𝐬𝐭 𝐀𝐜𝐭𝐢𝐯𝐢𝐭𝐲 𝐃𝐚𝐭𝐞: ${new Date(selectedResult.last_activity_date * 1000).toLocaleString()}\n\n` +
  53.           `⭐ 𝐒𝐜𝐨𝐫𝐞: ${selectedResult.score}\n\n` +
  54.           `✅ 𝐀𝐜𝐜𝐞𝐩𝐭 𝐑𝐚𝐭𝐞: ${ownerInfo.accept_rate ? ownerInfo.accept_rate + '%' : 'N/A'}\n\n` +
  55.           `🔗 𝐋𝐢𝐧𝐤: ${selectedResult.link}`,
  56.     attachment: await global.utils.getStreamFromURL(profileImage)
  57. };
  58.  
  59.  
  60.       return api.sendMessage(message, event.threadID, event.messageID);
  61.     } catch (error) {
  62.       console.error(error);
  63.       return api.sendMessage('An error occurred while searching on Stack Overflow.', event.threadID, event.messageID);
  64.     }
  65.   }
  66. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement