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 appendToBck(old_path : str,new_path : str,target_path : str) : # Load old backup with open(old_path) as file : old_data = json.load(file) # Load new backup with open(new_path) as file : target = json.load(file) for msg in old_data["messages"] : if msg["body"] != "" : target.append(formatMsg(msg)) # Write to target with open(target_path,"w") as file : json.dump(target,file,indent=2) def main() : if len(sys.argv) != 4 : print( "Unrecognized arguments :\n", "python qsms_merge_fossify ./QSMS_Backup.json ./Fossify_Backup.json New_Backup_Name.json" ) sys.exit(1) appendToBck(sys.argv[1],sys.argv[2],sys.argv[3]) sys.exit(0) if __name__ == "__main__" : main()