plugins/ietf.lua

Sun, 23 Mar 2014 15:41:40 +0100

author
Kim Alvefur <zash@zash.se>
date
Sun, 23 Mar 2014 15:41:40 +0100
changeset 111
a47a1de8993e
parent 110
e5903656c21a
child 114
d11cf84975c5
permissions
-rw-r--r--

plugins.ietf: Update patterns

93
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 local http = require "net.http";
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2 local t_insert, t_remove = table.insert, table.remove;
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3 local now = os.time;
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 local debug = function() end;
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 local ttl = 3600;
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 local data = {
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 rfc = {
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 source = "http://www.ietf.org/download/rfc-index.txt",
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 links = "http://tools.ietf.org/html/rfc%s",
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 },
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 draft = {
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 source = "http://www.ietf.org/download/id-index.txt",
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 links = "http://tools.ietf.org/html/%s",
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 },
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 }
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20 function data.rfc:update(cb)
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21 debug("fetch %s", self.source);
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
22 http.request(self.source, {
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
23 headers = {
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
24 ["If-Modified-Since"] = self.updated_at
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
25 and os.date("!%a, %d %b %Y %H:%M:%S %Z", self.updated_at) or nil;
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
26 }
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
27 }, function (data, code)
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
28 debug("got status %d", code);
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
29 if code == 200 then
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
30 debug("got %d bytes of data", #data);
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
31 self.data = data
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
32 :gsub("\n\n[^\n]+%b()\n%-+\n\n", "\n\n")
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
33 :gsub("\n ", " ")
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
34 :gsub("\n\n ", "\n")
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
35 :gsub("\n ", " ");
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
36 -- TODO Can this be made better?
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
37 self.updated_at = now();
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
38 end
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
39 self.expires = now() + ttl;
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
40 cb();
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
41 end);
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
42 end
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
43
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
44 data.draft.update = data.rfc.update;
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
45
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
46 function data.rfc:_search(string, cb)
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
47 debug("really search for %s", string);
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
48 local number = tonumber(string);
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
49 local link, match, matches;
110
e5903656c21a plugins.ietf: Report number of matches
Kim Alvefur <zash@zash.se>
parents: 93
diff changeset
50 local count = 0
93
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
51 if number then
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
52 number = ("%04d"):format(number);
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
53 debug("search for RFC%s", number);
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
54 link, match = self.data:match("\n(" .. number .. ")%s*([^\n]*)");
110
e5903656c21a plugins.ietf: Report number of matches
Kim Alvefur <zash@zash.se>
parents: 93
diff changeset
55 count = 1
93
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
56 else
111
a47a1de8993e plugins.ietf: Update patterns
Kim Alvefur <zash@zash.se>
parents: 110
diff changeset
57 local pat = string:gsub("[-()%[]", "%%%1")
93
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
58 :gsub("%%(%b[])",function(s) return (#s > 2 and "" or "%") .. s end)
111
a47a1de8993e plugins.ietf: Update patterns
Kim Alvefur <zash@zash.se>
parents: 110
diff changeset
59 :gsub("\n+", " "):gsub("\\n", "")
a47a1de8993e plugins.ietf: Update patterns
Kim Alvefur <zash@zash.se>
parents: 110
diff changeset
60 :gsub("%w", function(s) return '['..s:lower()..s:upper()..']' end)
93
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
61 debug("fulltext search for \"%s\"", pat);
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
62 --link, match = self.data:match("\n(%d%d%d%d) ([^\n]-"..pat.."[^\n]*)");
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
63 for l,m in self.data:gmatch("\n(%d%d%d%d) ([^\n]-"..pat.."[^\n]*)") do
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
64 link, match = l, m
110
e5903656c21a plugins.ietf: Report number of matches
Kim Alvefur <zash@zash.se>
parents: 93
diff changeset
65 count = count + 1
93
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
66 -- Note: This allways returns the last result.
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
67 -- FIXME Decide on what to do if >1 results.
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
68 end
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
69 --[[
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
70 matches = {};
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
71 for link, match in g do
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
72 t_insert(matches, {link=link, match=match});
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
73 end
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
74 matches = t_remove(matches);
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
75 matches.link, matches.match;
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
76 --]]
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
77 end
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
78
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
79 if match then
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
80 debug("matched %d bytes, number is %s", #match, link);
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
81 if #match > 300 then
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
82 cb("Match was too big");
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
83 return
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
84 end
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
85 local remove = {
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
86 Also = true,
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
87 Format = true,
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
88 --Obsoleted = true,
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
89 Obsoletes = true,
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
90 --Updated = true,
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
91 Updates = true,
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
92 --Status = true,
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
93 };
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
94 match = match:gsub("%s*\n%s+", " ")
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
95 match = match:gsub("%s*%b()", function(s)
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
96 local first = s:match("%(([^: ]*)"); return first and remove[first] and "" or s
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
97 end);
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
98 link = self.links:format(link);
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
99 match = match:gsub("%. ", ".\n", 1); -- Add a newline between title and authors
110
e5903656c21a plugins.ietf: Report number of matches
Kim Alvefur <zash@zash.se>
parents: 93
diff changeset
100 if count > 1 then link = link .. " (" .. count .. " more matches)" end
93
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
101 cb(match .. "\n" .. link);
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
102 else
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
103 cb("Sorry, no match");
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
104 end
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
105 end
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
106
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
107 function data.draft:_search(string, cb)
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
108 debug("really search for %s", string);
111
a47a1de8993e plugins.ietf: Update patterns
Kim Alvefur <zash@zash.se>
parents: 110
diff changeset
109 local pat = string:gsub("[-()%[]", "%%%1")
93
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
110 :gsub("%%(%b[])",function(s) return (#s > 2 and "" or "%") .. s end)
111
a47a1de8993e plugins.ietf: Update patterns
Kim Alvefur <zash@zash.se>
parents: 110
diff changeset
111 :gsub("\n+", " "):gsub("\\n", "")
a47a1de8993e plugins.ietf: Update patterns
Kim Alvefur <zash@zash.se>
parents: 110
diff changeset
112 :gsub("%w", function(s) return '['..s:lower()..s:upper()..']' end)
93
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
113 debug("fulltext search for \"%s\"", pat);
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
114 local match = self.data:match("\n([^\n]-"..pat.."[^\n]*)")
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
115
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
116 if match then
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
117 debug("match: %s", match);
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
118 local match, link = match:match("(.-)%s(%b<>)")
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
119 link = link and self.links:format(link:sub(2,-2)) or "no link";
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
120 cb(match .. "\n" .. link);
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
121 else
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
122 cb("Sorry, no match");
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
123 end
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
124 end
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
125
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
126 function data.rfc:search(string, cb)
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
127 debug("search for %s", string);
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
128 if not self.data then --or self.expires < now() then
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
129 self:update(function() self:_search(string,cb) end);
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
130 return
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
131 else
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
132 self:_search(string,cb)
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
133 end
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
134 end
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
135
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
136 data.draft.search = data.rfc.search;
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
137
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
138
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
139 function riddim.plugins.ietf(bot)
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
140 if bot.stream.debug then
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
141 function debug(...)
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
142 return bot.stream:debug(...)
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
143 end
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
144 end
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
145
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
146 bot:hook("commands/rfc", function(command)
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
147 local rfc = data.rfc;
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
148 debug("search for %s", command.param);
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
149 return rfc:search(command.param, function(match)
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
150 command:reply(match)
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
151 end)
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
152 end)
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
153
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
154 bot:hook("commands/draft", function(command)
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
155 local draft = data.draft;
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
156 debug("search for %s", command.param);
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
157 return draft:search(command.param, function(match)
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
158 command:reply(match)
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
159 end)
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
160 end)
ab58062505e2 Import ietf, RFC and ID lookup plugin.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
161 end

mercurial