From 527765e9f6e816d5aee3c078e4fda68bc172bc97 Mon Sep 17 00:00:00 2001 From: Madhur Garg Date: Mon, 1 Jul 2019 14:13:26 +0530 Subject: Removed repetitive code and added Error message for wrong timestamp --- poezio/tabs/basetabs.py | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) (limited to 'poezio/tabs/basetabs.py') diff --git a/poezio/tabs/basetabs.py b/poezio/tabs/basetabs.py index aa7f0a39..0732ae73 100644 --- a/poezio/tabs/basetabs.py +++ b/poezio/tabs/basetabs.py @@ -16,6 +16,7 @@ revolving around chats. import logging import string import time +import asyncio from datetime import datetime, timedelta from xml.etree import cElementTree as ET from typing import Any, Callable, Dict, List, Optional, Union @@ -29,7 +30,7 @@ from poezio import xhtml from poezio import poopt from math import ceil, log10 from poezio.windows.funcs import truncate_nick, parse_attrs -from poezio.mam import MAM +from poezio import mam from poezio.common import safeJID from poezio.config import config from poezio.decorators import refresh_wrapper @@ -925,10 +926,13 @@ class ChatTab(Tab): @command_args_parser.quoted(0, 2) def command_mam(self, args): - """Define mam command""" + """ + /mam + /mam [start-timestamp] (current timestamp is taken as end-timestamp) + /mam [start-timestamp] [end-timestamp] + """ - tab = self.core.tabs.current_tab - remote_jid = tab.jid + remote_jid = self.jid end = datetime.now() end = datetime.strftime(end, '%Y-%m-%dT%H:%M:%SZ') start = datetime.strptime(end, '%Y-%m-%dT%H:%M:%SZ') @@ -936,22 +940,17 @@ class ChatTab(Tab): start = start + timedelta(days=-10) start = datetime.strftime(start, '%Y-%m-%dT%H:%M:%SZ') # Format for start and end timestamp is [dd:mm:yyyy] - if len(args) == 1: - try: - start = datetime.strptime(args[0], '%d:%m:%Y') - start = datetime.strftime(start, '%Y-%m-%dT%H:%M:%SZ') - except ValueError: - pass - elif len(args) == 2: + if len(args) >= 1: try: start = datetime.strptime(args[0], '%d:%m:%Y') start = datetime.strftime(start, '%Y-%m-%dT%H:%M:%SZ') - end = datetime.strptime(args[1], '%d:%m:%Y') - end = datetime.strftime(end, '%Y-%m-%dT%H:%M:%SZ') + if len(args) == 2: + end = datetime.strptime(args[1], '%d:%m:%Y') + end = datetime.strftime(end, '%Y-%m-%dT%H:%M:%SZ') except ValueError: - pass + self.core.information("Please enter a valid JID in [dd:mm:yyyy] format.", "Error") - MAM(remote_jid, start, end, tab) + asyncio.ensure_future(mam.MAM(self, remote_jid, start, end)) def on_line_up(self): return self.text_win.scroll_up(1) -- cgit v1.2.3