diff options
-rw-r--r-- | .SRCINFO | 8 | ||||
-rw-r--r-- | 0001-Change-setup.py-to-accept-new-python-telegram-ver.patch | 6 | ||||
-rw-r--r-- | 0002-Fix-compatibility-with-new-libtd-version.patch | 181 | ||||
-rw-r--r-- | PKGBUILD | 11 |
4 files changed, 196 insertions, 10 deletions
@@ -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 67a0979b37b5..d5e8e746ad8e 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 000000000000..45c124849cd6 --- /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 + @@ -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() { |