Implement CSS for metadata

This commit is contained in:
KnugiHK
2021-08-13 20:25:59 +08:00
parent 4ee92e7efc
commit dd36960ecb
3 changed files with 92 additions and 59 deletions

View File

@@ -119,7 +119,9 @@ def messages(db, data):
"timestamp": content[3]/1000, "timestamp": content[3]/1000,
"time": datetime.fromtimestamp(content[3]/1000).strftime("%H:%M"), "time": datetime.fromtimestamp(content[3]/1000).strftime("%H:%M"),
"media": False, "media": False,
"key_id": content[13] "key_id": content[13],
"meta": False,
"data": None
} }
if "-" in content[0] and content[2] == 0: if "-" in content[0] and content[2] == 0:
name = None name = None
@@ -154,8 +156,9 @@ def messages(db, data):
try: try:
int(content[4]) int(content[4])
except ValueError: except ValueError:
msg = "{The group name changed to "f"{content[4]}"" }" msg = f"The group name changed to {content[4]}"
data[content[0]]["messages"][content[1]]["data"] = msg data[content[0]]["messages"][content[1]]["data"] = msg
data[content[0]]["messages"][content[1]]["meta"] = True
else: else:
del data[content[0]]["messages"][content[1]] del data[content[0]]["messages"][content[1]]
else: else:
@@ -174,15 +177,16 @@ def messages(db, data):
name_left = data[content[8]]["name"] name_left = data[content[8]]["name"]
else: else:
name_left = content[8].split('@')[0] name_left = content[8].split('@')[0]
msg = "{"f"{name_left}"f" added {name_right or 'You'}""}" msg = f"{name_left} added {name_right or 'You'}"
else: else:
msg = "{"f"Added {name_right or 'You'}""}" msg = f"Added {name_right or 'You'}"
elif b"\xac\xed\x00\x05\x74\x00" in thumb_image: elif b"\xac\xed\x00\x05\x74\x00" in thumb_image:
# Changed number # Changed number
original = content[8].split('@')[0] original = content[8].split('@')[0]
changed = thumb_image[7:].decode().split('@')[0] changed = thumb_image[7:].decode().split('@')[0]
msg = "{"f"{original} changed to {changed}""}" msg = f"{original} changed to {changed}"
data[content[0]]["messages"][content[1]]["data"] = msg data[content[0]]["messages"][content[1]]["data"] = msg
data[content[0]]["messages"][content[1]]["meta"] = True
else: else:
if content[4] is None: if content[4] is None:
del data[content[0]]["messages"][content[1]] del data[content[0]]["messages"][content[1]]
@@ -194,10 +198,12 @@ def messages(db, data):
else: else:
if content[2] == 1: if content[2] == 1:
if content[5] == 5 and content[6] == 7: if content[5] == 5 and content[6] == 7:
msg = "{Message deleted}" msg = "Message deleted"
data[content[0]]["messages"][content[1]]["meta"] = True
else: else:
if content[9] == "5": if content[9] == "5":
msg = "{ Location shared: "f"{content[10], content[11]}"" }" msg = f"Location shared: {content[10], content[11]}"
data[content[0]]["messages"][content[1]]["meta"] = True
else: else:
msg = content[4] msg = content[4]
if msg is not None: if msg is not None:
@@ -207,10 +213,12 @@ def messages(db, data):
msg = msg.replace("\n", "<br>") msg = msg.replace("\n", "<br>")
else: else:
if content[5] == 0 and content[6] == 7: if content[5] == 0 and content[6] == 7:
msg = "{Message deleted}" msg = "Message deleted"
data[content[0]]["messages"][content[1]]["meta"] = True
else: else:
if content[9] == "5": if content[9] == "5":
msg = "{ Location shared: "f"{content[10], content[11]}"" }" msg = f"Location shared: {content[10], content[11]}"
data[content[0]]["messages"][content[1]]["meta"] = True
else: else:
msg = content[4] msg = content[4]
if msg is not None: if msg is not None:
@@ -271,8 +279,9 @@ def media(db, data, media_folder):
# data[content[0]]["messages"][content[1]]["media"] = True # data[content[0]]["messages"][content[1]]["media"] = True
# data[content[0]]["messages"][content[1]]["mime"] = "media" # data[content[0]]["messages"][content[1]]["mime"] = "media"
# else: # else:
data[content[0]]["messages"][content[1]]["data"] = "{The media is missing}" data[content[0]]["messages"][content[1]]["data"] = "The media is missing"
data[content[0]]["messages"][content[1]]["mime"] = "media" data[content[0]]["messages"][content[1]]["mime"] = "media"
data[content[0]]["messages"][content[1]]["meta"] = True
i += 1 i += 1
if i % 100 == 0: if i % 100 == 0:
print(f"Gathering media...({i}/{total_row_number})", end="\r") print(f"Gathering media...({i}/{total_row_number})", end="\r")
@@ -304,9 +313,10 @@ def vcard(db, data):
with open(file_path, "w", encoding="utf-8") as f: with open(file_path, "w", encoding="utf-8") as f:
f.write(row[2]) f.write(row[2])
data[row[1]]["messages"][row[0]]["data"] = row[3] + \ data[row[1]]["messages"][row[0]]["data"] = row[3] + \
"{ The vCard file cannot be displayed here, however it " \ "The vCard file cannot be displayed here, " \
"should be located at " + file_path + "}" f"however it should be located at {file_path}"
data[row[1]]["messages"][row[0]]["mime"] = "text/x-vcard" data[row[1]]["messages"][row[0]]["mime"] = "text/x-vcard"
data[row[1]]["messages"][row[0]]["meta"] = True
print(f"Gathering vCards...({index + 1}/{total_row_number})", end="\r") print(f"Gathering vCards...({index + 1}/{total_row_number})", end="\r")

