From 4167919c35144f9d5796f636c0a9cb1625f5c874 Mon Sep 17 00:00:00 2001 From: wulan17 Date: Fri, 24 Oct 2025 15:34:38 +0700 Subject: [PATCH] pyrofork: Move forums methods to separate category and adapt to new layer Signed-off-by: wulan17 --- pyrogram/methods/__init__.py | 2 + pyrogram/methods/chats/__init__.py | 27 ---------- pyrogram/methods/forums/__init__.py | 49 +++++++++++++++++++ .../{chats => forums}/close_forum_topic.py | 2 +- .../{chats => forums}/close_general_topic.py | 2 +- .../{chats => forums}/create_forum_topic.py | 2 +- .../{chats => forums}/delete_forum_topic.py | 2 +- .../{chats => forums}/edit_forum_topic.py | 2 +- .../{chats => forums}/edit_general_topic.py | 2 +- .../{chats => forums}/get_forum_topics.py | 2 +- .../get_forum_topics_by_id.py | 2 +- .../get_forum_topics_count.py | 2 +- .../{chats => forums}/hide_general_topic.py | 2 +- .../{chats => forums}/reopen_forum_topic.py | 2 +- .../{chats => forums}/reopen_general_topic.py | 2 +- .../{chats => forums}/unhide_general_topic.py | 2 +- 16 files changed, 64 insertions(+), 40 deletions(-) create mode 100644 pyrogram/methods/forums/__init__.py rename pyrogram/methods/{chats => forums}/close_forum_topic.py (97%) rename pyrogram/methods/{chats => forums}/close_general_topic.py (97%) rename pyrogram/methods/{chats => forums}/create_forum_topic.py (97%) rename pyrogram/methods/{chats => forums}/delete_forum_topic.py (97%) rename pyrogram/methods/{chats => forums}/edit_forum_topic.py (97%) rename pyrogram/methods/{chats => forums}/edit_general_topic.py (97%) rename pyrogram/methods/{chats => forums}/get_forum_topics.py (98%) rename pyrogram/methods/{chats => forums}/get_forum_topics_by_id.py (98%) rename pyrogram/methods/{chats => forums}/get_forum_topics_count.py (97%) rename pyrogram/methods/{chats => forums}/hide_general_topic.py (97%) rename pyrogram/methods/{chats => forums}/reopen_forum_topic.py (97%) rename pyrogram/methods/{chats => forums}/reopen_general_topic.py (97%) rename pyrogram/methods/{chats => forums}/unhide_general_topic.py (97%) diff --git a/pyrogram/methods/__init__.py b/pyrogram/methods/__init__.py index dce6ef02..12bcc510 100644 --- a/pyrogram/methods/__init__.py +++ b/pyrogram/methods/__init__.py @@ -23,6 +23,7 @@ from .bots import Bots from .chats import Chats from .contacts import Contacts from .decorators import Decorators +from .forums import Forums from .invite_links import InviteLinks from .messages import Messages from .password import Password @@ -45,6 +46,7 @@ class Methods( Payments, Phone, Chats, + Forums, Stickers, Users, Messages, diff --git a/pyrogram/methods/chats/__init__.py b/pyrogram/methods/chats/__init__.py index 4ec5fd10..a79905a0 100644 --- a/pyrogram/methods/chats/__init__.py +++ b/pyrogram/methods/chats/__init__.py @@ -21,24 +21,13 @@ from .add_chat_members import AddChatMembers from .archive_chats import ArchiveChats from .ban_chat_member import BanChatMember from .create_channel import CreateChannel -from .create_forum_topic import CreateForumTopic from .create_group import CreateGroup from .create_supergroup import CreateSupergroup -from .close_forum_topic import CloseForumTopic -from .close_general_topic import CloseGeneralTopic from .delete_channel import DeleteChannel from .delete_chat_photo import DeleteChatPhoto from .delete_folder import DeleteFolder -from .delete_forum_topic import DeleteForumTopic from .delete_supergroup import DeleteSupergroup from .delete_user_history import DeleteUserHistory -from .edit_forum_topic import EditForumTopic -from .edit_general_topic import EditGeneralTopic -from .export_folder_link import ExportFolderLink -from .reopen_forum_topic import ReopenForumTopic -from .reopen_general_topic import ReopenGeneralTopic -from .hide_general_topic import HideGeneralTopic -from .unhide_general_topic import UnhideGeneralTopic from .get_chat import GetChat from .get_chat_event_log import GetChatEventLog from .get_chat_member import GetChatMember @@ -48,9 +37,6 @@ from .get_chat_online_count import GetChatOnlineCount from .get_dialogs import GetDialogs from .get_dialogs_count import GetDialogsCount from .get_folders import GetFolders -from .get_forum_topics import GetForumTopics -from .get_forum_topics_by_id import GetForumTopicsByID -from .get_forum_topics_count import GetForumTopicsCount from .get_send_as_chats import GetSendAsChats from .join_chat import JoinChat from .leave_chat import LeaveChat @@ -98,29 +84,16 @@ class Chats( SetChatPermissions, GetDialogsCount, GetFolders, - GetForumTopics, - GetForumTopicsByID, - GetForumTopicsCount, ArchiveChats, UnarchiveChats, CreateGroup, CreateSupergroup, CreateChannel, - CreateForumTopic, - CloseForumTopic, - CloseGeneralTopic, AddChatMembers, DeleteChannel, DeleteFolder, - DeleteForumTopic, DeleteSupergroup, - EditForumTopic, - EditGeneralTopic, ExportFolderLink, - ReopenForumTopic, - ReopenGeneralTopic, - HideGeneralTopic, - UnhideGeneralTopic, SetAdministratorTitle, SetSlowMode, DeleteUserHistory, diff --git a/pyrogram/methods/forums/__init__.py b/pyrogram/methods/forums/__init__.py new file mode 100644 index 00000000..8eec3153 --- /dev/null +++ b/pyrogram/methods/forums/__init__.py @@ -0,0 +1,49 @@ +# Pyrofork - Telegram MTProto API Client Library for Python +# Copyright (C) 2022-present Mayuri-Chan +# +# This file is part of Pyrofork. +# +# Pyrofork is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Pyrofork is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with Pyrofork. If not, see . + +from .create_forum_topic import CreateForumTopic +from .close_forum_topic import CloseForumTopic +from .close_general_topic import CloseGeneralTopic +from .delete_forum_topic import DeleteForumTopic +from .edit_forum_topic import EditForumTopic +from .edit_general_topic import EditGeneralTopic +from .reopen_forum_topic import ReopenForumTopic +from .reopen_general_topic import ReopenGeneralTopic +from .hide_general_topic import HideGeneralTopic +from .unhide_general_topic import UnhideGeneralTopic +from .get_forum_topics import GetForumTopics +from .get_forum_topics_by_id import GetForumTopicsByID +from .get_forum_topics_count import GetForumTopicsCount + + +class Forums( + GetForumTopics, + GetForumTopicsByID, + GetForumTopicsCount, + CreateForumTopic, + CloseForumTopic, + CloseGeneralTopic, + DeleteForumTopic, + EditForumTopic, + EditGeneralTopic, + ReopenForumTopic, + ReopenGeneralTopic, + HideGeneralTopic, + UnhideGeneralTopic, +): + pass diff --git a/pyrogram/methods/chats/close_forum_topic.py b/pyrogram/methods/forums/close_forum_topic.py similarity index 97% rename from pyrogram/methods/chats/close_forum_topic.py rename to pyrogram/methods/forums/close_forum_topic.py index 222367d0..dcbefa2f 100644 --- a/pyrogram/methods/chats/close_forum_topic.py +++ b/pyrogram/methods/forums/close_forum_topic.py @@ -48,7 +48,7 @@ class CloseForumTopic: await app.close_forum_topic(chat_id, topic_id) """ await self.invoke( - raw.functions.channels.EditForumTopic( + raw.functions.messages.EditForumTopic( channel=await self.resolve_peer(chat_id), topic_id=topic_id, closed=True diff --git a/pyrogram/methods/chats/close_general_topic.py b/pyrogram/methods/forums/close_general_topic.py similarity index 97% rename from pyrogram/methods/chats/close_general_topic.py rename to pyrogram/methods/forums/close_general_topic.py index d4090ede..d730c893 100644 --- a/pyrogram/methods/chats/close_general_topic.py +++ b/pyrogram/methods/forums/close_general_topic.py @@ -44,7 +44,7 @@ class CloseGeneralTopic: await app.close_general_topic(chat_id) """ await self.invoke( - raw.functions.channels.EditForumTopic( + raw.functions.messages.EditForumTopic( channel=await self.resolve_peer(chat_id), topic_id=1, closed=True diff --git a/pyrogram/methods/chats/create_forum_topic.py b/pyrogram/methods/forums/create_forum_topic.py similarity index 97% rename from pyrogram/methods/chats/create_forum_topic.py rename to pyrogram/methods/forums/create_forum_topic.py index d6d23f30..19189c43 100644 --- a/pyrogram/methods/chats/create_forum_topic.py +++ b/pyrogram/methods/forums/create_forum_topic.py @@ -56,7 +56,7 @@ class CreateForumTopic: await app.create_forum_topic("Topic Title") """ r = await self.invoke( - raw.functions.channels.CreateForumTopic( + raw.functions.messages.CreateForumTopic( channel=await self.resolve_peer(chat_id), title=title, random_id=self.rnd_id(), diff --git a/pyrogram/methods/chats/delete_forum_topic.py b/pyrogram/methods/forums/delete_forum_topic.py similarity index 97% rename from pyrogram/methods/chats/delete_forum_topic.py rename to pyrogram/methods/forums/delete_forum_topic.py index 591dd2ba..a4182b1e 100644 --- a/pyrogram/methods/chats/delete_forum_topic.py +++ b/pyrogram/methods/forums/delete_forum_topic.py @@ -49,7 +49,7 @@ class DeleteForumTopic: """ try: await self.invoke( - raw.functions.channels.DeleteTopicHistory( + raw.functions.messages.DeleteTopicHistory( channel=await self.resolve_peer(chat_id), top_msg_id=topic_id ) diff --git a/pyrogram/methods/chats/edit_forum_topic.py b/pyrogram/methods/forums/edit_forum_topic.py similarity index 97% rename from pyrogram/methods/chats/edit_forum_topic.py rename to pyrogram/methods/forums/edit_forum_topic.py index 514aa0ab..06000701 100644 --- a/pyrogram/methods/chats/edit_forum_topic.py +++ b/pyrogram/methods/forums/edit_forum_topic.py @@ -56,7 +56,7 @@ class EditForumTopic: await app.edit_forum_topic(chat_id,topic_id,"New Topic Title") """ await self.invoke( - raw.functions.channels.EditForumTopic( + raw.functions.messages.EditForumTopic( channel=await self.resolve_peer(chat_id), topic_id=topic_id, title=title, diff --git a/pyrogram/methods/chats/edit_general_topic.py b/pyrogram/methods/forums/edit_general_topic.py similarity index 97% rename from pyrogram/methods/chats/edit_general_topic.py rename to pyrogram/methods/forums/edit_general_topic.py index dc82264e..6c4e7628 100644 --- a/pyrogram/methods/chats/edit_general_topic.py +++ b/pyrogram/methods/forums/edit_general_topic.py @@ -48,7 +48,7 @@ class EditGeneralTopic: await app.edit_general_topic(chat_id,"New Topic Title") """ await self.invoke( - raw.functions.channels.EditForumTopic( + raw.functions.messages.EditForumTopic( channel=await self.resolve_peer(chat_id), topic_id=1, title=title diff --git a/pyrogram/methods/chats/get_forum_topics.py b/pyrogram/methods/forums/get_forum_topics.py similarity index 98% rename from pyrogram/methods/chats/get_forum_topics.py rename to pyrogram/methods/forums/get_forum_topics.py index 5954a047..e9df94a9 100644 --- a/pyrogram/methods/chats/get_forum_topics.py +++ b/pyrogram/methods/forums/get_forum_topics.py @@ -37,7 +37,7 @@ async def get_chunk( peer = await client.resolve_peer(chat_id) r = await client.invoke( - raw.functions.channels.GetForumTopics( + raw.functions.messages.GetForumTopics( channel=peer, offset_date=offset_date, offset_id=offset_id, diff --git a/pyrogram/methods/chats/get_forum_topics_by_id.py b/pyrogram/methods/forums/get_forum_topics_by_id.py similarity index 98% rename from pyrogram/methods/chats/get_forum_topics_by_id.py rename to pyrogram/methods/forums/get_forum_topics_by_id.py index fe701e0b..a019499e 100644 --- a/pyrogram/methods/chats/get_forum_topics_by_id.py +++ b/pyrogram/methods/forums/get_forum_topics_by_id.py @@ -76,7 +76,7 @@ class GetForumTopicsByID: ids = list(ids) if is_iterable else [ids] ids = [i for i in ids] - rpc = raw.functions.channels.GetForumTopicsByID(channel=peer, topics=ids) + rpc = raw.functions.messages.GetForumTopicsByID(channel=peer, topics=ids) r = await self.invoke(rpc, sleep_threshold=-1) diff --git a/pyrogram/methods/chats/get_forum_topics_count.py b/pyrogram/methods/forums/get_forum_topics_count.py similarity index 97% rename from pyrogram/methods/chats/get_forum_topics_count.py rename to pyrogram/methods/forums/get_forum_topics_count.py index 84fbb35c..372c08e3 100644 --- a/pyrogram/methods/chats/get_forum_topics_count.py +++ b/pyrogram/methods/forums/get_forum_topics_count.py @@ -56,7 +56,7 @@ class GetForumTopicsCount: peer = await self.resolve_peer(chat_id) - rpc = raw.functions.channels.GetForumTopics(channel=peer, offset_date=0, offset_id=0, offset_topic=0, limit=0) + rpc = raw.functions.messages.GetForumTopics(channel=peer, offset_date=0, offset_id=0, offset_topic=0, limit=0) r = await self.invoke(rpc, sleep_threshold=-1) diff --git a/pyrogram/methods/chats/hide_general_topic.py b/pyrogram/methods/forums/hide_general_topic.py similarity index 97% rename from pyrogram/methods/chats/hide_general_topic.py rename to pyrogram/methods/forums/hide_general_topic.py index 44c72abb..5cdb8967 100644 --- a/pyrogram/methods/chats/hide_general_topic.py +++ b/pyrogram/methods/forums/hide_general_topic.py @@ -43,7 +43,7 @@ class HideGeneralTopic: await app.hide_general_topic(chat_id) """ await self.invoke( - raw.functions.channels.EditForumTopic( + raw.functions.messages.EditForumTopic( channel=await self.resolve_peer(chat_id), topic_id=1, hidden=True diff --git a/pyrogram/methods/chats/reopen_forum_topic.py b/pyrogram/methods/forums/reopen_forum_topic.py similarity index 97% rename from pyrogram/methods/chats/reopen_forum_topic.py rename to pyrogram/methods/forums/reopen_forum_topic.py index f4b7e9c3..56f68aa0 100644 --- a/pyrogram/methods/chats/reopen_forum_topic.py +++ b/pyrogram/methods/forums/reopen_forum_topic.py @@ -48,7 +48,7 @@ class ReopenForumTopic: await app.reopen_forum_topic(chat_id, topic_id) """ await self.invoke( - raw.functions.channels.EditForumTopic( + raw.functions.messages.EditForumTopic( channel=await self.resolve_peer(chat_id), topic_id=topic_id, closed=False diff --git a/pyrogram/methods/chats/reopen_general_topic.py b/pyrogram/methods/forums/reopen_general_topic.py similarity index 97% rename from pyrogram/methods/chats/reopen_general_topic.py rename to pyrogram/methods/forums/reopen_general_topic.py index 04e6145c..3e10c776 100644 --- a/pyrogram/methods/chats/reopen_general_topic.py +++ b/pyrogram/methods/forums/reopen_general_topic.py @@ -44,7 +44,7 @@ class ReopenGeneralTopic: await app.reopen_general_topic(chat_id, topic_id) """ await self.invoke( - raw.functions.channels.EditForumTopic( + raw.functions.messages.EditForumTopic( channel=await self.resolve_peer(chat_id), topic_id=1, closed=False diff --git a/pyrogram/methods/chats/unhide_general_topic.py b/pyrogram/methods/forums/unhide_general_topic.py similarity index 97% rename from pyrogram/methods/chats/unhide_general_topic.py rename to pyrogram/methods/forums/unhide_general_topic.py index d29d9742..ebd38463 100644 --- a/pyrogram/methods/chats/unhide_general_topic.py +++ b/pyrogram/methods/forums/unhide_general_topic.py @@ -44,7 +44,7 @@ class UnhideGeneralTopic: await app.unhide_general_topic(chat_id) """ await self.invoke( - raw.functions.channels.EditForumTopic( + raw.functions.messages.EditForumTopic( channel=await self.resolve_peer(chat_id), topic_id=1, hidden=False