UNPKG

wabot

Version:

Whatsapp Bot Module for automate response and interact whit users

70 lines (67 loc) 2.58 kB
// Modules to install separately const request = require('request'); const base64 = require('node-base64-image'); const yts = require('yt-search'); const youtubeUrl = 'https://youtube.com/watch/'; function searchYoutube(search_){ return new Promise(async (resolve, reject) => { const r = await yts( search_ ); resolve(r.videos || []); }) } const defaultConfig = { idChat: '', search: '', messageError: '*Ooops, an error occurred while trying to search, try again later*', messageNoDataFound: '*No information about your search could be found*' } /** * Plugin that allows you to search for videos directly from YouTube * @function youtube * @memberof Plugins * @param {string} idChat - Chat id to send the new image to * @param {string} search - Search parameter to perform * @param {string} messageError - Message to send in case of error * @param {string} messageNoDataFound - Message to send in case of not finding information */ module.exports = { /** * Id - Name of the plugin to use * @property {string} id - Name of the plugin to use */ id: 'youtube', plugin(_args) { const args = this.mergeOpts(defaultConfig, _args); if (args.idChat !== '' && args.search !== '') { searchYoutube(args.search.trim()) .then(data => { if(data.length > 0){ let videoYt = data[0]; let options = {string: true} base64.encode(videoYt.thumbnail, options, (err, data64) => { if (err) { this.sendMessage({ "idChat": args.idChat, "message": args.messageError }); } else { this.sendLink({ "idChat": args.idChat, "caption": "", "description": videoYt.description, "title": videoYt.title, "thumb": data64, "link": videoYt.url }); } }); }else { this.sendMessage({ "idChat": args.idChat, "message": args.messageNoDataFound }); } }) } } };