View File

@@ -69,7 +69,9 @@ def messages(db, data):
"time": datetime.fromtimestamp(ts).strftime("%H:%M"), "time": datetime.fromtimestamp(ts).strftime("%H:%M"),
"media": False, "media": False,
"reply": None, "reply": None,
"caption": None "caption": None,
"meta": False,
"data": None
} }
if "-" in content[0] and content[2] == 0: if "-" in content[0] and content[2] == 0:
name = None name = None
@@ -94,8 +96,9 @@ def messages(db, data):
try: try:
int(content[4]) int(content[4])
except ValueError: except ValueError:
msg = "{The group name changed to "f"{content[4]}"" }" msg = f"The group name changed to {content[4]}"
data[content[0]]["messages"][content[1]]["data"] = msg data[content[0]]["messages"][content[1]]["data"] = msg
data[content[0]]["messages"][content[1]]["meta"] = True
else: else:
del data[content[0]]["messages"][content[1]] del data[content[0]]["messages"][content[1]]
else: else:
@@ -106,7 +109,8 @@ def messages(db, data):
# real message # real message
if content[2] == 1: if content[2] == 1:
if content[5] == 14: if content[5] == 14:
msg = "{Message deleted}" msg = "Message deleted"
data[content[0]]["messages"][content[1]]["meta"] = True
else: else:
msg = content[4] msg = content[4]
if msg is not None: if msg is not None:
@@ -116,7 +120,8 @@ def messages(db, data):
msg = msg.replace("\n", "<br>") msg = msg.replace("\n", "<br>")
else: else:
if content[5] == 14: if content[5] == 14:
msg = "{Message deleted}" msg = "Message deleted"
data[content[0]]["messages"][content[1]]["meta"] = True
else: else:
msg = content[4] msg = content[4]
if msg is not None: if msg is not None:
@@ -133,7 +138,7 @@ def messages(db, data):
f"Gathering messages...({total_row_number}/{total_row_number})", end="\r") f"Gathering messages...({total_row_number}/{total_row_number})", end="\r")
def media(db, data): def media(db, data, media_folder):
c = db.cursor() c = db.cursor()
# Get media # Get media
c.execute("""SELECT count() FROM ZWAMEDIAITEM""") c.execute("""SELECT count() FROM ZWAMEDIAITEM""")
@@ -155,7 +160,7 @@ def media(db, data):
content = c.fetchone() content = c.fetchone()
mime = MimeTypes() mime = MimeTypes()
while content is not None: while content is not None:
file_path = f"Message/{content[2]}" file_path = f"{media_folder}/{content[2]}"
data[content[0]]["messages"][content[1]]["media"] = True data[content[0]]["messages"][content[1]]["media"] = True
if os.path.isfile(file_path): if os.path.isfile(file_path):
@@ -178,8 +183,9 @@ def media(db, data):
# data[content[0]]["messages"][content[1]]["data"] = "{The media is missing}" # data[content[0]]["messages"][content[1]]["data"] = "{The media is missing}"
# data[content[0]]["messages"][content[1]]["mime"] = "media" # data[content[0]]["messages"][content[1]]["mime"] = "media"
# else: # else:
data[content[0]]["messages"][content[1]]["data"] = "{The media is missing}" data[content[0]]["messages"][content[1]]["data"] = "The media is missing"
data[content[0]]["messages"][content[1]]["mime"] = "media" data[content[0]]["messages"][content[1]]["mime"] = "media"
data[content[0]]["messages"][content[1]]["meta"] = True
if content[6] is not None: if content[6] is not None:
data[content[0]]["messages"][content[1]]["caption"] = content[6] data[content[0]]["messages"][content[1]]["caption"] = content[6]
i += 1 i += 1
@@ -216,10 +222,11 @@ def vcard(db, data):
with open(file_path, "w", encoding="utf-8") as f: with open(file_path, "w", encoding="utf-8") as f:
f.write(row[4]) f.write(row[4])
data[row[2]]["messages"][row[1]]["data"] = row[3] + \ data[row[2]]["messages"][row[1]]["data"] = row[3] + \
"{ The vCard file cannot be displayed here, however it " \ "The vCard file cannot be displayed here, " \
"should be located at " + file_path + "}" f"however it should be located at {file_path}"
data[row[2]]["messages"][row[1]]["mime"] = "text/x-vcard" data[row[2]]["messages"][row[1]]["mime"] = "text/x-vcard"
data[row[2]]["messages"][row[1]]["media"] = True data[row[2]]["messages"][row[1]]["media"] = True
data[row[2]]["messages"][row[1]]["meta"] = True
print(f"Gathering vCards...({index + 1}/{total_row_number})", end="\r") print(f"Gathering vCards...({index + 1}/{total_row_number})", end="\r")

