mirror of
https://github.com/paul-nameless/tg
synced 2024-11-22 03:43:19 +00:00
Merge pull request #178 from paul-nameless/mark-as-viewed
Mark msgs as viewed when sent new msg
This commit is contained in:
commit
c38b1186d1
2 changed files with 17 additions and 8 deletions
|
@ -263,6 +263,7 @@ class Controller:
|
||||||
return
|
return
|
||||||
reply_to_msg = self.model.current_msg_id
|
reply_to_msg = self.model.current_msg_id
|
||||||
if msg := self.view.status.get_input():
|
if msg := self.view.status.get_input():
|
||||||
|
self.model.view_all_msgs()
|
||||||
self.tg.reply_message(chat_id, reply_to_msg, msg)
|
self.tg.reply_message(chat_id, reply_to_msg, msg)
|
||||||
self.present_info("Message reply sent")
|
self.present_info("Message reply sent")
|
||||||
else:
|
else:
|
||||||
|
@ -286,6 +287,7 @@ class Controller:
|
||||||
s.call(config.LONG_MSG_CMD.format(file_path=shlex.quote(f.name)))
|
s.call(config.LONG_MSG_CMD.format(file_path=shlex.quote(f.name)))
|
||||||
with open(f.name) as f:
|
with open(f.name) as f:
|
||||||
if replied_msg := strip_replied_msg(f.read().strip()):
|
if replied_msg := strip_replied_msg(f.read().strip()):
|
||||||
|
self.model.view_all_msgs()
|
||||||
self.tg.reply_message(chat_id, reply_to_msg, replied_msg)
|
self.tg.reply_message(chat_id, reply_to_msg, replied_msg)
|
||||||
self.present_info("Message sent")
|
self.present_info("Message sent")
|
||||||
else:
|
else:
|
||||||
|
@ -697,10 +699,7 @@ class Controller:
|
||||||
|
|
||||||
@bind(chat_handler, ["r"])
|
@bind(chat_handler, ["r"])
|
||||||
def read_msgs(self) -> None:
|
def read_msgs(self) -> None:
|
||||||
chat = self.model.chats.chats[self.model.current_chat]
|
self.model.view_all_msgs()
|
||||||
chat_id = chat["id"]
|
|
||||||
msg_id = chat["last_message"]["id"]
|
|
||||||
self.tg.view_messages(chat_id, [msg_id])
|
|
||||||
self.render()
|
self.render()
|
||||||
|
|
||||||
@bind(chat_handler, ["m"])
|
@bind(chat_handler, ["m"])
|
||||||
|
|
18
tg/models.py
18
tg/models.py
|
@ -77,9 +77,11 @@ class Model:
|
||||||
return self.current_msg["id"]
|
return self.current_msg["id"]
|
||||||
|
|
||||||
def jump_bottom(self) -> bool:
|
def jump_bottom(self) -> bool:
|
||||||
|
res = False
|
||||||
if chat_id := self.chats.id_by_index(self.current_chat):
|
if chat_id := self.chats.id_by_index(self.current_chat):
|
||||||
return self.msgs.jump_bottom(chat_id)
|
res = self.msgs.jump_bottom(chat_id)
|
||||||
return False
|
self.view_current_msg()
|
||||||
|
return res
|
||||||
|
|
||||||
def set_current_chat_by_id(self, chat_id: int) -> bool:
|
def set_current_chat_by_id(self, chat_id: int) -> bool:
|
||||||
idx = next(
|
idx = next(
|
||||||
|
@ -122,13 +124,18 @@ class Model:
|
||||||
if chat_id := self.chats.id_by_index(self.current_chat):
|
if chat_id := self.chats.id_by_index(self.current_chat):
|
||||||
self.tg.view_messages(chat_id, [msg_id])
|
self.tg.view_messages(chat_id, [msg_id])
|
||||||
|
|
||||||
|
def view_all_msgs(self) -> None:
|
||||||
|
chat = self.chats.chats[self.current_chat]
|
||||||
|
chat_id = chat["id"]
|
||||||
|
msg_id = chat["last_message"]["id"]
|
||||||
|
self.tg.view_messages(chat_id, [msg_id])
|
||||||
|
|
||||||
def next_msg(self, step: int = 1) -> bool:
|
def next_msg(self, step: int = 1) -> bool:
|
||||||
chat_id = self.chats.id_by_index(self.current_chat)
|
chat_id = self.chats.id_by_index(self.current_chat)
|
||||||
if not chat_id:
|
if not chat_id:
|
||||||
return False
|
return False
|
||||||
is_next = self.msgs.next_msg(chat_id, step)
|
is_next = self.msgs.next_msg(chat_id, step)
|
||||||
if is_next:
|
self.view_current_msg()
|
||||||
self.view_current_msg()
|
|
||||||
return is_next
|
return is_next
|
||||||
|
|
||||||
def prev_msg(self, step: int = 1) -> bool:
|
def prev_msg(self, step: int = 1) -> bool:
|
||||||
|
@ -155,6 +162,9 @@ class Model:
|
||||||
chat_id = self.chats.id_by_index(self.current_chat)
|
chat_id = self.chats.id_by_index(self.current_chat)
|
||||||
if chat_id is None:
|
if chat_id is None:
|
||||||
return False
|
return False
|
||||||
|
# order is matter: this should be before send_message
|
||||||
|
# otherwise it will view message that was sent
|
||||||
|
self.view_all_msgs()
|
||||||
self.msgs.send_message(chat_id, text)
|
self.msgs.send_message(chat_id, text)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue