No longer embed media into HTML

This commit is contained in:
KnugiHK
2021-01-13 22:26:56 +08:00
parent 54b9d6cf91
commit c6cb36b0af
3 changed files with 43 additions and 44 deletions

View File

@@ -7,9 +7,11 @@ import jinja2
import os import os
import base64 import base64
import requests import requests
import shutil
from datetime import datetime from datetime import datetime
from mimetypes import MimeTypes from mimetypes import MimeTypes
def determine_day(last, current): def determine_day(last, current):
last = datetime.fromtimestamp(last).date() last = datetime.fromtimestamp(last).date()
current = datetime.fromtimestamp(current).date() current = datetime.fromtimestamp(current).date()
@@ -70,10 +72,9 @@ content = c.fetchone()
mime = MimeTypes() mime = MimeTypes()
while content is not None: while content is not None:
file_path = f"WhatsApp/{content[2]}" file_path = f"WhatsApp/{content[2]}"
data[content[0]]["messages"][content[1]]["media"] = True
if os.path.isfile(file_path): if os.path.isfile(file_path):
with open(file_path, "rb") as f: data[content[0]]["messages"][content[1]]["data"] = file_path
data[content[0]]["messages"][content[1]]["data"] = base64.b64encode(f.read()).decode("utf-8")
data[content[0]]["messages"][content[1]]["media"] = True
if content[4] is None: if content[4] is None:
guess = mime.guess_type(file_path)[0] guess = mime.guess_type(file_path)[0]
if guess is not None: if guess is not None:
@@ -83,22 +84,18 @@ while content is not None:
else: else:
data[content[0]]["messages"][content[1]]["mime"] = content[4] data[content[0]]["messages"][content[1]]["mime"] = content[4]
else: else:
if "https://mmg" in content[4]: # if "https://mmg" in content[4]:
try: # try:
r = requests.get(content[3]) # r = requests.get(content[3])
if r.status_code != 200: # if r.status_code != 200:
raise RuntimeError() # raise RuntimeError()
except: # except:
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]]["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:
open('temp.file', 'wb').write(r.content) data[content[0]]["messages"][content[1]]["data"] = "{The media is missing}"
open('temp.asdasda', "a").write(content[3]) data[content[0]]["messages"][content[1]]["mime"] = "media"
else:
data[content[0]]["messages"][content[1]]["data"] = "{The media is missing}"
data[content[0]]["messages"][content[1]]["media"] = True
data[content[0]]["messages"][content[1]]["mime"] = "media"
i += 1 i += 1
if i % 1000 == 0: if i % 1000 == 0:
print(f"Gathering media...({i}/{total_row_number})", end="\r") print(f"Gathering media...({i}/{total_row_number})", end="\r")
@@ -143,6 +140,9 @@ for current, i in enumerate(data):
print(f"Creating HTML...({total_row_number}/{total_row_number})", end="\r") print(f"Creating HTML...({total_row_number}/{total_row_number})", end="\r")
if not os.path.isdir(f"{output_folder}/WhatsApp"):
shutil.move("WhatsApp", f"{output_folder}/")
with open("result.json", "w") as f: with open("result.json", "w") as f:
data = json.dumps(data) data = json.dumps(data)
print(f"\nWriting JSON file...({int(len(data)/1024/1024)}MB)") print(f"\nWriting JSON file...({int(len(data)/1024/1024)}MB)")

View File

@@ -7,9 +7,11 @@ import jinja2
import os import os
import base64 import base64
import requests import requests
import shutil
from datetime import datetime from datetime import datetime
from mimetypes import MimeTypes from mimetypes import MimeTypes
def determine_day(last, current): def determine_day(last, current):
last = datetime.fromtimestamp(last).date() last = datetime.fromtimestamp(last).date()
current = datetime.fromtimestamp(current).date() current = datetime.fromtimestamp(current).date()
@@ -69,10 +71,9 @@ 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"Message/{content[2]}"
data[content[0]]["messages"][content[1]]["media"] = True
if os.path.isfile(file_path): if os.path.isfile(file_path):
with open(file_path, "rb") as f: data[content[0]]["messages"][content[1]]["data"] = file_path
data[content[0]]["messages"][content[1]]["data"] = base64.b64encode(f.read()).decode("utf-8")
data[content[0]]["messages"][content[1]]["media"] = True
if content[4] is None: if content[4] is None:
guess = mime.guess_type(file_path)[0] guess = mime.guess_type(file_path)[0]
if guess is not None: if guess is not None:
@@ -82,22 +83,17 @@ while content is not None:
else: else:
data[content[0]]["messages"][content[1]]["mime"] = content[4] data[content[0]]["messages"][content[1]]["mime"] = content[4]
else: else:
if "https://mmg" in content[4]: # if "https://mmg" in content[4]:
try: # try:
r = requests.get(content[3]) # r = requests.get(content[3])
if r.status_code != 200: # if r.status_code != 200:
raise RuntimeError() # raise RuntimeError()
except: # except:
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]]["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}"
open('temp.file', 'wb').write(r.content) data[content[0]]["messages"][content[1]]["mime"] = "media"
open('temp.asdasda', "a").write(content[3])
else:
data[content[0]]["messages"][content[1]]["data"] = "{The media is missing}"
data[content[0]]["messages"][content[1]]["media"] = True
data[content[0]]["messages"][content[1]]["mime"] = "media"
i += 1 i += 1
if i % 1000 == 0: if i % 1000 == 0:
print(f"Gathering media...({i}/{total_row_number})", end="\r") print(f"Gathering media...({i}/{total_row_number})", end="\r")
@@ -142,6 +138,9 @@ for current, i in enumerate(data):
print(f"Creating HTML...({total_row_number}/{total_row_number})", end="\r") print(f"Creating HTML...({total_row_number}/{total_row_number})", end="\r")
if not os.path.isdir(f"{output_folder}/Message"):
shutil.move("Message", f"{output_folder}/")
with open("result.json", "w") as f: with open("result.json", "w") as f:
data = json.dumps(data) data = json.dumps(data)
print(f"\nWriting JSON file...({int(len(data)/1024/1024)}MB)") print(f"\nWriting JSON file...({int(len(data)/1024/1024)}MB)")

View File

@@ -58,14 +58,14 @@
{% filter escape %}{{ msg.data }}{% endfilter %} {% filter escape %}{{ msg.data }}{% endfilter %}
{% else %} {% else %}
{% if "image/" in msg.mime %} {% if "image/" in msg.mime %}
<img src="data:{{ msg.mime }};base64, {% filter escape %}{{ msg.data }}{% endfilter %}" /> <img src="{{ msg.data }}" />
{% elif "audio/" in msg.mime %} {% elif "audio/" in msg.mime %}
<audio controls="controls" autobuffer="autobuffer"> <audio controls="controls" autobuffer="autobuffer">
<source src="data:{{ msg.mime }};base64, {% filter escape %}{{ msg.data }}{% endfilter %}" /> <source src="{% filter escape %}{{ msg.data }}{% endfilter %}" />
</audio> </audio>
{% elif "video/" in msg.mime %} {% elif "video/" in msg.mime %}
<video controls="controls" autobuffer="autobuffer"> <video controls="controls" autobuffer="autobuffer">
<source src="data:{{ msg.mime }};base64, {% filter escape %}{{ msg.data }}{% endfilter %}" /> <source src="{% filter escape %}{{ msg.data }}{% endfilter %}" />
</video> </video>
{% elif "/" in msg.mime %} {% elif "/" in msg.mime %}
{document} {document}
@@ -90,14 +90,14 @@
{% filter escape %}{{ msg.data }}{% endfilter %} {% filter escape %}{{ msg.data }}{% endfilter %}
{% else %} {% else %}
{% if "image/" in msg.mime %} {% if "image/" in msg.mime %}
<img src="data:{{ msg.mime }};base64, {% filter escape %}{{ msg.data }}{% endfilter %}" /> <img src="{% filter escape %}{{ msg.data }}{% endfilter %}" />
{% elif "audio/" in msg.mime %} {% elif "audio/" in msg.mime %}
<audio controls="controls" autobuffer="autobuffer"> <audio controls="controls" autobuffer="autobuffer">
<source src="data:{{ msg.mime }};base64, {% filter escape %}{{ msg.data }}{% endfilter %}" /> <source src="{% filter escape %}{{ msg.data }}{% endfilter %}" />
</audio> </audio>
{% elif "video/" in msg.mime %} {% elif "video/" in msg.mime %}
<video controls="controls" autobuffer="autobuffer"> <video controls="controls" autobuffer="autobuffer">
<source src="data:{{ msg.mime }};base64, {% filter escape %}{{ msg.data }}{% endfilter %}" /> <source src="{% filter escape %}{{ msg.data }}{% endfilter %}" />
</video> </video>
{% elif "/" in msg.mime %} {% elif "/" in msg.mime %}
{document} {document}