purplesatoriconnection.h

changeset 3
33a7b189a2c6
parent 0
cc7c1f9d20f7
--- a/purplesatoriconnection.h	Sun Aug 10 23:03:27 2025 +0800
+++ b/purplesatoriconnection.h	Sun Aug 10 23:53:22 2025 +0800
@@ -22,21 +22,39 @@
 #include <glib.h>
 #include <purple.h>
 #include <libsoup/soup.h>
+#include <libsoup/soup-types.h>
 
 G_BEGIN_DECLS
 
-#define PURPLE_SATORI_HOST	"192.168.1.154:5600"
-#define PURPLE_SATORI_WSURL	"ws://" PURPLE_SATORI_HOST "/v1/events"
-
-#define PURPLE_SATORI_PLATFORM	"QQ"
-#define PURPLE_SATORI_USER_ID	"3751531667"
-
 #define PURPLE_SATORI_TYPE_CONNECTION (purple_satori_connection_get_type())
 G_DECLARE_FINAL_TYPE(PurpleSatoriConnection, purple_satori_connection, PURPLE_SATORI,
                      CONNECTION, PurpleConnection)
 
 G_GNUC_INTERNAL void purple_satori_connection_register(GPluginNativePlugin *plugin);
 
+static inline SoupMessage *
+SATORI_ENDPOINT(PurpleSatoriConnection *con, const gchar *p) {
+	PurpleAccount *acc =						\
+		purple_connection_get_account(PURPLE_CONNECTION(con));
+
+	gchar *url =				\
+	  g_strdup_printf("%s://%s%s%s",
+			  purple_account_get_bool(acc, "https", FALSE) ? "https" : "http",
+			  purple_account_get_string(acc, "host", "127.0.0.1:5600"),
+			  purple_account_get_string(acc, "path", "/v1"), p);
+
+	SoupMessage *msg = soup_message_new("POST", url);
+	SoupMessageHeaders *headers = soup_message_get_request_headers(msg);
+
+	soup_message_headers_append(headers, "Satori-Platform",
+				    purple_account_get_string(acc, "platform", ""));
+	soup_message_headers_append(headers, "Satori-User-ID",
+				    purple_account_get_username(acc));
+
+	g_free(url);
+	return msg;
+}
+
 void
 purple_satori_connection_send_and_read_async(PurpleSatoriConnection	*con,
 					     SoupMessage		*msg,

mercurial