View File

@@ -72,29 +72,37 @@
<a href="#{{msg.reply}}" style="color: #168acc;">"{{ msg.quoted_data or 'media' }}"</a> <a href="#{{msg.reply}}" style="color: #168acc;">"{{ msg.quoted_data or 'media' }}"</a>
</div> </div>
{% endif %} {% endif %}
{% if msg.media == false %} {% if msg.meta == true or msg.media == false and msg.data is none %}
{{ msg.data or "{This message is not supported yet}" | sanitize_except() }} <div style="text-align: center;" class="w3-panel w3-border-blue w3-pale-blue w3-rightbar w3-leftbar">
<p>{{ msg.data or 'This message is not supported' }}</p>
</div>
{% else %} {% else %}
{% if "image/" in msg.mime %} {% if msg.media == false %}
<a href="{{ msg.data }}"><img src="{{ msg.data }}" /></a> {{ msg.data | sanitize_except() }}
{% elif "audio/" in msg.mime %}
<audio controls="controls" autobuffer="autobuffer">
<source src="{{ msg.data }}" />
</audio>
{% elif "video/" in msg.mime %}
<video controls="controls" autobuffer="autobuffer">
<source src="{{ msg.data }}" />
</video>
{% elif "/" in msg.mime %}
{The file cannot be displayed here, however it should be located at {{ msg.data }}}
{% else %} {% else %}
{% filter escape %}{{ msg.data }}{% endfilter %} {% if "image/" in msg.mime %}
<a href="{{ msg.data }}"><img src="{{ msg.data }}" /></a>
{% elif "audio/" in msg.mime %}
<audio controls="controls" autobuffer="autobuffer">
<source src="{{ msg.data }}" />
</audio>
{% elif "video/" in msg.mime %}
<video controls="controls" autobuffer="autobuffer">
<source src="{{ msg.data }}" />
</video>
{% elif "/" in msg.mime %}
<div style="text-align: center;" class="w3-panel w3-border-blue w3-pale-blue w3-rightbar w3-leftbar">
<p>The file cannot be displayed here, however it should be located at {{ msg.data }}</p>
</div>
{% else %}
{% filter escape %}{{ msg.data }}{% endfilter %}
{% endif %}
{% if msg.caption is not none %}
<br>
{{ msg.caption }}
{% endif %}
{% endif %} {% endif %}
{% if msg.caption is not none %}
<br>
{{ msg.caption }}
{% endif %} {% endif %}
{% endif %}
</div> </div>
</div> </div>
<div class="w3-col m2 l2" style="padding-left: 10px"><img src="{{ my_avatar }}" onerror="this.style.display='none'"></div> <div class="w3-col m2 l2" style="padding-left: 10px"><img src="{{ my_avatar }}" onerror="this.style.display='none'"></div>
@@ -120,27 +128,35 @@
<a href="#{{msg.reply}}" style="color: #168acc;">"{{ msg.quoted_data or 'media' }}"</a> <a href="#{{msg.reply}}" style="color: #168acc;">"{{ msg.quoted_data or 'media' }}"</a>
</div> </div>
{% endif %} {% endif %}
{% if msg.media == false %} {% if msg.meta == true or msg.media == false and msg.data is none %}
{{ msg.data or "{This message is not supported yet}" | sanitize_except() }} <div style="text-align: center;" class="w3-panel w3-border-blue w3-pale-blue w3-rightbar w3-leftbar">
<p>{{ msg.data or 'This message is not supported' }}</p>
</div>
{% else %} {% else %}
{% if "image/" in msg.mime %} {% if msg.media == false %}
<a href="{{ msg.data }}"><img src="{{ msg.data }}" /></a> {{ msg.data | sanitize_except() }}
{% elif "audio/" in msg.mime %}
<audio controls="controls" autobuffer="autobuffer">
<source src="{{ msg.data }}" />
</audio>
{% elif "video/" in msg.mime %}
<video controls="controls" autobuffer="autobuffer">
<source src="{{ msg.data }}" />
</video>
{% elif "/" in msg.mime %}
{The file cannot be displayed here, however it should be located at {{ msg.data }}}
{% else %} {% else %}
{% filter escape %}{{ msg.data }}{% endfilter %} {% if "image/" in msg.mime %}
{% endif %} <a href="{{ msg.data }}"><img src="{{ msg.data }}" /></a>
{% if msg.caption is not none %} {% elif "audio/" in msg.mime %}
<br> <audio controls="controls" autobuffer="autobuffer">
{{ msg.caption }} <source src="{{ msg.data }}" />
</audio>
{% elif "video/" in msg.mime %}
<video controls="controls" autobuffer="autobuffer">
<source src="{{ msg.data }}" />
</video>
{% elif "/" in msg.mime %}
<div style="text-align: center;" class="w3-panel w3-border-blue w3-pale-blue w3-rightbar w3-leftbar">
<p>The file cannot be displayed here, however it should be located at {{ msg.data }}</p>
</div>
{% else %}
{% filter escape %}{{ msg.data }}{% endfilter %}
{% endif %}
{% if msg.caption is not none %}
<br>
{{ msg.caption }}
{% endif %}
{% endif %} {% endif %}
{% endif %} {% endif %}
</div> </div>