This commit is contained in:
Lukian LEIZOUR 2022-11-27 20:40:30 +01:00
parent cd8de8a386
commit 9032a0c9ac
4 changed files with 0 additions and 0 deletions

63
libs/botTools.js Normal file
View file

@ -0,0 +1,63 @@
const fs = require('fs');
const google = require('googlethis');
function image_search(query, ctx, bot) {
//
//Search for an image on google and send it to the user
//
const images = google.image(query, { safe: false }).catch(err => {
console.log(err);
addToLogs("--> error : " + err);
bot.telegram.sendMessage(ctx.chat.id, "Something went wrong", {"reply_to_message_id": ctx.update.message.message_id});
});
images.then((results) => {
var imgLink = results[Math.floor(Math.random() * results.length)].url
bot.telegram.sendPhoto(ctx.chat.id, imgLink, {"caption": "This is a random image for the query : " + query}).catch(err => {
console.log(err);
addToLogs("--> error : " + err);
bot.telegram.sendMessage(ctx.chat.id, "Something went wrong", {"reply_to_message_id": ctx.update.message.message_id});
});
console.log("--> sent the image for the query: " + query);
addToLogs("--> sent the image for the query: " + query);
})
}
function isTrue(message, ctx, bot) {
//
//Check if the message is a command
//
if (message != undefined) {
console.log("--> message received: " + message);
addToLogs("--> message received: " + message);
var totalSum = 0
for (var i = 0; i < message.length; i++) {
totalSum += message.charCodeAt(i)
}
if (totalSum%2 == 0) {
bot.telegram.sendMessage(ctx.chat.id, "This message is true", {"reply_to_message_id": ctx.update.message.reply_to_message.message_id});
console.log("--> sent true for the query: " + message);
addToLogs("--> sent true for the query: " + message);
}
else {
bot.telegram.sendMessage(ctx.chat.id, "This message is false", {"reply_to_message_id": ctx.update.message.reply_to_message.message_id});
console.log("--> sent false for the query: " + message);
addToLogs("--> sent false for the query: " + message);
}
} else {
bot.telegram.sendMessage(ctx.chat.id, "Please reply to a text message", {'reply_to_message_id': ctx.update.message.message_id});
}
}
function addToLogs(message) {
//
//Add a message to the logs
//
fs.appendFile('./logs/logs.txt', message + "\n", err => {
if (err) {
console.log(err);
}
});
}
module.exports = { addToLogs, isTrue, image_search };

23
libs/dadJokes.js Normal file
View file

@ -0,0 +1,23 @@
const request = require('request');
function getJoke(ctx, bot) {
const options = {
method: 'GET',
url: 'https://dad-jokes.p.rapidapi.com/random/joke',
headers: {
'X-RapidAPI-Key': process.env.DADJOKES,
'X-RapidAPI-Host': 'dad-jokes.p.rapidapi.com',
useQueryString: true
}
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
res = JSON.parse(body)
bot.telegram.sendMessage(ctx.chat.id, res.body[0].setup, {});
bot.telegram.sendMessage(ctx.chat.id, res.body[0].punchline, {});
});
}
module.exports = { getJoke };

50
libs/games.js Normal file
View file

@ -0,0 +1,50 @@
function rockPaperScissorsAgainstBot(ctx, bot) {
// Variables
var userChoice;
var computerChoice;
const CHOICES = ["rock", "paper", "scissors"];
// Computer choice
computerChoice = CHOICES[Math.floor(Math.random() * CHOICES.length)];
// User choice
bot.telegram.sendMessage(ctx.chat.id, "Choose between rock, paper or scissors", {});
//Display choices
bot.telegram.sendMessage(ctx.chat.id, "You chose " + userChoice + ". The bot chose " + computerChoice + ".");
// Winner
switch (userChoice) {
case "rock":
if (computerChoice == "rock") {
ctx.reply("It's a tie");
} else if (computerChoice == "paper") {
ctx.reply("You lose");
} else {
ctx.reply("You win");
}
break;
case "paper":
if (computerChoice == "rock") {
ctx.reply("You win");
} else if (computerChoice == "paper") {
ctx.reply("It's a tie");
} else {
ctx.reply("You lose");
}
break;
case "scissors":
if (computerChoice == "rock") {
ctx.reply("You lose");
} else if (computerChoice == "paper") {
ctx.reply("You win");
} else {
ctx.reply("It's a tie");
}
break;
}
}

81
libs/rule34.js Normal file
View file

@ -0,0 +1,81 @@
//
// Rule34 Fuctions for the Rule34 Bot
//
const https = require('https');
const { addToLogs } = require('./botTools');
function rtag(query, ctx, bot) {
//
//Search for a tag on r34
//
console.log("--> r34sTag query: " + query);
addToLogs("--> r34sTag query: " + query);
https.get("https://rule34.xxx/public/autocomplete.php?q=" + query, (resp) => {
let data = '';
resp.on('data', (chunk) => {
data += chunk;
});
resp.on('end', () => {
res = JSON.parse(data);
message = "Tags for the query " + query + " :\n" ;
if (res.length == 0) {
console.log("--> no tags found for the query: " + query);
addToLogs("--> no tags found for the query: " + query);
bot.telegram.sendMessage(ctx.chat.id, "No tags found for the query: " + query, {});
} else {
for (var i = 0; i < res.length; i++) {
message += "\n - `" + res[i].value+"`";
}
message += "\n\nUse `/r34 <tag>` to get a random image for the tag" + "\nExample: `/r34 " + res[0].value + "`";
bot.telegram.sendMessage(ctx.chat.id, message, {parse_mode: "Markdown"});
console.log("--> sent the tags for the query: " + query);
addToLogs("--> sent the tags for the query: " + query);
}
});
}).on("error", (err) => {
console.log(err);
addToLogs("--> error : " + err);
})
}
function r34(tag, ctx, bot) {
//
//Search for the tag on r34 and send a random image
//
console.log("--> r34 query: " + tag);
addToLogs("--> r34 query: " + tag);
https.get('https://api.rule34.xxx/index.php?page=dapi&s=post&q=index&json=1&tags=' + tag, (resp) => {
let data = '';
resp.on('data', (chunk) => {
data += chunk;
});
resp.on('end', () => {
if (data == "") {
console.log("--> no images found for the query: " + tag);
addToLogs("--> no images found for the query: " + tag);
bot.telegram.sendMessage(ctx.chat.id, "No images found for the query: " + tag + "\nUse /r34tag command to find a tag before searching an image", {});
} else {
res = JSON.parse(data);
bot.telegram.sendPhoto(ctx.chat.id, res[Math.floor(Math.random() * res.length)].file_url, {"caption": "This is a random image for the tag : " + tag}).catch(err => {
console.log(err);
addToLogs("--> error : " + err);
bot.telegram.sendMessage(ctx.chat.id, "Something went wrong", {});
});
}
});
}).on("error", (err) => {
console.log("Error: " + err.message);
addToLogs("--> error : " + err);
bot.telegram.sendMessage(ctx.chat.id, "Something went wrong", {});
});
}
module.exports = { rtag, r34 };