From f42d308b2bd5fd5b65a50a4927c14779e8741753 Mon Sep 17 00:00:00 2001 From: Kevin Froman Date: Fri, 13 Jul 2018 21:43:03 -0500 Subject: [PATCH] - removed gui for now * work on new pm plugin --- onionr/onionr.py | 46 ------ onionr/onionrutils.py | 46 ------ onionr/onionrvalues.py | 2 +- .../static-data/default-plugins/gui/info.json | 5 - .../static-data/default-plugins/gui/main.py | 135 ------------------ 5 files changed, 1 insertion(+), 233 deletions(-) delete mode 100644 onionr/static-data/default-plugins/gui/info.json delete mode 100644 onionr/static-data/default-plugins/gui/main.py diff --git a/onionr/onionr.py b/onionr/onionr.py index 40c267ac..10aa54ce 100755 --- a/onionr/onionr.py +++ b/onionr/onionr.py @@ -50,7 +50,6 @@ class Onionr: Main Onionr class. This is for the CLI program, and does not handle much of the logic. In general, external programs and plugins should not use this class. ''' - try: os.chdir(sys.path[0]) except FileNotFoundError: @@ -181,15 +180,6 @@ class Onionr: 'listkeys': self.listKeys, 'list-keys': self.listKeys, - 'addmsg': self.addMessage, - 'addmessage': self.addMessage, - 'add-msg': self.addMessage, - 'add-message': self.addMessage, - 'pm': self.sendEncrypt, - - 'getpms': self.getPMs, - 'get-pms': self.getPMs, - 'addpeer': self.addPeer, 'add-peer': self.addPeer, 'add-address': self.addAddress, @@ -226,9 +216,6 @@ class Onionr: 'create-plugin': 'Creates directory structure for a plugin', 'add-peer': 'Adds a peer to database', 'list-peers': 'Displays a list of peers', - 'add-msg': 'Broadcasts a message to the Onionr network', - 'pm': 'Adds a private message to block', - 'get-pms': 'Shows private messages sent to you', 'add-file': 'Create an Onionr block from a file', 'import-blocks': 'import blocks from the disk (Onionr is transport-agnostic!)', 'listconn': 'list connected peers', @@ -341,32 +328,6 @@ class Onionr: logger.info('Sending kex to command queue...') self.onionrCore.daemonQueueAdd('kex') - def sendEncrypt(self): - ''' - Create a private message and send it - ''' - - invalidID = True - while invalidID: - try: - peer = logger.readline('Peer to send to: ') - except KeyboardInterrupt: - break - else: - if self.onionrUtils.validatePubKey(peer): - invalidID = False - else: - logger.error('Invalid peer ID') - else: - try: - message = logger.readline("Enter a message: ") - except KeyboardInterrupt: - pass - else: - logger.info("Sending message to: " + logger.colors.underline + peer) - self.onionrUtils.sendPM(peer, message) - - def listKeys(self): ''' Displays a list of keys (used to be called peers) (?) @@ -447,13 +408,6 @@ class Onionr: logger.error('Failed to insert block.', timestamp = False) return - def getPMs(self): - ''' - display PMs sent to us - ''' - - self.onionrUtils.loadPMs() - def enablePlugin(self): ''' Enables and starts the given plugin diff --git a/onionr/onionrutils.py b/onionr/onionrutils.py index dc1c1e49..6d2922a9 100644 --- a/onionr/onionrutils.py +++ b/onionr/onionrutils.py @@ -431,52 +431,6 @@ class OnionrUtils: except: return False - def loadPMs(self): - ''' - Find, decrypt, and return array of PMs (array of dictionary, {from, text}) - ''' - blocks = Block.getBlocks(type = 'pm', core = self._core) - message = '' - sender = '' - for i in blocks: - try: - blockContent = i.getContent() - - try: - message = self._core._crypto.pubKeyDecrypt(blockContent, encodedData=True, anonymous=True) - except nacl.exceptions.CryptoError as e: - pass - else: - try: - message = message.decode() - except AttributeError: - pass - - try: - message = json.loads(message) - except json.decoder.JSONDecodeError: - pass - else: - logger.debug('Decrypted %s:' % i.getHash()) - logger.info(message["msg"]) - - signer = message["id"] - sig = message["sig"] - - if self.validatePubKey(signer): - if self._core._crypto.edVerify(message["msg"], signer, sig, encodedData=True): - logger.info("Good signature by %s" % signer) - else: - logger.warn("Bad signature by %s" % signer) - else: - logger.warn('Bad sender id: %s' % signer) - - except FileNotFoundError: - pass - except Exception as error: - logger.error('Failed to open block %s.' % i, error=error) - return - def getPeerByHashId(self, hash): ''' Return the pubkey of the user if known from the hash diff --git a/onionr/onionrvalues.py b/onionr/onionrvalues.py index b8c36b05..3f806702 100644 --- a/onionr/onionrvalues.py +++ b/onionr/onionrvalues.py @@ -21,4 +21,4 @@ class OnionrValues: def __init__(self): self.passwordLength = 20 - self.blockMetadataLengths = {'meta': 1000, 'sig': 88, 'signer': 64, 'time': 10, 'powRandomToken': 1000, 'encryptType': 4} \ No newline at end of file + self.blockMetadataLengths = {'meta': 1000, 'sig': 200, 'signer': 200, 'time': 10, 'powRandomToken': 1000, 'encryptType': 4} #TODO properly refine values to minimum needed \ No newline at end of file diff --git a/onionr/static-data/default-plugins/gui/info.json b/onionr/static-data/default-plugins/gui/info.json deleted file mode 100644 index 83d4489a..00000000 --- a/onionr/static-data/default-plugins/gui/info.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name" : "gui", - "version" : "1.0", - "author" : "onionr" -} diff --git a/onionr/static-data/default-plugins/gui/main.py b/onionr/static-data/default-plugins/gui/main.py deleted file mode 100644 index 07e5a76e..00000000 --- a/onionr/static-data/default-plugins/gui/main.py +++ /dev/null @@ -1,135 +0,0 @@ -#!/usr/bin/python -''' - Onionr - P2P Microblogging Platform & Social network - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -''' - -# Imports some useful libraries -import logger, config, core -import os, sqlite3, threading -from onionrblockapi import Block - -plugin_name = 'gui' - -def send(): - global message - block = Block() - block.setType('txt') - block.setContent(message) - logger.debug('Sent message in block %s.' % block.save(sign = True)) - - -def sendMessage(): - global sendEntry - - global message - message = sendEntry.get() - - t = threading.Thread(target = send) - t.start() - - sendEntry.delete(0, len(message)) - -def update(): - global listedBlocks, listbox, runningCheckDelayCount, runningCheckDelay, root, daemonStatus - - for i in Block.getBlocks(type = 'txt'): - if i.getContent().strip() == '' or i.getHash() in listedBlocks: - continue - listbox.insert(99999, str(i.getContent())) - listedBlocks.append(i.getHash()) - listbox.see(99999) - - runningCheckDelayCount += 1 - - if runningCheckDelayCount == runningCheckDelay: - resp = pluginapi.daemon.local_command('ping') - if resp == 'pong': - daemonStatus.config(text = "Onionr Daemon Status: Running") - else: - daemonStatus.config(text = "Onionr Daemon Status: Not Running") - runningCheckDelayCount = 0 - root.after(10000, update) - - -def reallyOpenGUI(): - import tkinter - global root, runningCheckDelay, runningCheckDelayCount, scrollbar, listedBlocks, nodeInfo, keyInfo, idText, idEntry, pubKeyEntry, listbox, daemonStatus, sendEntry - - root = tkinter.Tk() - - root.title("Onionr GUI") - - runningCheckDelay = 5 - runningCheckDelayCount = 4 - - scrollbar = tkinter.Scrollbar(root) - scrollbar.pack(side=tkinter.RIGHT, fill=tkinter.Y) - - listedBlocks = [] - - nodeInfo = tkinter.Frame(root) - keyInfo = tkinter.Frame(root) - - hostname = pluginapi.get_onionr().get_hostname() - logger.debug('Onionr Hostname: %s' % hostname) - idText = hostname - - idEntry = tkinter.Entry(nodeInfo) - tkinter.Label(nodeInfo, text = "Node Address: ").pack(side=tkinter.LEFT) - idEntry.pack() - idEntry.insert(0, idText.strip()) - idEntry.configure(state="readonly") - - nodeInfo.pack() - - pubKeyEntry = tkinter.Entry(keyInfo) - - tkinter.Label(keyInfo, text="Public key: ").pack(side=tkinter.LEFT) - - pubKeyEntry.pack() - pubKeyEntry.insert(0, pluginapi.get_core()._crypto.pubKey) - pubKeyEntry.configure(state="readonly") - - keyInfo.pack() - - sendEntry = tkinter.Entry(root) - sendBtn = tkinter.Button(root, text='Send Message', command=sendMessage) - sendEntry.pack(side=tkinter.TOP, pady=5) - sendBtn.pack(side=tkinter.TOP) - - listbox = tkinter.Listbox(root, yscrollcommand=tkinter.Scrollbar.set, height=15) - - listbox.pack(fill=tkinter.BOTH, pady=25) - - daemonStatus = tkinter.Label(root, text="Onionr Daemon Status: unknown") - daemonStatus.pack() - - scrollbar.config(command=tkinter.Listbox.yview) - root.after(2000, update) - root.mainloop() - -def openGUI(): - t = threading.Thread(target = reallyOpenGUI) - t.daemon = False - t.start() - -def on_init(api, data = None): - global pluginapi - pluginapi = api - - api.commands.register(['gui', 'launch-gui', 'open-gui'], openGUI) - api.commands.register_help('gui', 'Opens a graphical interface for Onionr') - - return