Compare commits
	
		
			23 Commits
		
	
	
		
			node_port
			...
			9b41271e85
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 9b41271e85 | |||
| 463d9c254b | |||
| fde5830309 | |||
| 71e6f6927d | |||
| bbc7a7d398 | |||
| 6da0e12171 | |||
| 3926f3e550 | |||
| b0eff87e72 | |||
| 472c7489f9 | |||
| 9024ec65f9 | |||
| 53dda834f9 | |||
| af56ffbbb3 | |||
| 382579ba3f | |||
| 8f16112b2e | |||
| 72e69b7ac1 | |||
| 3ed015b584 | |||
| 77270db9b4 | |||
| 2914321b3c | |||
| 375f032b97 | |||
| dcf77e56a3 | |||
| e4311467b3 | |||
| bd2f38679c | |||
| 59e8db799a | 
							
								
								
									
										4
									
								
								bot.js
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								bot.js
									
									
									
									
									
								
							@@ -3,8 +3,10 @@ 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));
 | 
			
		||||
 | 
			
		||||
const data = [
 | 
			
		||||
	"questions",
 | 
			
		||||
@@ -19,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();
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										48
									
								
								commands/expand.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								commands/expand.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,48 @@
 | 
			
		||||
function expand(words, text) {
 | 
			
		||||
 | 
			
		||||
	const letters = text.trim().toLowerCase().split("");
 | 
			
		||||
	// Build a dictionary with lowercase letters as keys
 | 
			
		||||
	const dict = {};
 | 
			
		||||
	words.forEach(word => {
 | 
			
		||||
 | 
			
		||||
		if (word == "")
 | 
			
		||||
			return;
 | 
			
		||||
		const initial = word.split("")[0].toLowerCase();
 | 
			
		||||
		if (initial in dict)
 | 
			
		||||
			dict[initial].push(word);
 | 
			
		||||
		else
 | 
			
		||||
			dict[initial] = [word];
 | 
			
		||||
 | 
			
		||||
	});
 | 
			
		||||
	return letters.map((letter) => {
 | 
			
		||||
 | 
			
		||||
		if (!(letter.toLowerCase() in dict))
 | 
			
		||||
			return letter;
 | 
			
		||||
		const wordsWithLetter = dict[letter.toLowerCase()];
 | 
			
		||||
		const word = wordsWithLetter[Math.floor(Math.random() * wordsWithLetter.length)];
 | 
			
		||||
		return word;
 | 
			
		||||
 | 
			
		||||
	}).reduce((acc, cur) => acc + " " + cur).replace(/\s{2,}/g, " ");
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
module.exports = (words = []) => (ctx) => {
 | 
			
		||||
 | 
			
		||||
	words = words.filter(i => ! i.match(/'s$/));
 | 
			
		||||
	const message = ctx.message.text.replace(/^[^ ]+/, "");
 | 
			
		||||
	if (message) {
 | 
			
		||||
 | 
			
		||||
		return expand(words, message);
 | 
			
		||||
 | 
			
		||||
	} else {
 | 
			
		||||
 | 
			
		||||
		if (ctx.message.reply_to_message)
 | 
			
		||||
			return expand(words, ctx.message.reply_to_message.text);
 | 
			
		||||
		else
 | 
			
		||||
			return "Need text to expand. Send /expand text or reply to a "
 | 
			
		||||
			+ "message with /expand";
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
@@ -7,9 +7,10 @@ const absurdify = require("./absurdify");
 | 
			
		||||
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 ],
 | 
			
		||||
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	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)));
 | 
			
		||||
@@ -60,5 +61,11 @@ module.exports = (bot, [ questions, kys, insults, commands_list, words ],
 | 
			
		||||
		"https://wiki.archlinux.org/api.php")(ctx).then(x => ctx.reply(x,
 | 
			
		||||
		{parse_mode: "HTML"})));
 | 
			
		||||
	bot.command("info", (ctx) => ctx.reply(info()(ctx), {parse_mode: "Markdown"}));
 | 
			
		||||
	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)));
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,7 @@ module.exports = () => (ctx) => {
 | 
			
		||||
				text += "Channel ID: ";
 | 
			
		||||
			text += `\`${forward.id}\`\n`;
 | 
			
		||||
			text += "Message Date: `";
 | 
			
		||||
			const date = new Date(reply.forward_date);
 | 
			
		||||
			const date = new Date(reply.forward_date*1000);
 | 
			
		||||
			text += date.toUTCString();
 | 
			
		||||
			text += "`";
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@ module.exports = (random, kys, default_text, bot_text, excluded_names) => (ctx)
 | 
			
		||||
	if (ctx.message.reply_to_message) {
 | 
			
		||||
 | 
			
		||||
		const { from } = ctx.message.reply_to_message;
 | 
			
		||||
		const name = from.username ? "@" + from.username : from.firstName;
 | 
			
		||||
		const name = from.username ? "@" + from.username : from.first_name;
 | 
			
		||||
		if (name == excluded_names[0])
 | 
			
		||||
			return bot_text;
 | 
			
		||||
		return random(kys)().replace(/##name##/g, name);
 | 
			
		||||
@@ -13,7 +13,7 @@ module.exports = (random, kys, default_text, bot_text, excluded_names) => (ctx)
 | 
			
		||||
		const text_array = ctx.message.text.split(" ");
 | 
			
		||||
		if (text_array.length > 1) {
 | 
			
		||||
 | 
			
		||||
			const name = text_array[1];
 | 
			
		||||
			const name = text_array.slice(1).reduce((i, j) => i + " " + j).trim();
 | 
			
		||||
			if (excluded_names.includes(name)
 | 
			
		||||
				|| excluded_names.includes("@" + name))
 | 
			
		||||
				return bot_text;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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,23 +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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										17
									
								
								insults.txt
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								insults.txt
									
									
									
									
									
								
							@@ -67,3 +67,20 @@ Everyone has the right to be stupid but ##name## is abusing the privilege.
 | 
			
		||||
##name## I’d tell you how I really feel, but I wasn’t born with enough middle fingers to express myself in this case.
 | 
			
		||||
##name## Stupidity’s not a crime, so feel free to go.
 | 
			
		||||
##name## I’d tell you to go fuck yourself, but that would be cruel and unusual punishment.
 | 
			
		||||
I've finally found how ##name## is related to their pants, they're both full of shit.
 | 
			
		||||
There has been a rumor going around about ##name## acting like a dumbass. They're not acting.
 | 
			
		||||
##name## calling you an idiot would be an insult to stupid people.
 | 
			
		||||
##name## you know how laughter is supposed to be the best medicine? I'm surprised you haven't received an award for your face.
 | 
			
		||||
##name## you're the reason why shampoo bottles need directions.
 | 
			
		||||
They say trash takes 10-1000 years to go away, I sure hope you're going for a speedrun ##name##.
 | 
			
		||||
##name## makes me wish I had less eyes and ears.
 | 
			
		||||
##name## if you ran as much as your mouth maybe people would actually like you.
 | 
			
		||||
##name## mother nature takes pity on you.
 | 
			
		||||
If I had a face like ##name##'s I would file a lawsuit against my parents.
 | 
			
		||||
##name## I'm glad to see you finally graduated kindergarten.....oh no, I'm sorry I thought-
 | 
			
		||||
It makes me really sad to see how much time it takes ##name## to get ready in the morning, not that it makes much of a difference.
 | 
			
		||||
##name## I would try to insult you but it would take you the rest of the day to figure it out.
 | 
			
		||||
##name## I'm surprised your portraits don't hang themselves.
 | 
			
		||||
Many people think ##name## is a vampire because their reflection quit on the first day.
 | 
			
		||||
##name## you make satan consider going to church.
 | 
			
		||||
When god said 'Let there be light' he should have reconsidered after meeting ##name##.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								kys.txt
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								kys.txt
									
									
									
									
									
								
							@@ -26,7 +26,7 @@
 | 
			
		||||
##name## You should try playing snake and ladders, with real snakes and no ladders.
 | 
			
		||||
##name## Dance naked on a couple of HT wires.
 | 
			
		||||
##name## An active volcano is the best swimming pool for you.
 | 
			
		||||
##name## You shoulf try hot bath in a volcano.
 | 
			
		||||
##name## You should try hot bath in a volcano.
 | 
			
		||||
##name## Try to spend one day in a coffin and it will be yours forever.
 | 
			
		||||
##name## Hit Uranium with a slow moving neutron in your presence. It will be a worthwhile experience.
 | 
			
		||||
##name## You can be the first person to step on the sun. Have a try.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										81
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,81 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "quadnite-bot",
 | 
			
		||||
  "version": "1.0.0",
 | 
			
		||||
  "lockfileVersion": 1,
 | 
			
		||||
  "requires": true,
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@types/node": {
 | 
			
		||||
      "version": "10.12.26",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.26.tgz",
 | 
			
		||||
      "integrity": "sha512-nMRqS+mL1TOnIJrL6LKJcNZPB8V3eTfRo9FQA2b5gDvrHurC8XbSA86KNe0dShlEL7ReWJv/OU9NL7Z0dnqWTg=="
 | 
			
		||||
    },
 | 
			
		||||
    "axios": {
 | 
			
		||||
      "version": "0.18.0",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "follow-redirects": "^1.3.0",
 | 
			
		||||
        "is-buffer": "^1.1.5"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "debug": {
 | 
			
		||||
      "version": "3.2.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
 | 
			
		||||
      "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "ms": "^2.1.1"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "follow-redirects": {
 | 
			
		||||
      "version": "1.7.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz",
 | 
			
		||||
      "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "debug": "^3.2.6"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "is-buffer": {
 | 
			
		||||
      "version": "1.1.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
 | 
			
		||||
      "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
 | 
			
		||||
    },
 | 
			
		||||
    "ms": {
 | 
			
		||||
      "version": "2.1.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
 | 
			
		||||
      "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
 | 
			
		||||
    },
 | 
			
		||||
    "node-fetch": {
 | 
			
		||||
      "version": "2.3.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz",
 | 
			
		||||
      "integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA=="
 | 
			
		||||
    },
 | 
			
		||||
    "sandwich-stream": {
 | 
			
		||||
      "version": "2.0.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/sandwich-stream/-/sandwich-stream-2.0.2.tgz",
 | 
			
		||||
      "integrity": "sha512-jLYV0DORrzY3xaz/S9ydJL6Iz7essZeAfnAavsJ+zsJGZ1MOnsS52yRjU3uF3pJa/lla7+wisp//fxOwOH8SKQ=="
 | 
			
		||||
    },
 | 
			
		||||
    "telegraf": {
 | 
			
		||||
      "version": "3.27.1",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@types/node": "^10.1.2",
 | 
			
		||||
        "debug": "^4.0.1",
 | 
			
		||||
        "node-fetch": "^2.2.0",
 | 
			
		||||
        "sandwich-stream": "^2.0.1",
 | 
			
		||||
        "telegram-typings": "^3.6.0"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "debug": {
 | 
			
		||||
          "version": "4.1.1",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
 | 
			
		||||
          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
 | 
			
		||||
          "requires": {
 | 
			
		||||
            "ms": "^2.1.1"
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "telegram-typings": {
 | 
			
		||||
      "version": "3.6.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/telegram-typings/-/telegram-typings-3.6.1.tgz",
 | 
			
		||||
      "integrity": "sha512-njVv1EAhIZnmQVLocZEADYUyqA1WIXuVcDYlsp+mXua/XB0pxx+PKtMSPeZ/EE4wPWTw9h/hA9ASTT6yQelkiw=="
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,4 +1,3 @@
 | 
			
		||||
name?
 | 
			
		||||
How old are you?
 | 
			
		||||
Whats your Birthday?
 | 
			
		||||
What starsign does that make it?
 | 
			
		||||
@@ -1755,4 +1754,3 @@ How do you memorize your numbers?
 | 
			
		||||
Have you ever been stuck in a bad situation but had no phone?
 | 
			
		||||
How many signal bars do you usually get in your room?
 | 
			
		||||
What service provider do you think is the best and why so?
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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