]> git.lizzy.rs Git - furrybot.git/blob - http.lua
Add operator commands
[furrybot.git] / http.lua
1 local http, env, storage
2 local C = minetest.get_color_escape_sequence
3
4 function furrybot.commands.verse(name)
5         furrybot.json_http_request("https://labs.bible.org/api/?type=json&passage=random", name, function(data)
6                 furrybot.send(data.text .. furrybot.colors.info .. "[" .. data.bookname .. " " .. data.chapter .. "," .. data.verse .. "]", furrybot.colors.fun)
7         end)
8 end
9
10 function furrybot.commands.define(name, word)
11         if word then
12                 furrybot.json_http_request("https://api.dictionaryapi.dev/api/v1/entries/en_US/" .. word:gsub("computer", "person"), name, function(data)
13                         local meaning = data.meaning
14                         local selected = meaning.abbreviation or meaning["cardinal number"] or meaning.exclamation or meaning.noun or meaning.verb or meaning.adjective or meaning["transitive verb"] or meaning.adverb or meaning["relative adverb"] or meaning.preposition
15                         if not selected then
16                                 print(dump(meaning))
17                                 furrybot.error_message(name, "Error in parsing response")
18                         else
19                                 furrybot.send(word:sub(1, 1):upper() .. word:sub(2, #word):lower() .. ": " .. furrybot.colors.fun .. selected[1].definition, furrybot.colors.info)
20                         end
21                 end)
22         else
23                 furrybot.error_message(name, "You need to specify a word")
24         end
25 end
26
27 function furrybot.commands.insult(name, target)
28         if furrybot.online_or_error(name, target, true) then
29                 furrybot.http_request("https://insult.mattbas.org/api/insult", name, function(data)
30                         furrybot.ping_message(target, data, furrybot.colors.fun)
31                 end)
32         end
33 end
34
35 function furrybot.commands.joke(name, first, last)
36         if not first then
37                 first = "Chuck"
38                 last = "Norris"
39         elseif not last then
40                 last = ""
41         end
42         furrybot.json_http_request("http://api.icndb.com/jokes/random?firstName=" .. first .. "&lastName=" .. last, name, function(data)
43                 local joke = data.value.joke:gsub(""", "\""):gsub("  ", " ")
44                 furrybot.send(joke, furrybot.colors.fun)
45         end)
46 end
47
48 function furrybot.commands.question(name)
49         furrybot.json_http_request("https://8ball.delegator.com/magic/JSON/anything", name, function(data)
50                 furrybot.ping_message(name, data.magic.answer, furrybot.colors.fun)
51         end)
52 end
53 furrybot.commands["8ball"] = furrybot.commands.question
54
55 return function(_http, _env, _storage)
56         http, env, storage = _http, _env, _storage
57 end