SMS_Import_script/conv_backup.py

81 lines
2.1 KiB
Python

import json
import sys
class newJSON() :
def __init__(
self,
old_type,
old_address,
old_date,
old_dateSent,
old_read,
old_status,
old_body,
old_locked,
old_subId,
) :
self.subscriptionId = old_subId
self.address = old_address
self.body = old_body
self.date = old_date
self.dateSent = old_dateSent
self.locked = 1 if old_locked else 0
self.protocol = None
self.read = 1 if old_read else 0
self.status = old_status
self.type = old_type
self.serviceCenter = None
self.backupType = "sms"
def formatMsg(oldMsgJSON) :
return newJSON(
oldMsgJSON["type"],
oldMsgJSON["address"],
oldMsgJSON["date"],
oldMsgJSON["dateSent"],
oldMsgJSON["read"],
oldMsgJSON["status"],
oldMsgJSON["body"],
oldMsgJSON["locked"],
oldMsgJSON["subId"],
).__dict__
def convertBck(old_path : str,new_path : str) :
with open(old_path) as file :
data = json.load(file)
newBck = []
for msg in data["messages"] :
# Skip all message without body
if msg["body"] != "" :
newBck.append(formatMsg(msg))
# Write to new file
with open(new_path,"w") as file :
json.dump(newBck,file,indent=2)
def appendToBck(old_path : str,target_path : str) :
# Load file to import
with open(old_path) as file :
old_data = json.load(file)
# Load file to edit
with open(new_path,"rw") as file :
target = json.load(file)
for msg in data["messages"] :
if msg["body"] != "" :
data.append(formatMsg(msg))
with open(new_path,"w") as file :
json.dump(newBck,file,indent=2)
def main() :
if len(sys.argv) != 3 :
print(
"Unrecognized arguments :\n",
"python3 conv_backup.py ./backup.json ./new.json"
)
sys.exit(1)
convertBck(sys.argv[1],sys.argv[2])
sys.exit(0)
if __name__ == "__main__" :
main()