Skip to content

Commit

Permalink
[+] msg edit sync, text only
Browse files Browse the repository at this point in the history
  • Loading branch information
gmankab committed Sep 1, 2024
1 parent 3d7d3f4 commit bd5e4ec
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 24 deletions.
15 changes: 0 additions & 15 deletions reposter/db/models.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import reposter.core.common
from tortoise.models import Model
from tortoise import fields

Expand All @@ -9,17 +8,3 @@ class Msg(Model):
target_msg = fields.IntField()
target_chat = fields.IntField()


async def create():
await Msg.create(
src_msg=1,
src_chat=2,
target_msg=3,
target_chat=4,
)
reposter.core.common.log(
await Msg.all().first().values()
)
import os
os._exit(0)

45 changes: 45 additions & 0 deletions reposter/handlers/edit.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import reposter.funcs.logging
import reposter.funcs.other
import reposter.core.common
import pyrogram.types


class Edit:
def __init__(
self,
src_msg: pyrogram.types.Message,
target_msg: pyrogram.types.Message,
) -> None:
self.src_msg = src_msg
self.target_msg = target_msg
self.links = reposter.funcs.other.double_links(
src_msg=src_msg,
target_msg=target_msg,
)

def log(self) -> None:
reposter.funcs.logging.log_msg(
to_log='[green]\\[edit][/]',
src_msg=self.src_msg,
target_msg=self.target_msg,
)

async def edit(self) -> None:
if self.src_msg.text or self.target_msg.text:
if self.src_msg.text.markdown != self.target_msg.text.markdown:
await self.target_msg.edit_text(self.src_msg.text.markdown)
return
if self.src_msg.caption or self.target_msg.caption:
if not self.src_msg.caption:
await self.target_msg.edit_caption('')
return self.log()
if not self.target_msg.caption:
await self.target_msg.edit_caption(self.src_msg.caption.markdown)
return self.log()
if self.src_msg.caption.markdown != self.target_msg.caption.markdown:
await self.target_msg.edit_caption(self.src_msg.caption.markdown)
return self.log()
reposter.core.common.log(
f'[yellow]\\[warn][/] can\'t see changes between {self.links}'
)

27 changes: 18 additions & 9 deletions reposter/handlers/on_msg.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import reposter.handlers.resend_restricted
import reposter.handlers.stream_notify
import reposter.handlers.service
import reposter.handlers.edit
import reposter.funcs.other
import reposter.core.common
import reposter.core.types
Expand Down Expand Up @@ -61,19 +62,27 @@ async def on_edited_msg(
reposter.core.common.log(
f'[bright_cyan]\\[edited msg] [blue]{link}'
)
loaded = await reposter.db.models.Msg.get_or_none(
db_msgs = await reposter.db.models.Msg.filter(
src_msg=src_msg.id,
src_chat=src_msg.chat.id
)
if loaded:
reposter.core.common.log(
loaded.src_chat,
loaded.src_msg,
loaded.target_chat,
loaded.target_msg,
)
else:
if not db_msgs:
reposter.core.common.log(
f'[yellow]\\[warn] [blue]{link} edited but was never saved in db'
)
return
for db_msg in db_msgs:
target_msg = await reposter.core.common.tg.client.get_messages(
chat_id=db_msg.target_chat,
message_ids=db_msg.target_msg,
)
assert isinstance(
target_msg,
pyrogram.types.Message,
)
edit = reposter.handlers.edit.Edit(
target_msg=target_msg,
src_msg=src_msg,
)
await edit.edit()

0 comments on commit bd5e4ec

Please sign in to comment.