Add pidgin command to start slack calls
See: https://github.com/dylex/slack-libpurple/pull/169
This commit is contained in:
parent
9c62561a9e
commit
dc589d789e
51
overlays/purple-slack/call-command.patch
Normal file
51
overlays/purple-slack/call-command.patch
Normal file
|
@ -0,0 +1,51 @@
|
|||
diff --git a/README.md b/README.md
|
||||
index fe44a64..00ec35f 100644
|
||||
--- a/README.md
|
||||
+++ b/README.md
|
||||
@@ -64,6 +64,7 @@ Here's how slack concepts are mapped to purple:
|
||||
- `/delete`: remove your last message
|
||||
- `/thread|th [thread-timestamp] [message]`: post `message` in a thread, where `thread-timestamp` matches the configured display format (either `thread_timestamp` or `thread_datestamp`)
|
||||
- `/getthread|gth [thread-timestamp]`: fetch messages in a thread, where `thread-timestamp` matches the configured display format (either `thread_timestamp` or `thread_datestamp`)
|
||||
+- `/call`: start a new call
|
||||
|
||||
## Known issues
|
||||
- Handling of messages while not connected or not open is not great.
|
||||
diff --git a/slack-cmd.c b/slack-cmd.c
|
||||
index 49188fb..6adbae8 100644
|
||||
--- a/slack-cmd.c
|
||||
+++ b/slack-cmd.c
|
||||
@@ -128,6 +128,23 @@ static PurpleCmdRet cmd_delete(PurpleConversation *conv, const gchar *cmd, gchar
|
||||
return PURPLE_CMD_RET_OK;
|
||||
}
|
||||
|
||||
+static PurpleCmdRet cmd_startcall(PurpleConversation *conv, const gchar *cmd, gchar **args, gchar **error, void *data) {
|
||||
+ SlackAccount *sa = get_slack_account(conv->account);
|
||||
+ if (!sa)
|
||||
+ return PURPLE_CMD_RET_FAILED;
|
||||
+
|
||||
+ SlackObject *obj = slack_conversation_get_conversation(sa, conv);
|
||||
+ if (!obj) {
|
||||
+ return PURPLE_CMD_RET_FAILED;
|
||||
+ }
|
||||
+
|
||||
+ gchar *url = g_strconcat("https://app.slack.com/free-willy/", sa->team.id, "/", slack_conversation_id(obj), NULL);
|
||||
+ slack_write_message(sa, obj, url, PURPLE_MESSAGE_SEND);
|
||||
+ g_free(url);
|
||||
+
|
||||
+ return PURPLE_CMD_RET_OK;
|
||||
+}
|
||||
+
|
||||
static PurpleCmdRet cmd_thread(PurpleConversation *conv, const gchar *cmd, gchar **args, gchar **error, void *data) {
|
||||
SlackAccount *sa = get_slack_account(conv->account);
|
||||
if (!sa)
|
||||
@@ -192,6 +209,10 @@ void slack_cmd_register() {
|
||||
SLACK_PLUGIN_ID, cmd_delete, "delete: remove your last message", NULL);
|
||||
commands = g_slist_prepend(commands, GUINT_TO_POINTER(id));
|
||||
|
||||
+ id = purple_cmd_register("call", "", PURPLE_CMD_P_PRPL, PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY,
|
||||
+ SLACK_PLUGIN_ID, cmd_startcall, "call", NULL);
|
||||
+ commands = g_slist_prepend(commands, GUINT_TO_POINTER(id));
|
||||
+
|
||||
static const char *thread_cmds[] = {"thread", "th", NULL};
|
||||
for (cmdp = thread_cmds; *cmdp; cmdp++) {
|
||||
id = purple_cmd_register(*cmdp, "s", PURPLE_CMD_P_PRPL, PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY,
|
|
@ -12,6 +12,7 @@ self: super: {
|
|||
patches = (old.patches or []) ++ [
|
||||
./browser-based-auth.patch
|
||||
./call-transformation.patch
|
||||
./call-command.patch
|
||||
];
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue