def main(self): global notificationicon, winfolders from lib import notificationicon, winfolders import gevent.threadpool self.main = sys.modules["main"] fs_encoding = sys.getfilesystemencoding() icon = notificationicon.NotificationIcon( os.path.join(os.path.dirname(os.path.abspath(__file__).decode(fs_encoding)), 'trayicon.ico'), "ZeroNet %s" % config.version ) self.icon = icon if not config.debug: # Hide console if not in debug mode notificationicon.hideConsole() self.console = False else: self.console = True @atexit.register def hideIcon(): icon.die() ui_ip = config.ui_ip if config.ui_ip != "*" else "127.0.0.1" icon.items = [ (self.titleIp, False), (self.titleConnections, False), (self.titleTransfer, False), (self.titleConsole, self.toggleConsole), (self.titleAutorun, self.toggleAutorun), "--", (_["ZeroNet Twitter"], lambda: self.opensite("https://twitter.com/HelloZeroNet")), (_["ZeroNet Reddit"], lambda: self.opensite("http://www.reddit.com/r/zeronet/")), (_["ZeroNet Github"], lambda: self.opensite("https://github.com/HelloZeroNet/ZeroNet")), (_["Report bug/request feature"], lambda: self.opensite("https://github.com/HelloZeroNet/ZeroNet/issues")), "--", (_["!Open ZeroNet"], lambda: self.opensite("http://%s:%s/%s" % (ui_ip, config.ui_port, config.homepage))), "--", (_["Quit"], self.quit), ] if not notificationicon.hasConsole(): del icon.items[3] icon.clicked = lambda: self.opensite("http://%s:%s/%s" % (ui_ip, config.ui_port, config.homepage)) self.quit_servers_event = gevent.threadpool.ThreadResult( lambda res: gevent.spawn_later(0.1, self.quitServers), gevent.threadpool.get_hub(), lambda: True ) # Fix gevent thread switch error gevent.threadpool.start_new_thread(icon._run, ()) # Start in real thread (not gevent compatible) super(ActionsPlugin, self).main() icon._die = True
def main(self): global notificationicon, winfolders from lib import notificationicon, winfolders import gevent.threadpool self.main = sys.modules["main"] fs_encoding = sys.getfilesystemencoding() icon = notificationicon.NotificationIcon( os.path.join(os.path.dirname(os.path.abspath(__file__).decode(fs_encoding)), 'trayicon.ico'), "Ainkuraddo %s" % config.version ) self.icon = icon if not config.debug: # Hide console if not in debug mode notificationicon.hideConsole() self.console = False else: self.console = True @atexit.register def hideIcon(): icon.die() ui_ip = config.ui_ip if config.ui_ip != "*" else "127.0.0.1" icon.items = [ (self.titleIp, False), (self.titleConnections, False), (self.titleTransfer, False), (self.titleConsole, self.toggleConsole), (self.titleAutorun, self.toggleAutorun), "--", (_["Ainkuraddo Twitter"], lambda: self.opensite("https://twitter.com/Ainkuraddo")), (_["Ainkuraddo Reddit"], lambda: self.opensite("http://www.reddit.com/r/ainkuraddo/")), (_["Ainkuraddo Github"], lambda: self.opensite("https://github.com/Ainkuraddo/Ainkuraddo")), (_["Report bug/request feature"], lambda: self.opensite("https://github.com/Ainkuraddo/Ainkuraddo/issues")), "--", (_["!Open Ainkuraddo"], lambda: self.opensite("http://%s:%s/%s" % (ui_ip, config.ui_port, config.homepage))), "--", (_["Quit"], self.quit), ] if not notificationicon.hasConsole(): del icon.items[3] icon.clicked = lambda: self.opensite("http://%s:%s/%s" % (ui_ip, config.ui_port, config.homepage)) self.quit_servers_event = gevent.threadpool.ThreadResult( lambda res: gevent.spawn_later(0.1, self.quitServers), gevent.threadpool.get_hub(), lambda: True ) # Fix gevent thread switch error gevent.threadpool.start_new_thread(icon._run, ()) # Start in real thread (not gevent compatible) super(ActionsPlugin, self).main() icon._die = True