progress in removing core
parent
f843ccc3b2
commit
50a8e8958a
|
@ -23,6 +23,7 @@ from gevent.pywsgi import WSGIServer
|
||||||
from onionrutils import epoch
|
from onionrutils import epoch
|
||||||
import httpapi, filepaths, logger
|
import httpapi, filepaths, logger
|
||||||
from . import register_private_blueprints
|
from . import register_private_blueprints
|
||||||
|
import serializeddata
|
||||||
class PrivateAPI:
|
class PrivateAPI:
|
||||||
'''
|
'''
|
||||||
Client HTTP api
|
Client HTTP api
|
||||||
|
@ -40,6 +41,7 @@ class PrivateAPI:
|
||||||
config = onionrInst.config
|
config = onionrInst.config
|
||||||
self.config = config
|
self.config = config
|
||||||
self.debug = debug
|
self.debug = debug
|
||||||
|
self.serializer = serializeddata.SerializedData(onionrInst)
|
||||||
self.startTime = epoch.get_epoch()
|
self.startTime = epoch.get_epoch()
|
||||||
app = flask.Flask(__name__)
|
app = flask.Flask(__name__)
|
||||||
bindPort = int(config.get('client.client.port', 59496))
|
bindPort = int(config.get('client.client.port', 59496))
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
'''
|
'''
|
||||||
from flask import Response, Blueprint, request, send_from_directory, abort
|
from flask import Response, Blueprint, request, send_from_directory, abort
|
||||||
from httpapi import apiutils
|
from httpapi import apiutils
|
||||||
|
import onionrcrypto
|
||||||
|
pub_key = onionrcrypto.pub_key
|
||||||
class PrivateEndpoints:
|
class PrivateEndpoints:
|
||||||
def __init__(self, client_api):
|
def __init__(self, client_api):
|
||||||
private_endpoints_bp = Blueprint('privateendpoints', __name__)
|
private_endpoints_bp = Blueprint('privateendpoints', __name__)
|
||||||
|
@ -105,7 +107,7 @@ class PrivateEndpoints:
|
||||||
|
|
||||||
@private_endpoints_bp.route('/getActivePubkey')
|
@private_endpoints_bp.route('/getActivePubkey')
|
||||||
def getActivePubkey():
|
def getActivePubkey():
|
||||||
return Response(onionrcrypto.OnionrCrypto().pubKey)
|
return Response(pub_key)
|
||||||
|
|
||||||
@private_endpoints_bp.route('/getHumanReadable/<name>')
|
@private_endpoints_bp.route('/getHumanReadable/<name>')
|
||||||
def getHumanReadable(name):
|
def getHumanReadable(name):
|
||||||
|
|
|
@ -236,7 +236,7 @@ class Onionr:
|
||||||
commands.onionrstatistics.show_peers(self)
|
commands.onionrstatistics.show_peers(self)
|
||||||
|
|
||||||
def listPeers(self):
|
def listPeers(self):
|
||||||
logger.info('Peer transport address list:')
|
logger.info('Peer transport address list:', terminal=True)
|
||||||
for i in keydb.listkeys.list_adders():
|
for i in keydb.listkeys.list_adders():
|
||||||
logger.info(i, terminal=True)
|
logger.info(i, terminal=True)
|
||||||
|
|
||||||
|
@ -354,8 +354,7 @@ class Onionr:
|
||||||
'''
|
'''
|
||||||
Displays a message suggesting help
|
Displays a message suggesting help
|
||||||
'''
|
'''
|
||||||
if __name__ == '__main__':
|
logger.info('Do ' + logger.colors.bold + sys.argv[0] + ' --help' + logger.colors.reset + logger.colors.fg.green + ' for Onionr help.', terminal=True)
|
||||||
logger.info('Do ' + logger.colors.bold + sys.argv[0] + ' --help' + logger.colors.reset + logger.colors.fg.green + ' for Onionr help.', terminal=True)
|
|
||||||
|
|
||||||
def start(self, input = False, override = False):
|
def start(self, input = False, override = False):
|
||||||
'''
|
'''
|
||||||
|
|
|
@ -39,7 +39,6 @@ def __event_caller(event_name, data = {}, onionr = None):
|
||||||
logger.warn('Event "%s" failed for plugin "%s".' % (event_name, plugin), terminal=True)
|
logger.warn('Event "%s" failed for plugin "%s".' % (event_name, plugin), terminal=True)
|
||||||
logger.debug(str(e), terminal=True)
|
logger.debug(str(e), terminal=True)
|
||||||
|
|
||||||
|
|
||||||
def event(event_name, data = {}, onionr = None, threaded = True):
|
def event(event_name, data = {}, onionr = None, threaded = True):
|
||||||
'''
|
'''
|
||||||
Calls an event on all plugins (if defined)
|
Calls an event on all plugins (if defined)
|
||||||
|
@ -62,12 +61,11 @@ def call(plugin, event_name, data = None, pluginapi = None):
|
||||||
attribute = 'on_' + str(event_name).lower()
|
attribute = 'on_' + str(event_name).lower()
|
||||||
|
|
||||||
if hasattr(plugin, attribute):
|
if hasattr(plugin, attribute):
|
||||||
#logger.debug('Calling event ' + str(event_name))
|
|
||||||
getattr(plugin, attribute)(pluginapi, data)
|
getattr(plugin, attribute)(pluginapi, data)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(str(e))
|
logger.error(str(e), terminal=True)
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
return True
|
return True
|
||||||
|
|
|
@ -92,8 +92,6 @@ class CommandAPI:
|
||||||
for name in names:
|
for name in names:
|
||||||
self.pluginapi.get_onionr().addCommand(name, call)
|
self.pluginapi.get_onionr().addCommand(name, call)
|
||||||
|
|
||||||
return
|
|
||||||
|
|
||||||
def unregister(self, names):
|
def unregister(self, names):
|
||||||
if isinstance(names, str):
|
if isinstance(names, str):
|
||||||
names = [names]
|
names = [names]
|
||||||
|
|
|
@ -19,14 +19,16 @@
|
||||||
'''
|
'''
|
||||||
import onionrblockapi
|
import onionrblockapi
|
||||||
from coredb import blockmetadb
|
from coredb import blockmetadb
|
||||||
def load_inbox(myCore):
|
import filepaths
|
||||||
|
import deadsimplekv as simplekv
|
||||||
|
def load_inbox():
|
||||||
inbox_list = []
|
inbox_list = []
|
||||||
deleted = myCore.keyStore.get('deleted_mail')
|
deleted = simplekv.DeadSimpleKV(filepaths.cached_storage).get('deleted_mail')
|
||||||
if deleted is None:
|
if deleted is None:
|
||||||
deleted = []
|
deleted = []
|
||||||
|
|
||||||
for blockHash in blockmetadb.get_blocks_by_type('pm'):
|
for blockHash in blockmetadb.get_blocks_by_type('pm'):
|
||||||
block = onionrblockapi.Block(blockHash, core=myCore)
|
block = onionrblockapi.Block(blockHash)
|
||||||
block.decrypt()
|
block.decrypt()
|
||||||
if block.decrypted and blockHash not in deleted:
|
if block.decrypted and blockHash not in deleted:
|
||||||
inbox_list.append(blockHash)
|
inbox_list.append(blockHash)
|
||||||
|
|
|
@ -19,15 +19,15 @@
|
||||||
'''
|
'''
|
||||||
import sys, os, json
|
import sys, os, json
|
||||||
from flask import Response, request, redirect, Blueprint, abort
|
from flask import Response, request, redirect, Blueprint, abort
|
||||||
import core
|
|
||||||
from onionrusers import contactmanager
|
from onionrusers import contactmanager
|
||||||
from onionrutils import stringvalidators
|
from onionrutils import stringvalidators
|
||||||
|
import filepaths
|
||||||
|
import deadsimplekv as simplekv
|
||||||
sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)))
|
sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)))
|
||||||
import loadinbox, sentboxdb
|
import loadinbox, sentboxdb
|
||||||
|
|
||||||
flask_blueprint = Blueprint('mail', __name__)
|
flask_blueprint = Blueprint('mail', __name__)
|
||||||
c = core.Core()
|
kv = simplekv.DeadSimpleKV(filepaths.cached_storage)
|
||||||
kv = c.keyStore
|
|
||||||
|
|
||||||
@flask_blueprint.route('/mail/ping')
|
@flask_blueprint.route('/mail/ping')
|
||||||
def mail_ping():
|
def mail_ping():
|
||||||
|
@ -48,12 +48,12 @@ def mail_delete(block):
|
||||||
|
|
||||||
@flask_blueprint.route('/mail/getinbox')
|
@flask_blueprint.route('/mail/getinbox')
|
||||||
def list_inbox():
|
def list_inbox():
|
||||||
return ','.join(loadinbox.load_inbox(c))
|
return ','.join(loadinbox.load_inbox())
|
||||||
|
|
||||||
@flask_blueprint.route('/mail/getsentbox')
|
@flask_blueprint.route('/mail/getsentbox')
|
||||||
def list_sentbox():
|
def list_sentbox():
|
||||||
kv.refresh()
|
kv.refresh()
|
||||||
sentbox_list = sentboxdb.SentBox(c).listSent()
|
sentbox_list = sentboxdb.SentBox().listSent()
|
||||||
list_copy = list(sentbox_list)
|
list_copy = list(sentbox_list)
|
||||||
deleted = kv.get('deleted_mail')
|
deleted = kv.get('deleted_mail')
|
||||||
if deleted is None:
|
if deleted is None:
|
||||||
|
@ -62,5 +62,5 @@ def list_sentbox():
|
||||||
if x['hash'] in deleted:
|
if x['hash'] in deleted:
|
||||||
sentbox_list.remove(x)
|
sentbox_list.remove(x)
|
||||||
continue
|
continue
|
||||||
x['name'] = contactmanager.ContactManager(c, x['peer'], saveUser=False).get_info('name')
|
x['name'] = contactmanager.ContactManager(x['peer'], saveUser=False).get_info('name')
|
||||||
return json.dumps(sentbox_list)
|
return json.dumps(sentbox_list)
|
||||||
|
|
|
@ -25,7 +25,6 @@ import onionrexceptions
|
||||||
from onionrusers import onionrusers
|
from onionrusers import onionrusers
|
||||||
from onionrutils import stringvalidators, escapeansi, bytesconverter
|
from onionrutils import stringvalidators, escapeansi, bytesconverter
|
||||||
import locale, sys, os, json
|
import locale, sys, os, json
|
||||||
from coredb import blockmetadb
|
|
||||||
|
|
||||||
locale.setlocale(locale.LC_ALL, '')
|
locale.setlocale(locale.LC_ALL, '')
|
||||||
|
|
||||||
|
@ -35,7 +34,7 @@ PLUGIN_VERSION = '0.0.1'
|
||||||
sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)))
|
sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)))
|
||||||
import sentboxdb, mailapi, loadinbox # import after path insert
|
import sentboxdb, mailapi, loadinbox # import after path insert
|
||||||
flask_blueprint = mailapi.flask_blueprint
|
flask_blueprint = mailapi.flask_blueprint
|
||||||
|
"""
|
||||||
def draw_border(text):
|
def draw_border(text):
|
||||||
# This function taken from https://stackoverflow.com/a/20757491 by https://stackoverflow.com/users/816449/bunyk, under https://creativecommons.org/licenses/by-sa/3.0/
|
# This function taken from https://stackoverflow.com/a/20757491 by https://stackoverflow.com/users/816449/bunyk, under https://creativecommons.org/licenses/by-sa/3.0/
|
||||||
lines = text.splitlines()
|
lines = text.splitlines()
|
||||||
|
@ -62,10 +61,9 @@ class MailStrings:
|
||||||
|
|
||||||
class OnionrMail:
|
class OnionrMail:
|
||||||
def __init__(self, pluginapi):
|
def __init__(self, pluginapi):
|
||||||
self.myCore = pluginapi.get_core()
|
|
||||||
self.strings = MailStrings(self)
|
self.strings = MailStrings(self)
|
||||||
|
|
||||||
self.sentboxTools = sentboxdb.SentBox(self.myCore)
|
self.sentboxTools = sentboxdb.SentBox()
|
||||||
self.sentboxList = []
|
self.sentboxList = []
|
||||||
self.sentMessages = {}
|
self.sentMessages = {}
|
||||||
self.doSigs = True
|
self.doSigs = True
|
||||||
|
@ -293,7 +291,7 @@ class OnionrMail:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
logger.warn('Invalid choice.', terminal=True)
|
logger.warn('Invalid choice.', terminal=True)
|
||||||
return
|
return """
|
||||||
|
|
||||||
def add_deleted(keyStore, bHash):
|
def add_deleted(keyStore, bHash):
|
||||||
existing = keyStore.get('deleted_mail')
|
existing = keyStore.get('deleted_mail')
|
||||||
|
@ -318,7 +316,5 @@ def on_init(api, data = None):
|
||||||
'''
|
'''
|
||||||
|
|
||||||
pluginapi = api
|
pluginapi = api
|
||||||
mail = OnionrMail(pluginapi)
|
|
||||||
api.commands.register(['mail'], mail.menu)
|
|
||||||
api.commands.register_help('mail', 'Interact with OnionrMail')
|
|
||||||
return
|
return
|
||||||
|
|
|
@ -18,15 +18,13 @@
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
'''
|
'''
|
||||||
import sqlite3, os
|
import sqlite3, os
|
||||||
import core
|
|
||||||
from onionrutils import epoch
|
from onionrutils import epoch
|
||||||
|
from utils import identifyhome
|
||||||
class SentBox:
|
class SentBox:
|
||||||
def __init__(self, mycore):
|
def __init__(self):
|
||||||
assert isinstance(mycore, core.Core)
|
self.dbLocation = identifyhome.identify_home() + '/sentbox.db'
|
||||||
self.dbLocation = mycore.dataDir + 'sentbox.db'
|
|
||||||
if not os.path.exists(self.dbLocation):
|
if not os.path.exists(self.dbLocation):
|
||||||
self.createDB()
|
self.createDB()
|
||||||
self.core = mycore
|
|
||||||
return
|
return
|
||||||
|
|
||||||
def connect(self):
|
def connect(self):
|
||||||
|
|
Loading…
Reference in New Issue