grim/purple-spasm

Parents 4e3584f91826
Children 19b2bc38ec1f
rename all purple_spasm_* function to just spasm_* functions (some other cleanups too)
  • +58 -56
    spasm-account.c
  • +22 -22
    spasm-account.h
  • +43 -44
    spasm-chat.c
  • +14 -14
    spasm-chat.h
  • +14 -14
    spasm-const.h
  • +1 -1
    spasm-protocol.c
  • +15 -17
    spasm-rest.c
  • +5 -5
    spasm-rest.h
  • +3 -3
    spasm-user.c
  • +5 -5
    spasm-user.h
  • +2 -4
    spasm.c
  • +5 -5
    spasm.h
  • --- a/spasm-account.c Mon Sep 30 22:55:04 2019 -0500
    +++ b/spasm-account.c Mon Sep 30 23:51:10 2019 -0500
    @@ -1,6 +1,6 @@
    /*
    * PurpleSpasm - A Twitch Protocol Plugin
    - * Copyright (C) 2017 Gary Kramlich <grim@reaperworld.com>
    + * Copyright (C) 2017-2019 Gary Kramlich <grim@reaperworld.com>
    *
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    @@ -56,7 +56,9 @@
    * Helpers
    *****************************************************************************/
    static PurpleSpasmAccount *
    -purple_spasm_account_new(PurpleAccount *account, PurpleConnection *connection) {
    +spasm_account_new(PurpleAccount *account,
    + PurpleConnection *connection)
    +{
    PurpleSpasmAccount *sa = NULL;
    sa = g_new0(PurpleSpasmAccount, 1);
    @@ -73,19 +75,19 @@
    }
    static void
    -purple_spasm_account_free(PurpleSpasmAccount *sa) {
    +spasm_account_free(PurpleSpasmAccount *sa) {
    g_return_if_fail(sa);
    g_free(sa->access_token);
    - purple_spasm_chat_service_free(sa->chat);
    + spasm_chat_service_free(sa->chat);
    g_free(sa);
    }
    static void
    -_purple_spasm_account_set_access_token(PurpleSpasmAccount *sa,
    - const gchar *access_token)
    +spasm_account_set_access_token(PurpleSpasmAccount *sa,
    + const gchar *access_token)
    {
    g_return_if_fail(sa);
    @@ -93,14 +95,14 @@
    }
    static GError *
    -_purple_spasm_account_update_profile(PurpleSpasmAccount *sa, JsonParser *parser) {
    +spasm_account_update_profile(PurpleSpasmAccount *sa, JsonParser *parser) {
    JsonNode *root = NULL;
    JsonObject *obj = NULL;
    const gchar *str_attr = NULL;
    if(sa == NULL) {
    return g_error_new(
    - PURPLE_SPASM_DOMAIN,
    + SPASM_DOMAIN,
    0,
    "invalid spasm account"
    );
    @@ -140,11 +142,11 @@
    /******************************************************************************
    * Auth
    *****************************************************************************/
    -static void _purple_spasm_oauth_login(PurpleSpasmAccount *sa);
    +static void spasm_oauth_login(PurpleSpasmAccount *sa);
    static void
    -_purple_spasm_login_test_cb(PurpleSpasmAccount *sa, JsonParser *parser,
    - GError *error, gpointer data)
    +spasm_login_test_cb(PurpleSpasmAccount *sa, JsonParser *parser,
    + GError *error, gpointer data)
    {
    PurpleAccount *account = NULL;
    PurpleConnection *connection = NULL;
    @@ -152,15 +154,15 @@
    if(error != NULL) {
    purple_debug_info("spasm", "oauth token invalid, re-authenticating : %s\n", error->message);
    - _purple_spasm_oauth_login(sa);
    + spasm_oauth_login(sa);
    return;
    }
    - account = purple_spasm_account_get_account(sa);
    + account = spasm_account_get_account(sa);
    connection = purple_account_get_connection(account);
    - error = _purple_spasm_account_update_profile(sa, parser);
    + error = spasm_account_update_profile(sa, parser);
    if(error != NULL) {
    gchar *err_msg = NULL;
    @@ -182,50 +184,50 @@
    return;
    }
    - sa->chat = purple_spasm_chat_service_new(sa);
    - purple_spasm_chat_service_connect(sa->chat);
    + sa->chat = spasm_chat_service_new(sa);
    + spasm_chat_service_connect(sa->chat);
    }
    static void
    -_purple_spasm_access_token_input_cb(gpointer data, const gchar *access_token) {
    +spasm_access_token_input_cb(gpointer data, const gchar *access_token) {
    PurpleAccount *account = NULL;
    PurpleConnection *connection = NULL;
    - PurpleSpasmAccount *sa = PURPLE_SPASM_ACCOUNT(data);
    + PurpleSpasmAccount *sa = SPASM_ACCOUNT(data);
    - account = purple_spasm_account_get_account(sa);
    + account = spasm_account_get_account(sa);
    purple_account_set_remember_password(account, TRUE);
    - _purple_spasm_account_set_access_token(sa, access_token);
    + spasm_account_set_access_token(sa, access_token);
    purple_account_set_password(account, access_token, NULL, NULL);
    - connection = purple_spasm_account_get_connection(sa);
    + connection = spasm_account_get_connection(sa);
    purple_connection_update_progress(connection, "Verifying", 2, 3);
    - purple_spasm_get_user(sa, _purple_spasm_login_test_cb, NULL);
    + spasm_get_user(sa, spasm_login_test_cb, NULL);
    }
    static void
    -_purple_spasm_access_token_cancel_cb(gpointer data) {
    - PurpleSpasmAccount *sa = PURPLE_SPASM_ACCOUNT(data);
    +spasm_access_token_cancel_cb(gpointer data) {
    + PurpleSpasmAccount *sa = SPASM_ACCOUNT(data);
    purple_connection_error(
    - purple_spasm_account_get_connection(sa),
    + spasm_account_get_connection(sa),
    PURPLE_CONNECTION_ERROR_OTHER_ERROR,
    "User cancelled authorization"
    );
    - purple_spasm_account_free(sa);
    + spasm_account_free(sa);
    }
    static void
    -_purple_spasm_oauth_login(PurpleSpasmAccount *sa) {
    +spasm_oauth_login(PurpleSpasmAccount *sa) {
    PurpleAccount *account = NULL;
    PurpleConnection *connection = NULL;
    PurpleRequestCommonParameters *cpar = NULL;
    gchar *state = NULL, *uri = NULL;
    const gchar *username = NULL;
    - account = purple_spasm_account_get_account(sa);
    + account = spasm_account_get_account(sa);
    connection = purple_account_get_connection(account);
    purple_connection_update_progress(
    @@ -236,13 +238,13 @@
    );
    username = purple_account_get_username(account);
    - state = g_strdup_printf("%s,%s", PURPLE_SPASM_PLUGIN_ID, username);
    + state = g_strdup_printf("%s,%s", SPASM_PLUGIN_ID, username);
    uri = g_strdup_printf(
    - PURPLE_SPASM_OAUTH2_URI,
    - PURPLE_SPASM_OAUTH2_CLIENT_ID,
    - PURPLE_SPASM_OAUTH2_REDIRECT_URI,
    - PURPLE_SPASM_OAUTH2_SCOPES,
    + SPASM_OAUTH2_URI,
    + SPASM_OAUTH2_CLIENT_ID,
    + SPASM_OAUTH2_REDIRECT_URI,
    + SPASM_OAUTH2_SCOPES,
    state
    );
    g_free(state);
    @@ -262,8 +264,8 @@
    FALSE,
    TRUE,
    NULL,
    - "OK", G_CALLBACK(_purple_spasm_access_token_input_cb),
    - "Cancel", G_CALLBACK(_purple_spasm_access_token_cancel_cb),
    + "OK", G_CALLBACK(spasm_access_token_input_cb),
    + "Cancel", G_CALLBACK(spasm_access_token_cancel_cb),
    cpar,
    sa
    );
    @@ -273,28 +275,28 @@
    * API
    *****************************************************************************/
    PurpleAccount *
    -purple_spasm_account_get_account(const PurpleSpasmAccount *sa) {
    +spasm_account_get_account(const PurpleSpasmAccount *sa) {
    g_return_val_if_fail(sa, NULL);
    return sa->account;
    }
    PurpleConnection *
    -purple_spasm_account_get_connection(const PurpleSpasmAccount *sa) {
    +spasm_account_get_connection(const PurpleSpasmAccount *sa) {
    g_return_val_if_fail(sa, NULL);
    return sa->connection;
    }
    GCancellable *
    -purple_spasm_account_get_cancellable(const PurpleSpasmAccount *sa) {
    +spasm_account_get_cancellable(const PurpleSpasmAccount *sa) {
    g_return_val_if_fail(sa, NULL);
    return sa->cancellable;
    }
    SoupSession *
    -purple_spasm_account_get_session(const PurpleSpasmAccount *sa) {
    +spasm_account_get_session(const PurpleSpasmAccount *sa) {
    g_return_val_if_fail(sa, NULL);
    if(sa->session) {
    @@ -305,77 +307,77 @@
    }
    const gchar *
    -purple_spasm_account_get_access_token(const PurpleSpasmAccount *sa) {
    +spasm_account_get_access_token(const PurpleSpasmAccount *sa) {
    g_return_val_if_fail(sa, NULL);
    return sa->access_token;
    }
    const gchar *
    -purple_spasm_account_get_display_name(const PurpleSpasmAccount *sa) {
    +spasm_account_get_display_name(const PurpleSpasmAccount *sa) {
    g_return_val_if_fail(sa, NULL);
    return sa->display_name;
    }
    const gchar *
    -purple_spasm_account_get_id(const PurpleSpasmAccount *sa) {
    +spasm_account_get_id(const PurpleSpasmAccount *sa) {
    g_return_val_if_fail(sa, NULL);
    return sa->id;
    }
    const gchar *
    -purple_spasm_account_get_name(const PurpleSpasmAccount *sa) {
    +spasm_account_get_name(const PurpleSpasmAccount *sa) {
    g_return_val_if_fail(sa, NULL);
    return sa->name;
    }
    const gchar *
    -purple_spasm_account_get_type(const PurpleSpasmAccount *sa) {
    +spasm_account_get_type(const PurpleSpasmAccount *sa) {
    g_return_val_if_fail(sa, NULL);
    return sa->type;
    }
    const gchar *
    -purple_spasm_account_get_bio(const PurpleSpasmAccount *sa) {
    +spasm_account_get_bio(const PurpleSpasmAccount *sa) {
    g_return_val_if_fail(sa, NULL);
    return sa->bio;
    }
    const gchar *
    -purple_spasm_account_get_logo(const PurpleSpasmAccount *sa) {
    +spasm_account_get_logo(const PurpleSpasmAccount *sa) {
    g_return_val_if_fail(sa, NULL);
    return sa->logo;
    }
    const gchar *
    -purple_spasm_account_get_email(const PurpleSpasmAccount *sa) {
    +spasm_account_get_email(const PurpleSpasmAccount *sa) {
    g_return_val_if_fail(sa, NULL);
    return sa->email;
    }
    gboolean
    -purple_spasm_account_get_email_verified(const PurpleSpasmAccount *sa) {
    +spasm_account_get_email_verified(const PurpleSpasmAccount *sa) {
    g_return_val_if_fail(sa, FALSE);
    return sa->email_verified;
    }
    gboolean
    -purple_spasm_account_get_partnered(const PurpleSpasmAccount *sa) {
    +spasm_account_get_partnered(const PurpleSpasmAccount *sa) {
    g_return_val_if_fail(sa, FALSE);
    return sa->partnered;
    }
    gboolean
    -purple_spasm_account_get_twitter_connected(const PurpleSpasmAccount *sa) {
    +spasm_account_get_twitter_connected(const PurpleSpasmAccount *sa) {
    g_return_val_if_fail(sa, FALSE);
    return sa->twitter_connected;
    @@ -385,24 +387,24 @@
    spasm_account_login_got_password(PurpleAccount *account, const gchar *password,
    GError *error, gpointer data)
    {
    - PurpleSpasmAccount *sa = PURPLE_SPASM_ACCOUNT(data);
    + PurpleSpasmAccount *sa = SPASM_ACCOUNT(data);
    if(password != NULL) {
    - _purple_spasm_account_set_access_token(sa, password);
    - purple_spasm_get_user(sa, _purple_spasm_login_test_cb, NULL);
    + spasm_account_set_access_token(sa, password);
    + spasm_get_user(sa, spasm_login_test_cb, NULL);
    } else {
    - _purple_spasm_oauth_login(sa);
    + spasm_oauth_login(sa);
    }
    }
    void
    -purple_spasm_account_login(PurpleAccount *account) {
    +spasm_account_login(PurpleAccount *account) {
    PurpleConnection *pc = NULL;
    PurpleSpasmAccount *sa = NULL;
    pc = purple_account_get_connection(account);
    - sa = purple_spasm_account_new(account, pc);
    + sa = spasm_account_new(account, pc);
    purple_connection_set_protocol_data(pc, sa);
    purple_connection_set_state(pc, PURPLE_CONNECTION_CONNECTING);
    --- a/spasm-account.h Mon Sep 30 22:55:04 2019 -0500
    +++ b/spasm-account.h Mon Sep 30 23:51:10 2019 -0500
    @@ -17,8 +17,8 @@
    * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
    */
    -#ifndef PURPLE_SPASM_ACCOUNT_H
    -#define PURPLE_SPASM_ACCOUNT_H
    +#ifndef SPASM_ACCOUNT_H
    +#define SPASM_ACCOUNT_H
    #include <glib.h>
    @@ -28,7 +28,7 @@
    #include <purple.h>
    -#define PURPLE_SPASM_ACCOUNT(obj) ((PurpleSpasmAccount *)(obj))
    +#define SPASM_ACCOUNT(obj) ((PurpleSpasmAccount *)(obj))
    typedef struct _PurpleSpasmAccount PurpleSpasmAccount;
    @@ -36,31 +36,31 @@
    G_BEGIN_DECLS
    -// PurpleSpasmAccount *purple_spasm_account_new(PurpleAccount *account, PurpleConnection *connection);
    -// void purple_spasm_account_free(PurpleSpasmAccount *sa);
    +// PurpleSpasmAccount *spasm_account_new(PurpleAccount *account, PurpleConnection *connection);
    +// void spasm_account_free(PurpleSpasmAccount *sa);
    -PurpleAccount *purple_spasm_account_get_account(const PurpleSpasmAccount *sa);
    -PurpleConnection *purple_spasm_account_get_connection(const PurpleSpasmAccount *sa);
    +PurpleAccount *spasm_account_get_account(const PurpleSpasmAccount *sa);
    +PurpleConnection *spasm_account_get_connection(const PurpleSpasmAccount *sa);
    -void purple_spasm_account_login(PurpleAccount *account);
    +void spasm_account_login(PurpleAccount *account);
    -GCancellable *purple_spasm_account_get_cancellable(const PurpleSpasmAccount *sa);
    +GCancellable *spasm_account_get_cancellable(const PurpleSpasmAccount *sa);
    -SoupSession *purple_spasm_account_get_session(const PurpleSpasmAccount *sa);
    +SoupSession *spasm_account_get_session(const PurpleSpasmAccount *sa);
    -const gchar * purple_spasm_account_get_access_token(const PurpleSpasmAccount *sa);
    +const gchar *spasm_account_get_access_token(const PurpleSpasmAccount *sa);
    -const gchar *purple_spasm_account_get_display_name(const PurpleSpasmAccount *sa);
    -const gchar *purple_spasm_account_get_id(const PurpleSpasmAccount *sa);
    -const gchar *purple_spasm_account_get_name(const PurpleSpasmAccount *sa);
    -const gchar *purple_spasm_account_get_type(const PurpleSpasmAccount *sa);
    -const gchar *purple_spasm_account_get_bio(const PurpleSpasmAccount *sa);
    -const gchar *purple_spasm_account_get_logo(const PurpleSpasmAccount *sa);
    -const gchar *purple_spasm_account_get_email(const PurpleSpasmAccount *sa);
    -gboolean purple_spasm_account_get_email_verified(const PurpleSpasmAccount *sa);
    -gboolean purple_spasm_account_get_partnered(const PurpleSpasmAccount *sa);
    -gboolean purple_spasm_account_get_twitter_connected(const PurpleSpasmAccount *sa);
    +const gchar *spasm_account_get_display_name(const PurpleSpasmAccount *sa);
    +const gchar *spasm_account_get_id(const PurpleSpasmAccount *sa);
    +const gchar *spasm_account_get_name(const PurpleSpasmAccount *sa);
    +const gchar *spasm_account_get_type(const PurpleSpasmAccount *sa);
    +const gchar *spasm_account_get_bio(const PurpleSpasmAccount *sa);
    +const gchar *spasm_account_get_logo(const PurpleSpasmAccount *sa);
    +const gchar *spasm_account_get_email(const PurpleSpasmAccount *sa);
    +gboolean spasm_account_get_email_verified(const PurpleSpasmAccount *sa);
    +gboolean spasm_account_get_partnered(const PurpleSpasmAccount *sa);
    +gboolean spasm_account_get_twitter_connected(const PurpleSpasmAccount *sa);
    G_END_DECLS
    -#endif /* PURPLE_SPASM_ACCOUNT_H */
    +#endif /* SPASM_ACCOUNT_H */
    --- a/spasm-chat.c Mon Sep 30 22:55:04 2019 -0500
    +++ b/spasm-chat.c Mon Sep 30 23:51:10 2019 -0500
    @@ -40,8 +40,8 @@
    * sending
    *****************************************************************************/
    static void
    -_purple_spasm_chat_service_send(PurpleSpasmChatService *chat,
    - const gchar *format, ...)
    +spasm_chat_service_real_send(PurpleSpasmChatService *chat,
    + const gchar *format, ...)
    {
    GCancellable *cancellable = NULL;
    GError *error = NULL;
    @@ -49,7 +49,7 @@
    gboolean success;
    va_list vargs;
    - cancellable = purple_spasm_account_get_cancellable(chat->sa);
    + cancellable = spasm_account_get_cancellable(chat->sa);
    va_start(vargs, format);
    buffer = g_strdup_vprintf(format, vargs);
    @@ -66,7 +66,7 @@
    g_free(buffer);
    if(!success) {
    - PurpleConnection *purple_connection = purple_spasm_account_get_connection(chat->sa);
    + PurpleConnection *purple_connection = spasm_account_get_connection(chat->sa);
    if(error) {
    purple_connection_error(
    @@ -93,20 +93,20 @@
    * read loop
    *****************************************************************************/
    static void
    -_purple_spasm_chat_service_parse(PurpleSpasmChatService *chat,
    - const gchar *buffer)
    +spasm_chat_service_parse(PurpleSpasmChatService *chat,
    + const gchar *buffer)
    {
    if(purple_str_has_prefix(buffer, "PING ")) {
    purple_debug_misc("spasm", "PING? PONG!\n");
    - _purple_spasm_chat_service_send(chat, "PONG %s\r\n", buffer + 5);
    + spasm_chat_service_real_send(chat, "PONG %s\r\n", buffer + 5);
    }
    }
    -static void _purple_spasm_chat_read(PurpleSpasmChatService *chat);
    +static void spasm_chat_read(PurpleSpasmChatService *chat);
    static void
    -_purple_spasm_chat_read_cb(GObject *obj, GAsyncResult *res, gpointer data) {
    +spasm_chat_read_cb(GObject *obj, GAsyncResult *res, gpointer data) {
    GError *error = NULL;
    gchar *buffer = NULL;
    gsize buffer_len;
    @@ -138,7 +138,7 @@
    }
    purple_connection_error(
    - purple_spasm_account_get_connection(chat->sa),
    + spasm_account_get_connection(chat->sa),
    PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
    error_msg
    );
    @@ -150,20 +150,20 @@
    purple_debug_info("spasm", "chat buffer: %s\n", buffer);
    - _purple_spasm_chat_service_parse(chat, buffer);
    + spasm_chat_service_parse(chat, buffer);
    g_free(buffer);
    - _purple_spasm_chat_read(chat);
    + spasm_chat_read(chat);
    }
    static void
    -_purple_spasm_chat_read(PurpleSpasmChatService *chat) {
    +spasm_chat_read(PurpleSpasmChatService *chat) {
    g_data_input_stream_read_line_async(
    chat->input_stream,
    G_PRIORITY_DEFAULT,
    - purple_spasm_account_get_cancellable(chat->sa),
    - _purple_spasm_chat_read_cb,
    + spasm_account_get_cancellable(chat->sa),
    + spasm_chat_read_cb,
    chat
    );
    }
    @@ -172,12 +172,12 @@
    * chat login flow
    *****************************************************************************/
    static void
    -_purple_spasm_chat_login_cb(GObject *obj, GAsyncResult *res, gpointer data) {
    +spasm_chat_login_cb(GObject *obj, GAsyncResult *res, gpointer data) {
    GError *error = NULL;
    PurpleConnection *purple_connection = NULL;
    PurpleSpasmChatService *chat = (PurpleSpasmChatService *)data;
    - purple_connection = purple_spasm_account_get_connection(chat->sa);
    + purple_connection = spasm_account_get_connection(chat->sa);
    chat->socket_connection = g_socket_client_connect_to_host_finish(
    G_SOCKET_CLIENT(obj),
    @@ -210,17 +210,17 @@
    chat->output_stream = g_io_stream_get_output_stream(G_IO_STREAM(chat->socket_connection));
    /* now do the login */
    - _purple_spasm_chat_service_send(
    + spasm_chat_service_real_send(
    chat,
    "PASS oauth:%s\r\n",
    - purple_spasm_account_get_access_token(chat->sa)
    + spasm_account_get_access_token(chat->sa)
    );
    /* now try to use our nick */
    - _purple_spasm_chat_service_send(
    + spasm_chat_service_real_send(
    chat,
    "NICK %s\r\n",
    - purple_spasm_account_get_name(chat->sa)
    + spasm_account_get_name(chat->sa)
    );
    purple_connection_set_state(purple_connection, PURPLE_CONNECTION_CONNECTED);
    @@ -229,11 +229,11 @@
    g_io_stream_get_input_stream(G_IO_STREAM(chat->socket_connection))
    );
    - _purple_spasm_chat_read(chat);
    + spasm_chat_read(chat);
    }
    PurpleSpasmChatService *
    -purple_spasm_chat_service_new(PurpleSpasmAccount *sa) {
    +spasm_chat_service_new(PurpleSpasmAccount *sa) {
    PurpleSpasmChatService *chat = NULL;
    g_return_val_if_fail(sa, NULL);
    @@ -245,7 +245,7 @@
    }
    void
    -purple_spasm_chat_service_free(PurpleSpasmChatService *chat) {
    +spasm_chat_service_free(PurpleSpasmChatService *chat) {
    g_object_unref(chat->input_stream);
    g_object_unref(chat->output_stream);
    g_object_unref(chat->socket_client);
    @@ -255,7 +255,7 @@
    }
    void
    -purple_spasm_chat_service_connect(PurpleSpasmChatService *chat) {
    +spasm_chat_service_connect(PurpleSpasmChatService *chat) {
    g_return_if_fail(chat);
    chat->socket_client = g_socket_client_new();
    @@ -264,22 +264,21 @@
    g_socket_client_connect_to_host_async(
    chat->socket_client,
    - PURPLE_SPASM_CHAT_HOSTNAME,
    - PURPLE_SPASM_CHAT_PORT,
    - purple_spasm_account_get_cancellable(chat->sa),
    - _purple_spasm_chat_login_cb,
    + SPASM_CHAT_HOSTNAME,
    + SPASM_CHAT_PORT,
    + spasm_account_get_cancellable(chat->sa),
    + spasm_chat_login_cb,
    chat
    );
    }
    -GList *
    -purple_spasm_chat_service_info(PurpleConnection *connection) {
    +GList *_spasm_chat_service_info(PurpleConnection *connection) {
    return NULL;
    }
    GHashTable *
    -purple_spasm_chat_service_info_default(PurpleConnection *connection,
    - const gchar *name)
    +spasm_chat_service_info_default(PurpleConnection *connection,
    + const gchar *name)
    {
    GHashTable *defaults = g_hash_table_new_full(
    g_str_hash,
    @@ -296,35 +295,35 @@
    }
    void
    -purple_spasm_chat_service_join(PurpleConnection *connection,
    - GHashTable *components)
    +spasm_chat_service_join(PurpleConnection *connection,
    + GHashTable *components)
    {
    }
    gchar *
    -purple_spasm_chat_service_name(GHashTable *components) {
    +spasm_chat_service_name(GHashTable *components) {
    return g_strdup(g_hash_table_lookup(components, "channel"));
    }
    void
    -purple_spasm_chat_service_leave(PurpleConnection *connection, gint id) {
    +spasm_chat_service_leave(PurpleConnection *connection, gint id) {
    }
    gint
    -purple_spasm_chat_service_send(PurpleConnection *connection,
    - gint id,
    - const gchar *message,
    - PurpleMessageFlags flags)
    +spasm_chat_service_send(PurpleConnection *connection,
    + gint id,
    + const gchar *message,
    + PurpleMessageFlags flags)
    {
    return -1;
    }
    void
    -purple_spasm_chat_service_set_topic(PurpleConnection *connection,
    - gint id,
    - const gchar *topic)
    +spasm_chat_service_set_topic(PurpleConnection *connection,
    + gint id,
    + const gchar *topic)
    {
    }
    --- a/spasm-chat.h Mon Sep 30 22:55:04 2019 -0500
    +++ b/spasm-chat.h Mon Sep 30 23:51:10 2019 -0500
    @@ -1,6 +1,6 @@
    /*
    * PurpleSpasm - A Twitch Protocol Plugin
    - * Copyright (C) 2017 Gary Kramlich <grim@reaperworld.com>
    + * Copyright (C) 2017-2019 Gary Kramlich <grim@reaperworld.com>
    *
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    @@ -17,8 +17,8 @@
    * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
    */
    -#ifndef PURPLE_SPASM_CHAT
    -#define PURPLE_SPASM_CHAT
    +#ifndef SPASM_CHAT
    +#define SPASM_CHAT
    #include <glib.h>
    @@ -28,19 +28,19 @@
    G_BEGIN_DECLS
    -PurpleSpasmChatService *purple_spasm_chat_service_new(PurpleSpasmAccount *sa);
    -void purple_spasm_chat_service_free(PurpleSpasmChatService *chat);
    +PurpleSpasmChatService *spasm_chat_service_new(PurpleSpasmAccount *sa);
    +void spasm_chat_service_free(PurpleSpasmChatService *chat);
    -void purple_spasm_chat_service_connect(PurpleSpasmChatService *chat);
    +void spasm_chat_service_connect(PurpleSpasmChatService *chat);
    -GList *purple_spasm_chat_service_info(PurpleConnection *connection);
    -GHashTable *purple_spasm_chat_service_info_default(PurpleConnection *connection, const gchar *name);
    -void purple_spasm_chat_service_join(PurpleConnection *connection, GHashTable *components);
    -gchar *purple_spasm_chat_service_name(GHashTable *components);
    -void purple_spasm_chat_service_leave(PurpleConnection *connection, gint id);
    -gint purple_spasm_chat_service_send(PurpleConnection *connection, gint id, const gchar *message, PurpleMessageFlags flags);
    -void purple_spasm_chat_service_set_topic(PurpleConnection *connection, gint id, const gchar *topic);
    +GList *spasm_chat_service_info(PurpleConnection *connection);
    +GHashTable *spasm_chat_service_info_default(PurpleConnection *connection, const gchar *name);
    +void spasm_chat_service_join(PurpleConnection *connection, GHashTable *components);
    +gchar *spasm_chat_service_name(GHashTable *components);
    +void spasm_chat_service_leave(PurpleConnection *connection, gint id);
    +gint spasm_chat_service_send(PurpleConnection *connection, gint id, const gchar *message, PurpleMessageFlags flags);
    +void spasm_chat_service_set_topic(PurpleConnection *connection, gint id, const gchar *topic);
    G_END_DECLS
    -#endif /* PURPLE_SPASM_CHAT */
    +#endif /* SPASM_CHAT */
    --- a/spasm-const.h Mon Sep 30 22:55:04 2019 -0500
    +++ b/spasm-const.h Mon Sep 30 23:51:10 2019 -0500
    @@ -1,6 +1,6 @@
    /*
    * PurpleSpasm - A Twitch Protocol Plugin
    - * Copyright (C) 2017 Gary Kramlich <grim@reaperworld.com>
    + * Copyright (C) 2017-2019 Gary Kramlich <grim@reaperworld.com>
    *
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    @@ -17,26 +17,26 @@
    * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
    */
    -#ifndef PURPLE_SPASM_CONSTS_H
    -#define PURPLE_SPASM_CONSTS_H
    +#ifndef SPASM_CONSTS_H
    +#define SPASM_CONSTS_H
    -#define PURPLE_SPASM_PLUGIN_ID "prpl-grim-spasm"
    +#define SPASM_PLUGIN_ID "prpl-grim-spasm"
    -#define PURPLE_SPASM_CHAT_HOSTNAME "irc.chat.twitch.tv"
    -#define PURPLE_SPASM_CHAT_PORT 443
    +#define SPASM_CHAT_HOSTNAME "irc.chat.twitch.tv"
    +#define SPASM_CHAT_PORT 443
    -#define PURPLE_SPASM_BASE_URL "https://api.twitch.tv/kraken/"
    -#define PURPLE_SPASM_WEBSOCKET_URL "wss://pubsub-edge.twitch.tv"
    -#define PURPLE_SPASM_CONTENT_TYPE "application/vnd.twitchtv.v5+json"
    +#define SPASM_BASE_URL "https://api.twitch.tv/kraken/"
    +#define SPASM_WEBSOCKET_URL "wss://pubsub-edge.twitch.tv"
    +#define SPASM_CONTENT_TYPE "application/vnd.twitchtv.v5+json"
    -#define PURPLE_SPASM_OAUTH2_CLIENT_ID "w7le4wyxwbipv6kf5qmqogwkqskl12"
    -#define PURPLE_SPASM_OAUTH2_SCOPES "user_read chat_login"
    -#define PURPLE_SPASM_OAUTH2_REDIRECT_URI "https://pidgin.im/oauth.html"
    -#define PURPLE_SPASM_OAUTH2_URI PURPLE_SPASM_BASE_URL "oauth2/authorize?" \
    +#define SPASM_OAUTH2_CLIENT_ID "w7le4wyxwbipv6kf5qmqogwkqskl12"
    +#define SPASM_OAUTH2_SCOPES "user_read chat_login"
    +#define SPASM_OAUTH2_REDIRECT_URI "https://pidgin.im/oauth.html"
    +#define SPASM_OAUTH2_URI SPASM_BASE_URL "oauth2/authorize?" \
    "response_type=token&" \
    "client_id=%s&" \
    "redirect_uri=%s&" \
    "scope=%s&" \
    "state=%s"
    -#endif /* PURPLE_SPASM_CONSTS_H */
    +#endif /* SPASM_CONSTS_H */
    --- a/spasm-protocol.c Mon Sep 30 22:55:04 2019 -0500
    +++ b/spasm-protocol.c Mon Sep 30 23:51:10 2019 -0500
    @@ -68,7 +68,7 @@
    spasm_protocol_class_init(SpasmProtocolClass *klass) {
    PurpleProtocolClass *protocol_class = PURPLE_PROTOCOL_CLASS(klass);
    - protocol_class->login = purple_spasm_account_login;
    + protocol_class->login = spasm_account_login;
    protocol_class->list_icon = spasm_protocol_list_icon;
    protocol_class->close = spasm_protocol_close;
    protocol_class->status_types = spasm_protocol_get_status_types;
    --- a/spasm-rest.c Mon Sep 30 22:55:04 2019 -0500
    +++ b/spasm-rest.c Mon Sep 30 23:51:10 2019 -0500
    @@ -1,6 +1,6 @@
    /*
    * PurpleSpasm - A Twitch Protocol Plugin
    - * Copyright (C) 2017 Gary Kramlich <grim@reaperworld.com>
    + * Copyright (C) 2017-2019 Gary Kramlich <grim@reaperworld.com>
    *
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    @@ -38,9 +38,7 @@
    * Callbacks
    *****************************************************************************/
    static void
    -_purple_spasm_request_cb(GObject *obj, GAsyncResult *res,
    - gpointer data)
    -{
    +spasm_request_cb(GObject *obj, GAsyncResult *res, gpointer data) {
    GInputStream *istream = NULL;
    GError *error = NULL;
    JsonParser *parser = NULL;
    @@ -71,7 +69,7 @@
    root = json_parser_get_root(parser);
    if(root == NULL || !JSON_NODE_HOLDS_OBJECT(root)) {
    error = g_error_new(
    - PURPLE_SPASM_DOMAIN,
    + SPASM_DOMAIN,
    0,
    "invalid json response"
    );
    @@ -88,7 +86,7 @@
    json_obj = json_node_get_object(root);
    if(json_obj == NULL) {
    error = g_error_new(
    - PURPLE_SPASM_DOMAIN,
    + SPASM_DOMAIN,
    0,
    "json is not an object"
    );
    @@ -105,7 +103,7 @@
    if(json_object_has_member(json_obj, "error")) {
    purple_debug_info("spasm", "error: %s\n", json_object_get_string_member(json_obj, "error"));
    error = g_error_new(
    - PURPLE_SPASM_DOMAIN,
    + SPASM_DOMAIN,
    0,
    "error : %s : %" G_GINT64_FORMAT,
    json_object_get_string_member(json_obj, "message"),
    @@ -130,9 +128,9 @@
    * API
    *****************************************************************************/
    void
    -purple_spasm_rest_request(PurpleSpasmAccount *sa, const gchar *method,
    - const gchar *path, const gchar *body,
    - PurpleSpasmRestCallback callback, gpointer data)
    +spasm_rest_request(PurpleSpasmAccount *sa, const gchar *method,
    + const gchar *path, const gchar *body,
    + PurpleSpasmRestCallback callback, gpointer data)
    {
    PurpleSpasmRestCallbackData *cb;
    SoupMessage *msg = NULL;
    @@ -141,7 +139,7 @@
    g_return_if_fail(sa);
    - url = g_build_filename(PURPLE_SPASM_BASE_URL, path, NULL);
    + url = g_build_filename(SPASM_BASE_URL, path, NULL);
    msg = soup_message_new(method, url);
    g_free(url);
    @@ -149,18 +147,18 @@
    soup_message_headers_replace(
    msg->request_headers,
    "Client-ID",
    - PURPLE_SPASM_OAUTH2_CLIENT_ID
    + SPASM_OAUTH2_CLIENT_ID
    );
    // Set the Accept header
    soup_message_headers_replace(
    msg->request_headers,
    "Accept",
    - PURPLE_SPASM_CONTENT_TYPE
    + SPASM_CONTENT_TYPE
    );
    // Set the authorization header to the access token
    - auth = g_strdup_printf("OAuth %s", purple_spasm_account_get_access_token(sa));
    + auth = g_strdup_printf("OAuth %s", spasm_account_get_access_token(sa));
    soup_message_headers_replace(
    msg->request_headers,
    "Authorization", auth
    @@ -172,12 +170,12 @@
    cb->cb = callback;
    cb->data = data;
    - session = purple_spasm_account_get_session(sa);
    + session = spasm_account_get_session(sa);
    soup_session_send_async(
    session,
    msg,
    - purple_spasm_account_get_cancellable(sa),
    - _purple_spasm_request_cb,
    + spasm_account_get_cancellable(sa),
    + spasm_request_cb,
    cb
    );
    g_object_unref(G_OBJECT(session));
    --- a/spasm-rest.h Mon Sep 30 22:55:04 2019 -0500
    +++ b/spasm-rest.h Mon Sep 30 23:51:10 2019 -0500
    @@ -1,6 +1,6 @@
    /*
    * PurpleSpasm - A Twitch Protocol Plugin
    - * Copyright (C) 2017 Gary Kramlich <grim@reaperworld.com>
    + * Copyright (C) 2017-2019 Gary Kramlich <grim@reaperworld.com>
    *
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    @@ -17,8 +17,8 @@
    * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
    */
    -#ifndef PURPLE_SPASM_REST_H
    -#define PURPLE_SPASM_REST_H
    +#ifndef SPASM_REST_H
    +#define SPASM_REST_H
    #include <glib.h>
    @@ -30,8 +30,8 @@
    typedef void (*PurpleSpasmRestCallback)(PurpleSpasmAccount *sa, JsonParser *parser, GError *error, gpointer data);
    -void purple_spasm_rest_request(PurpleSpasmAccount *sa, const gchar *method, const gchar *path, const gchar *body, PurpleSpasmRestCallback callback, gpointer data);
    +void spasm_rest_request(PurpleSpasmAccount *sa, const gchar *method, const gchar *path, const gchar *body, PurpleSpasmRestCallback callback, gpointer data);
    G_END_DECLS
    -#endif /* PURPLE_SPASM_USER_H */
    +#endif /* SPASM_USER_H */
    --- a/spasm-user.c Mon Sep 30 22:55:04 2019 -0500
    +++ b/spasm-user.c Mon Sep 30 23:51:10 2019 -0500
    @@ -1,6 +1,6 @@
    /*
    * PurpleSpasm - A Twitch Protocol Plugin
    - * Copyright (C) 2017 Gary Kramlich <grim@reaperworld.com>
    + * Copyright (C) 2017-2019 Gary Kramlich <grim@reaperworld.com>
    *
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    @@ -28,8 +28,8 @@
    * User endpoint
    *****************************************************************************/
    void
    -purple_spasm_get_user(PurpleSpasmAccount *sa, PurpleSpasmRestCallback cb, gpointer data) {
    - purple_spasm_rest_request(
    +spasm_get_user(PurpleSpasmAccount *sa, PurpleSpasmRestCallback cb, gpointer data) {
    + spasm_rest_request(
    sa,
    "GET",
    "/user",
    --- a/spasm-user.h Mon Sep 30 22:55:04 2019 -0500
    +++ b/spasm-user.h Mon Sep 30 23:51:10 2019 -0500
    @@ -1,6 +1,6 @@
    /*
    * PurpleSpasm - A Twitch Protocol Plugin
    - * Copyright (C) 2017 Gary Kramlich <grim@reaperworld.com>
    + * Copyright (C) 2017-2019 Gary Kramlich <grim@reaperworld.com>
    *
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    @@ -17,8 +17,8 @@
    * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
    */
    -#ifndef PURPLE_SPASM_USER_H
    -#define PURPLE_SPASM_USER_H
    +#ifndef SPASM_USER_H
    +#define SPASM_USER_H
    #include <glib.h>
    @@ -27,8 +27,8 @@
    G_BEGIN_DECLS
    -void purple_spasm_get_user(PurpleSpasmAccount *sa, PurpleSpasmRestCallback cb, gpointer data);
    +void spasm_get_user(PurpleSpasmAccount *sa, PurpleSpasmRestCallback cb, gpointer data);
    G_END_DECLS
    -#endif /* PURPLE_SPASM_USER_H */
    +#endif /* SPASM_USER_H */
    --- a/spasm.c Mon Sep 30 22:55:04 2019 -0500
    +++ b/spasm.c Mon Sep 30 23:51:10 2019 -0500
    @@ -1,6 +1,6 @@
    /*
    * PurpleSpasm - A Twitch Protocol Plugin
    - * Copyright (C) 2017 Gary Kramlich <grim@reaperworld.com>
    + * Copyright (C) 2017-2019 Gary Kramlich <grim@reaperworld.com>
    *
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    @@ -19,8 +19,6 @@
    #include <glib.h>
    -#define PURPLE_PLUGINS
    -
    #include <purple.h>
    #include "spasm-account.h"
    @@ -71,7 +69,7 @@
    const gchar * const authors [] = { "Gary Kramlich <grim@reaperworld.com>", NULL };
    return GPLUGIN_PLUGIN_INFO(purple_plugin_info_new(
    - "id", PURPLE_SPASM_PLUGIN_ID,
    + "id", SPASM_PLUGIN_ID,
    "name", "Twitch",
    "version", PLUGIN_VERSION,
    "abi-version", PURPLE_ABI_VERSION,
    --- a/spasm.h Mon Sep 30 22:55:04 2019 -0500
    +++ b/spasm.h Mon Sep 30 23:51:10 2019 -0500
    @@ -1,6 +1,6 @@
    /*
    * PurpleSpasm - A Twitch Protocol Plugin
    - * Copyright (C) 2017 Gary Kramlich <grim@reaperworld.com>
    + * Copyright (C) 2017-2019 Gary Kramlich <grim@reaperworld.com>
    *
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    @@ -17,11 +17,11 @@
    * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
    */
    -#ifndef PURPLE_SPASM_H
    -#define PURPLE_SPASM_H
    +#ifndef SPASM_H
    +#define SPASM_H
    #include <glib.h>
    -#define PURPLE_SPASM_DOMAIN (g_quark_from_static_string("purple-spasm"))
    +#define SPASM_DOMAIN (g_quark_from_static_string("purple-spasm"))
    -#endif /* PURPLE_SPASM_H */
    \ No newline at end of file
    +#endif /* SPASM_H */