update daemon

This commit is contained in:
Jack 2016-02-29 13:25:47 -05:00
parent 6633370a34
commit 6f1ee78623
4 changed files with 64 additions and 34 deletions

View file

@ -1,3 +1,22 @@
import os
import sys
import json
import binascii
import webbrowser
import xmlrpclib
import subprocess
import logging
import argparse
from twisted.web import xmlrpc, server
from twisted.internet import defer, threads, reactor, error
from datetime import datetime
from decimal import Decimal
from StringIO import StringIO
from zipfile import ZipFile
from urllib import urlopen
from lbrynet.core.PaymentRateManager import PaymentRateManager from lbrynet.core.PaymentRateManager import PaymentRateManager
from lbrynet.core.server.BlobAvailabilityHandler import BlobAvailabilityHandlerFactory from lbrynet.core.server.BlobAvailabilityHandler import BlobAvailabilityHandlerFactory
from lbrynet.core.server.BlobRequestHandler import BlobRequestHandlerFactory from lbrynet.core.server.BlobRequestHandler import BlobRequestHandlerFactory
@ -18,15 +37,7 @@ from lbrynet.core.PTCWallet import PTCWallet
from lbrynet.core.LBRYcrdWallet import LBRYcrdWallet, LBRYumWallet from lbrynet.core.LBRYcrdWallet import LBRYcrdWallet, LBRYumWallet
from lbrynet.lbryfilemanager.LBRYFileManager import LBRYFileManager from lbrynet.lbryfilemanager.LBRYFileManager import LBRYFileManager
from lbrynet.lbryfile.LBRYFileMetadataManager import DBLBRYFileMetadataManager, TempLBRYFileMetadataManager from lbrynet.lbryfile.LBRYFileMetadataManager import DBLBRYFileMetadataManager, TempLBRYFileMetadataManager
from twisted.web import xmlrpc, server
from twisted.internet import defer, threads, reactor, error
from datetime import datetime
from decimal import Decimal
from StringIO import StringIO
from zipfile import ZipFile
from urllib import urlopen
import os, sys, json, binascii, webbrowser, xmlrpclib, subprocess, logging, argparse
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
# logging.basicConfig(level=logging.DEBUG) # logging.basicConfig(level=logging.DEBUG)
@ -138,9 +149,8 @@ class LBRYDaemon(xmlrpc.XMLRPC):
d.addCallback(lambda _: self._setup_lbry_file_opener()) d.addCallback(lambda _: self._setup_lbry_file_opener())
d.addCallback(lambda _: self._setup_query_handlers()) d.addCallback(lambda _: self._setup_query_handlers())
d.addCallback(lambda _: self._setup_server()) d.addCallback(lambda _: self._setup_server())
if sys.platform == "darwin": d.addCallback(lambda _: self._update() if self.check_for_updates == "True" and sys.platform == "darwin"
d.addCallback(lambda _: self._update() if self.check_for_updates == "True" else defer.succeed(None)) else defer.succeed(None))
# d.addCallback(lambda _: defer.succeed(self.status_app.run()))
d.addCallback(lambda _: self._setup_fetcher()) d.addCallback(lambda _: self._setup_fetcher())
d.addCallback(lambda _: _disp_startup()) d.addCallback(lambda _: _disp_startup())
d.callback(None) d.callback(None)
@ -218,8 +228,7 @@ class LBRYDaemon(xmlrpc.XMLRPC):
d = _check_for_updater() d = _check_for_updater()
d.addCallback(lambda _: _update_lbrynet()) d.addCallback(lambda _: _update_lbrynet())
d.addCallback(lambda _: _update_lbrycrdd()) d.addCallback(lambda _: _update_lbrycrdd() if self.wallet_type == 'lbrycrd' else _update_lbryum())
d.addCallback(lambda _: _update_lbryum())
d.addCallback(lambda _: os.system("open /Applications/LBRY\ Updater.app &>/dev/null") if self.restart_message d.addCallback(lambda _: os.system("open /Applications/LBRY\ Updater.app &>/dev/null") if self.restart_message
else defer.succeed(None)) else defer.succeed(None))
d.addCallbacks(lambda _: self._restart() if self.restart_message else defer.succeed(None)) d.addCallbacks(lambda _: self._restart() if self.restart_message else defer.succeed(None))
@ -1071,6 +1080,27 @@ class LBRYDaemon(xmlrpc.XMLRPC):
return message return message
def xmlrpc_start_status_bar_app(self):
if sys.platform == 'darwin':
subprocess.Popen("screen -dmS lbry-status bash -c 'lbrynet-daemon-status --startdaemon=False'", shell=True)
return "Started"
else:
return "Status bar not implemented on non OS X"
def stop():
daemon = xmlrpclib.ServerProxy("http://localhost:7080/")
try:
status = daemon.is_running()
except:
status = False
if status:
daemon.stop()
print "LBRYnet daemon stopped"
else:
print "LBRYnet daemon wasn't running"
def main(): def main():
parser = argparse.ArgumentParser(description="Launch lbrynet-daemon") parser = argparse.ArgumentParser(description="Launch lbrynet-daemon")
@ -1096,5 +1126,6 @@ def main():
reactor.listenTCP(7080, server.Site(daemon), interface='localhost') reactor.listenTCP(7080, server.Site(daemon), interface='localhost')
reactor.run() reactor.run()
if __name__ == '__main__': if __name__ == '__main__':
main() main()

