annotate plugins/links/links.cpp @ 824:06cc2f95f479

misc: happy new year!
author David Demelier <markand@malikania.fr>
date Tue, 08 Jan 2019 20:41:20 +0100
parents 8460b4a34191
children a23b7b574ed2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
705
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * links.cpp -- links plugin
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
824
06cc2f95f479 misc: happy new year!
David Demelier <markand@malikania.fr>
parents: 809
diff changeset
4 * Copyright (c) 2013-2019 David Demelier <markand@malikania.fr>
705
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 790
diff changeset
19 #include <irccd/daemon/bot.hpp>
768
d8bf53170fb6 Plugin links: fix various errors, closes #912 @2h
David Demelier <markand@malikania.fr>
parents: 767
diff changeset
20 #include <irccd/daemon/server.hpp>
705
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 #include <irccd/string_util.hpp>
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
23
768
d8bf53170fb6 Plugin links: fix various errors, closes #912 @2h
David Demelier <markand@malikania.fr>
parents: 767
diff changeset
24 #include "requester.hpp"
d8bf53170fb6 Plugin links: fix various errors, closes #912 @2h
David Demelier <markand@malikania.fr>
parents: 767
diff changeset
25 #include "links.hpp"
705
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
26
768
d8bf53170fb6 Plugin links: fix various errors, closes #912 @2h
David Demelier <markand@malikania.fr>
parents: 767
diff changeset
27 using std::make_unique;
705
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 using std::move;
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 using std::string;
768
d8bf53170fb6 Plugin links: fix various errors, closes #912 @2h
David Demelier <markand@malikania.fr>
parents: 767
diff changeset
30 using std::string_view;
d8bf53170fb6 Plugin links: fix various errors, closes #912 @2h
David Demelier <markand@malikania.fr>
parents: 767
diff changeset
31 using std::unique_ptr;
705
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
32
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 790
diff changeset
33 using irccd::string_util::to_uint;
705
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
34
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 790
diff changeset
35 using irccd::daemon::bot;
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 790
diff changeset
36 using irccd::daemon::message_event;
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 790
diff changeset
37
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 790
diff changeset
38 namespace irccd {
705
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
39
768
d8bf53170fb6 Plugin links: fix various errors, closes #912 @2h
David Demelier <markand@malikania.fr>
parents: 767
diff changeset
40 auto links_plugin::get_name() const noexcept -> string_view
722
3e816cebed2c Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents: 716
diff changeset
41 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 768
diff changeset
42 return "links";
722
3e816cebed2c Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents: 716
diff changeset
43 }
3e816cebed2c Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents: 716
diff changeset
44
768
d8bf53170fb6 Plugin links: fix various errors, closes #912 @2h
David Demelier <markand@malikania.fr>
parents: 767
diff changeset
45 auto links_plugin::get_author() const noexcept -> string_view
705
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 768
diff changeset
47 return "David Demelier <markand@malikania.fr>";
722
3e816cebed2c Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents: 716
diff changeset
48 }
3e816cebed2c Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents: 716
diff changeset
49
768
d8bf53170fb6 Plugin links: fix various errors, closes #912 @2h
David Demelier <markand@malikania.fr>
parents: 767
diff changeset
50 auto links_plugin::get_license() const noexcept -> string_view
722
3e816cebed2c Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents: 716
diff changeset
51 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 768
diff changeset
52 return "ISC";
705
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 }
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
54
768
d8bf53170fb6 Plugin links: fix various errors, closes #912 @2h
David Demelier <markand@malikania.fr>
parents: 767
diff changeset
55 auto links_plugin::get_summary() const noexcept -> string_view
722
3e816cebed2c Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents: 716
diff changeset
56 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 768
diff changeset
57 return "show webpage title";
722
3e816cebed2c Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents: 716
diff changeset
58 }
3e816cebed2c Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents: 716
diff changeset
59
768
d8bf53170fb6 Plugin links: fix various errors, closes #912 @2h
David Demelier <markand@malikania.fr>
parents: 767
diff changeset
60 auto links_plugin::get_version() const noexcept -> string_view
722
3e816cebed2c Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents: 716
diff changeset
61 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 768
diff changeset
62 return IRCCD_VERSION;
722
3e816cebed2c Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents: 716
diff changeset
63 }
3e816cebed2c Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents: 716
diff changeset
64
3e816cebed2c Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents: 716
diff changeset
65 void links_plugin::set_options(const map& conf)
3e816cebed2c Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents: 716
diff changeset
66 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 768
diff changeset
67 if (const auto it = conf.find("timeout"); it != conf.end())
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 768
diff changeset
68 if (const auto v = to_uint(it->second); v)
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 768
diff changeset
69 conf_timeout = *v;
722
3e816cebed2c Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents: 716
diff changeset
70 }
3e816cebed2c Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents: 716
diff changeset
71
3e816cebed2c Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents: 716
diff changeset
72 void links_plugin::set_formats(const map& formats)
705
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 768
diff changeset
74 if (const auto it = formats.find("info"); it != formats.end())
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 768
diff changeset
75 format_info = it->second;
705
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 }
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
77
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 790
diff changeset
78 void links_plugin::handle_message(bot& bot, const message_event& ev)
705
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 {
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 790
diff changeset
80 requester::run(bot.get_service(), ev.server, ev.origin, ev.channel, ev.message);
705
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 }
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
82
716
16e83b636cb8 Irccd: use BOOST_DLL_ALIAS to avoid warnings
David Demelier <markand@malikania.fr>
parents: 712
diff changeset
83 auto links_plugin::abi() -> version
16e83b636cb8 Irccd: use BOOST_DLL_ALIAS to avoid warnings
David Demelier <markand@malikania.fr>
parents: 712
diff changeset
84 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 768
diff changeset
85 return version();
716
16e83b636cb8 Irccd: use BOOST_DLL_ALIAS to avoid warnings
David Demelier <markand@malikania.fr>
parents: 712
diff changeset
86 }
16e83b636cb8 Irccd: use BOOST_DLL_ALIAS to avoid warnings
David Demelier <markand@malikania.fr>
parents: 712
diff changeset
87
768
d8bf53170fb6 Plugin links: fix various errors, closes #912 @2h
David Demelier <markand@malikania.fr>
parents: 767
diff changeset
88 auto links_plugin::init(string id) -> unique_ptr<plugin>
716
16e83b636cb8 Irccd: use BOOST_DLL_ALIAS to avoid warnings
David Demelier <markand@malikania.fr>
parents: 712
diff changeset
89 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 768
diff changeset
90 return make_unique<links_plugin>(move(id));
716
16e83b636cb8 Irccd: use BOOST_DLL_ALIAS to avoid warnings
David Demelier <markand@malikania.fr>
parents: 712
diff changeset
91 }
16e83b636cb8 Irccd: use BOOST_DLL_ALIAS to avoid warnings
David Demelier <markand@malikania.fr>
parents: 712
diff changeset
92
16e83b636cb8 Irccd: use BOOST_DLL_ALIAS to avoid warnings
David Demelier <markand@malikania.fr>
parents: 712
diff changeset
93 BOOST_DLL_ALIAS(links_plugin::abi, irccd_abi_links)
16e83b636cb8 Irccd: use BOOST_DLL_ALIAS to avoid warnings
David Demelier <markand@malikania.fr>
parents: 712
diff changeset
94 BOOST_DLL_ALIAS(links_plugin::init, irccd_init_links)
16e83b636cb8 Irccd: use BOOST_DLL_ALIAS to avoid warnings
David Demelier <markand@malikania.fr>
parents: 712
diff changeset
95
705
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 // }}}
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
97
4b5dba257d81 Plugin links: brand new plugin, closes #872 @4h
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 } // !irccd