[arch-commits] Commit in purple-skypeweb/trunk (2 files)

Balló György bgyorgy at archlinux.org
Sun Mar 14 22:46:12 UTC 2021


    Date: Sunday, March 14, 2021 @ 22:46:11
  Author: bgyorgy
Revision: 891327

upgpkg: purple-skypeweb 1.7-2: Fix connection

Added:
  purple-skypeweb/trunk/make-the-opid-stage-optional.patch
Modified:
  purple-skypeweb/trunk/PKGBUILD

------------------------------------+
 PKGBUILD                           |   17 +++++--
 make-the-opid-stage-optional.patch |   77 +++++++++++++++++++++++++++++++++++
 2 files changed, 89 insertions(+), 5 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2021-03-14 22:44:42 UTC (rev 891326)
+++ PKGBUILD	2021-03-14 22:46:11 UTC (rev 891327)
@@ -6,18 +6,25 @@
 _pkgname=skypeweb
 _parentname=skype4pidgin
 pkgver=1.7
-pkgrel=1
+pkgrel=2
 arch=('x86_64')
 license=('GPL3')
 pkgdesc="SkypeWeb Plugin for Pidgin"
 url="https://github.com/EionRobb/skype4pidgin/tree/master/skypeweb"
 depends=('libpurple' 'json-glib')
-makedepends=('pkg-config')
-conflicts=('skype4pidgin')
 
-source=("$pkgname-$pkgver.tar.gz"::"https://github.com/EionRobb/$_parentname/archive/$pkgver.tar.gz")
-sha256sums=('e504d4c4807a45aa6ab1c62509c2f31a97952bbf2f0501428fd32a885b2ad84e')
+source=("$pkgname-$pkgver.tar.gz"::"https://github.com/EionRobb/$_parentname/archive/$pkgver.tar.gz"
+        "make-the-opid-stage-optional.patch")
+sha256sums=('e504d4c4807a45aa6ab1c62509c2f31a97952bbf2f0501428fd32a885b2ad84e'
+            'a2b1c581bb287a456ba1926d877b174de0fc022dc350ddef4bed03e49d073de9')
 
+prepare() {
+    cd "$srcdir/$_parentname-$pkgver"
+    # Make the opid stage optional
+    # https://github.com/EionRobb/skype4pidgin/commit/91b0d8a6114c66bf291ca8142c2ee2df12d3923a
+    patch -Np1 -i ../make-the-opid-stage-optional.patch
+}
+
 build() {
     cd "$srcdir/$_parentname-$pkgver/$_pkgname"
     make

Added: make-the-opid-stage-optional.patch
===================================================================
--- make-the-opid-stage-optional.patch	                        (rev 0)
+++ make-the-opid-stage-optional.patch	2021-03-14 22:46:11 UTC (rev 891327)
@@ -0,0 +1,77 @@
+From 91b0d8a6114c66bf291ca8142c2ee2df12d3923a Mon Sep 17 00:00:00 2001
+From: bodqhrohro <bodqhrohro at yandex.ru>
+Date: Fri, 25 Sep 2020 17:56:38 +0300
+Subject: [PATCH] Make the opid stage optional
+
+---
+ skypeweb/skypeweb_login.c | 55 ++++++++++++++++++---------------------
+ 1 file changed, 26 insertions(+), 29 deletions(-)
+
+diff --git a/skypeweb/skypeweb_login.c b/skypeweb/skypeweb_login.c
+index 650cd67..a8c9d50 100644
+--- a/skypeweb/skypeweb_login.c
++++ b/skypeweb/skypeweb_login.c
+@@ -259,37 +259,34 @@ skypeweb_login_got_opid(PurpleHttpConnection *http_conn, PurpleHttpResponse *res
+ 	data = purple_http_response_get_data(response, &len);
+ 	
+ 	ppft = skypeweb_string_get_chunk(data, len, ",sFT:'", "',");
+-	if (!ppft) {
+-		purple_connection_error(sa->pc, PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED, _("Failed getting PPFT value, please try logging in via browser first"));
+-		return;
+-	}
+ 	opid = skypeweb_string_get_chunk(data, len, "&opid=", "'");
+-	if (!opid) {
+-		purple_connection_error(sa->pc, PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED, _("Failed getting opid value, try using 'Alternate Auth Method' settings"));
+-		return;
++	if (!ppft || !opid) {
++		// Maybe this stage isn't needed this time: passing over the Magic T
++		skypeweb_login_got_t(http_conn, response, user_data);
++	} else {
++		postdata = g_string_new("");
++		g_string_append_printf(postdata, "opid=%s&", purple_url_encode(opid));
++		g_string_append(postdata, "site_name=lw.skype.com&");
++		g_string_append(postdata, "oauthPartner=999&");
++		g_string_append(postdata, "client_id=578134&");
++		g_string_append(postdata, "redirect_uri=https%3A%2F%2Fweb.skype.com&");
++		g_string_append_printf(postdata, "PPFT=%s&", purple_url_encode(ppft));
++		g_string_append(postdata, "type=28&");
++
++		tmplen = postdata->len;
++		if (postdata->len > INT_MAX) tmplen = INT_MAX;
++
++		request = purple_http_request_new(live_login_url);
++		purple_http_request_set_method(request, "POST");
++		purple_http_request_set_cookie_jar(request, sa->cookie_jar);
++		purple_http_request_header_set(request, "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
++		purple_http_request_header_set(request, "Accept", "*/*");
++		purple_http_request_set_contents(request, postdata->str, tmplen);
++		purple_http_request(sa->pc, request, skypeweb_login_got_t, sa);
++		purple_http_request_unref(request);
++
++		g_string_free(postdata, TRUE);
+ 	}
+-	postdata = g_string_new("");
+-	g_string_append_printf(postdata, "opid=%s&", purple_url_encode(opid));
+-	g_string_append(postdata, "site_name=lw.skype.com&");
+-	g_string_append(postdata, "oauthPartner=999&");
+-	g_string_append(postdata, "client_id=578134&");
+-	g_string_append(postdata, "redirect_uri=https%3A%2F%2Fweb.skype.com&");
+-	g_string_append_printf(postdata, "PPFT=%s&", purple_url_encode(ppft));
+-	g_string_append(postdata, "type=28&");
+-
+-	tmplen = postdata->len;
+-	if (postdata->len > INT_MAX) tmplen = INT_MAX;
+-	
+-	request = purple_http_request_new(live_login_url);
+-	purple_http_request_set_method(request, "POST");
+-	purple_http_request_set_cookie_jar(request, sa->cookie_jar);
+-	purple_http_request_header_set(request, "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
+-	purple_http_request_header_set(request, "Accept", "*/*");
+-	purple_http_request_set_contents(request, postdata->str, tmplen);
+-	purple_http_request(sa->pc, request, skypeweb_login_got_t, sa);
+-	purple_http_request_unref(request);
+-	
+-	g_string_free(postdata, TRUE);
+ 	
+ 	g_free(ppft);
+ 	g_free(opid);



More information about the arch-commits mailing list