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 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)));
 | 
			
		||||
@@ -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("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
 | 
			
		||||
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