| 20 #define PURPLE_SATORI_CONNECTION_H |
20 #define PURPLE_SATORI_CONNECTION_H |
| 21 |
21 |
| 22 #include <glib.h> |
22 #include <glib.h> |
| 23 #include <purple.h> |
23 #include <purple.h> |
| 24 #include <libsoup/soup.h> |
24 #include <libsoup/soup.h> |
| |
25 #include <libsoup/soup-types.h> |
| 25 |
26 |
| 26 G_BEGIN_DECLS |
27 G_BEGIN_DECLS |
| 27 |
|
| 28 #define PURPLE_SATORI_HOST "192.168.1.154:5600" |
|
| 29 #define PURPLE_SATORI_WSURL "ws://" PURPLE_SATORI_HOST "/v1/events" |
|
| 30 |
|
| 31 #define PURPLE_SATORI_PLATFORM "QQ" |
|
| 32 #define PURPLE_SATORI_USER_ID "3751531667" |
|
| 33 |
28 |
| 34 #define PURPLE_SATORI_TYPE_CONNECTION (purple_satori_connection_get_type()) |
29 #define PURPLE_SATORI_TYPE_CONNECTION (purple_satori_connection_get_type()) |
| 35 G_DECLARE_FINAL_TYPE(PurpleSatoriConnection, purple_satori_connection, PURPLE_SATORI, |
30 G_DECLARE_FINAL_TYPE(PurpleSatoriConnection, purple_satori_connection, PURPLE_SATORI, |
| 36 CONNECTION, PurpleConnection) |
31 CONNECTION, PurpleConnection) |
| 37 |
32 |
| 38 G_GNUC_INTERNAL void purple_satori_connection_register(GPluginNativePlugin *plugin); |
33 G_GNUC_INTERNAL void purple_satori_connection_register(GPluginNativePlugin *plugin); |
| |
34 |
| |
35 static inline SoupMessage * |
| |
36 SATORI_ENDPOINT(PurpleSatoriConnection *con, const gchar *p) { |
| |
37 PurpleAccount *acc = \ |
| |
38 purple_connection_get_account(PURPLE_CONNECTION(con)); |
| |
39 |
| |
40 gchar *url = \ |
| |
41 g_strdup_printf("%s://%s%s%s", |
| |
42 purple_account_get_bool(acc, "https", FALSE) ? "https" : "http", |
| |
43 purple_account_get_string(acc, "host", "127.0.0.1:5600"), |
| |
44 purple_account_get_string(acc, "path", "/v1"), p); |
| |
45 |
| |
46 SoupMessage *msg = soup_message_new("POST", url); |
| |
47 SoupMessageHeaders *headers = soup_message_get_request_headers(msg); |
| |
48 |
| |
49 soup_message_headers_append(headers, "Satori-Platform", |
| |
50 purple_account_get_string(acc, "platform", "")); |
| |
51 soup_message_headers_append(headers, "Satori-User-ID", |
| |
52 purple_account_get_username(acc)); |
| |
53 |
| |
54 g_free(url); |
| |
55 return msg; |
| |
56 } |
| 39 |
57 |
| 40 void |
58 void |
| 41 purple_satori_connection_send_and_read_async(PurpleSatoriConnection *con, |
59 purple_satori_connection_send_and_read_async(PurpleSatoriConnection *con, |
| 42 SoupMessage *msg, |
60 SoupMessage *msg, |
| 43 int io_priority, |
61 int io_priority, |