Update slack
Use newest commit and newest version of patch.
This commit is contained in:
parent
1e5c2c7122
commit
8338341c4f
|
@ -1,9 +1,10 @@
|
|||
https://github.com/kacf/slack-libpurple/commit/8a09a6d94c1020aeb7aef1ab3b08a088e4fbfac0.patch
|
||||
|
||||
From 8a09a6d94c1020aeb7aef1ab3b08a088e4fbfac0 Mon Sep 17 00:00:00 2001
|
||||
From d276ba4a0854ea243cb995a6042acc1b936f7d45 Mon Sep 17 00:00:00 2001
|
||||
From: Kristian Amlie <kristian.amlie@northern.tech>
|
||||
Date: Wed, 20 Jul 2022 15:43:03 +0200
|
||||
Subject: [PATCH] Enable credentials using browser obtained token and cookie.
|
||||
Subject: [PATCH 1/2] Enable credentials using browser obtained token and
|
||||
cookie.
|
||||
|
||||
The way it works is that you need two tokens from the browser.
|
||||
Currently, getting them is inconvenient, but let's start with the
|
||||
|
@ -161,28 +162,28 @@ index 6463da0..6415a46 100644
|
|||
void slack_api_disconnect(SlackAccount *sa);
|
||||
|
||||
diff --git a/slack-auth.c b/slack-auth.c
|
||||
index 5a41f76..d157ee5 100644
|
||||
index b1422ae..62ffcbb 100644
|
||||
--- a/slack-auth.c
|
||||
+++ b/slack-auth.c
|
||||
@@ -49,7 +49,7 @@ slack_auth_login_finduser_cb(SlackAccount *sa, gpointer user_data, json_value *j
|
||||
|
||||
/* now do the actual login */
|
||||
@@ -37,7 +37,7 @@ slack_auth_login_signin_cb(SlackAccount *sa, gpointer user_data, json_value *jso
|
||||
static void
|
||||
slack_auth_login_user(SlackAccount *sa, const char *user_id) {
|
||||
slack_login_step(sa);
|
||||
- slack_api_get(sa, slack_auth_login_signin_cb,
|
||||
+ slack_api_post(sa, slack_auth_login_signin_cb,
|
||||
NULL, "auth.signin",
|
||||
"user", user_id,
|
||||
"password", purple_account_get_password(sa->account),
|
||||
@@ -75,7 +75,7 @@ slack_auth_login_findteam_cb(SlackAccount *sa, gpointer user_data, json_value *j
|
||||
|
||||
@@ -81,7 +81,7 @@ slack_auth_login_findteam_cb(SlackAccount *sa, gpointer user_data, json_value *j
|
||||
/* now validate that the user exists and get their ID. */
|
||||
slack_login_step(sa);
|
||||
- slack_api_get(sa, slack_auth_login_finduser_cb,
|
||||
+ slack_api_post(sa, slack_auth_login_finduser_cb,
|
||||
NULL, "auth.findUser",
|
||||
"email", sa->email,
|
||||
"team", sa->team.id,
|
||||
@@ -86,7 +86,7 @@ slack_auth_login_findteam_cb(SlackAccount *sa, gpointer user_data, json_value *j
|
||||
if (strchr(sa->email, '@'))
|
||||
- slack_api_get(sa, slack_auth_login_finduser_cb,
|
||||
+ slack_api_post(sa, slack_auth_login_finduser_cb,
|
||||
NULL, "auth.findUser",
|
||||
"email", sa->email,
|
||||
"team", sa->team.id,
|
||||
@@ -94,7 +94,7 @@ slack_auth_login_findteam_cb(SlackAccount *sa, gpointer user_data, json_value *j
|
||||
void
|
||||
slack_auth_login(SlackAccount *sa) {
|
||||
/* validate the team and get it's ID */
|
||||
|
@ -192,10 +193,10 @@ index 5a41f76..d157ee5 100644
|
|||
"domain", sa->host,
|
||||
NULL);
|
||||
diff --git a/slack-blist.c b/slack-blist.c
|
||||
index be5c7ba..2756aef 100644
|
||||
index 5f7612d..b039a48 100644
|
||||
--- a/slack-blist.c
|
||||
+++ b/slack-blist.c
|
||||
@@ -140,7 +140,7 @@ struct roomlist_expand {
|
||||
@@ -145,7 +145,7 @@ struct roomlist_expand {
|
||||
};
|
||||
|
||||
#define ROOMLIST_CALL(sa, expand, ARGS...) \
|
||||
|
@ -297,10 +298,10 @@ index 1a84e1f..d4ee8f2 100644
|
|||
+ slack_api_post(sa, rtm_connect_cb, NULL, "rtm.connect", "batch_presence_aware", "1", "presence_sub", "true", NULL);
|
||||
}
|
||||
diff --git a/slack-thread.c b/slack-thread.c
|
||||
index 75e2b9d..bf5ae00 100644
|
||||
index ae86996..714781c 100644
|
||||
--- a/slack-thread.c
|
||||
+++ b/slack-thread.c
|
||||
@@ -225,7 +225,7 @@ static void slack_thread_lookup_ts(SlackAccount *sa, slack_thread_lookup_ts_cb *
|
||||
@@ -251,7 +251,7 @@ static void slack_thread_lookup_ts(SlackAccount *sa, slack_thread_lookup_ts_cb *
|
||||
lookup->rest = g_strdup(rest);
|
||||
|
||||
const char *id = slack_conversation_id(conv);
|
||||
|
@ -350,7 +351,7 @@ index 88292b4..3b3d151 100644
|
|||
|
||||
static void avatar_load_next(SlackAccount *sa);
|
||||
diff --git a/slack.c b/slack.c
|
||||
index 709baf6..5b8259a 100644
|
||||
index 5b61b39..0cbcd38 100644
|
||||
--- a/slack.c
|
||||
+++ b/slack.c
|
||||
@@ -282,14 +282,35 @@ static void slack_login(PurpleAccount *account) {
|
||||
|
@ -411,3 +412,75 @@ index 2f6454e..490722a 100644
|
|||
|
||||
short login_step;
|
||||
GQueue api_calls; /* SlackAPICall */
|
||||
|
||||
From 256c0ec77e27c0f7d333502eb2cbe82b1e4a1a91 Mon Sep 17 00:00:00 2001
|
||||
From: Kristian Amlie <kristian.amlie@northern.tech>
|
||||
Date: Tue, 19 Sep 2023 07:55:58 +0200
|
||||
Subject: [PATCH 2/2] Start sending d-cookie in WebSocket requests.
|
||||
|
||||
Started being required by Slack around 2023-09-19.
|
||||
|
||||
Signed-off-by: Kristian Amlie <kristian.amlie@northern.tech>
|
||||
---
|
||||
purple-websocket.c | 5 +++--
|
||||
purple-websocket.h | 2 +-
|
||||
slack-rtm.c | 9 ++++++++-
|
||||
3 files changed, 12 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/purple-websocket.c b/purple-websocket.c
|
||||
index 55eb371..07821c4 100644
|
||||
--- a/purple-websocket.c
|
||||
+++ b/purple-websocket.c
|
||||
@@ -463,7 +463,7 @@ static void ws_connect_cb(gpointer data, gint source, const gchar *error_message
|
||||
}
|
||||
|
||||
PurpleWebsocket *purple_websocket_connect(PurpleAccount *account,
|
||||
- const char *url, const char *protocol,
|
||||
+ const char *url, const char *protocol, const char *cookies,
|
||||
PurpleWebsocketCallback callback, void *user_data) {
|
||||
gboolean ssl = FALSE;
|
||||
|
||||
@@ -510,9 +510,10 @@ PurpleWebsocket *purple_websocket_connect(PurpleAccount *account,
|
||||
GET /%s HTTP/1.1\r\n\
|
||||
Host: %s\r\n\
|
||||
Connection: Upgrade\r\n\
|
||||
+Cookie: %s\r\n\
|
||||
Upgrade: websocket\r\n\
|
||||
Sec-WebSocket-Key: %s\r\n\
|
||||
-Sec-WebSocket-Version: 13\r\n", path, host, ws->key);
|
||||
+Sec-WebSocket-Version: 13\r\n", path, host, cookies, ws->key);
|
||||
if (protocol)
|
||||
g_string_append_printf(request, "Sec-WebSocket-Protocol: %s\r\n", protocol);
|
||||
g_string_append(request, "\r\n");
|
||||
diff --git a/purple-websocket.h b/purple-websocket.h
|
||||
index 0416750..0f3eae0 100644
|
||||
--- a/purple-websocket.h
|
||||
+++ b/purple-websocket.h
|
||||
@@ -17,7 +17,7 @@ typedef enum _PurpleWebsocketOp {
|
||||
|
||||
typedef void (*PurpleWebsocketCallback)(PurpleWebsocket *ws, gpointer user_data, PurpleWebsocketOp op, const guchar *msg, size_t len);
|
||||
|
||||
-PurpleWebsocket *purple_websocket_connect(PurpleAccount *account, const char *url, const char *protocol, PurpleWebsocketCallback callback, void *user_data);
|
||||
+PurpleWebsocket *purple_websocket_connect(PurpleAccount *account, const char *url, const char *protocol, const char *cookies, PurpleWebsocketCallback callback, void *user_data);
|
||||
void purple_websocket_send(PurpleWebsocket *ws, PurpleWebsocketOp op, const guchar *msg, size_t len);
|
||||
void purple_websocket_abort(PurpleWebsocket *ws);
|
||||
|
||||
diff --git a/slack-rtm.c b/slack-rtm.c
|
||||
index d4ee8f2..f79b9e2 100644
|
||||
--- a/slack-rtm.c
|
||||
+++ b/slack-rtm.c
|
||||
@@ -187,8 +187,13 @@ static gboolean rtm_connect_cb(SlackAccount *sa, gpointer data, json_value *json
|
||||
slack_blist_init(sa);
|
||||
|
||||
slack_login_step(sa);
|
||||
+
|
||||
+ gchar *cookie = g_strdup_printf("d=%s", sa->d_cookie ? sa->d_cookie : "");
|
||||
+
|
||||
purple_debug_info("slack", "RTM URL: %s\n", url);
|
||||
- sa->rtm = purple_websocket_connect(sa->account, url, NULL, rtm_cb, sa);
|
||||
+ sa->rtm = purple_websocket_connect(sa->account, url, NULL, cookie, rtm_cb, sa);
|
||||
+
|
||||
+ free(cookie);
|
||||
|
||||
sa->ping_timer = purple_timeout_add_seconds(60, ping_timer, sa);
|
||||
return FALSE;
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
self: super: {
|
||||
purple-slack = super.purple-slack.overrideAttrs(old: {
|
||||
version = "2023-01-19";
|
||||
version = "2023-05-15";
|
||||
|
||||
src = super.fetchFromGitHub {
|
||||
owner = "dylex";
|
||||
repo = "slack-libpurple";
|
||||
rev = "6778b7c7ae28d9b62339262245c8ca7d11fb5a16";
|
||||
sha256 = "sha256-smv2/bHLD5OJyUZhvgzqqzYO6NVWAY6d0dLamiXIEm4=";
|
||||
rev = "1cfcf6694c0813d9362d31291e48b54fea1318b2";
|
||||
sha256 = "ri6qFgWMVGQUse0A+q3VjvixoUC0zqCSMNw+vEIfgxI=";
|
||||
};
|
||||
|
||||
# Further ideas to add:
|
||||
|
|
Loading…
Reference in a new issue