Compare commits
	
		
			4 Commits
		
	
	
		
			bbc7a7d398
			...
			9b41271e85
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 9b41271e85 | |||
| 463d9c254b | |||
| 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 fs = require("fs").promises;
 | 
				
			||||||
const commands = require("./commands");
 | 
					const commands = require("./commands");
 | 
				
			||||||
const axios = require("axios");
 | 
					const axios = require("axios");
 | 
				
			||||||
 | 
					const roleplay = require("./roleplay.json");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const bot = new Telegraf(BOT_API_KEY);
 | 
					const bot = new Telegraf(BOT_API_KEY);
 | 
				
			||||||
bot.catch((err) => console.log(err));
 | 
					bot.catch((err) => console.log(err));
 | 
				
			||||||
@@ -20,6 +21,6 @@ const data = [
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Promise.all(data)
 | 
					Promise.all(data)
 | 
				
			||||||
	.then(data =>
 | 
						.then(data =>
 | 
				
			||||||
		commands(bot, data, FEEDBACK_ID, axios));
 | 
							commands(bot, [...data, roleplay], FEEDBACK_ID, axios));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bot.launch();
 | 
					bot.launch();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,8 +8,9 @@ const feedback = require("./feedback");
 | 
				
			|||||||
const media_wiki = require("./media_wiki");
 | 
					const media_wiki = require("./media_wiki");
 | 
				
			||||||
const info = require("./info");
 | 
					const info = require("./info");
 | 
				
			||||||
const expand = require("./expand");
 | 
					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("question", (ctx) => ctx.reply(random(questions)()));
 | 
				
			||||||
	bot.command("word", (ctx) => ctx.reply(random(words)()));
 | 
						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("is", (ctx) => ctx.reply(is(random)(ctx)));
 | 
				
			||||||
	bot.command("are", (ctx) => ctx.reply(is(random)(ctx)));
 | 
						bot.command("are", (ctx) => ctx.reply(is(random)(ctx)));
 | 
				
			||||||
	bot.command("can", (ctx) => ctx.reply(is(random)(ctx)));
 | 
						bot.command("can", (ctx) => ctx.reply(is(random)(ctx)));
 | 
				
			||||||
@@ -63,4 +64,8 @@ module.exports = (bot, [ questions, kys, insults, commands_list, words ], feedba
 | 
				
			|||||||
	bot.command("expand", (ctx) => ctx.reply(expand(words)(ctx)));
 | 
						bot.command("expand", (ctx) => ctx.reply(expand(words)(ctx)));
 | 
				
			||||||
	bot.command("start", (ctx) => ctx.reply("Hi! I'm Octanite. Sibling of @quadnite_bot. My creator @ceda_ei created me as 'another option' to users who want the bot in their groups to have privacy mode enabled. \n\nPrivacy mode? Wut is that?\n- Well basically disabling privacy mode enables a bot to read all the messages. @quadnite_bot has that disabled. Enabling privacy mode causes the bot to not recieve messages at some times. To circumvet that, you need to append @octanite_bot to your commands or simply use @quadnite_bot. \n\n[P.S. - My creator doesn't store any messages or personal data. It's safe to use any of the two bots.]\nTo give feedback, use /feedback"));
 | 
						bot.command("start", (ctx) => ctx.reply("Hi! I'm Octanite. Sibling of @quadnite_bot. My creator @ceda_ei created me as 'another option' to users who want the bot in their groups to have privacy mode enabled. \n\nPrivacy mode? Wut is that?\n- Well basically disabling privacy mode enables a bot to read all the messages. @quadnite_bot has that disabled. Enabling privacy mode causes the bot to not recieve messages at some times. To circumvet that, you need to append @octanite_bot to your commands or simply use @quadnite_bot. \n\n[P.S. - My creator doesn't store any messages or personal data. It's safe to use any of the two bots.]\nTo 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
 | 
					<b>Random</b>
 | 
				
			||||||
word - Get a random word
 | 
					
 | 
				
			||||||
words - Get n random words
 | 
					 | 
				
			||||||
kys - Kill yourself
 | 
					 | 
				
			||||||
coin - Tosses a coin
 | 
					coin - Tosses a coin
 | 
				
			||||||
wiki - Search Wikipedia
 | 
					wiki - Search Wikipedia
 | 
				
			||||||
arch_wiki - Search the Arch wiki
 | 
					arch_wiki - Search the Arch wiki
 | 
				
			||||||
 | 
					kys - Kill yourself
 | 
				
			||||||
insult - As expected, insults
 | 
					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
 | 
					weebify - Weebifies the given text
 | 
				
			||||||
absurdify - mAke tExT aBSUrd
 | 
					absurdify - mAke tExT aBSUrd
 | 
				
			||||||
is - Is <your question>
 | 
					expand - Expands a given abbreviation
 | 
				
			||||||
are - Are <your question>
 | 
					
 | 
				
			||||||
can - Can <your question>
 | 
					<b>Ask a question</b>
 | 
				
			||||||
will - will <your question>
 | 
					<code>
 | 
				
			||||||
shall - shall <your question>
 | 
					is       are   can
 | 
				
			||||||
was - Was <your question>
 | 
					will     did   shall
 | 
				
			||||||
do - Do <your question>
 | 
					was      do    does
 | 
				
			||||||
does - Does <your question>
 | 
					should
 | 
				
			||||||
did - Did <your question>
 | 
					</code>
 | 
				
			||||||
should - Should <your question>
 | 
					<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
 | 
					help - Need help? Go here
 | 
				
			||||||
feedback - Send feedback, suggestion for kys, insult text
 | 
					feedback - Send feedback, suggestion for kys, insult text
 | 
				
			||||||
rate - Rate me on TGDR
 | 
					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