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