grim/purple-spasm

Trying and failing to get chat working

2017-05-18, Gary Kramlich
0b0058df4b6b
Parents 3c2a35b27899
Children ace204c17ef1
Trying and failing to get chat working
  • +64 -0
    spasm-chat.c
  • +8 -0
    spasm-chat.h
  • +9 -0
    spasm.c
  • --- a/spasm-chat.c Thu May 18 22:18:39 2017 -0500
    +++ b/spasm-chat.c Thu May 18 23:01:35 2017 -0500
    @@ -251,3 +251,67 @@
    chat
    );
    }
    +
    +GList *
    +purple_spasm_chat_service_info(PurpleConnection *connection) {
    + struct proto_chat_entry *pce;
    +
    + pce = g_new0(struct proto_chat_entry, 1);
    + pce->label = "_Channel:";
    + pce->identifier = "channel";
    + pce->required = TRUE;
    +
    + return g_list_append(NULL, pce);
    +}
    +
    +GHashTable *
    +purple_spasm_chat_service_info_default(PurpleConnection *connection,
    + const gchar *name)
    +{
    + GHashTable *defaults = g_hash_table_new_full(
    + g_str_hash,
    + g_str_equal,
    + NULL,
    + g_free
    + );
    +
    + if(name != NULL) {
    + g_hash_table_insert(defaults, "channel", g_strdup(name));
    + }
    +
    + return defaults;
    +}
    +
    +void
    +purple_spasm_chat_service_join(PurpleConnection *connection,
    + GHashTable *components)
    +{
    +
    +}
    +
    +gchar *
    +purple_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) {
    +
    +}
    +
    +gint
    +purple_spasm_chat_service_send(PurpleConnection *connection,
    + gint id,
    + const gchar *message,
    + PurpleMessageFlags flags)
    +{
    + return -1;
    +}
    +
    +void
    +purple_spasm_chst_service_set_topic(PurpleConnection *connection,
    + gint id,
    + const gchar *topic)
    +{
    +
    +}
    --- a/spasm-chat.h Thu May 18 22:18:39 2017 -0500
    +++ b/spasm-chat.h Thu May 18 23:01:35 2017 -0500
    @@ -33,6 +33,14 @@
    void purple_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_chst_service_set_topic(PurpleConnection *connection, gint id, const gchar *topic);
    +
    G_END_DECLS
    #endif /* PURPLE_SPASM_CHAT */
    --- a/spasm.c Thu May 18 22:18:39 2017 -0500
    +++ b/spasm.c Thu May 18 23:01:35 2017 -0500
    @@ -84,6 +84,15 @@
    .status_types = _purple_spasm_get_status_types,
    .set_status = _purple_spasm_set_status,
    +
    + // chat stuff
    + .chat_info = purple_spasm_chat_service_info,
    + .chat_info_defaults = purple_spasm_chat_service_info_default,
    + .join_chat = purple_spasm_chat_service_join,
    + .get_chat_name = purple_spasm_chat_service_name,
    + .chat_leave = purple_spasm_chat_service_leave,
    + .chat_send = purple_spasm_chat_service_send,
    + .set_chat_topic = purple_spasm_chst_service_set_topic,
    };
    static PurplePluginInfo info = {