stats: Display error message if counts query empty

pull/6/head
Michael D. M. Dryden 2021-06-08 00:06:06 -04:00
rodzic 4fbdb8fdab
commit 39fb86c7e4
2 zmienionych plików z 6 dodań i 1 usunięć

Wyświetl plik

@ -18,6 +18,7 @@ Fixed
- Remove @ from random message to avoid pinging users
- Allow quotes in lquery parameters
- Zero-fill days without data for history
- Display error message if counts query empty
---------------------
`0.4.0`_ - 2021-06-06

Wyświetl plik

@ -133,7 +133,8 @@ class StatsRunner(object):
with self.engine.connect() as con:
con.execute(query, sql_dict)
def get_chat_counts(self, n: int = 20, lquery: str = None, mtype: str = None, start: str = None, end: str = None) -> Tuple[str, None]:
def get_chat_counts(self, n: int = 20, lquery: str = None, mtype: str = None, start: str = None, end: str = None)\
-> Tuple[Union[str, None], Union[None, BytesIO]]:
"""
Get top chat users
:param lquery: Limit results to lexical query (&, |, !, <n>)
@ -179,6 +180,9 @@ class StatsRunner(object):
with self.engine.connect() as con:
df = pd.read_sql_query(query, con, params=sql_dict, index_col='from_user')
if len(df) == 0:
return "No matching messages", None
user_df = pd.Series(self.users, name="user")
user_df = user_df.apply(lambda x: x[0]) # Take only @usernames
df = df.join(user_df)