From 0e6d1d514b32d402b9f55fe96b524cc429bd9305 Mon Sep 17 00:00:00 2001 From: quadrismegistus Date: Fri, 21 Aug 2020 12:49:39 +0100 Subject: [PATCH] cleanups --- .gitignore | 5 +++- .vscode/settings.json | 1 - app/avatar.jpg | Bin 43638 -> 0 bytes app/config.py | 5 ++-- app/main.py | 6 ----- app/run.sh | 3 ++- app/screens/login/login.kv | 23 ++++++++++++++---- app/screens/login/login.py | 20 +++++++++++----- app/spiral2.svg | 7 ------ app/torconn.py | 48 ------------------------------------- app/watcher.py | 3 ++- requirements.txt | 13 ++++++++-- 12 files changed, 54 insertions(+), 80 deletions(-) delete mode 100644 app/avatar.jpg delete mode 100644 app/spiral2.svg delete mode 100644 app/torconn.py diff --git a/.gitignore b/.gitignore index b130f80..953cd5b 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,7 @@ venv sto.dat p2p/kademlia0 cache.sqlite -dbm.* \ No newline at end of file +dbm.* +.DS_Store +.vscode/ +.vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json index 5b80df3..7a73a41 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,2 @@ { - "python.pythonPath": "venv/bin/python" } \ No newline at end of file diff --git a/app/avatar.jpg b/app/avatar.jpg deleted file mode 100644 index 1eed2f550af02411c4f7fdd383d70088f043a2b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43638 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 diff --git a/app/config.py b/app/config.py index 7db7ae5..0d4727d 100644 --- a/app/config.py +++ b/app/config.py @@ -5,7 +5,7 @@ HORIZONTAL = False #random.choice([True,True,True,False]) FACTOR=1 WINDOW_SIZE = (1136*FACTOR,640*FACTOR) if HORIZONTAL else (640*FACTOR,1136*FACTOR) -WINDOW_SIZE=1111,1111 +WINDOW_SIZE=800,800 BG_IMG='assets/bg-brown.png' @@ -55,7 +55,7 @@ bone=217, 202, 179 bronze=188, 128, 52 shadow=140, 122, 107 orangered=194, 3, 3 - + dutchwhite=229,219,181 # black=(0,0,0) black=15, 15, 15 #5, 8, 13 @@ -130,4 +130,5 @@ else: COLOR_CARD = bone COLOR_CARD_BORDER = COLOR_CARD COLOR_ICON=COLOR_LOGO + COLOR_ACCENT = huntergreen diff --git a/app/main.py b/app/main.py index ebc3b05..ebbb4c8 100644 --- a/app/main.py +++ b/app/main.py @@ -4,12 +4,6 @@ from config import * - - - - - - # monkeypatching the things that asyncio needs import subprocess subprocess.PIPE = -1 # noqa diff --git a/app/run.sh b/app/run.sh index 13f8834..c5c536d 100755 --- a/app/run.sh +++ b/app/run.sh @@ -1 +1,2 @@ -python3 watcher.py +python watcher.py +#python main.py \ No newline at end of file diff --git a/app/screens/login/login.kv b/app/screens/login/login.kv index 8910a64..cf073c2 100644 --- a/app/screens/login/login.kv +++ b/app/screens/login/login.kv @@ -10,7 +10,7 @@ #:import COLOR_TEXT main.COLOR_TEXT #:import COLOR_CARD main.COLOR_CARD #:import COLOR_CARD_BORDER main.COLOR_CARD_BORDER - +#:import COLOR_ACCENT main.COLOR_ACCENT : id: loginbox @@ -42,16 +42,29 @@ # spacing:'100sp' # md_bg_color:1,1,0,1 +: + text: 'Enter, Komrade' + halign: 'center' + size_hint_x: 1 + theme_text_color: 'Custom' + color: rgb(*COLOR_ACCENT) + adaptive_width: True + # size_hint:0.333,None + # md_bg_color:rgb(*COLOR_TEXT) + # pos_hint: {'y':1} + halign:'center' + : theme_text_color: 'Custom' text_color: rgb(*COLOR_TEXT) # width:'100sp' adaptive_width: True - size_hint:None,None + size_hint:0.333,None # md_bg_color:rgb(*COLOR_TEXT) # pos_hint: {'y':1} halign:'center' + @@ -69,8 +82,8 @@ current_hint_text_color: rgb(*COLOR_TEXT) error_color:rgb(*COLOR_TEXT) pos_hint: {'center_x':0.5,'y':0.2} - size_hint:0.8,None - font_size:'24sp' + size_hint:0.666,None + font_size:'2dp' @@ -89,7 +102,7 @@ current_hint_text_color: rgb(*COLOR_TEXT) text_color: rgb(*COLOR_TEXT) pos_hint: {'center_x':0.5,'y':0.2} - size_hint:0.8,None + size_hint:0.666,None : id: buttonbox diff --git a/app/screens/login/login.py b/app/screens/login/login.py index 9d26761..6833181 100644 --- a/app/screens/login/login.py +++ b/app/screens/login/login.py @@ -3,7 +3,8 @@ from kivymd.uix.boxlayout import MDBoxLayout from kivymd.uix.textfield import MDTextField from kivymd.uix.button import MDRectangleFlatButton from kivymd.uix.label import MDLabel -from main import MyLabel,rgb,COLOR_TEXT +from kivy.uix.label import Label +from main import MyLabel,rgb,COLOR_TEXT,COLOR_ICON,COLOR_ACCENT class LoginBoxLayout(MDBoxLayout): pass class LoginButtonLayout(MDBoxLayout): pass @@ -15,6 +16,7 @@ class LoginStatus(MDLabel): pass class UsernameLayout(MDBoxLayout): pass class UsernameLabel(MDLabel): pass +class WelcomeLabel(MDLabel): pass class LoginScreen(BaseScreen): #def on_pre_enter(self): @@ -25,13 +27,16 @@ class LoginScreen(BaseScreen): #log(self.ids) #log('hello?') self.layout = LoginBoxLayout() - self.label_title = MDLabel(text='Enter, Komrade',halign='center',size_hint_x=1) + self.label_title = WelcomeLabel() self.label_title.font_name='assets/font.otf' - self.label_title.font_size='20sp' + # self.label_title.font_size='20sp' self.label_title.bold=True + self.label_title.markup=True + self.label_title.color=rgb(*COLOR_TEXT) + self.label_title.font_size*=1.5 self.layout.add_widget(self.label_title) - self.label_username = UsernameLabel(text="username:") + self.layout_username = UsernameLayout() self.label_username = UsernameLabel(text="username:") @@ -80,8 +85,11 @@ class LoginScreen(BaseScreen): self.layout.add_widget(self.login_status) - self.label_password.font_size='18sp' - self.label_username.font_size='18sp' + self.label_password.font_size=32 + self.label_username.font_size=32 + self.login_button.font_size=22 + self.register_button.font_size=22 + ## add all diff --git a/app/spiral2.svg b/app/spiral2.svg deleted file mode 100644 index 5ac386d..0000000 --- a/app/spiral2.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - Svg Vector Icons : http://www.onlinewebfonts.com/icon - - \ No newline at end of file diff --git a/app/torconn.py b/app/torconn.py deleted file mode 100644 index fa8e425..0000000 --- a/app/torconn.py +++ /dev/null @@ -1,48 +0,0 @@ -from torpy import TorClient -import json,requests -import struct - - -#hostname = 'ifconfig.me' # It's possible use onion hostname here as well -#port = 80 - -#hostname = 'komrades.net' -hostname = '128.232.229.63' -port = 5555 - - -def try_torpy(): - from torpy.http.requests import TorRequests - with TorRequests() as tor_requests: - with tor_requests.get_session() as s: - #with requests.Session() as s: - #res = s.get('http://'+hostname+':'+str(port) + '/api/followers/MrY') - #print(json.loads(res.text)) - res = s.get('http://'+hostname+':'+str(port)) - print(res,res.text) - - - -def try_proxy(): - import requests - - def get_tor_session(): - session = requests.session() - # Tor uses the 9050 port as the default socks port - session.proxies = {'http': 'socks5://127.0.0.1:9050', - 'https': 'socks5://127.0.0.1:9050'} - return session - - # Make a request through the Tor connection - # IP visible through Tor - session = get_tor_session() - print(session.get("http://"+hostname+':'+str(port)).text) - # Above should print an IP different than your public IP - - # Following prints your normal public IP - print(session.get("http://ifconfig.me").text) - - - -try_proxy() -#try_torpy() \ No newline at end of file diff --git a/app/watcher.py b/app/watcher.py index be13bd8..c59b5fc 100644 --- a/app/watcher.py +++ b/app/watcher.py @@ -13,7 +13,7 @@ def run_command(): p = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE) class Watcher: - DIRECTORY_TO_WATCH = os.path.join(os.path.expanduser('~'),"/github/Komrade/") + DIRECTORY_TO_WATCH = '.' #os.path.join(os.path.expanduser('~'),"/github/Komrade/") def __init__(self): self.observer = Observer() @@ -39,6 +39,7 @@ class Handler(FileSystemEventHandler): if '/cache/' in str(event.src_path): return None if '__pycache__' in str(event.src_path): return None if 'sto.dat' in str(event.src_path): return None + if '/dbm.' in str(event.src_path): return None if event.is_directory: return None diff --git a/requirements.txt b/requirements.txt index d5f52e1..32764e1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,21 +1,30 @@ +astroid==2.4.2 certifi==2020.6.20 cffi==1.14.2 chardet==3.0.4 cryptography==3.0 docutils==0.16 idna==2.10 -kademlia==2.2.1 -Kivy==1.11.1 +isort==5.4.2 +Kivy @ git+http://github.com/kivy/kivy@f34c43f235f35767ed04765a90d68b23807436ba Kivy-Garden==0.1.4 kivymd==0.104.1 +lazy-object-proxy==1.4.3 +mccabe==0.6.1 +numpy==1.19.1 pathtools==0.1.2 Pillow==7.2.0 plyer==1.4.3 pycparser==2.20 Pygments==2.6.1 +pylint==2.6.0 requests==2.24.0 rpcudp==4.0.1 six==1.15.0 +sqlitedict==1.6.0 +toml==0.10.1 +typed-ast==1.4.1 u-msgpack-python==2.7.0 urllib3==1.25.10 watchdog==0.10.3 +wrapt==1.12.1