import base64 import os import pickle import sys from tkinter import Button, Label, Toplevel from requests import get from requests.exceptions import ConnectionError from tcping import Ping def check_network(ip, port): try: req = get(f"{ip}").status_code return req in range(200, 300) except ConnectionError: return False # ping = Ping(ip, port, 20) # ping.ping(1) # return ping.result.rows[0].successed == 1 def get_os(): if sys.platform in ["linux", "windows", "win32"]: return sys.platform raise Exception("OS not supported") def alert(window, message, title="Munyal"): child = Toplevel(window) child.title(title) label = Label(child, text=message) button = Button(child, text="Aceptar", command=child.destroy) label.pack() button.pack() def _flatten_dirs(content, path=""): for item in content: item["name"] = path_join(path, item["name"]) if item["is_file"]: yield item else: yield from _flatten_dirs(item["content"], item["name"]) del item["content"] yield item def flatten_dirs(content, path=""): dirs = _flatten_dirs(content, path=path) output = {} for item in dirs: output[item["name"]] = item return output def flatten_dirs_old(content, path="", action=""): output = [] for item in content: if item["is_file"]: item["name"] = path_join(path, item["name"]) output.append(item) else: if item["content"] and action == "add": output.extend( flatten_dirs(item["content"], path_join(path, item["name"]), action=action)) else: item["name"] = path_join(path, item["name"]) output.append(item) return output def path_join(*items): return os.path.join(*items).replace("\\", "/") if __name__ == "__main__": from dir_to_json import get_json import json folder = sys.argv[1] action = sys.argv[2] try: json_1 = get_json(folder) except Exception as e: print(e) print("error outside") sys.exit(1) print(json.dumps(list(flatten_dirs(json_1)), indent=2))