diff --git a/extract.py b/extract.py
index 2c52ecc..c471ab3 100644
--- a/extract.py
+++ b/extract.py
@@ -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)")
diff --git a/extract_iphone.py b/extract_iphone.py
index 78bd2e2..009797d 100644
--- a/extract_iphone.py
+++ b/extract_iphone.py
@@ -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)")
diff --git a/whatsapp.html b/whatsapp.html
index 792bf7c..db19c3d 100644
--- a/whatsapp.html
+++ b/whatsapp.html
@@ -58,14 +58,14 @@
{% filter escape %}{{ msg.data }}{% endfilter %}
{% else %}
{% if "image/" in msg.mime %}
-
+
{% elif "audio/" in msg.mime %}
{% elif "video/" in msg.mime %}
{% elif "/" in msg.mime %}
{document}
@@ -90,14 +90,14 @@
{% filter escape %}{{ msg.data }}{% endfilter %}
{% else %}
{% if "image/" in msg.mime %}
-
+
{% elif "audio/" in msg.mime %}
{% elif "video/" in msg.mime %}
{% elif "/" in msg.mime %}
{document}