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

View File

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

View File

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