File tree Expand file tree Collapse file tree
pyrogram/methods/messages Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -53,20 +53,31 @@ async def get_chat_history_count(
5353 await app.get_chat_history_count(chat_id)
5454 """
5555
56- r = await self .invoke (
57- raw .functions .messages .GetHistory (
58- peer = await self .resolve_peer (chat_id ),
59- offset_id = 0 ,
60- offset_date = 0 ,
61- add_offset = 0 ,
62- limit = 1 ,
63- max_id = 0 ,
64- min_id = 0 ,
65- hash = 0
56+ peer = await self .resolve_peer (chat_id )
57+
58+ # https://t.me/tdlibchat/189410
59+ ranges = await self .invoke (raw .functions .messages .GetSplitRanges ())
60+ total = 0
61+
62+ for split_range in ranges :
63+ r = await self .invoke (
64+ raw .functions .InvokeWithMessagesRange (
65+ range = split_range ,
66+ query = raw .functions .messages .GetHistory (
67+ peer = peer ,
68+ offset_id = 0 ,
69+ offset_date = 0 ,
70+ add_offset = 0 ,
71+ limit = 1 ,
72+ max_id = 0 ,
73+ min_id = 0 ,
74+ hash = 0
75+ )
76+ )
6677 )
67- )
78+ if isinstance (r , raw .types .messages .Messages ):
79+ total += len (r .messages )
80+ else :
81+ total += r .count
6882
69- if isinstance (r , raw .types .messages .Messages ):
70- return len (r .messages )
71- else :
72- return r .count
83+ return total
Original file line number Diff line number Diff line change @@ -62,29 +62,37 @@ async def search_messages_count(
6262 Returns:
6363 ``int``: On success, the messages count is returned.
6464 """
65- r = await self .invoke (
66- raw .functions .messages .Search (
67- peer = await self .resolve_peer (chat_id ),
68- q = query ,
69- filter = filter .value (),
70- min_date = 0 ,
71- max_date = 0 ,
72- offset_id = 0 ,
73- add_offset = 0 ,
74- limit = 1 ,
75- min_id = 0 ,
76- max_id = 0 ,
77- from_id = (
78- await self .resolve_peer (from_user )
79- if from_user
80- else None
81- ),
82- top_msg_id = message_thread_id ,
83- hash = 0
65+ peer = await self .resolve_peer (chat_id )
66+ from_id = await self .resolve_peer (from_user ) if from_user else None
67+
68+ # https://t.me/tdlibchat/189410
69+ ranges = await self .invoke (raw .functions .messages .GetSplitRanges ())
70+ total = 0
71+
72+ for split_range in ranges :
73+ r = await self .invoke (
74+ raw .functions .InvokeWithMessagesRange (
75+ range = split_range ,
76+ query = raw .functions .messages .Search (
77+ peer = peer ,
78+ q = query ,
79+ filter = filter .value (),
80+ min_date = 0 ,
81+ max_date = 0 ,
82+ offset_id = 0 ,
83+ add_offset = 0 ,
84+ limit = 1 ,
85+ min_id = 0 ,
86+ max_id = 0 ,
87+ from_id = from_id ,
88+ top_msg_id = message_thread_id ,
89+ hash = 0
90+ )
91+ )
8492 )
85- )
93+ if hasattr (r , "count" ):
94+ total += r .count
95+ else :
96+ total += len (r .messages )
8697
87- if hasattr (r , "count" ):
88- return r .count
89- else :
90- return len (r .messages )
98+ return total
You can’t perform that action at this time.
0 commit comments