From 859988e93e06282379b775c735dc1ab643643772 Mon Sep 17 00:00:00 2001 From: Andreas Bielawski Date: Fri, 8 Jul 2016 20:00:11 +0200 Subject: [PATCH] =?UTF-8?q?-=20Fix=20f=C3=BCr=20Notify=20-=20Restliche,=20?= =?UTF-8?q?=C3=BCberfl=C3=BCssige=20Plugins=20entfernt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- otouto/plugins/chatter.lua | 80 ------ otouto/plugins/commit.lua | 430 --------------------------------- otouto/plugins/dilbert.lua | 51 ---- otouto/plugins/eightball.lua | 58 ----- otouto/plugins/fortune.lua | 31 --- otouto/plugins/hearthstone.lua | 130 ---------- otouto/plugins/lastfm.lua | 113 --------- otouto/plugins/me.lua | 42 ---- otouto/plugins/nick.lua | 52 ---- otouto/plugins/notify.lua | 5 +- otouto/plugins/patterns.lua | 33 --- otouto/plugins/ping.lua | 16 -- otouto/plugins/pun.lua | 144 ----------- otouto/plugins/reactions.lua | 52 ---- otouto/plugins/shout.lua | 56 ----- otouto/plugins/slap.lua | 153 ------------ otouto/plugins/whoami.lua | 52 ---- 17 files changed, 3 insertions(+), 1495 deletions(-) delete mode 100644 otouto/plugins/chatter.lua delete mode 100644 otouto/plugins/commit.lua delete mode 100644 otouto/plugins/dilbert.lua delete mode 100644 otouto/plugins/eightball.lua delete mode 100644 otouto/plugins/fortune.lua delete mode 100644 otouto/plugins/hearthstone.lua delete mode 100644 otouto/plugins/lastfm.lua delete mode 100644 otouto/plugins/me.lua delete mode 100644 otouto/plugins/nick.lua delete mode 100644 otouto/plugins/patterns.lua delete mode 100644 otouto/plugins/ping.lua delete mode 100644 otouto/plugins/pun.lua delete mode 100644 otouto/plugins/reactions.lua delete mode 100644 otouto/plugins/shout.lua delete mode 100644 otouto/plugins/slap.lua delete mode 100644 otouto/plugins/whoami.lua diff --git a/otouto/plugins/chatter.lua b/otouto/plugins/chatter.lua deleted file mode 100644 index 1e60875..0000000 --- a/otouto/plugins/chatter.lua +++ /dev/null @@ -1,80 +0,0 @@ - -- Put this absolutely at the end, even after greetings.lua. - -local chatter = {} - -local HTTP = require('socket.http') -local URL = require('socket.url') -local JSON = require('dkjson') -local bindings = require('otouto.bindings') -local utilities = require('otouto.utilities') - -function chatter:init(config) - if not config.simsimi_key then - print('Missing config value: simsimi_key.') - print('chatter.lua will not be enabled.') - return - end - - chatter.triggers = { - '' - } -end - -chatter.base_url = 'http://%sapi.simsimi.com/request.p?key=%s&lc=%s&ft=1.0&text=%s' - -function chatter:action(msg, config) - - if msg.text == '' then return true end - - if ( - not ( - msg.text_lower:match('^'..self.info.first_name:lower()..',') - or msg.text_lower:match('^@'..self.info.username:lower()..',') - or msg.from.id == msg.chat.id - --Uncomment the following line for Al Gore-like conversation. - --or (msg.reply_to_message and msg.reply_to_message.from.id == self.info.id) - ) - or msg.text:match('^'..config.cmd_pat) - or msg.text == '' - ) then - return true - end - - bindings.sendChatAction(self, { action = 'typing' } ) - - local input = msg.text_lower:gsub(self.info.first_name, 'simsimi') - input = input:gsub('@'..self.info.username, 'simsimi') - - local sandbox = config.simsimi_trial and 'sandbox.' or '' - - local url = chatter.base_url:format(sandbox, config.simsimi_key, config.lang, URL.escape(input)) - - local jstr, res = HTTP.request(url) - if res ~= 200 then - utilities.send_message(self, msg.chat.id, config.errors.chatter_connection) - return - end - - local jdat = JSON.decode(jstr) - if not jdat.response or jdat.response:match('^I HAVE NO RESPONSE.') then - utilities.send_message(self, msg.chat.id, config.errors.chatter_response) - return - end - local output = jdat.response - - -- Clean up the response here. - output = utilities.trim(output) - -- Simsimi will often refer to itself. Replace "simsimi" with the bot name. - output = output:gsub('%aimi?%aimi?', self.info.first_name) - -- Self-explanatory. - output = output:gsub('USER', msg.from.first_name) - -- Capitalize the first letter. - output = output:gsub('^%l', string.upper) - -- Add a period if there is no punctuation. - output = output:gsub('%P$', '%1.') - - utilities.send_message(self, msg.chat.id, output) - -end - -return chatter diff --git a/otouto/plugins/commit.lua b/otouto/plugins/commit.lua deleted file mode 100644 index 0701385..0000000 --- a/otouto/plugins/commit.lua +++ /dev/null @@ -1,430 +0,0 @@ - -- Commits from https://github.com/ngerakines/commitment. - -local commit = {} - -local utilities = require('otouto.utilities') - -commit.command = 'commit' -commit.doc = '`Returns a commit message from whatthecommit.com.`' - -function commit:init(config) - commit.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('commit').table -end - -local commits = { - "One does not simply merge into master", - "Merging the merge", - "Another bug bites the dust", - "de-misunderestimating", - "Some shit.", - "add actual words", - "I CAN HAZ COMMENTZ.", - "giggle.", - "Whatever.", - "Finished fondling.", - "FONDLED THE CODE", - "this is how we generate our shit.", - "unh", - "It works!", - "unionfind is no longer being molested.", - "Well, it's doing something.", - "I'M PUSHING.", - "Whee.", - "Whee, good night.", - "It'd be nice if type errors caused the compiler to issue a type error", - "Fucking templates.", - "I hate this fucking language.", - "marks", - "that coulda been bad", - "hoo boy", - "It was the best of times, it was the worst of times", - "Fucking egotistical bastard. adds expandtab to vimrc", - "if you're not using et, fuck off", - "WHO THE FUCK CAME UP WITH MAKE?", - "This is a basic implementation that works.", - "By works, I meant 'doesnt work'. Works now..", - "Last time I said it works? I was kidding. Try this.", - "Just stop reading these for a while, ok..", - "Give me a break, it's 2am. But it works now.", - "Make that it works in 90% of the cases. 3:30.", - "Ok, 5am, it works. For real.", - "FOR REAL.", - "I don't know what these changes are supposed to accomplish but somebody told me to make them.", - "I don't get paid enough for this shit.", - "fix some fucking errors", - "first blush", - "So my boss wanted this button ...", - "uhhhhhh", - "forgot we're not using a smart language", - "include shit", - "To those I leave behind, good luck!", - "things occurred", - "i dunno, maybe this works", - "8==========D", - "No changes made", - "whooooooooooooooooooooooooooo", - "clarify further the brokenness of C++. why the fuck are we using C++?", - ".", - "Friday 5pm", - "changes", - "A fix I believe, not like I tested or anything", - "Useful text", - "pgsql is being a pain", - "pgsql is more strict, increase the hackiness up to 11", - "c&p fail", - "syntax", - "fix", - "just shoot me", - "arrrggghhhhh fixed!", - "someone fails and it isn't me", - "totally more readable", - "better grepping", - "fix", - "fix bug, for realz", - "fix /sigh", - "Does this work", - "MOAR BIFURCATION", - "bifurcation", - "REALLY FUCKING FIXED", - "FIX", - "better ignores", - "More ignore", - "more ignores", - "more ignores", - "more ignores", - "more ignores", - "more ignores", - "more ignored words", - "more fixes", - "really ignore ignored worsd", - "fixes", - "/sigh", - "fix", - "fail", - "pointless limitation", - "omg what have I done?", - "added super-widget 2.0.", - "tagging release w.t.f.", - "I can't believe it took so long to fix this.", - "I must have been drunk.", - "This is why the cat shouldn't sit on my keyboard.", - "This is why git rebase is a horrible horrible thing.", - "ajax-loader hotness, oh yeah", - "small is a real HTML tag, who knew.", - "WTF is this.", - "Do things better, faster, stronger", - "Use a real JS construct, WTF knows why this works in chromium.", - "Added a banner to the default admin page. Please have mercy on me =(", - "needs more cow bell", - "Switched off unit test X because the build had to go out now and there was no time to fix it properly.", - "Updated", - "I must sleep... it's working... in just three hours...", - "I was wrong...", - "Completed with no bugs...", - "Fixed a little bug...", - "Fixed a bug in NoteLineCount... not seriously...", - "woa!! this one was really HARD!", - "Made it to compile...", - "changed things...", - "touched...", - "i think i fixed a bug...", - "perfect...", - "Moved something to somewhere... goodnight...", - "oops, forgot to add the file", - "Corrected mistakes", - "oops", - "oops!", - "put code that worked where the code that didn't used to be", - "Nothing to see here, move along", - "I am even stupider than I thought", - "I don't know what the hell I was thinking.", - "fixed errors in the previous commit", - "Committed some changes", - "Some bugs fixed", - "Minor updates", - "Added missing file in previous commit", - "bug fix", - "typo", - "bara bra grejjor", - "Continued development...", - "Does anyone read this? I'll be at the coffee shop accross the street.", - "That's just how I roll", - "work in progress", - "minor changes", - "some brief changes", - "assorted changes", - "lots and lots of changes", - "another big bag of changes", - "lots of changes after a lot of time", - "LOTS of changes. period", - "Test commit. Please ignore", - "I'm just a grunt. Don't blame me for this awful PoS.", - "I did it for the lulz!", - "I'll explain this when I'm sober .. or revert it", - "Obligatory placeholder commit message", - "A long time ago, in a galaxy far far away...", - "Fixed the build.", - "various changes", - "One more time, but with feeling.", - "Handled a particular error.", - "Fixed unnecessary bug.", - "Removed code.", - "Added translation.", - "Updated build targets.", - "Refactored configuration.", - "Locating the required gigapixels to render...", - "Spinning up the hamster...", - "Shovelling coal into the server...", - "Programming the flux capacitor", - "The last time I tried this the monkey didn't survive. Let's hope it works better this time.", - "I should have had a V8 this morning.", - "640K ought to be enough for anybody", - "pay no attention to the man behind the curtain", - "a few bits tried to escape, but we caught them", - "Who has two thumbs and remembers the rudiments of his linear algebra courses? Apparently, this guy.", - "workaround for ant being a pile of fail", - "Don't push this commit", - "rats", - "squash me", - "fixed mistaken bug", - "Final commit, ready for tagging", - "-m \'So I hear you like commits ...\'", - "epic", - "need another beer", - "Well the book was obviously wrong.", - "lolwhat?", - "Another commit to keep my CAN streak going.", - "I cannot believe that it took this long to write a test for this.", - "TDD: 1, Me: 0", - "Yes, I was being sarcastic.", - "Apparently works-for-me is a crappy excuse.", - "tl;dr", - "I would rather be playing SC2.", - "Crap. Tonight is raid night and I am already late.", - "I know what I am doing. Trust me.", - "You should have trusted me.", - "Is there an award for this?", - "Is there an achievement for this?", - "I'm totally adding this to epic win. +300", - "This really should not take 19 minutes to build.", - "fixed the israeli-palestinian conflict", - "SHIT ===> GOLD", - "Committing in accordance with the prophecy.", - "It compiles! Ship it!", - "LOL!", - "Reticulating splines...", - "SEXY RUSSIAN CODES WAITING FOR YOU TO CALL", - "s/import/include/", - "extra debug for stuff module", - "debug line test", - "debugo", - "remove debug
all good", - "debug suff", - "more debug... who overwrote!", - "these confounded tests drive me nuts", - "For great justice.", - "QuickFix.", - "oops - thought I got that one.", - "removed echo and die statements, lolz.", - "somebody keeps erasing my changes.", - "doh.", - "pam anderson is going to love me.", - "added security.", - "arrgghh... damn this thing for not working.", - "jobs... steve jobs", - "and a comma", - "this is my quickfix branch and i will use to do my quickfixes", - "Fix my stupidness", - "and so the crazy refactoring process sees the sunlight after some months in the dark!", - "gave up and used tables.", - "[Insert your commit message here. Be sure to make it descriptive.]", - "Removed test case since code didn't pass QA", - "removed tests since i can't make them green", - "stuff", - "more stuff", - "Become a programmer, they said. It'll be fun, they said.", - "Same as last commit with changes", - "foo", - "just checking if git is working properly...", - "fixed some minor stuff, might need some additional work.", - "just trolling the repo", - "All your codebase are belong to us.", - "Somebody set up us the bomb.", - "should work I guess...", - "To be honest, I do not quite remember everything I changed here today. But it is all good, I tell ya.", - "well crap.", - "herpderp (redux)", - "herpderp", - "Derp", - "derpherp", - "Herping the derp", - "sometimes you just herp the derp so hard it herpderps", - "Derp. Fix missing constant post rename", - "Herping the fucking derp right here and now.", - "Derp, asset redirection in dev mode", - "mergederp", - "Derp search/replace fuckup", - "Herpy dooves.", - "Derpy hooves", - "derp, helper method rename", - "Herping the derp derp (silly scoping error)", - "Herp derp I left the debug in there and forgot to reset errors.", - "Reset error count between rows. herpderp", - "hey, what's that over there?!", - "hey, look over there!", - "It worked for me...", - "Does not work.", - "Either Hot Shit or Total Bollocks", - "Arrrrgggg", - "Don’t mess with Voodoo", - "I expected something different.", - "Todo!!!", - "This is supposed to crash", - "No changes after this point.", - "I know, I know, this is not how I’m supposed to do it, but I can't think of something better.", - "Don’t even try to refactor it.", - "(c) Microsoft 1988", - "Please no changes this time.", - "Why The Fuck?", - "We should delete this crap before shipping.", - "Shit code!", - "ALL SORTS OF THINGS", - "Herpderp, shoulda check if it does really compile.", - "I CAN HAZ PYTHON, I CAN HAZ INDENTS", - "Major fixup.", - "less french words", - "breathe, =, breathe", - "IEize", - "this doesn't really make things faster, but I tried", - "this should fix it", - "forgot to save that file", - "Glue. Match sticks. Paper. Build script!", - "Argh! About to give up :(", - "Blaming regex.", - "oops", - "it's friday", - "yo recipes", - "Not sure why", - "lol digg", - "grrrr", - "For real, this time.", - "Feed. You. Stuff. No time.", - "I don't give a damn 'bout my reputation", - "DEAL WITH IT", - "commit", - "tunning", - "I really should've committed this when I finished it...", - "It's getting hard to keep up with the crap I've trashed", - "I honestly wish I could remember what was going on here...", - "I must enjoy torturing myself", - "For the sake of my sanity, just ignore this...", - "That last commit message about silly mistakes pales in comparision to this one", - "My bad", - "Still can't get this right...", - "Nitpicking about alphabetizing methods, minor OCD thing", - "Committing fixes in the dark, seriously, who killed my power!?", - "You can't see it, but I'm making a very angry face right now", - "Fix the fixes", - "It's secret!", - "Commit committed....", - "No time to commit.. My people need me!", - "Something fixed", - "I'm hungry", - "asdfasdfasdfasdfasdfasdfadsf", - "hmmm", - "formatted all", - "Replace all whitespaces with tabs.", - "s/ / /g", - "I'm too foo for this bar", - "Things went wrong...", - "??! what the ...", - "This solves it.", - "Working on tests (haha)", - "fixed conflicts (LOL merge -s ours; push -f)", - "last minute fixes.", - "fuckup.", - "Revert \"fuckup\".", - "should work now.", - "final commit.", - "done. going to bed now.", - "buenas those-things.", - "Your commit is writing checks your merge can't cash.", - "This branch is so dirty, even your mom can't clean it.", - "wip", - "Revert \"just testing, remember to revert\"", - "bla", - "harharhar", - "restored deleted entities just to be sure", - "added some filthy stuff", - "bugger", - "lol", - "oopsie B|", - "Copy pasta fail. still had a instead of a", - "Now added delete for real", - "grmbl", - "move your body every every body", - "Trying to fake a conflict", - "And a commit that I don't know the reason of...", - "ffs", - "that's all folks", - "Fucking submodule bull shit", - "apparently i did something…", - "bump to 0.0.3-dev:wq", - "pep8 - cause I fell like doing a barrel roll", - "pep8 fixer", - "it is hump day _^_", - "happy monday _ bleh _", - "after of this commit remember do a git reset hard", - "someday I gonna kill someone for this shit...", - "magic, have no clue but it works", - "I am sorry", - "dirty hack, have a better idea ?", - "Code was clean until manager requested to fuck it up", - " - Temporary commit.", - ":(:(", - "...", - "GIT :/", - "stopped caring 10 commits ago", - "Testing in progress ;)", - "Fixed Bug", - "Fixed errors", - "Push poorly written test can down the road another ten years", - "commented out failing tests", - "I'm human", - "TODO: write meaningful commit message", - "Pig", - "SOAP is a piece of shit", - "did everything", - "project lead is allergic to changes...", - "making this thing actually usable.", - "I was told to leave it alone, but I have this thing called OCD, you see", - "Whatever will be, will be 8{", - "It's 2015; why are we using ColdFusion?!", - "#GrammarNazi", - "Future self, please forgive me and don't hit me with the baseball bat again!", - "Hide those navs, boi!", - "Who knows...", - "Who knows WTF?!", - "I should get a raise for this.", - "Done, to whoever merges this, good luck.", - "Not one conflict, today was a good day.", - "First Blood", - "Fixed the fuck out of #526!", - "I'm too old for this shit!", - "One little whitespace gets its very own commit! Oh, life is so erratic!", - "please dont let this be the problem", - "good: no crash. bad: nothing happens", - "trying", - "trying harder", - "i tried", - "fml" -} - -function commit:action(msg) - - local output = '`'..commits[math.random(#commits)]..'`' - utilities.send_message(self, msg.chat.id, output, true, nil, true) - -end - -return commit diff --git a/otouto/plugins/dilbert.lua b/otouto/plugins/dilbert.lua deleted file mode 100644 index 63416a6..0000000 --- a/otouto/plugins/dilbert.lua +++ /dev/null @@ -1,51 +0,0 @@ -local dilbert = {} - -local HTTP = require('socket.http') -local URL = require('socket.url') -local bindings = require('otouto.bindings') -local utilities = require('otouto.utilities') - -dilbert.command = 'dilbert [date]' - -function dilbert:init(config) - dilbert.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('dilbert', true).table - dilbert.doc = [[``` -]]..config.cmd_pat..[[dilbert [YYYY-MM-DD] -Returns the latest Dilbert strip or that of the provided date. -Dates before the first strip will return the first strip. Dates after the last trip will return the last strip. -Source: dilbert.com -```]] -end - -function dilbert:action(msg, config) - - bindings.sendChatAction(self, { chat_id = msg.chat.id, action = 'upload_photo' } ) - - local input = utilities.input(msg.text) - if not input then input = os.date('%F') end - if not input:match('^%d%d%d%d%-%d%d%-%d%d$') then input = os.date('%F') end - - local url = 'http://dilbert.com/strip/' .. URL.escape(input) - local str, res = HTTP.request(url) - if res ~= 200 then - utilities.send_reply(self, msg, config.errors.connection) - return - end - - local strip_filename = '/tmp/' .. input .. '.gif' - local strip_file = io.open(strip_filename) - if strip_file then - strip_file:close() - strip_file = strip_filename - else - local strip_url = str:match('') - strip_file = utilities.download_file(strip_url, '/tmp/' .. input .. '.gif') - end - - local strip_title = str:match('') - - bindings.sendPhoto(self, { chat_id = msg.chat.id, caption = strip_title }, { photo = strip_file } ) - -end - -return dilbert diff --git a/otouto/plugins/eightball.lua b/otouto/plugins/eightball.lua deleted file mode 100644 index 5db3972..0000000 --- a/otouto/plugins/eightball.lua +++ /dev/null @@ -1,58 +0,0 @@ -local eightball = {} - -local utilities = require('otouto.utilities') - -eightball.command = '8ball' -eightball.doc = '`Returns an answer from a magic 8-ball!`' - -function eightball:init(config) - eightball.triggers = utilities.triggers(self.info.username, config.cmd_pat, - {'[Yy]/[Nn]%p*$'}):t('8ball', true).table -end - -local ball_answers = { - "It is certain.", - "It is decidedly so.", - "Without a doubt.", - "Yes, definitely.", - "You may rely on it.", - "As I see it, yes.", - "Most likely.", - "Outlook: good.", - "Yes.", - "Signs point to yes.", - "Reply hazy try again.", - "Ask again later.", - "Better not tell you now.", - "Cannot predict now.", - "Concentrate and ask again.", - "Don't count on it.", - "My reply is no.", - "My sources say no.", - "Outlook: not so good.", - "Very doubtful.", - "There is a time and place for everything, but not now." -} - -local yesno_answers = { - 'Absolutely.', - 'In your dreams.', - 'Yes.', - 'No.' -} - -function eightball:action(msg) - - local output - - if msg.text_lower:match('y/n%p?$') then - output = yesno_answers[math.random(#yesno_answers)] - else - output = ball_answers[math.random(#ball_answers)] - end - - utilities.send_reply(self, msg, output) - -end - -return eightball diff --git a/otouto/plugins/fortune.lua b/otouto/plugins/fortune.lua deleted file mode 100644 index c47871e..0000000 --- a/otouto/plugins/fortune.lua +++ /dev/null @@ -1,31 +0,0 @@ - -- Requires that the "fortune" program is installed on your computer. - -local fortune = {} - -local utilities = require('otouto.utilities') - -function fortune:init(config) - local s = io.popen('fortune'):read('*all') - if s:match('not found$') then - print('fortune is not installed on this computer.') - print('fortune.lua will not be enabled.') - return - end - - fortune.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('fortune').table -end - -fortune.command = 'fortune' -fortune.doc = '`Returns a UNIX fortune.`' - -function fortune:action(msg) - - local fortunef = io.popen('fortune') - local output = fortunef:read('*all') - output = '```\n' .. output .. '\n```' - utilities.send_message(self, msg.chat.id, output, true, nil, true) - fortunef:close() - -end - -return fortune diff --git a/otouto/plugins/hearthstone.lua b/otouto/plugins/hearthstone.lua deleted file mode 100644 index 6f8d075..0000000 --- a/otouto/plugins/hearthstone.lua +++ /dev/null @@ -1,130 +0,0 @@ - -- Plugin for the Hearthstone database provided by hearthstonejson.com. - -local hearthstone = {} - ---local HTTPS = require('ssl.https') -local JSON = require('dkjson') -local utilities = require('otouto.utilities') - -function hearthstone:init(config) - if not self.database.hearthstone or os.time() > self.database.hearthstone.expiration then - - print('Downloading Hearthstone database...') - - -- This stuff doesn't play well with lua-sec. Disable it for now; hack in curl. - --local jstr, res = HTTPS.request('https://api.hearthstonejson.com/v1/latest/enUS/cards.json') - --if res ~= 200 then - -- print('Error connecting to hearthstonejson.com.') - -- print('hearthstone.lua will not be enabled.') - -- return - --end - --local jdat = JSON.decode(jstr) - - local s = io.popen('curl -s https://api.hearthstonejson.com/v1/latest/enUS/cards.json'):read('*all') - local d = JSON.decode(s) - - if not d then - print('Error connecting to hearthstonejson.com.') - print('hearthstone.lua will not be enabled.') - return - end - - self.database.hearthstone = d - self.database.hearthstone.expiration = os.time() + 600000 - - print('Download complete! It will be stored for a week.') - - end - - hearthstone.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('hearthstone', true):t('hs').table - hearthstone.doc = [[``` -]]..config.cmd_pat..[[hearthstone -Returns Hearthstone card info. -Alias: ]]..config.cmd_pat..[[hs -```]] -end - -hearthstone.command = 'hearthstone ' - -local function format_card(card) - - local ctype = card.type - if card.race then - ctype = card.race - end - if card.rarity then - ctype = card.rarity .. ' ' .. ctype - end - if card.playerClass then - ctype = ctype .. ' (' .. card.playerClass .. ')' - elseif card.faction then - ctype = ctype .. ' (' .. card.faction .. ')' - end - - local stats - if card.cost then - stats = card.cost .. 'c' - if card.attack then - stats = stats .. ' | ' .. card.attack .. 'a' - end - if card.health then - stats = stats .. ' | ' .. card.health .. 'h' - end - if card.durability then - stats = stats .. ' | ' .. card.durability .. 'd' - end - elseif card.health then - stats = card.health .. 'h' - end - - -- unused? - local info - if card.text then - info = card.text:gsub('',''):gsub('%$','') - if card.flavor then - info = info .. '\n_' .. card.flavor .. '_' - end - elseif card.flavor then - info = card.flavor - else - info = nil - end - - local s = '*' .. card.name .. '*\n' .. ctype - if stats then - s = s .. '\n' .. stats - end - if info then - s = s .. '\n' .. info - end - - return s - -end - -function hearthstone:action(msg, config) - - local input = utilities.input(msg.text_lower) - if not input then - utilities.send_message(self, msg.chat.id, hearthstone.doc, true, msg.message_id, true) - return - end - - local output = '' - for _,v in pairs(self.database.hearthstone) do - if type(v) == 'table' and string.lower(v.name):match(input) then - output = output .. format_card(v) .. '\n\n' - end - end - - output = utilities.trim(output) - if output:len() == 0 then - utilities.send_reply(self, msg, config.errors.results) - return - end - - utilities.send_message(self, msg.chat.id, output, true, msg.message_id, true) - -end - -return hearthstone diff --git a/otouto/plugins/lastfm.lua b/otouto/plugins/lastfm.lua deleted file mode 100644 index 0cc831f..0000000 --- a/otouto/plugins/lastfm.lua +++ /dev/null @@ -1,113 +0,0 @@ - -- TODO: Add support for librefm API. - -- Just kidding, nobody actually uses that. - -local lastfm = {} - -local HTTP = require('socket.http') -local URL = require('socket.url') -local JSON = require('dkjson') -local utilities = require('otouto.utilities') - -function lastfm:init(config) - if not config.lastfm_api_key then - print('Missing config value: lastfm_api_key.') - print('lastfm.lua will not be enabled.') - return - end - - lastfm.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('lastfm', true):t('np', true):t('fmset', true).table - lastfm.doc = [[``` -]]..config.cmd_pat..[[np [username] -Returns what you are or were last listening to. If you specify a username, info will be returned for that username. - -]]..config.cmd_pat..[[fmset -Sets your last.fm username. Otherwise, ]]..config.cmd_pat..[[np will use your Telegram username. Use "]]..config.cmd_pat..[[fmset --" to delete it. -```]] -end - -lastfm.command = 'lastfm' - -function lastfm:action(msg, config) - - local input = utilities.input(msg.text) - local from_id_str = tostring(msg.from.id) - self.database.userdata[from_id_str] = self.database.userdata[from_id_str] or {} - - if string.match(msg.text, '^'..config.cmd_pat..'lastfm') then - utilities.send_message(self, msg.chat.id, lastfm.doc, true, msg.message_id, true) - return - elseif string.match(msg.text, '^'..config.cmd_pat..'fmset') then - if not input then - utilities.send_message(self, msg.chat.id, lastfm.doc, true, msg.message_id, true) - elseif input == '--' or input == utilities.char.em_dash then - self.database.userdata[from_id_str].lastfm = nil - utilities.send_reply(self, msg, 'Your last.fm username has been forgotten.') - else - self.database.userdata[from_id_str].lastfm = input - utilities.send_reply(self, msg, 'Your last.fm username has been set to "' .. input .. '".') - end - return - end - - local url = 'http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&format=json&limit=1&api_key=' .. config.lastfm_api_key .. '&user=' - - local username - local alert = '' - if input then - username = input - elseif self.database.userdata[from_id_str].lastfm then - username = self.database.userdata[from_id_str].lastfm - elseif msg.from.username then - username = msg.from.username - alert = '\n\nYour username has been set to ' .. username .. '.\nTo change it, use '..config.cmd_pat..'fmset .' - self.database.userdata[from_id_str].lastfm = username - else - utilities.send_reply(self, msg, 'Please specify your last.fm username or set it with '..config.cmd_pat..'fmset.') - return - end - - url = url .. URL.escape(username) - - local jstr, res - utilities.with_http_timeout( - 1, function () - jstr, res = HTTP.request(url) - end) - if res ~= 200 then - utilities.send_reply(self, msg, config.errors.connection) - return - end - - local jdat = JSON.decode(jstr) - if jdat.error then - utilities.send_reply(self, msg, 'Please specify your last.fm username or set it with '..config.cmd_pat..'fmset.') - return - end - - jdat = jdat.recenttracks.track[1] or jdat.recenttracks.track - if not jdat then - utilities.send_reply(self, msg, 'No history for this user.' .. alert) - return - end - - local output = input or msg.from.first_name - output = '🎵 ' .. output - - if jdat['@attr'] and jdat['@attr'].nowplaying then - output = output .. ' is currently listening to:\n' - else - output = output .. ' last listened to:\n' - end - - local title = jdat.name or 'Unknown' - local artist = 'Unknown' - if jdat.artist then - artist = jdat.artist['#text'] - end - - output = output .. title .. ' - ' .. artist .. alert - utilities.send_message(self, msg.chat.id, output) - -end - -return lastfm diff --git a/otouto/plugins/me.lua b/otouto/plugins/me.lua deleted file mode 100644 index 771ba80..0000000 --- a/otouto/plugins/me.lua +++ /dev/null @@ -1,42 +0,0 @@ -local me = {} - -local utilities = require('otouto.utilities') - -function me:init(config) - me.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('me', true).table - me.command = 'me' - me.doc = '`Returns userdata stored by the bot.`' -end - -function me:action(msg, config) - - local userdata = self.database.userdata[tostring(msg.from.id)] or {} - - if msg.from.id == config.admin then - if msg.reply_to_message then - userdata = self.database.userdata[tostring(msg.reply_to_message.from.id)] - else - local input = utilities.input(msg.text) - if input then - local user_id = utilities.id_from_username(self, input) - if user_id then - userdata = self.database.userdata[tostring(user_id)] or {} - end - end - end - end - - local output = '' - for k,v in pairs(userdata) do - output = output .. '*' .. k .. ':* `' .. tostring(v) .. '`\n' - end - - if output == '' then - output = 'There is no data stored for this user.' - end - - utilities.send_message(self, msg.chat.id, output, true, nil, true) - -end - -return me diff --git a/otouto/plugins/nick.lua b/otouto/plugins/nick.lua deleted file mode 100644 index 1819c5c..0000000 --- a/otouto/plugins/nick.lua +++ /dev/null @@ -1,52 +0,0 @@ -local nick = {} - -local utilities = require('otouto.utilities') - -nick.command = 'nick ' - -function nick:init(config) - nick.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('nick', true).table - nick.doc = [[``` -]]..config.cmd_pat..[[nick -Set your nickname. Use "]]..config.cmd_pat..[[nick --" to delete it. -```]] -end - -function nick:action(msg, config) - - local id_str, name - - if msg.from.id == config.admin and msg.reply_to_message then - id_str = tostring(msg.reply_to_message.from.id) - name = utilities.build_name(msg.reply_to_message.from.first_name, msg.reply_to_message.from.last_name) - else - id_str = tostring(msg.from.id) - name = utilities.build_name(msg.from.first_name, msg.from.last_name) - end - - self.database.userdata[id_str] = self.database.userdata[id_str] or {} - - local output - local input = utilities.input(msg.text) - if not input then - if self.database.userdata[id_str].nickname then - output = name .. '\'s nickname is "' .. self.database.userdata[id_str].nickname .. '".' - else - output = name .. ' currently has no nickname.' - end - elseif utilities.utf8_len(input) > 32 then - output = 'The character limit for nicknames is 32.' - elseif input == '--' or input == utilities.char.em_dash then - self.database.userdata[id_str].nickname = nil - output = name .. '\'s nickname has been deleted.' - else - input = input:gsub('\n', ' ') - self.database.userdata[id_str].nickname = input - output = name .. '\'s nickname has been set to "' .. input .. '".' - end - - utilities.send_reply(self, msg, output) - -end - -return nick diff --git a/otouto/plugins/notify.lua b/otouto/plugins/notify.lua index 8530a8f..db0483e 100644 --- a/otouto/plugins/notify.lua +++ b/otouto/plugins/notify.lua @@ -61,7 +61,8 @@ end function notify:action(msg, config, matches) if not msg.from.username then - return 'Du hast keinen Usernamen und kannst daher dieses Feature nicht nutzen. Tut mir leid!' + utilities.send_reply(self, msg, 'Du hast keinen Usernamen und kannst daher dieses Feature nicht nutzen. Tut mir leid!' ) + return end local username = string.lower(msg.from.username) @@ -92,7 +93,7 @@ function notify:action(msg, config, matches) redis:sadd('notify:ls', username) local res = utilities.send_message(self, msg.from.id, 'Du erhälst jetzt Benachrichtigungen, wenn du angesprochen wirst, nutze `/notify del` zum Deaktivieren.', true, nil, true) if not res then - utilities.send_reply(self, msg, 'Bitte schreibe mir [privat](http://telegram.me/' .. self.info.username .. '?start=about), um den Vorgang abzuschließen.', true) + utilities.send_reply(self, msg, 'Bitte schreibe mir [privat](http://telegram.me/' .. self.info.username .. '?start=notify), um den Vorgang abzuschließen.', true) elseif msg.chat.type ~= 'private' then utilities.send_reply(self, msg, 'Du erhälst jetzt Benachrichtigungen, wenn du angesprochen wirst, nutze `/notify del` zum Deaktivieren.', true) end diff --git a/otouto/plugins/patterns.lua b/otouto/plugins/patterns.lua deleted file mode 100644 index 82eb8fd..0000000 --- a/otouto/plugins/patterns.lua +++ /dev/null @@ -1,33 +0,0 @@ -local patterns = {} - -local utilities = require('otouto.utilities') - -patterns.triggers = { - '^/?s/.-/.-$' -} - -function patterns:action(msg) - if not msg.reply_to_message then return true end - local output = msg.reply_to_message.text - if msg.reply_to_message.from.id == self.info.id then - output = output:gsub('Did you mean:\n"', '') - output = output:gsub('"$', '') - end - local m1, m2 = msg.text:match('^/?s/(.-)/(.-)/?$') - if not m2 then return true end - local res - res, output = pcall( - function() - return output:gsub(m1, m2) - end - ) - if res == false then - utilities.send_reply(self, msg, 'Malformed pattern!') - else - output = output:sub(1, 4000) - output = 'Did you mean:\n"' .. output .. '"' - utilities.send_reply(self, msg.reply_to_message, output) - end -end - -return patterns diff --git a/otouto/plugins/ping.lua b/otouto/plugins/ping.lua deleted file mode 100644 index c368c33..0000000 --- a/otouto/plugins/ping.lua +++ /dev/null @@ -1,16 +0,0 @@ - -- Actually the simplest plugin ever! - -local ping = {} - -local utilities = require('otouto.utilities') - -function ping:init(config) - ping.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('ping'):t('annyong').table -end - -function ping:action(msg, config) - local output = msg.text_lower:match('^'..config.cmd_pat..'ping') and 'Pong!' or 'Annyong.' - utilities.send_message(self, msg.chat.id, output) -end - -return ping diff --git a/otouto/plugins/pun.lua b/otouto/plugins/pun.lua deleted file mode 100644 index fc84689..0000000 --- a/otouto/plugins/pun.lua +++ /dev/null @@ -1,144 +0,0 @@ -local pun = {} - -local utilities = require('otouto.utilities') - -pun.command = 'pun' -pun.doc = '`Returns a pun.`' - -function pun:init(config) - pun.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('pun').table -end - -local puns = { - "The person who invented the door-knock won the No-bell prize.", - "I couldn't work out how to fasten my seatbelt. Then it clicked.", - "Never trust atoms; they make up everything.", - "Singing in the shower is all fun and games until you get shampoo in your mouth - Then it becomes a soap opera.", - "I can't believe I got fired from the calendar factory. All I did was take a day off.", - "To the guy who invented zero: Thanks for nothing!", - "Enough with the cripple jokes! I just can't stand them.", - "I've accidentally swallowed some Scrabble tiles. My next crap could spell disaster.", - "How does Moses make his tea? Hebrews it.", - "Did you hear about the guy who got hit in the head with a can of soda? He was lucky it was a soft drink.", - "When William joined the army he disliked the phrase 'fire at will'.", - "There was a sign on the lawn at a rehab center that said 'Keep off the Grass'.", - "I wondered why the baseball was getting bigger. Then it hit me.", - "I can hear music coming out of my printer. I think the paper's jamming again.", - "I have a few jokes about unemployed people, but none of them work", - "Want to hear a construction joke? I'm working on it", - "I always take a second pair of pants when I go golfing, in case I get a hole in one.", - "I couldn't remember how to throw a boomerang, but then it came back to me.", - "I've decided that my wifi will be my valentine. IDK, we just have this connection.", - "A prisoner's favorite punctuation mark is the period. It marks the end of his sentence.", - "I used to go fishing with Skrillex, but he kept dropping the bass.", - "Two antennae met on a roof and got married. The wedding was okay, but the reception was incredible.", - "A book just fell on my head. I've only got my shelf to blame.", - "I dropped my steak on the floor. Now it's ground beef.", - "I used to have a fear of hurdles, but I got over it.", - "The outcome of war does not prove who is right, but only who is left.", - "Darth Vader tries not to burn his food, but it always comes out a little on the dark side.", - "The store keeps calling me to buy more furniture, but all I wanted was a one night stand.", - "This girl said she recognized me from the vegetarian club, but I'd never met herbivore.", - "Police arrested two kids yesterday, one was drinking battery acid, the other was eating fireworks. They charged one and let the other one off...", - "No more Harry Potter jokes guys. I'm Sirius.", - "It was hard getting over my addiction to hokey pokey, but I've turned myself around.", - "It takes a lot of balls to golf the way I do.", - "Why did everyone want to hang out with the mushroom? Because he was a fungi.", - "How much does a hipster weigh? An instagram.", - "I used to be addicted to soap, but I'm clean now.", - "When life gives you melons, you’re probably dyslexic.", - "What's with all the blind jokes? I just don't see the point.", - "If Apple made a car, would it have Windows?", - "Need an ark? I Noah guy.", - "The scarecrow won an award because he was outstanding in his field.", - "What's the difference between a man in a tux on a bicycle, and a man in a sweatsuit on a trycicle? A tire.", - "What do you do with a sick chemist? If you can't helium, and you can't curium, you'll just have to barium.", - "I'm reading a book about anti-gravity. It's impossible to put down.", - "Trying to write with a broken pencil is pointless.", - "When TVs go on vacation, they travel to remote islands.", - "I was going to tell a midget joke, but it's too short.", - "Jokes about German sausage are the wurst.", - "How do you organize a space party? You planet.", - "Sleeping comes so naturally to me, I could do it with my eyes closed.", - "I'm glad I know sign language; it's pretty handy.", - "Atheism is a non-prophet organization.", - "Velcro: What a rip-off!", - "If they made a Minecraft movie, it would be a blockbuster.", - "I don't trust people with graph paper. They're always plotting something", - "I had a friend who was addicted to brake fluid. He says he can stop anytime.", - "The form said I had Type A blood, but it was a Type O.", - "I went to to the shop to buy eight Sprites - I came home and realised I'd picked 7Up.", - "There was an explosion at a pie factory. 3.14 people died.", - "A man drove his car into a tree and found out how a Mercedes bends.", - "The experienced carpenter really nailed it, but the new guy screwed everything up.", - "I didn't like my beard at first, but then it grew on me.", - "Smaller babies may be delivered by stork, but the heavier ones need a crane.", - "What's the definition of a will? It's a dead giveaway.", - "I was going to look for my missing watch, but I could never find the time.", - "I hate elevators, and I often take steps to avoid them.", - "Did you hear about the guy whose whole left side was cut off? He's all right now.", - "It's not that the man did not know how to juggle, he just didn't have the balls to do it.", - "I used to be a loan shark, but I lost interest", - "I don't trust these stairs; they're always up to something.", - "My friend's bakery burned down last night. Now his business is toast.", - "Don't trust people that do acupuncture; they're back stabbers.", - "The man who survived mustard gas and pepper spray is now a seasoned veteran.", - "Police were called to a daycare where a three-year-old was resisting a rest.", - "When Peter Pan punches, they Neverland", - "The shoemaker did not deny his apprentice anything he needed. He gave him his awl.", - "I did a theatrical performance about puns. It was a play on words.", - "Show me a piano falling down a mineshaft and I'll show you A-flat minor.", - "Have you ever tried to eat a clock? It's very time consuming.", - "There was once a cross-eyed teacher who couldn't control his pupils.", - "A new type of broom came out and it is sweeping the nation.", - "I relish the fact that you've mustard the strength to ketchup to me.", - "I knew a woman who owned a taser. Man, was she stunning!", - "What did the grape say when it got stepped on? Nothing - but it let out a little whine.", - "It was an emotional wedding. Even the cake was in tiers.", - "When a clock is hungry it goes back four seconds.", - "The dead batteries were given out free of charge.", - "Why are there no knock-knock jokes about America? Because freedom rings.", - "When the cannibal showed up late to dinner, they gave him the cold shoulder.", - "I should have been sad when my flashlight died, but I was delighted.", - "Why don't tennis players ever get married? Love means nothing to them.", - "Pterodactyls can't be heard going to the bathroom because the P is silent.", - "Mermaids make calls on their shell phones.", - "What do you call an aardvark with three feet? A yaardvark.", - "Captain Kirk has three ears: A right ear, a left ear, and a final front ear.", - "How do celebrities stay cool? They have a lot of fans.", - "Without geometry, life is pointless.", - "Did you hear about the cow who tried to jump over a barbed-wire fence? It ended in udder destruction.", - "The truth may ring like a bell, but it is seldom ever tolled.", - "I used to work for the IRS, but my job was too taxing.", - "I used to be a programmer, but then I lost my drive.", - "Pediatricians are doctors with little patients.", - "I finally fired my masseuse today. She always rubbed me the wrong way.", - "I stayed up all night wondering where the sun went. Then it dawned on me.", - "What's the difference between a man and his dog? The man wears a suit; the dog just pants.", - "A psychic midget who escapes from prison is a small medium at large.", - "I've been to the dentist several times, so I know the drill.", - "The roundest knight at King Arthur's round table was Sir Cumference. He acquired his size from too much pi.", - "She was only a whiskey maker, but he loved her still.", - "Male deer have buck teeth.", - "Whiteboards are remarkable.", - "Visitors in Cuba are always Havana good time.", - "Why does electricity shock people? It doesn't know how to conduct itself.", - "Lancelot had a scary dream about his horse. It was a knight mare.", - "A tribe of cannibals captured a missionary and ate him. Afterward, they all had violent food poisoning. This just goes to show that you can't keep a good man down.", - "Heaven for gamblers is a paradise.", - "Old wheels aren't thrown away, they're just retired.", - "Horses are very stable animals.", - "Banks don't crash, they just lose their balance.", - "The career of a skier can go downhill very fast.", - "In democracy, it's your vote that counts. In feudalism, it's your count that votes.", - "A sea lion is nothing but an ionized seal.", - "The vegetables from my garden aren't that great. I guess you could say they're mediokra." -} - -function pun:action(msg) - - utilities.send_reply(self, msg, puns[math.random(#puns)]) - -end - -return pun diff --git a/otouto/plugins/reactions.lua b/otouto/plugins/reactions.lua deleted file mode 100644 index e594d50..0000000 --- a/otouto/plugins/reactions.lua +++ /dev/null @@ -1,52 +0,0 @@ - -- Never change this plugin. It was not meant to be changed. - -- You may add reactions. You must never remove reactions. - -- You must never restructure. You must never disable this plugin. - -- - Drew, creator, a year later. - - -- Nevermind, Brayden changed it. - -- - Drew, just now. - -local reactions = {} - -local utilities = require('otouto.utilities') - -reactions.command = 'reactions' -reactions.doc = '`Returns a list of "reaction" emoticon commands.`' - -local mapping = { - ['shrug'] = '¯\\_(ツ)_/¯', - ['lenny'] = '( ͡° ͜ʖ ͡°)', - ['flip'] = '(╯°□°)╯︵ ┻━┻', - ['homo'] = '┌(┌ ^o^)┐', - ['look'] = 'ಠ_ಠ', - ['shots?'] = 'SHOTS FIRED', - ['facepalm'] = '(-‸ლ)' -} - -local help - -function reactions:init(config) - -- Generate a "help" message triggered by "/reactions". - help = 'Reactions:\n' - reactions.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('reactions').table - for trigger,reaction in pairs(mapping) do - help = help .. '• ' .. config.cmd_pat .. trigger:gsub('.%?', '') .. ': ' .. reaction .. '\n' - table.insert(reactions.triggers, config.cmd_pat..trigger) - table.insert(reactions.triggers, config.cmd_pat..trigger..'@'..self.info.username:lower()) - end -end - -function reactions:action(msg, config) - if string.match(msg.text_lower, config.cmd_pat..'reactions') then - utilities.send_message(self, msg.chat.id, help) - return - end - for trigger,reaction in pairs(mapping) do - if string.match(msg.text_lower, config.cmd_pat..trigger) then - utilities.send_message(self, msg.chat.id, reaction) - return - end - end -end - -return reactions diff --git a/otouto/plugins/shout.lua b/otouto/plugins/shout.lua deleted file mode 100644 index 3c1af21..0000000 --- a/otouto/plugins/shout.lua +++ /dev/null @@ -1,56 +0,0 @@ -local shout = {} - -local utilities = require('otouto.utilities') - -shout.command = 'shout ' - -function shout:init(config) - shout.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('shout', true).table - shout.doc = [[``` -]]..config.cmd_pat..[[shout -Shouts something. Input may be the replied-to message. -```]] -end - -function shout:action(msg) - - local input = utilities.input(msg.text) - if not input then - if msg.reply_to_message and #msg.reply_to_message.text > 0 then - input = msg.reply_to_message.text - else - utilities.send_message(self, msg.chat.id, shout.doc, true, msg.message_id, true) - return - end - end - input = utilities.trim(input) - input = input:upper() - - local output = '' - local inc = 0 - local ilen = 0 - for match in input:gmatch(utilities.char.utf_8) do - if ilen < 20 then - ilen = ilen + 1 - output = output .. match .. ' ' - end - end - ilen = 0 - output = output .. '\n' - for match in input:sub(2):gmatch(utilities.char.utf_8) do - if ilen < 19 then - local spacing = '' - for _ = 1, inc do - spacing = spacing .. ' ' - end - inc = inc + 1 - ilen = ilen + 1 - output = output .. match .. ' ' .. spacing .. match .. '\n' - end - end - output = '```\n' .. utilities.trim(output) .. '\n```' - utilities.send_message(self, msg.chat.id, output, true, false, true) - -end - -return shout diff --git a/otouto/plugins/slap.lua b/otouto/plugins/slap.lua deleted file mode 100644 index d115d12..0000000 --- a/otouto/plugins/slap.lua +++ /dev/null @@ -1,153 +0,0 @@ -local slap = {} - -local utilities = require('otouto.utilities') - -slap.command = 'slap [target]' - -function slap:init(config) - slap.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('slap', true).table - slap.doc = [[``` -]]..config.cmd_pat..[[slap [target] -Slap somebody. -```]] -end - -local slaps = { - 'VICTIM was shot by VICTOR.', - 'VICTIM was pricked to death.', - 'VICTIM walked into a cactus while trying to escape VICTOR.', - 'VICTIM drowned.', - 'VICTIM drowned whilst trying to escape VICTOR.', - 'VICTIM blew up.', - 'VICTIM was blown up by VICTOR.', - 'VICTIM hit the ground too hard.', - 'VICTIM fell from a high place.', - 'VICTIM fell off a ladder.', - 'VICTIM fell into a patch of cacti.', - 'VICTIM was doomed to fall by VICTOR.', - 'VICTIM was blown from a high place by VICTOR.', - 'VICTIM was squashed by a falling anvil.', - 'VICTIM went up in flames.', - 'VICTIM burned to death.', - 'VICTIM was burnt to a crisp whilst fighting VICTOR.', - 'VICTIM walked into a fire whilst fighting VICTOR.', - 'VICTIM tried to swim in lava.', - 'VICTIM tried to swim in lava while trying to escape VICTOR.', - 'VICTIM was struck by lightning.', - 'VICTIM was slain by VICTOR.', - 'VICTIM got finished off by VICTOR.', - 'VICTIM was killed by magic.', - 'VICTIM was killed by VICTOR using magic.', - 'VICTIM starved to death.', - 'VICTIM suffocated in a wall.', - 'VICTIM fell out of the world.', - 'VICTIM was knocked into the void by VICTOR.', - 'VICTIM withered away.', - 'VICTIM was pummeled by VICTOR.', - 'VICTIM was fragged by VICTOR.', - 'VICTIM was desynchronized.', - 'VICTIM was wasted.', - 'VICTIM was busted.', - 'VICTIM\'s bones are scraped clean by the desolate wind.', - 'VICTIM has died of dysentery.', - 'VICTIM fainted.', - 'VICTIM is out of usable Pokemon! VICTIM whited out!', - 'VICTIM is out of usable Pokemon! VICTIM blacked out!', - 'VICTIM whited out!', - 'VICTIM blacked out!', - 'VICTIM says goodbye to this cruel world.', - 'VICTIM got rekt.', - 'VICTIM was sawn in half by VICTOR.', - 'VICTIM died. I blame VICTOR.', - 'VICTIM was axe-murdered by VICTOR.', - 'VICTIM\'s melon was split by VICTOR.', - 'VICTIM was sliced and diced by VICTOR.', - 'VICTIM was split from crotch to sternum by VICTOR.', - 'VICTIM\'s death put another notch in VICTOR\'s axe.', - 'VICTIM died impossibly!', - 'VICTIM died from VICTOR\'s mysterious tropical disease.', - 'VICTIM escaped infection by dying.', - 'VICTIM played hot-potato with a grenade.', - 'VICTIM was knifed by VICTOR.', - 'VICTIM fell on his sword.', - 'VICTIM ate a grenade.', - 'VICTIM practiced being VICTOR\'s clay pigeon.', - 'VICTIM is what\'s for dinner!', - 'VICTIM was terminated by VICTOR.', - 'VICTIM was shot before being thrown out of a plane.', - 'VICTIM was not invincible.', - 'VICTIM has encountered an error.', - 'VICTIM died and reincarnated as a goat.', - 'VICTOR threw VICTIM off a building.', - 'VICTIM is sleeping with the fishes.', - 'VICTIM got a premature burial.', - 'VICTOR replaced all of VICTIM\'s music with Nickelback.', - 'VICTOR spammed VICTIM\'s email.', - 'VICTOR made VICTIM a knuckle sandwich.', - 'VICTOR slapped VICTIM with pure nothing.', - 'VICTOR hit VICTIM with a small, interstellar spaceship.', - 'VICTIM was quickscoped by VICTOR.', - 'VICTOR put VICTIM in check-mate.', - 'VICTOR RSA-encrypted VICTIM and deleted the private key.', - 'VICTOR put VICTIM in the friendzone.', - 'VICTOR slaps VICTIM with a DMCA takedown request!', - 'VICTIM became a corpse blanket for VICTOR.', - 'Death is when the monsters get you. Death comes for VICTIM.', - 'Cowards die many times before their death. VICTIM never tasted death but once.', - 'VICTIM died of hospital gangrene.', - 'VICTIM got a house call from Doctor VICTOR.', - 'VICTOR beheaded VICTIM.', - 'VICTIM got stoned...by an angry mob.', - 'VICTOR sued the pants off VICTIM.', - 'VICTIM was impeached.', - 'VICTIM was one-hit KO\'d by VICTOR.', - 'VICTOR sent VICTIM to /dev/null.', - 'VICTOR sent VICTIM down the memory hole.', - 'VICTIM was a mistake.', - '"VICTIM was a mistake." - VICTOR', - 'VICTOR checkmated VICTIM in two moves.' -} - - -- optimize later -function slap:action(msg) - local input = utilities.input(msg.text) - local victor_id = msg.from.id - local victim_id = utilities.id_from_message(self, msg) - -- IDs - if victim_id then - if victim_id == victor_id then - victor_id = self.info.id - end - else - if not input then - victor_id = self.info.id - victim_id = msg.from.id - end - end - -- Names - local victor_name, victim_name - if input and not victim_id then - victim_name = input - else - local victim_id_str = tostring(victim_id) - if self.database.userdata[victim_id_str] and self.database.userdata[victim_id_str].nickname then - victim_name = self.database.userdata[victim_id_str].nickname - elseif self.database.users[victim_id_str] then - victim_name = utilities.build_name(self.database.users[victim_id_str].first_name, self.database.users[victim_id_str].last_name) - else - victim_name = victim_id_str - end - end - local victor_id_str = tostring(victor_id) - if self.database.userdata[victor_id_str] and self.database.userdata[victor_id_str].nickname then - victor_name = self.database.userdata[victor_id_str].nickname - elseif self.database.users[victor_id_str] then - victor_name = utilities.build_name(self.database.users[victor_id_str].first_name, self.database.users[victor_id_str].last_name) - else - victor_name = self.info.first_name - end - local output = utilities.char.zwnj .. slaps[math.random(#slaps)]:gsub('VICTIM', victim_name):gsub('VICTOR', victor_name) - utilities.send_message(self, msg.chat.id, output) -end - -return slap diff --git a/otouto/plugins/whoami.lua b/otouto/plugins/whoami.lua deleted file mode 100644 index ce068ff..0000000 --- a/otouto/plugins/whoami.lua +++ /dev/null @@ -1,52 +0,0 @@ -local whoami = {} - -local utilities = require('otouto.utilities') - -whoami.command = 'whoami' - -function whoami:init(config) - whoami.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('who', true):t('whoami').table - whoami.doc = [[``` -Returns user and chat info for you or the replied-to message. -Alias: ]]..config.cmd_pat..[[who -```]] -end - -function whoami:action(msg) - - if msg.reply_to_message then - msg = msg.reply_to_message - end - - local from_name = utilities.build_name(msg.from.first_name, msg.from.last_name) - - local chat_id = math.abs(msg.chat.id) - if chat_id > 1000000000000 then - chat_id = chat_id - 1000000000000 - end - - local user = 'You are @%s, also known as *%s* `[%s]`' - if msg.from.username then - user = user:format(utilities.markdown_escape(msg.from.username), from_name, msg.from.id) - else - user = 'You are *%s* `[%s]`,' - user = user:format(from_name, msg.from.id) - end - - local group = '@%s, also known as *%s* `[%s]`.' - if msg.chat.type == 'private' then - group = group:format(utilities.markdown_escape(self.info.username), self.info.first_name, self.info.id) - elseif msg.chat.username then - group = group:format(utilities.markdown_escape(msg.chat.username), msg.chat.title, chat_id) - else - group = '*%s* `[%s]`.' - group = group:format(msg.chat.title, chat_id) - end - - local output = user .. ', and you are messaging ' .. group - - utilities.send_message(self, msg.chat.id, output, true, msg.message_id, true) - -end - -return whoami