Mercurial > irccd
annotate plugins/ask/ask.js @ 1195:43e3f7a4045b release-4.0 4.0.4
misc: update before 4.0.4
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 03 Aug 2023 21:24:10 +0200 |
parents | d0e522ff5143 |
children | 1845a0509a93 |
rev | line source |
---|---|
0 | 1 /* |
2 * ask.js -- crazy module for asking a medium | |
3 * | |
1136
f06e9761cc90
misc: update copyright years
David Demelier <markand@malikania.fr>
parents:
1018
diff
changeset
|
4 * Copyright (c) 2013-2022 David Demelier <markand@malikania.fr> |
0 | 5 * |
6 * Permission to use, copy, modify, and/or distribute this software for any | |
7 * purpose with or without fee is hereby granted, provided that the above | |
8 * copyright notice and this permission notice appear in all copies. | |
9 * | |
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
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 | |
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
17 */ | |
18 | |
149
19df514cb61c
Plugin ask: add optional file parameter, #504
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
19 // Plugin information. |
0 | 20 info = { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
21 author: "David Demelier <markand@malikania.fr>", |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
22 license: "ISC", |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
23 summary: "Crazy module for asking a medium", |
1149
d0e522ff5143
plugins: substitute version, closes #2533
David Demelier <markand@malikania.fr>
parents:
1136
diff
changeset
|
24 version: "@irccd_VERSION@" |
0 | 25 }; |
26 | |
149
19df514cb61c
Plugin ask: add optional file parameter, #504
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
27 // Modules. |
19df514cb61c
Plugin ask: add optional file parameter, #504
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
28 var File = Irccd.File; |
19df514cb61c
Plugin ask: add optional file parameter, #504
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
29 var Logger = Irccd.Logger; |
19df514cb61c
Plugin ask: add optional file parameter, #504
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
30 var Plugin = Irccd.Plugin; |
19df514cb61c
Plugin ask: add optional file parameter, #504
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
31 var Util = Irccd.Util; |
19df514cb61c
Plugin ask: add optional file parameter, #504
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
32 |
0 | 33 /* List of answers */ |
34 var answers = [ | |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
35 "Yes", |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
36 "No" |
0 | 37 ]; |
38 | |
39 function onLoad() | |
40 { | |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
41 try { |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
42 // User specified file? |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
43 if (Plugin.config["file"]) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
44 path = Plugin.config["file"]; |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
45 else |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
46 path = Plugin.paths.config + "/answers.conf"; |
149
19df514cb61c
Plugin ask: add optional file parameter, #504
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
47 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
48 var file = new File(path, "r"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
49 var line; |
0 | 50 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
51 // Reset. |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
52 answers = []; |
0 | 53 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
54 while ((line = file.readline())) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
55 // Skip empty lines. |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
56 if (line.length > 0) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
57 answers.push(line); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
58 } catch (e) { |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
59 Logger.warning(path + ": " + e.message); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
60 Logger.warning("using default answers"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
61 } |
0 | 62 } |
63 | |
64 function onCommand(server, origin, channel) | |
65 { | |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
66 var target = Util.splituser(origin); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
67 var response = answers[Math.floor(Math.random() * answers.length)]; |
0 | 68 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
69 server.message(channel, target + ", " + response); |
0 | 70 } |
71 | |
72 onReload = onLoad; |