mirror of
https://github.com/KnugiHK/WhatsApp-Chat-Exporter.git
synced 2026-05-01 01:51:33 +00:00
Merge branch 'pr/26' into dev
This commit is contained in:
@@ -5,6 +5,7 @@ except ImportError:
|
|||||||
from Whatsapp_Chat_Exporter import extract_new as extract
|
from Whatsapp_Chat_Exporter import extract_new as extract
|
||||||
from Whatsapp_Chat_Exporter import extract_iphone
|
from Whatsapp_Chat_Exporter import extract_iphone
|
||||||
from Whatsapp_Chat_Exporter import extract_iphone_media
|
from Whatsapp_Chat_Exporter import extract_iphone_media
|
||||||
|
from Whatsapp_Chat_Exporter.data_model import ChatStore
|
||||||
from Whatsapp_Chat_Exporter.extract_new import Crypt
|
from Whatsapp_Chat_Exporter.extract_new import Crypt
|
||||||
from argparse import ArgumentParser
|
from argparse import ArgumentParser
|
||||||
import os
|
import os
|
||||||
@@ -246,6 +247,8 @@ def main():
|
|||||||
"Perhaps the directory is opened?")
|
"Perhaps the directory is opened?")
|
||||||
|
|
||||||
if args.json:
|
if args.json:
|
||||||
|
if isinstance(data[next(iter(data))], ChatStore):
|
||||||
|
data = {jik: chat.to_json() for jik, chat in data.items()}
|
||||||
with open(args.json, "w") as f:
|
with open(args.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)")
|
||||||
|
|||||||
@@ -18,6 +18,10 @@ class ChatStore():
|
|||||||
if id in self.messages:
|
if id in self.messages:
|
||||||
del self.messages[id]
|
del self.messages[id]
|
||||||
|
|
||||||
|
def to_json(self):
|
||||||
|
serialized_msgs = {id : msg.to_json() for id,msg in self.messages.items()}
|
||||||
|
return {'name' : self.name, 'messages' : serialized_msgs}
|
||||||
|
|
||||||
class Message():
|
class Message():
|
||||||
def __init__(self, from_me: Union[bool,int], timestamp: int, time: str, key_id: int):
|
def __init__(self, from_me: Union[bool,int], timestamp: int, time: str, key_id: int):
|
||||||
self.from_me = bool(from_me)
|
self.from_me = bool(from_me)
|
||||||
@@ -33,3 +37,17 @@ class Message():
|
|||||||
self.quoted_data = None
|
self.quoted_data = None
|
||||||
self.caption = None
|
self.caption = None
|
||||||
|
|
||||||
|
def to_json(self):
|
||||||
|
return {
|
||||||
|
'from_me' : self.from_me,
|
||||||
|
'timestamp' : self.timestamp,
|
||||||
|
'time' : self.time,
|
||||||
|
'media' : self.media,
|
||||||
|
'key_id' : self.key_id,
|
||||||
|
'meta' : self.meta,
|
||||||
|
'data' : self.data,
|
||||||
|
'sender' : self.sender,
|
||||||
|
'reply' : self.reply,
|
||||||
|
'quoted_data' : self.quoted_data,
|
||||||
|
'caption' : self.caption
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user