mirror of
				https://gitlab.com/ceda_ei/Quadnite-Bot
				synced 2025-10-31 01:00:05 +01:00 
			
		
		
		
	Compare commits
	
		
			2 Commits
		
	
	
		
			6da0e12171
			...
			fde5830309
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| fde5830309 | |||
| 71e6f6927d | 
							
								
								
									
										3
									
								
								bot.js
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								bot.js
									
									
									
									
									
								
							| @@ -3,6 +3,7 @@ const { BOT_API_KEY, FEEDBACK_ID } = process.env; | ||||
| const fs = require("fs").promises; | ||||
| const commands = require("./commands"); | ||||
| const axios = require("axios"); | ||||
| const roleplay = require("./roleplay.json"); | ||||
|  | ||||
| const bot = new Telegraf(BOT_API_KEY); | ||||
| bot.catch((err) => console.log(err)); | ||||
| @@ -20,6 +21,6 @@ const data = [ | ||||
|  | ||||
| Promise.all(data) | ||||
| 	.then(data => | ||||
| 		commands(bot, data, FEEDBACK_ID, axios)); | ||||
| 		commands(bot, [...data, roleplay], FEEDBACK_ID, axios)); | ||||
|  | ||||
| bot.launch(); | ||||
|   | ||||
| @@ -8,8 +8,9 @@ const feedback = require("./feedback"); | ||||
| const media_wiki = require("./media_wiki"); | ||||
| const info = require("./info"); | ||||
| const expand = require("./expand"); | ||||
| const roleplay = require("./roleplay"); | ||||
|  | ||||
| module.exports = (bot, [ questions, kys, insults, commands_list, words ], feedback_id, axios) => { | ||||
| module.exports = (bot, [ questions, kys, insults, commands_list, words, roleplay_data ], feedback_id, axios) => { | ||||
|  | ||||
| 	bot.command("question", (ctx) => ctx.reply(random(questions)())); | ||||
| 	bot.command("word", (ctx) => ctx.reply(random(words)())); | ||||
| @@ -32,7 +33,7 @@ module.exports = (bot, [ questions, kys, insults, commands_list, words ], feedba | ||||
|  | ||||
| 		}); | ||||
|  | ||||
| 	bot.command("commands", (ctx) => ctx.reply(commands_list.join("\n"))); | ||||
| 	bot.command("commands", (ctx) => ctx.reply(commands_list.join("\n"), {parse_mode: "html"})); | ||||
| 	bot.command("is", (ctx) => ctx.reply(is(random)(ctx))); | ||||
| 	bot.command("are", (ctx) => ctx.reply(is(random)(ctx))); | ||||
| 	bot.command("can", (ctx) => ctx.reply(is(random)(ctx))); | ||||
| @@ -65,4 +66,8 @@ module.exports = (bot, [ questions, kys, insults, commands_list, words ], feedba | ||||
| 		+ "chatting with me in private, you are most likely doing it wrong. " | ||||
| 		+ "Add me to a group for fun. To give feedback, use /feedback")); | ||||
|  | ||||
| 	// Add all roleplay commands | ||||
| 	Object.keys(roleplay_data).map(command => | ||||
| 		bot.command(command, ctx => roleplay(roleplay_data[command].forms, roleplay_data[command].gifs)(ctx))); | ||||
|  | ||||
| }; | ||||
|   | ||||
							
								
								
									
										40
									
								
								commands/roleplay.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								commands/roleplay.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,40 @@ | ||||