View file

@ -1,18 +0,0 @@
import xmlrpclib
def main():
daemon = xmlrpclib.ServerProxy("http://localhost:7080/")
try:
status = daemon.is_running()
except:
status = False
if status:
daemon.stop()
print "LBRYnet daemon stopped"
else:
print "LBRYnet daemon wasn't running"
if __name__ == '__main__':
main()

View file

@ -3,11 +3,19 @@ import xmlrpclib
import os import os
import webbrowser import webbrowser
import subprocess import subprocess
import argparse
class DaemonStatusBarApp(rumps.App): class DaemonStatusBarApp(rumps.App):
def __init__(self): def __init__(self):
icon_path = os.path.join(os.path.expanduser("~"), "Downloads/lbryio/web/img/fav/apple-touch-icon.png") #detect if being run as root, if so find the correct icon path
if os.path.expanduser("~") != '/var/root':
icon_path = os.path.join(os.path.expanduser("~"), "Downloads/lbryio/web/img/fav/apple-touch-icon.png")
else:
icon_path = os.path.join("/Users",
subprocess.check_output('echo $SUDO_USER', shell=True)[:-1],
"Downloads/lbryio/web/img/fav/apple-touch-icon.png")
if os.path.isfile(icon_path): if os.path.isfile(icon_path):
rumps.App.__init__(self, name="LBRY", icon=icon_path, quit_button=None, rumps.App.__init__(self, name="LBRY", icon=icon_path, quit_button=None,
menu=["Open", "Preferences", "View balance", "Quit"]) menu=["Open", "Preferences", "View balance", "Quit"])
@ -64,7 +72,16 @@ class DaemonStatusBarApp(rumps.App):
def main(): def main():
subprocess.Popen("screen -dmS lbry bash -c 'lbrynet-daemon --update=False'", shell=True) parser = argparse.ArgumentParser(description="Launch lbrynet status bar application")
parser.add_argument("--startdaemon",
help="true or false, default true",
type=str,
default="true")
args = parser.parse_args()
if args.startdaemon.lower() == "true":
subprocess.Popen("screen -dmS lbrynet bash -c 'lbrynet-daemon'", shell=True)
status_app = DaemonStatusBarApp() status_app = DaemonStatusBarApp()
status_app.run() status_app.run()

View file

@ -16,7 +16,7 @@ console_scripts = ['lbrynet-console = lbrynet.lbrynet_console.LBRYConsole:launch
'lbrynet-lookup-hosts-for-hash = lbrynet.dht_scripts:get_hosts_for_hash_in_dht', 'lbrynet-lookup-hosts-for-hash = lbrynet.dht_scripts:get_hosts_for_hash_in_dht',
'lbrynet-announce_hash_to_dht = lbrynet.dht_scripts:announce_hash_to_dht', 'lbrynet-announce_hash_to_dht = lbrynet.dht_scripts:announce_hash_to_dht',
'lbrynet-daemon = lbrynet.lbrynet_daemon.LBRYDaemon:main', 'lbrynet-daemon = lbrynet.lbrynet_daemon.LBRYDaemon:main',
'stop-lbrynet-daemon = lbrynet.lbrynet_daemon.LBRYDaemonStopper:main'] 'stop-lbrynet-daemon = lbrynet.lbrynet_daemon.LBRYDaemon:stop']
if sys.platform == 'darwin': if sys.platform == 'darwin':
console_scripts.append('lbrynet-daemon-status = lbrynet.lbrynet_daemon.LBRYOSXStatusBar:main') console_scripts.append('lbrynet-daemon-status = lbrynet.lbrynet_daemon.LBRYOSXStatusBar:main')