munyal-client/client.py

100 lines
2.4 KiB
Python
Executable File

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import json
import os
import pathlib
import sys
from copy import deepcopy
from datetime import datetime
from random import randint
from shutil import rmtree
from threading import Thread
from time import sleep
import pystray
from PIL import Image, ImageTk
from requests import post
from 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
_online_icon = Image.open("img/icons/online.png")
_offline_icon = Image.open("img/icons/offline.png")
_standby_icon = Image.open("img/icons/offline.png")
class MunyalClient(pystray.Icon):
def __init__(self):
super(MunyalClient, self).__init__("Munyal")
self.icon = _standby_icon
self.config = get_config()
self.stack = []
def is_online(self):
ping = check_network("http://google.com", 443)
if ping:
self.icon = _online_icon
else:
self.icon = _offline_icon
def start(self):
thread_uploader = Thread(target=self.uploader,
name="uploader",
daemon=True)
thread_downloader = Thread(target=self.downloader,
name="downloader",
daemon=True)
thread_uploader.start()
# thread_downloader.start()
self.run(self.__run)
def __run(self, icon):
icon.visible = True
sleep(60)
self.stop()
def listener(self):
pass
def uploader(self):
print("Uploader")
folder = self.config["folder"]
last = get_json(folder)
while True:
sleep(1)
actual = get_json(folder)
_actual = deepcopy(actual)
delete, add = compare_json(last, actual)
if delete:
print("Cosas eliminadas:")
print(delete)
if add:
print("Cosas agregadas:")
print(add)
last = _actual
def __upload(self, path):
pass
def downloader(self):
print("Downloader")
while True:
sleep(7)
def __download(self, path):
pass
if __name__ == '__main__':
try:
client = MunyalClient()
client.start()
sys.exit(0)
except BaseException:
sys.exit(1)