Mercurial > irccd
comparison plugins/history/history.js @ 143:11113212576c
Plugin history: use new format section, #410
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 19 May 2016 21:17:50 +0200 |
parents | aa205621d7d6 |
children | 9672dc88a158 |
comparison
equal
deleted
inserted
replaced
142:74164ac3d01a | 143:11113212576c |
---|---|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | 14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | 15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
17 */ | 17 */ |
18 | 18 |
19 /* Modules */ | 19 // Modules. |
20 var Directory = Irccd.Directory; | 20 var Directory = Irccd.Directory; |
21 var File = Irccd.File; | 21 var File = Irccd.File; |
22 var Logger = Irccd.Logger; | 22 var Logger = Irccd.Logger; |
23 var Plugin = Irccd.Plugin; | 23 var Plugin = Irccd.Plugin; |
24 var Server = Irccd.Server; | 24 var Server = Irccd.Server; |
25 var Util = Irccd.Util; | 25 var Util = Irccd.Util; |
26 | 26 |
27 /* Plugin information */ | 27 // Plugin information. |
28 info = { | 28 info = { |
29 author: "David Demelier <markand@malikania.fr>", | 29 author: "David Demelier <markand@malikania.fr>", |
30 license: "ISC", | 30 license: "ISC", |
31 summary: "track nickname's history", | 31 summary: "track nickname's history", |
32 version: "@IRCCD_VERSION@" | 32 version: "@IRCCD_VERSION@" |
33 }; | 33 }; |
34 | 34 |
35 var formats = { | 35 Plugin.format = { |
36 "error": "#{nickname}, I'm sorry, something went wrong.", | 36 "error": "#{nickname}, I'm sorry, something went wrong.", |
37 "seen": "#{nickname}, I've seen #{target} for the last time the %d-%m-%Y %H:%M", | 37 "seen": "#{nickname}, I've seen #{target} for the last time the %d-%m-%Y %H:%M", |
38 "said": "#{nickname}, #{target} said on %d-%m-%Y %H:%M: #{message}", | 38 "said": "#{nickname}, #{target} said on %d-%m-%Y %H:%M: #{message}", |
39 "unknown": "#{nickname}, I've never seen #{target}.", | 39 "unknown": "#{nickname}, I've never seen #{target}.", |
40 "usage": "#{nickname}, usage: #{plugin} seen | said <target>." | 40 "usage": "#{nickname}, usage: #{plugin} seen | said <target>." |
57 if (Plugin.config["file"] !== undefined) { | 57 if (Plugin.config["file"] !== undefined) { |
58 p = Util.format(Plugin.config["file"], { | 58 p = Util.format(Plugin.config["file"], { |
59 "server": server.toString(), | 59 "server": server.toString(), |
60 "channel": channel | 60 "channel": channel |
61 }); | 61 }); |
62 } else { | 62 } else |
63 p = Plugin.cachePath + "db.json"; | 63 p = Plugin.cachePath + "db.json"; |
64 } | |
65 | 64 |
66 return p; | 65 return p; |
67 } | 66 } |
68 | 67 |
69 function read(server, channel, nickname) | 68 function read(server, channel, nickname) |
117 return it; | 116 return it; |
118 } | 117 } |
119 | 118 |
120 function loadFormats() | 119 function loadFormats() |
121 { | 120 { |
122 for (var key in formats) { | 121 // --- DEPRECATED ------------------------------------------ |
122 // | |
123 // This code will be removed. | |
124 // | |
125 // Since: 2.1.0 | |
126 // Until: 3.0.0 | |
127 // Reason: new [format] section replaces it. | |
128 // | |
129 // ---------------------------------------------------------- | |
130 for (var key in Plugin.format) { | |
123 var optname = "format-" + key; | 131 var optname = "format-" + key; |
124 | 132 |
125 if (typeof (Plugin.config[optname]) !== "string") | 133 if (typeof (Plugin.config[optname]) !== "string") |
126 continue; | 134 continue; |
127 | 135 |
128 if (Plugin.config[optname].length === 0) | 136 if (Plugin.config[optname].length === 0) |
129 Logger.warning("skipping empty '" + optname + "' format"); | 137 Logger.warning("skipping empty '" + optname + "' format"); |
130 else | 138 else |
131 formats[key] = Plugin.config[optname]; | 139 Plugin.format[key] = Plugin.config[optname]; |
132 } | 140 } |
133 } | 141 } |
134 | 142 |
135 function onCommand(server, origin, channel, message) | 143 function onCommand(server, origin, channel, message) |
136 { | 144 { |
143 plugin: Plugin.info().name, | 151 plugin: Plugin.info().name, |
144 server: server.toString() | 152 server: server.toString() |
145 }; | 153 }; |
146 | 154 |
147 if (args.length !== 2 || args[0].length === 0 || args[1].length === 0) { | 155 if (args.length !== 2 || args[0].length === 0 || args[1].length === 0) { |
148 server.message(channel, Util.format(formats.usage, kw)); | 156 server.message(channel, Util.format(Plugin.format.usage, kw)); |
149 return; | 157 return; |
150 } | 158 } |
151 | 159 |
152 if (args[0] !== "seen" && args[0] !== "said") { | 160 if (args[0] !== "seen" && args[0] !== "said") { |
153 server.message(channel, Util.format(formats.usage, kw)); | 161 server.message(channel, Util.format(Plugin.format.usage, kw)); |
154 return; | 162 return; |
155 } | 163 } |
156 | 164 |
157 if (isSelf(server, args[1])) | 165 if (isSelf(server, args[1])) |
158 return; | 166 return; |
161 var info = find(server, channel, args[1]); | 169 var info = find(server, channel, args[1]); |
162 | 170 |
163 kw.target = args[1]; | 171 kw.target = args[1]; |
164 | 172 |
165 if (!info) { | 173 if (!info) { |
166 server.message(channel, Util.format(formats.unknown, kw)); | 174 server.message(channel, Util.format(Plugin.format.unknown, kw)); |
167 return; | 175 return; |
168 } | 176 } |
169 | 177 |
170 kw.date = info.timestamp; | 178 kw.date = info.timestamp; |
171 kw.message = info.message ? info.message : ""; | 179 kw.message = info.message ? info.message : ""; |
172 | 180 |
173 server.message(channel, Util.format(formats[args[0] == "seen" ? "seen" : "said"], kw)); | 181 server.message(channel, Util.format(Plugin.format[args[0] == "seen" ? "seen" : "said"], kw)); |
174 } catch (e) { | 182 } catch (e) { |
175 server.message(channel, Util.format(kw)); | 183 server.message(channel, Util.format(kw)); |
176 } | 184 } |
177 } | 185 } |
178 | 186 |