This repository has been archived by the owner on Jan 2, 2022. It is now read-only.
forked from zeroxs/aegis.cpp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaegis.dox
157 lines (109 loc) · 3.58 KB
/
aegis.dox
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
/*! \mainpage aegis.cpp documentation
\section intro_sec Introduction
These docs are being worked on. Some quick examples and brief explanations in the mean time.
# Example usage #
The most minimal usage example:
Lambda:
~~~~~~~~~~~~~~~{.cpp}
#include <aegis.hpp>
using json = nlohmann::json;
int main(int argc, char * argv[])
{
// Create bot object with a minimum log level of trace
aegis::core bot(aegis::create_bot_t().log_level(spdlog::level::trace).token("TOKEN"));
AEGIS_TRACE(bot.log, "Bot object created");
// With min log level set to trace and wsdbg (websocket debug) set to true
// the bot will dump all websocket messages to console
bot.wsdbg = true;
// These callbacks are what are called when websocket events occur
bot.set_on_message_create([&](aegis::gateway::events::message_create obj)
{
std::string content{ obj.msg.get_content() };
auto & _channel = obj.msg.get_channel();
// Simple Hi response
if (content == "~Hi")
{
_channel.create_message("Hello back");
}
});
// start the bot
bot.run();
// yield thread execution to the library
bot.yield();
std::cout << "Press any key to continue...\n";
std::cin.ignore();
return 0;
}
~~~~~~~~~~~~~~~
Free function:
~~~~~~~~~~~~~~~{.cpp}
#include <aegis.hpp>
using json = nlohmann::json;
void message_create(aegis::gateway::events::message_create obj)
{
std::string content{ obj.msg.get_content() };
auto & _channel = obj.msg.get_channel();
// Simple Hi response
if (content == "~Hi")
{
_channel.create_message("Hello back");
}
}
int main(int argc, char * argv[])
{
// Create bot object with a minimum log level of trace
aegis::core bot(aegis::create_bot_t().log_level(spdlog::level::trace).token("TOKEN"));
AEGIS_TRACE(bot.log, "Bot object created");
// With min log level set to trace and wsdbg (websocket debug) set to true
// the bot will dump all websocket messages to console
bot.wsdbg = true;
// These callbacks are what are called when websocket events occur
bot.set_on_message_create(&message_create);
// start the bot
bot.run();
// yield thread execution to the library
bot.yield();
std::cout << "Press any key to continue...\n";
std::cin.ignore();
return 0;
}
~~~~~~~~~~~~~~~
Class:
~~~~~~~~~~~~~~~{.cpp}
#include <aegis.hpp>
using json = nlohmann::json;
class my_bot
{
public:
void message_create(aegis::gateway::events::message_create obj)
{
std::string content{ obj.msg.get_content() };
auto & _channel = obj.msg.get_channel();
// Simple Hi response
if (content == "~Hi")
{
_channel.create_message("Hello back");
}
}
}
int main(int argc, char * argv[])
{
// Create bot object with a minimum log level of trace
aegis::core bot(aegis::create_bot_t().log_level(spdlog::level::trace).token("TOKEN"));
my_bot my_bot_instance;
AEGIS_TRACE(bot.log, "Bot object created");
// With min log level set to trace and wsdbg (websocket debug) set to true
// the bot will dump all websocket messages to console
bot.wsdbg = true;
// These callbacks are what are called when websocket events occur
bot.set_on_message_create(std::bind(&my_bot::message_create, &my_bot_instance, std::placeholders::_1));
// start the bot
bot.run();
// yield thread execution to the library
bot.yield();
std::cout << "Press any key to continue...\n";
std::cin.ignore();
return 0;
}
~~~~~~~~~~~~~~~
*/