generated from exteraGramPlugins/pluginBase
Message Logger: restore deep in long chats, media through the master, photo fixes
Publish plugin / publish (push) Successful in 4s
Publish plugin / publish (push) Successful in 4s
- Deleted messages within the loaded part of a long chat are placed by the app among the others (not only at the chat's end), without counting as unread; restores no longer repeat every second. - Logger copies and their media are read through a member of the log group signed in here (this account, else the master); the shared file cache lets the current account show them. - Logged chat photos: asked for once per 10 minutes, all sizes downloaded (no waits on inline thumbnails), added once the photo viewer closed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
362b358d8d
commit
dba0c4f833
7 files changed
+297
-78
No files matched your search
@@ -11,8 +11,8 @@ getHistory/getMessages for it (hooks/removed_chats.py).
|
||||
|
||||
import threading
|
||||
|
||||
import accounts
|
||||
import diag
|
||||
import media_share
|
||||
import peers
|
||||
import store
|
||||
import tg
|
||||
@@ -124,17 +124,18 @@ class History:
|
||||
if pointer is not None:
|
||||
by_group.setdefault(pointer[0], set()).add(pointer[1])
|
||||
found = {}
|
||||
masters = [master, *self.api.masters()]
|
||||
for log_chat, ids in by_group.items():
|
||||
channel_id = peers.channel_id_from_marked(log_chat)
|
||||
readers = accounts.with_access(
|
||||
-channel_id, prefer=(self.account, accounts.slot_of(master))
|
||||
)
|
||||
if not readers:
|
||||
reader = media_share.reader_for(self.account, log_chat, masters)
|
||||
if reader is None:
|
||||
continue
|
||||
ordered = sorted(ids)
|
||||
for start in range(0, len(ordered), _COPIES_PER_REQUEST):
|
||||
chunk = ordered[start : start + _COPIES_PER_REQUEST]
|
||||
for message_id, copy in _fetch(readers[0], -channel_id, chunk).items():
|
||||
for message_id, copy in _fetch(reader, -channel_id, chunk).items():
|
||||
if reader != self.account:
|
||||
media_share.copy_media(reader, copy)
|
||||
found[(log_chat, message_id)] = copy
|
||||
return found
|
||||
|
||||
|
||||
Reference in new issue
Block a user