munyal-client/temp/compare_json.py

50 lines
1.9 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import json
from dir_to_json import get_json
def compare_json(json1, json2):
bckup1, bckup2 = json1[:], json2[:]
items1 = list(enumerate(json1))
items2 = list(enumerate(json2))
for i, item1 in items1:
for j, item2 in items2:
if item1["name"] == item2["name"]:
if item1["is_file"] == True == item2["is_file"]:
if item1["checksum"] == item2["checksum"]:
json1[i] = None
json2[j] = None
'''
else:
json1[i]["tag"] = "update"
json2[j] = None
'''
elif item1["is_file"] == False == item2["is_file"]:
new_json1, new_json2 = compare_json(item1["content"], item2["content"])
if len(new_json1) == 0:
json1[i] = None
else:
json1[i]["content"] = new_json1
if len(new_json2) == 0:
json2[j] = None
else:
json2[j]["content"] = new_json2
elif item1["is_file"] != item2["is_file"]:##### Caso hipotetico imposible #####
json1[i]["tag"] == "delete"
json1 = list(filter(None, json1))
json2 = list(filter(None, json2))
return json1, json2
if __name__ == "__main__":
try:
json1 = get_json("/home/kirbylife/Proyectos/munyal_test/original")
json2 = get_json("/home/kirbylife/Proyectos/munyal_test/copy")
except:
print("error outside")
json1, json2 = compare_json(json1, json2)
#print(len(json1), len(json2))
print(json.dumps(json1, indent=4))
print("\n============\n")
print(json.dumps(json2, indent=4))