| function joinUsers(users) { | ||||
|  | ||||
| 	if (users.length == 1) | ||||
| 		return users[0]; | ||||
| 	return users.slice(0, users.length - 1).join(", ") | ||||
| 		+ ` and ${users[users.length - 1]}`; | ||||
|  | ||||
| } | ||||
|  | ||||
|  | ||||
| module.exports = (forms, gifs) => (ctx) => { | ||||
|  | ||||
| 	const gif = gifs[Math.floor(Math.random() * gifs.length)]; | ||||
| 	const message = ctx.message.text.replace(/^[^ ]+\s*/, "") | ||||
| 		.match(/^((@\w+(\s+|$))*)(.*)/); | ||||
| 	const users = message[1].trim().split(" ").filter(i => i.length); | ||||
| 	const reason = message[4]; | ||||
| 	let reply = ""; | ||||
| 	const from = ctx.message.from; | ||||
| 	const user = from.username ? "@" + from.username : from.first_name; | ||||
| 	if (users.length > 0 && reason.length > 0) | ||||
| 		reply = forms.both | ||||
| 			.replace("{}", user) | ||||
| 			.replace("{}", joinUsers(users)) | ||||
| 			.replace("{}", reason); | ||||
| 	else if (users.length > 0) | ||||
| 		reply = forms.others | ||||
| 			.replace("{}", user) | ||||
| 			.replace("{}", joinUsers(users)); | ||||
| 	else if (reason.length > 0) | ||||
| 		reply = forms.reason | ||||
| 			.replace("{}", user) | ||||
| 			.replace("{}", reason); | ||||
| 	else | ||||
| 		reply = forms.none | ||||
| 			.replace("{}", user); | ||||
|  | ||||
| 	ctx.replyWithAnimation(gif, {caption: reply}); | ||||
|  | ||||
| }; | ||||
| @@ -1,24 +1,61 @@ | ||||
| question - Get a random question | ||||
| word - Get a random word | ||||
| words - Get n random words | ||||
| kys - Kill yourself | ||||
| <b>Random</b> | ||||
|  | ||||
| coin - Tosses a coin | ||||
| wiki - Search Wikipedia | ||||
| arch_wiki - Search the Arch wiki | ||||
| kys - Kill yourself | ||||
| insult - As expected, insults | ||||
|  | ||||
| <b>Wordplay</b> | ||||
|  | ||||
| question - Get a random question | ||||
| word - Get a random word | ||||
| words - Get n random words | ||||
| weebify - Weebifies the given text | ||||
| absurdify - mAke tExT aBSUrd | ||||
| is - Is <your question> | ||||
| are - Are <your question> | ||||
| can - Can <your question> | ||||
| will - will <your question> | ||||
| shall - shall <your question> | ||||
| was - Was <your question> | ||||
| do - Do <your question> | ||||
| does - Does <your question> | ||||
| did - Did <your question> | ||||
| should - Should <your question> | ||||
| expand - Expands a given abbreviation | ||||
|  | ||||
| <b>Ask a question</b> | ||||
| <code> | ||||
| is       are   can | ||||
| will     did   shall | ||||
| was      do    does | ||||
| should | ||||
| </code> | ||||
| <b>Roleplay</b> | ||||
| <code> | ||||
| angry       bite | ||||
| blush       bored | ||||
| bonk        boop | ||||
| chase       cheer | ||||
| cringe      cry | ||||
| cuddle      dab | ||||
| dance       die | ||||
| eat         facepalm | ||||
| feed        glomp | ||||
| happy       hate | ||||
| holdhands   hide | ||||
| highfive    hug | ||||
| kill        kiss | ||||
| laugh       lick | ||||
| love        lurk | ||||
| nervous     no | ||||
| nom         nuzzle | ||||
| panic       pat | ||||
| peck        poke | ||||
| pout        run | ||||
| shoot       shrug | ||||
| sip         slap | ||||
| sleep       snuggle | ||||
| stab        tease | ||||
| think       thumbsup | ||||
| tickle      triggered | ||||
| twerk       wag | ||||
| wave        wink | ||||
| yes | ||||
| </code> | ||||
| <b>Miscallenous</b> | ||||
|  | ||||
| help - Need help? Go here | ||||
| feedback - Send feedback, suggestion for kys, insult text | ||||
| rate - Rate me on TGDR | ||||
| expand - Expands a given abbreviation | ||||
|   | ||||
							
								
								
									
										1150
									
								
								roleplay.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1150
									
								
								roleplay.json
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user