--- 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,