mirror of
https://github.com/KnugiHK/WhatsApp-Chat-Exporter.git
synced 2026-04-28 08:44:59 +00:00
Add tqdm progress bar
This commit is contained in:
@@ -498,7 +498,8 @@ def _format_message_text(text):
|
|||||||
|
|
||||||
def _get_reactions(db, data):
|
def _get_reactions(db, data):
|
||||||
"""
|
"""
|
||||||
Process message reactions.
|
Process message reactions. Only new schema is supported.
|
||||||
|
Chat filter is not applied here at the moment. Maybe in the future.
|
||||||
"""
|
"""
|
||||||
c = db.cursor()
|
c = db.cursor()
|
||||||
|
|
||||||
@@ -507,7 +508,7 @@ def _get_reactions(db, data):
|
|||||||
c.execute("SELECT count(*) FROM sqlite_master WHERE type='table' AND name='message_add_on'")
|
c.execute("SELECT count(*) FROM sqlite_master WHERE type='table' AND name='message_add_on'")
|
||||||
if c.fetchone()[0] == 0:
|
if c.fetchone()[0] == 0:
|
||||||
return
|
return
|
||||||
|
|
||||||
logger.info("Processing reactions...\r")
|
logger.info("Processing reactions...\r")
|
||||||
|
|
||||||
c.execute("""
|
c.execute("""
|
||||||
@@ -531,35 +532,38 @@ def _get_reactions(db, data):
|
|||||||
logger.warning(f"Could not fetch reactions (schema might be too old or incompatible){CLEAR_LINE}")
|
logger.warning(f"Could not fetch reactions (schema might be too old or incompatible){CLEAR_LINE}")
|
||||||
return
|
return
|
||||||
|
|
||||||
row = c.fetchone()
|
rows = c.fetchall()
|
||||||
while row is not None:
|
total_row_number = len(rows)
|
||||||
parent_id = row["parent_message_row_id"]
|
|
||||||
reaction = row["reaction"]
|
with tqdm(total=total_row_number, desc="Processing reactions", unit="reaction", leave=False) as pbar:
|
||||||
chat_id = row["chat_jid_raw"]
|
for row in rows:
|
||||||
|
parent_id = row["parent_message_row_id"]
|
||||||
if chat_id and chat_id in data:
|
reaction = row["reaction"]
|
||||||
chat = data[chat_id]
|
chat_id = row["chat_jid_raw"]
|
||||||
if parent_id in chat._messages:
|
|
||||||
message = chat._messages[parent_id]
|
if chat_id and chat_id in data:
|
||||||
|
chat = data[chat_id]
|
||||||
# Determine sender name
|
if parent_id in chat._messages:
|
||||||
sender_name = None
|
message = chat._messages[parent_id]
|
||||||
if row["from_me"]:
|
|
||||||
sender_name = "You"
|
# Determine sender name
|
||||||
elif row["sender_jid_raw"]:
|
sender_name = None
|
||||||
sender_jid = row["sender_jid_raw"]
|
if row["from_me"]:
|
||||||
if sender_jid in data:
|
sender_name = "You"
|
||||||
sender_name = data[sender_jid].name
|
elif row["sender_jid_raw"]:
|
||||||
|
sender_jid = row["sender_jid_raw"]
|
||||||
|
if sender_jid in data:
|
||||||
|
sender_name = data[sender_jid].name
|
||||||
|
if not sender_name:
|
||||||
|
sender_name = sender_jid.split('@')[0] if "@" in sender_jid else sender_jid
|
||||||
|
|
||||||
if not sender_name:
|
if not sender_name:
|
||||||
sender_name = sender_jid.split('@')[0] if "@" in sender_jid else sender_jid
|
sender_name = "Unknown"
|
||||||
|
|
||||||
if not sender_name:
|
|
||||||
sender_name = "Unknown"
|
|
||||||
|
|
||||||
message.reactions[sender_name] = reaction
|
message.reactions[sender_name] = reaction
|
||||||
|
pbar.update(1)
|
||||||
row = c.fetchone()
|
total_time = pbar.format_dict['elapsed']
|
||||||
logger.info(f"Processed reactions{CLEAR_LINE}")
|
logger.info(f"Processed {total_row_number} reactions in {convert_time_unit(total_time)}{CLEAR_LINE}")
|
||||||
|
|
||||||
|
|
||||||
def media(db, data, media_folder, filter_date, filter_chat, filter_empty, separate_media=True, fix_dot_files=False):
|
def media(db, data, media_folder, filter_date, filter_chat, filter_empty, separate_media=True, fix_dot_files=False):
|
||||||
|
|||||||
Reference in New Issue
Block a user