support multi-message posts, fix message list fetching
This commit is contained in:
parent
f705ac831b
commit
0b21ef255b
@ -13,7 +13,7 @@ from telethon.extensions.html import (
|
|||||||
)
|
)
|
||||||
from telethon.tl.patched import Message
|
from telethon.tl.patched import Message
|
||||||
from telethon.tl.types import InputPeerChannel, InputMediaWebPage
|
from telethon.tl.types import InputPeerChannel, InputMediaWebPage
|
||||||
from telethon.tl.functions.messages import EditMessageRequest, SendScheduledMessagesRequest
|
from telethon.tl.functions.messages import EditMessageRequest, SendScheduledMessagesRequest, GetScheduledHistoryRequest
|
||||||
|
|
||||||
# Set up logging
|
# Set up logging
|
||||||
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)
|
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)
|
||||||
@ -30,20 +30,25 @@ def load_config():
|
|||||||
|
|
||||||
|
|
||||||
async def main(mode, channel_id=None):
|
async def main(mode, channel_id=None):
|
||||||
messages = reversed(await client.get_messages(channel_id, limit=100, scheduled=True))
|
|
||||||
channel = await client.get_entity(channel_id)
|
channel = await client.get_entity(channel_id)
|
||||||
|
messages = reversed((await client(GetScheduledHistoryRequest(peer=channel.id, hash=0))).messages)
|
||||||
input_peer = InputPeerChannel(channel.id, channel.access_hash)
|
input_peer = InputPeerChannel(channel.id, channel.access_hash)
|
||||||
|
send_date = None
|
||||||
|
|
||||||
for m in messages:
|
for m in messages:
|
||||||
if not isinstance(m, Message):
|
if not isinstance(m, Message):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if mode == 'send':
|
if mode == 'send':
|
||||||
await client(SendScheduledMessagesRequest(
|
if send_date is None or m.date.date() == send_date:
|
||||||
peer=input_peer,
|
send_date = m.date.date()
|
||||||
id=[m.id]
|
await client(SendScheduledMessagesRequest(
|
||||||
))
|
peer=input_peer,
|
||||||
break
|
id=[m.id]
|
||||||
|
))
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
break
|
||||||
|
|
||||||
elif mode == 'images':
|
elif mode == 'images':
|
||||||
html = entities_to_html(m.message, m.entities)
|
html = entities_to_html(m.message, m.entities)
|
||||||
@ -68,7 +73,7 @@ async def main(mode, channel_id=None):
|
|||||||
|
|
||||||
await sleep(2)
|
await sleep(2)
|
||||||
else:
|
else:
|
||||||
logging.error(f'Message {m.id}: could not find link with a dot!')
|
logging.warning(f'Message {m.id}: could not find link with a dot!')
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
Loading…
x
Reference in New Issue
Block a user