Ejemplo n.º 1
0
 def __init__(self, url, username, password, app_name, legacy_auth,
              api_version):
     parsed = urlparse(url)
     self.port = parsed.port if parsed.port else \
         443 if parsed.scheme == 'https' else 80
     base_url = parsed.scheme + '://' + parsed.hostname
     self.connection = libsonic.Connection(base_url,
                                           username,
                                           password,
                                           self.port,
                                           parsed.path + '/rest',
                                           appName=app_name,
                                           legacyAuth=legacy_auth,
                                           apiVersion=api_version)
     self.url = url + '/rest'
     self.username = username
     self.password = password
     logger.info(
         'Connecting to subsonic server on url %s as user %s, API version %s'
         % (url, username, api_version))
     try:
         self.connection.ping()
     except Exception as e:
         logger.error('Unable to reach subsonic server: %s' % e)
         exit()
Ejemplo n.º 2
0
    def __init__(self, hostname, port, username, password, ssl, context, legacy_auth):
        super(SubsonicRemoteClient, self).__init__()

        if not (hostname and port and username and password):
            logger.error('Subsonic API settings are not fully defined: %s %s %s %s %s' % (hostname, port, username, password, ssl))
        else:
            self.api_hostname = hostname
            self.api_port = port
            self.api_user = username
            self.api_pass = password
            if ssl: 
                self.api_hostname = "https://" + hostname
            else:
                self.api_hostname = "http://" + hostname
            if context:
                self.api_context = context + "/rest"
            else:
                self.api_context = "/rest"

            self.api = libsonic.Connection(self.api_hostname, self.api_user, self.api_pass, port=int(self.api_port), serverPath=self.api_context, legacyAuth=legacy_auth)
            logger.info('Connecting to Subsonic library %s:%s as user %s', self.api_hostname, self.api_port, self.api_user)
            try:
                self.api.ping()
            except Exception as e:
                logger.error('Subsonic Authentication error: %s' % e)
                exit()
Ejemplo n.º 3
0
 def __init__(self, url, username, password, app_name, legacy_auth,
              api_version):
     parsed = urlparse(url)
     self.port = (parsed.port if parsed.port else
                  443 if parsed.scheme == "https" else 80)
     base_url = parsed.scheme + "://" + parsed.hostname
     self.connection = libsonic.Connection(
         base_url,
         username,
         password,
         self.port,
         parsed.path + "/rest",
         appName=app_name,
         legacyAuth=legacy_auth,
         apiVersion=api_version,
     )
     self.url = url + "/rest"
     self.username = username
     self.password = password
     logger.info(
         f"Connecting to subsonic server on url {url} as user {username}, "
         f"API version {api_version}")
     try:
         self.connection.ping()
     except Exception as e:
         logger.error("Unable to reach subsonic server: %s" % e)
         exit()
Ejemplo n.º 4
0
 def __init__(self, host, user, passwd, port=443):
     self._host = host
     self._user = user
     self._port = port
     self._salt = md5(os.urandom(100)).hexdigest()[:12]
     self._token = md5(passwd + self._salt).hexdigest()
     self._ssconn = libsonic.Connection(host, user, passwd, port=self._port)
Ejemplo n.º 5
0
def get_connection():
    global connection

    if connection == None:
        connected = False
        # Create connection
        try:
            connection = libsonic.Connection(
                baseUrl=Addon().get_setting('subsonic_url'),
                username=Addon().get_setting('username', convert=False),
                password=Addon().get_setting('password', convert=False),
                port=Addon().get_setting('port'),
                apiVersion=Addon().get_setting('apiversion'),
                insecure=Addon().get_setting('insecure'),
                legacyAuth=Addon().get_setting('legacyauth'),
                useGET=Addon().get_setting('useget'),
            )
            connected = connection.ping()
        except:
            pass

        if connected == False:
            popup('Connection error')
            return False

    return connection
Ejemplo n.º 6
0
 def connect(self):
     server = self.config['server'].get()
     user = self.config['user'].get()
     password = self.config['password'].get()
     port = self.config['port'].get()
     # We pass in the base url, the username, password, and port number
     # Be sure to use https:// if this is an ssl connection!
     conn = libsonic.Connection(server , user , 
                                password , port=port)
     return conn
Ejemplo n.º 7
0
 def __init__(self, server_info):
     Service.__init__(self, server_info)
     self._service_name = 'subsonic'
     self.conn = libsonic.Connection(
         baseUrl=self.service_config['url'],
         username=self.service_config['user'],
         password=self.service_config['password'],
         port=self.service_config['port'],
         appName=self.service_config['appname'],
         apiVersion=self.service_config['api'],
         serverPath=self.service_config['serverpath'])
     self._connect_status = self._test_server_connection()
     self._server_full_url = self._get_server_full_url()
     self._resolved_status_mapping = self._map_connection_status()
     self._img_base_url = self._build_external_img_path(
         self._service_name) + 'cover='
Ejemplo n.º 8
0
 def connect(self):
     baseUrl = self.config['baseurl'].get()
     apiPath = self.config['apipath'].get()
     apiVersion = self.config['apiversion'].get()
     user = self.config['user'].get()
     password = self.config['password'].get()
     port = self.config['port'].get()
     # We pass in the base url, path, the username, password, port number and api version
     # Be sure to use https:// if this is an ssl connection!
     conn = libsonic.Connection(baseUrl=baseUrl,
                                port=port,
                                serverPath=apiPath,
                                apiVersion=apiVersion,
                                username=user,
                                password=password)
     return conn
Ejemplo n.º 9
0
    def __init__(self, config, audio):
        super(SubsonicBackend, self).__init__()

        self.config = config['subsonic']
        self.hostname = self.config.get("hostname")
        self.port = self.config.get("port")
        self.username = self.config.get("username")
        self.password = self.config.get("password")
        if (self.config.get("ssl") == "yes"):
            self.hostname = 'https://' + self.hostname
        else:
            self.hostname = 'http://' + self.hostname

        self.library = SubsonicLibraryProvider(backend=self)
        self.playback = SubsonicPlaybackProvider(backend=self, audio=audio)
        self.playlists = None

        self.uri_schemes = ['subsonic']

        self.subsonic = libsonic.Connection(self.hostname, self.username,
                                            self.password, self.port)
        logger.info('Subsonic using %s:%d as server', self.hostname, self.port)
Ejemplo n.º 10
0
 def __init__(self, *args, **kwargs):
     self.client = libsonic.Connection(*args, **kwargs)
Ejemplo n.º 11
0
        ls = []
        ftp.retrlines('LIST', ls.append)
        for line in ls:
            if flag in line:
                return True
        return False
    except Exception as e:
        print e
        return False

    return True


def subsonic_test(server_info, (username, password, artist)):
    try:
        conn = libsonic.Connection(server_info, username, password)
        test_str = conn.getArtists().__str__()
        if artist in test_str:
            return True
        else:
            return False
    except Exception as e:
        print e
        return False


def minecraft_test(server_info, extra):
    try:
        server = MinecraftServer.lookup(server_info)
        server.status()
        return True