From de5af9391bd7ee1724ab0c51dbfc7e8b809ce3a2 Mon Sep 17 00:00:00 2001 From: kirbylife Date: Tue, 8 Dec 2020 14:45:42 -0600 Subject: [PATCH] added a way to push files --- client.py | 95 ++++++++++++++++++++++++++++++++++---- compare_json.py | 7 ++- dir_to_json.py | 4 +- first_test.py | 15 ++---- http_server.py | 3 +- misc.py | 32 +++++++++++-- screen.png | Bin 0 -> 66744 bytes second_test.py | 17 +++---- temp/compare_json.py | 1 + temp/dir_to_json.py | 5 +- temp/download_ftp_tree.py | 1 - temp/first_test.py | 15 ++---- temp/http_server.py | 10 ++-- temp/second_test.py | 17 +++---- test_ws.py | 42 +++++++++++++++++ 15 files changed, 196 insertions(+), 68 deletions(-) create mode 100644 screen.png create mode 100644 test_ws.py diff --git a/client.py b/client.py index 6428500..a9929f2 100755 --- a/client.py +++ b/client.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- +import base64 import json import os import pathlib @@ -13,54 +14,124 @@ from threading import Thread from time import sleep from PIL import Image, ImageTk -from pystray import Icon, Menu -from pystray import MenuItem as Item from requests import post -from websocket import WebSocket +import websocket from compare_json import compare_json from config import get_config from dir_to_json import get_json -from misc import check_network +from misc import check_network, flatten_dirs +from pystray import Icon, Menu +from pystray import MenuItem as Item +from websocket import WebSocket + +try: + import thread +except ImportError: + import _thread as thread _online_icon = Image.open("img/icons/online.png") _offline_icon = Image.open("img/icons/offline.png") _standby_icon = Image.open("img/icons/offline.png") +if not int(os.getenv("VERBOSE", 1)): + def X(*args, **kwargs): + pass + print = X class MunyalClient(Icon): def __init__(self): super(MunyalClient, self).__init__("Munyal") + self.__ws_break = False + self.ws = None self.icon = _standby_icon self.config = get_config() self.stack = [] def is_online(self): + # if not self.ws_online: + # self.icon = _standby_icon + # return False ping = check_network("http://google.com", 443) if ping: self.icon = _online_icon else: self.icon = _offline_icon + print(f"La PC está {'on' if bool(ping) else 'off'}line") + return ping + + def __ws_message(self, ws, message): + print(message) + + def __ws_error(self, ws, error): + print("Error: ", error) + + def __ws_open(self): + print("WebSocket abierto") + thread.start_new_thread(self.listener, ()) def start(self): + websocket.enableTrace(True) + # ws.on_open = self.listener thread_uploader = Thread(target=self.uploader, name="uploader", daemon=True) thread_downloader = Thread(target=self.downloader, name="downloader", daemon=True) + # thread_listener = Thread(target=self.listener, + # name="listener", + # daemon=True) thread_uploader.start() thread_downloader.start() + # thread_listener.start() + self.run(self.__run) self.menu = Menu(Item("Exit", lambda *args: sys.exit(0))) def __run(self, icon): icon.visible = True - sleep(60) - self.stop() + while True: + print("Conectando al websocket") + ws = websocket.WebSocketApp( + "ws://127.0.0.1:12345", + on_message=print, + on_error=print, + on_close=lambda soc: self.__ws_close(ws)) + ws.on_open = lambda soc: self.listener(soc) + ws.run_forever() + sleep(1) - def listener(self): - pass + def __ws_close(self, ws): + print("WebSocket cerrado") + self.__ws_break = True + + def listener(self, ws): + self.ws = ws + + def wrapper(*args): + while True: + print(self.stack) + if self.stack: + try: + data = self.stack[0] + folder = self.config["folder"] + if data["is_file"] and data["action"] == "add": + full_path = os.path.join(folder, data["name"]) + data["file"] = base64.b85encode( + open(full_path, "rb").read()).decode("ascii") + self.ws.send(json.dumps(data)) + self.stack.pop(0) + except Exception as e: + print(e.with_traceback()) + print("Error uploading file, trying again") + if not self.is_online() or self.__ws_break: + self.__ws_break = False + self.ws = None + return + sleep(1) + + thread.start_new_thread(wrapper, ()) def uploader(self): print("Uploader") @@ -75,9 +146,17 @@ class MunyalClient(Icon): if delete: print("Cosas eliminadas:") print(delete) + delete = flatten_dirs(delete, action="delete") + for f in delete: + f["action"] = "delete" + self.stack.extend(delete) if add: print("Cosas agregadas:") print(add) + add = flatten_dirs(add, action="add") + for f in add: + f["action"] = "add" + self.stack.extend(add) last = _actual def __upload(self, path): diff --git a/compare_json.py b/compare_json.py index 34a2833..0890ea9 100644 --- a/compare_json.py +++ b/compare_json.py @@ -30,9 +30,12 @@ def compare_json(json1, json2): if __name__ == "__main__": + import sys + folder_1 = sys.argv[1] + folder_2 = sys.argv[2] try: - json1 = get_json("/home/kirbylife/Munyal") - json2 = get_json("/home/kirbylife/Munyal") + json1 = get_json(folder_1) + json2 = get_json(folder_2) except Exception: print("error outside") json1, json2 = compare_json(json1, json2) diff --git a/dir_to_json.py b/dir_to_json.py index 16d3299..41cf6fd 100644 --- a/dir_to_json.py +++ b/dir_to_json.py @@ -47,6 +47,6 @@ def get_json(path): if __name__ == "__main__": - output = get_json( - "/media/kirbylife/DATOS/Proyectos/PyCharmProjects/Munyal/folder_test") + import sys + output = get_json(sys.argv[1]) print(json.dumps(output, indent=4)) diff --git a/first_test.py b/first_test.py index 38d97ba..6d4fd7a 100644 --- a/first_test.py +++ b/first_test.py @@ -1,12 +1,12 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -from compare_json import compare_json -from dir_to_json import get_json - from copy import deepcopy from time import sleep +from compare_json import compare_json +from dir_to_json import get_json + ORIGINAL = "/home/kirbylife/Proyectos/munyal_test/original" def main(args): @@ -31,12 +31,3 @@ def main(args): if __name__ == '__main__': import sys sys.exit(main(sys.argv)) - - - - - - - - - diff --git a/http_server.py b/http_server.py index d0c94d8..84f6e62 100644 --- a/http_server.py +++ b/http_server.py @@ -6,9 +6,8 @@ from hashlib import md5 from random import randint from time import time -from flask import Flask, jsonify, request - import rethinkdb as r +from flask import Flask, jsonify, request app = Flask(__name__) diff --git a/misc.py b/misc.py index 5f5c65d..876df31 100644 --- a/misc.py +++ b/misc.py @@ -4,13 +4,21 @@ 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): - ping = Ping(ip, port, 20) - ping.ping(1) - return ping.result.rows[0].successed == 1 + 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(): @@ -26,3 +34,21 @@ def alert(window, message, title="Munyal"): button = Button(child, text="Aceptar", command=child.destroy) label.pack() button.pack() + + +def flatten_dirs(content, path="", action=""): + output = [] + for item in content: + if item["is_file"]: + item["name"] = os.path.join(path, item["name"]) + output.append(item) + else: + if item["content"] and action == "add": + output.extend( + flatten_dirs(item["content"], + os.path.join(path, item["name"]), + action=action)) + else: + item["name"] = os.path.join(path, item["name"]) + output.append(item) + return output diff --git a/screen.png b/screen.png new file mode 100644 index 0000000000000000000000000000000000000000..24cc5b65c9acb52cffc229c50b45e4a80e871330 GIT binary patch literal 66744 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