lbry-sdk/lbrynet/lbrynet_daemon/Apps/LBRYURIHandler.py

61 lines
1.7 KiB
Python
Raw Normal View History

2016-03-03 00:16:51 -05:00
import os
import json
import webbrowser
import subprocess
2016-03-24 20:46:24 -04:00
import sys
2016-03-03 00:16:51 -05:00
2016-03-24 20:46:24 -04:00
from time import sleep
from jsonrpc.proxy import JSONRPCProxy
API_CONNECTION_STRING = "http://localhost:5279/lbryapi"
UI_ADDRESS = "http://localhost:5279"
2016-03-03 00:16:51 -05:00
class LBRYURIHandler(object):
def __init__(self):
self.started_daemon = False
self.daemon = JSONRPCProxy.from_url(API_CONNECTION_STRING)
2016-03-03 00:16:51 -05:00
def handle_osx(self, lbry_name):
try:
status = self.daemon.is_running()
except:
os.system("open /Applications/LBRY.app")
sleep(3)
2016-03-03 00:16:51 -05:00
if lbry_name == "lbry" or lbry_name == "":
webbrowser.open(UI_ADDRESS)
2016-03-03 00:16:51 -05:00
else:
2016-04-26 19:48:43 -04:00
webbrowser.open(UI_ADDRESS + "/?watch=" + lbry_name)
def handle_linux(self, lbry_name):
try:
status = self.daemon.is_running()
except:
cmd = r'DIR = "$( cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd )"' \
r'if [-z "$(pgrep lbrynet-daemon)"]; then' \
r'echo "running lbrynet-daemon..."' \
r'$DIR / lbrynet - daemon &' \
r'sleep 3 # let the daemon load before connecting' \
r'fi'
subprocess.Popen(cmd, shell=True)
if lbry_name == "lbry" or lbry_name == "":
webbrowser.open(UI_ADDRESS)
else:
2016-04-26 19:48:43 -04:00
webbrowser.open(UI_ADDRESS + "/?watch=" + lbry_name)
def main(args):
if len(args) != 1:
args = ['lbry://lbry']
name = args[0][7:]
if sys.platform == "darwin":
LBRYURIHandler().handle_osx(lbry_name=name)
else:
LBRYURIHandler().handle_linux(lbry_name=name)
2016-03-03 00:16:51 -05:00
if __name__ == "__main__":
main(sys.argv[1:])