lbry-sdk/packaging/osx/lbry-osx-app/lbrygui/LBRYApp.py

72 lines
2.3 KiB
Python
Raw Normal View History

import AppKit
import webbrowser
import sys
import logging
import platform
from twisted.internet import reactor
2016-10-29 00:55:34 +02:00
from lbrynet.lbrynet_daemon import DaemonControl
from lbrynet import analytics
from lbrynet import conf
from lbrynet.core import utils
if platform.mac_ver()[0] >= "10.10":
from LBRYNotify import LBRYNotify
2016-11-03 20:22:16 +01:00
log = logging.getLogger(__name__)
def test_internet_connection():
return utils.check_connection()
class LBRYDaemonApp(AppKit.NSApplication):
def finishLaunching(self):
self.connection = False
statusbar = AppKit.NSStatusBar.systemStatusBar()
self.statusitem = statusbar.statusItemWithLength_(AppKit.NSVariableStatusItemLength)
self.icon = AppKit.NSImage.alloc().initByReferencingFile_(conf.settings.ICON_PATH)
self.icon.setScalesWhenResized_(True)
self.icon.setSize_((20, 20))
self.statusitem.setImage_(self.icon)
self.menubarMenu = AppKit.NSMenu.alloc().init()
2016-11-03 22:57:42 +01:00
self.open = AppKit.NSMenuItem.alloc().initWithTitle_action_keyEquivalent_(
"Open", "openui:", "")
self.menubarMenu.addItem_(self.open)
2016-11-03 22:57:42 +01:00
self.quit = AppKit.NSMenuItem.alloc().initWithTitle_action_keyEquivalent_(
"Quit", "applicationShouldTerminate:", "")
self.menubarMenu.addItem_(self.quit)
self.statusitem.setMenu_(self.menubarMenu)
self.statusitem.setToolTip_(conf.settings.APP_NAME)
if test_internet_connection():
notify("Starting LBRY")
else:
notify("LBRY needs an internet connection to start, try again when one is available")
sys.exit(0)
DaemonControl.start_server_and_listen(
launchui=True, use_auth=False,
analytics_manager=analytics.Manager.new_instance()
)
def openui_(self, sender):
webbrowser.open(conf.settings.UI_ADDRESS)
2016-12-01 00:05:01 +01:00
# this code is from the example
# https://pythonhosted.org/pyobjc/examples/Cocoa/Twisted/WebServicesTool/index.html
2016-11-03 22:57:29 +01:00
def applicationShouldTerminate_(self, sender):
if reactor.running:
log.info('Stopping twisted event loop')
notify("Goodbye!")
reactor.stop()
return False
return True
def notify(msg):
if platform.mac_ver()[0] >= "10.10":
LBRYNotify(msg)