mirror of
				https://gitlab.com/ceda_ei/Quadnite-Bot
				synced 2025-10-31 17:20:05 +01:00 
			
		
		
		
	Compare commits
	
		
			15 Commits
		
	
	
		
			node_port
			...
			6da0e12171
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 6da0e12171 | |||
| b0eff87e72 | |||
| 9024ec65f9 | |||
| 53dda834f9 | |||
| af56ffbbb3 | |||
| 382579ba3f | |||
| 8f16112b2e | |||
| 72e69b7ac1 | |||
| 3ed015b584 | |||
| 2914321b3c | |||
| 375f032b97 | |||
| dcf77e56a3 | |||
| e4311467b3 | |||
| bd2f38679c | |||
| 59e8db799a | 
							
								
								
									
										1
									
								
								bot.js
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								bot.js
									
									
									
									
									
								
							| @@ -5,6 +5,7 @@ const commands = require("./commands"); | |||||||
| const axios = require("axios"); | const axios = require("axios"); | ||||||
|  |  | ||||||
| const bot = new Telegraf(BOT_API_KEY); | const bot = new Telegraf(BOT_API_KEY); | ||||||
|  | bot.catch((err) => console.log(err)); | ||||||
|  |  | ||||||
| const data = [ | const data = [ | ||||||
| 	"questions", | 	"questions", | ||||||
|   | |||||||
							
								
								
									
										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,9 @@ const absurdify = require("./absurdify"); | |||||||
| const feedback = require("./feedback"); | 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"); | ||||||
|  |  | ||||||
| module.exports = (bot, [ questions, kys, insults, commands_list, words ], | module.exports = (bot, [ questions, kys, insults, commands_list, words ], feedback_id, axios) => { | ||||||
| 	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)())); | ||||||
| @@ -60,5 +60,9 @@ module.exports = (bot, [ questions, kys, insults, commands_list, words ], | |||||||
| 		"https://wiki.archlinux.org/api.php")(ctx).then(x => ctx.reply(x, | 		"https://wiki.archlinux.org/api.php")(ctx).then(x => ctx.reply(x, | ||||||
| 		{parse_mode: "HTML"}))); | 		{parse_mode: "HTML"}))); | ||||||
| 	bot.command("info", (ctx) => ctx.reply(info()(ctx), {parse_mode: "Markdown"})); | 	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 am Quadnite. If you are " | ||||||
|  | 		+ "chatting with me in private, you are most likely doing it wrong. " | ||||||
|  | 		+ "Add me to a group for fun. To give feedback, use /feedback")); | ||||||
|  |  | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -24,7 +24,7 @@ module.exports = () => (ctx) => { | |||||||
| 				text += "Channel ID: "; | 				text += "Channel ID: "; | ||||||
| 			text += `\`${forward.id}\`\n`; | 			text += `\`${forward.id}\`\n`; | ||||||
| 			text += "Message Date: `"; | 			text += "Message Date: `"; | ||||||
| 			const date = new Date(reply.forward_date); | 			const date = new Date(reply.forward_date*1000); | ||||||
| 			text += date.toUTCString(); | 			text += date.toUTCString(); | ||||||
| 			text += "`"; | 			text += "`"; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ module.exports = (random, kys, default_text, bot_text, excluded_names) => (ctx) | |||||||
| 	if (ctx.message.reply_to_message) { | 	if (ctx.message.reply_to_message) { | ||||||
|  |  | ||||||
| 		const { from } = 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]) | 		if (name == excluded_names[0]) | ||||||
| 			return bot_text; | 			return bot_text; | ||||||
| 		return random(kys)().replace(/##name##/g, name); | 		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(" "); | 		const text_array = ctx.message.text.split(" "); | ||||||
| 		if (text_array.length > 1) { | 		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) | 			if (excluded_names.includes(name) | ||||||
| 				|| excluded_names.includes("@" + name)) | 				|| excluded_names.includes("@" + name)) | ||||||
| 				return bot_text; | 				return bot_text; | ||||||
|   | |||||||
| @@ -21,3 +21,4 @@ should - Should <your question> | |||||||
| 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 | ||||||
|   | |||||||
							
								
								
									
										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## 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## 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. | ##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## You should try playing snake and ladders, with real snakes and no ladders. | ||||||
| ##name## Dance naked on a couple of HT wires. | ##name## Dance naked on a couple of HT wires. | ||||||
| ##name## An active volcano is the best swimming pool for you. | ##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## 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## 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. | ##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? | How old are you? | ||||||
| Whats your Birthday? | Whats your Birthday? | ||||||
| What starsign does that make it? | 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? | Have you ever been stuck in a bad situation but had no phone? | ||||||
| How many signal bars do you usually get in your room? | How many signal bars do you usually get in your room? | ||||||
| What service provider do you think is the best and why so? | What service provider do you think is the best and why so? | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user