summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorj.r2021-02-22 09:58:47 +0100
committerj.r2021-02-22 09:58:47 +0100
commitbcd37cee240ef89f5baa136ff223ce632f8cb135 (patch)
tree8b38f5de6f794ac88e4a4cfc5e0012f637016195
parent085a8b0464776d86e2a12da424b05003896dbce0 (diff)
downloadaur-bcd37cee240ef89f5baa136ff223ce632f8cb135.tar.gz
telegram-tg-git: fix compatibility with new libtd
-rw-r--r--.SRCINFO8
-rw-r--r--0001-Change-setup.py-to-accept-new-python-telegram-ver.patch6
-rw-r--r--0002-Fix-compatibility-with-new-libtd-version.patch181
-rw-r--r--PKGBUILD11
4 files changed, 196 insertions, 10 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 8e65d6225bc..c07b6f678f4 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = telegram-tg-git
pkgdesc = terminal telegram client that really works
- pkgver = v0.7.0.r3.06f7c5b
- pkgrel = 3
+ pkgver = v0.7.0.r7.1cd023a
+ pkgrel = 1
url = https://github.com/paul-nameless/tg
arch = any
license = Unlicense
@@ -16,8 +16,10 @@ pkgbase = telegram-tg-git
conflicts = telegram-tg
source = telegram-tg::git+https://github.com/paul-nameless/tg.git
source = 0001-Change-setup.py-to-accept-new-python-telegram-ver.patch
+ source = 0002-Fix-compatibility-with-new-libtd-version.patch
md5sums = SKIP
- md5sums = b5128de4dab3dbe7aaea695ac0a0b1a8
+ md5sums = 7b9a556ce7d2203fbee32442a96d73bc
+ md5sums = 13f56d00337b141c270906f0df49e872
pkgname = telegram-tg-git
diff --git a/0001-Change-setup.py-to-accept-new-python-telegram-ver.patch b/0001-Change-setup.py-to-accept-new-python-telegram-ver.patch
index 67a0979b37b..d5e8e746ad8 100644
--- a/0001-Change-setup.py-to-accept-new-python-telegram-ver.patch
+++ b/0001-Change-setup.py-to-accept-new-python-telegram-ver.patch
@@ -1,7 +1,7 @@
-From 9d667051c5dc4f60e9ea5e389a7b8bcc15156859 Mon Sep 17 00:00:00 2001
+From 0b4663c21a1dac223872f16473840b9daf446d8b Mon Sep 17 00:00:00 2001
From: "j.r" <j.r@jugendhacker.de>
Date: Tue, 29 Dec 2020 14:44:26 +0100
-Subject: [PATCH] Change setup.py to accept new python-telegram ver
+Subject: [PATCH 1/2] Change setup.py to accept new python-telegram ver
---
setup.py | 2 +-
@@ -19,5 +19,5 @@ index e1aea71..e98daa1 100644
+ install_requires=["python-telegram>=0.12.0"],
)
--
-2.29.2
+2.30.1
diff --git a/0002-Fix-compatibility-with-new-libtd-version.patch b/0002-Fix-compatibility-with-new-libtd-version.patch
new file mode 100644
index 00000000000..45c124849cd
--- /dev/null
+++ b/0002-Fix-compatibility-with-new-libtd-version.patch
@@ -0,0 +1,181 @@
+From 24dc62ca6ed1cff0e7a0124aa24f8388f7c034f1 Mon Sep 17 00:00:00 2001
+From: hexyoungs <chuxdesign@hotmail.com>
+Date: Wed, 25 Nov 2020 16:07:50 +0800
+Subject: [PATCH 2/2] Fix compatibility with new libtd version
+
+Based on the work of chux0519 here: https://github.com/chux0519/tg
+---
+ tg/controllers.py | 2 +-
+ tg/models.py | 13 ++++++++++---
+ tg/msg.py | 2 +-
+ tg/update_handlers.py | 22 +++++++++++++++++-----
+ tg/views.py | 10 +++++-----
+ 5 files changed, 34 insertions(+), 15 deletions(-)
+
+diff --git a/tg/controllers.py b/tg/controllers.py
+index 300e3d2..ae8deab 100644
+--- a/tg/controllers.py
++++ b/tg/controllers.py
+@@ -869,7 +869,7 @@ class Controller:
+ return
+
+ # notify
+- if self.model.is_me(msg["sender_user_id"]):
++ if self.model.is_me(msg["sender"].get("user_id")):
+ return
+ user = self.model.users.get_user(msg.sender_id)
+ name = f"{user['first_name']} {user['last_name']}"
+diff --git a/tg/models.py b/tg/models.py
+index 882bcd4..0808448 100644
+--- a/tg/models.py
++++ b/tg/models.py
+@@ -175,7 +175,8 @@ class Model:
+ return False
+
+ def can_be_deleted(self, chat_id: int, msg: Dict[str, Any]) -> bool:
+- if chat_id == msg["sender_user_id"]:
++ c_id = msg["sender"].get("chat_id") or msg["sender"].get("user_id")
++ if chat_id == c_id:
+ return msg["can_be_deleted_only_for_self"]
+ return msg["can_be_deleted_for_all_users"]
+
+@@ -436,6 +437,12 @@ class ChatModel:
+ chat_id = chat["id"]
+ if chat_id in self.chat_ids:
+ return
++
++ if len(chat["positions"]) > 0:
++ chat["order"] = chat["positions"][0]["order"]
++ else:
++ chat["order"] = 0 #str(sys.maxsize)
++
+ if int(chat["order"]) == 0:
+ self.inactive_chats[chat_id] = chat
+ return
+@@ -811,10 +818,10 @@ class UserModel:
+ if user_id == 0:
+ return ""
+ user = self.get_user(user_id)
+- if user["first_name"] and user["last_name"]:
++ if user.get("first_name") and user.get("last_name"):
+ return f'{user["first_name"]} {user["last_name"]}'[:20]
+
+- if user["first_name"]:
++ if user.get("first_name"):
+ return f'{user["first_name"]}'[:20]
+
+ if user.get("username"):
+diff --git a/tg/msg.py b/tg/msg.py
+index deb5288..3084c6c 100644
+--- a/tg/msg.py
++++ b/tg/msg.py
+@@ -218,7 +218,7 @@ class MsgProxy:
+
+ @property
+ def sender_id(self) -> int:
+- return self.msg["sender_user_id"]
++ return self.msg["sender"].get("user_id") or self.msg["sender"].get("chat_id")
+
+ @property
+ def forward(self) -> Optional[Dict[str, Any]]:
+diff --git a/tg/update_handlers.py b/tg/update_handlers.py
+index fa42c0a..2799709 100644
+--- a/tg/update_handlers.py
++++ b/tg/update_handlers.py
+@@ -78,7 +78,7 @@ def update_new_message(controller: Controller, update: Dict[str, Any]) -> None:
+
+ controller.notify_for_message(msg.chat_id, msg)
+
+-
++#outdated
+ @update_handler("updateChatOrder")
+ def update_chat_order(controller: Controller, update: Dict[str, Any]) -> None:
+ current_chat_id = controller.model.current_chat_id
+@@ -88,6 +88,16 @@ def update_chat_order(controller: Controller, update: Dict[str, Any]) -> None:
+ if controller.model.chats.update_chat(chat_id, order=order):
+ controller.refresh_current_chat(current_chat_id)
+
++@update_handler("updateChatPosition")
++def update_chat_position(controller: Controller, update: Dict[str, Any]) -> None:
++ current_chat_id = controller.model.current_chat_id
++ chat_id = update["chat_id"]
++ info = {}
++ info["order"] = update["position"]["order"]
++ if "is_pinned" in update:
++ info["is_pinned"] = update["is_pinned"]
++ if controller.model.chats.update_chat(chat_id, **info):
++ controller.refresh_current_chat(current_chat_id)
+
+ @update_handler("updateChatTitle")
+ def update_chat_title(controller: Controller, update: Dict[str, Any]) -> None:
+@@ -189,12 +199,14 @@ def update_chat_last_message(
+ # according to documentation it can be null
+ log.warning("last_message is null: %s", update)
+ return
+- order = update["order"]
++
++ info = {}
++ info["last_message"] = last_message
++ if len(update["positions"]) > 0:
++ info["order"] = update["positions"][0]["order"]
+
+ current_chat_id = controller.model.current_chat_id
+- if controller.model.chats.update_chat(
+- chat_id, last_message=last_message, order=order
+- ):
++ if controller.model.chats.update_chat(chat_id, **info):
+ controller.refresh_current_chat(current_chat_id)
+
+
+diff --git a/tg/views.py b/tg/views.py
+index d4806e2..64ad1fa 100644
+--- a/tg/views.py
++++ b/tg/views.py
+@@ -240,7 +240,7 @@ class ChatView:
+ msg = chat.get("last_message")
+ if (
+ msg
+- and self.model.is_me(msg["sender_user_id"])
++ and self.model.is_me(msg["sender"].get("user_id"))
+ and msg["id"] > chat["last_read_outbox_message_id"]
+ and not self.model.is_me(chat["id"])
+ ):
+@@ -248,7 +248,7 @@ class ChatView:
+ flags.append("unseen")
+ elif (
+ msg
+- and self.model.is_me(msg["sender_user_id"])
++ and self.model.is_me(msg["sender"].get("user_id"))
+ and msg["id"] <= chat["last_read_outbox_message_id"]
+ ):
+ flags.append("seen")
+@@ -259,7 +259,7 @@ class ChatView:
+ if self.model.users.is_online(chat["id"]):
+ flags.append("online")
+
+- if chat["is_pinned"]:
++ if "is_pinned" in chat and chat["is_pinned"]:
+ flags.append("pinned")
+
+ if chat["notification_settings"]["mute_for"]:
+@@ -363,7 +363,7 @@ class MsgView:
+ return f"\n | photo: {web['url']}"
+ name = web["site_name"]
+ title = web["title"]
+- description = web["description"].replace("\n", "")
++ description = web["description"]["text"].replace("\n", "")
+ url = f"\n | {name}: {title}"
+ if description:
+ url += f"\n | {description}"
+@@ -584,7 +584,7 @@ def get_last_msg(
+ if not last_msg:
+ return None, "<No messages yet>"
+ return (
+- last_msg["sender_user_id"],
++ last_msg["sender"].get("user_id"),
+ parse_content(MsgProxy(last_msg), users),
+ )
+
+--
+2.30.1
+
diff --git a/PKGBUILD b/PKGBUILD
index 8d2068e31a9..21464e070b3 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,8 +1,8 @@
# Maintainer: j.r <j.r@jugendhacker.de>
_pkgname=telegram-tg
pkgname=$_pkgname-git
-pkgver=v0.7.0.r3.06f7c5b
-pkgrel=3
+pkgver=v0.7.0.r7.1cd023a
+pkgrel=1
pkgdesc="terminal telegram client that really works"
arch=(any)
url="https://github.com/paul-nameless/tg"
@@ -17,9 +17,11 @@ optdepends=(
provides=("$_pkgname")
conflicts=("$_pkgname")
source=("$_pkgname::git+https://github.com/paul-nameless/tg.git"
- "0001-Change-setup.py-to-accept-new-python-telegram-ver.patch")
+ "0001-Change-setup.py-to-accept-new-python-telegram-ver.patch"
+ "0002-Fix-compatibility-with-new-libtd-version.patch")
md5sums=('SKIP'
- 'b5128de4dab3dbe7aaea695ac0a0b1a8')
+ '7b9a556ce7d2203fbee32442a96d73bc'
+ '13f56d00337b141c270906f0df49e872')
pkgver() {
cd "$srcdir/$_pkgname"
@@ -34,6 +36,7 @@ prepare() {
cd "${srcdir}/${_pkgname}"
patch -p1 -i ${srcdir}/0001-Change-setup.py-to-accept-new-python-telegram-ver.patch
+ patch -p1 -i ${srcdir}/0002-Fix-compatibility-with-new-libtd-version.patch
}
build() {