Chris Pomeroy
2021-11-21 771e3745b16a7d2bd5ea47c9d22ac42a9a43b84d
querysubsonic.py
@@ -1,8 +1,8 @@
#!/usr/local/bin/python
#!/usr/local/bin/python -u
##  Eaxmple url
## https://subsonic.darkurthe.net/audiobooks/rest/getMusicFolders.view?u=testuser&t=0733b8e9889d7a9986d82764cee9db1c&s=O5kgRb6X5jFFbPSW&v=1.15.0&c=myapp&f=json
## https://subsonic.darkurthe.net/audiobooks/rest/search3.view?u=testuser&t=0733b8e9889d7a9986d82764cee9db1c&s=O5kgRb6X5jFFbPSW&c=myapp&f=json&v=1.15.0&query=album="Gypsy Morph"
# Eaxmple url
# https://subsonic.darkurthe.net/audiobooks/rest/getMusicFolders.view?u=testuser&t=0733b8e9889d7a9986d82764cee9db1c&s=O5kgRb6X5jFFbPSW&v=1.15.0&c=myapp&f=json
# https://subsonic.darkurthe.net/audiobooks/rest/search3.view?u=testuser&t=0733b8e9889d7a9986d82764cee9db1c&s=O5kgRb6X5jFFbPSW&c=myapp&f=json&v=1.15.0&query=album="Gypsy Morph"
from hashlib import md5
import random
@@ -15,19 +15,19 @@
    salt = ""
    for i in range(16):
        chars.append(random.choice(ALPHABET))
    salt = ''.join(str(x) for x in chars )
    salt = ''.join(str(x) for x in chars)
    return salt
def gentoken(passwd,salt):
def gentoken(passwd, salt):
    m = md5()
    m.update(passwd.encode('utf8') + salt.encode('utf-8'))
    return m.hexdigest()
def getalbumlist(user,passwd):
def getalbumlist(user, passwd):
    s = gensalt()
    t = gentoken(passwd,s)
    t = gentoken(passwd, s)
    payload = {'u': user, 't': t, 's': s, 'c': 'audible', 'v': '1.15.0', 'f': 'json', 'type': 'alphabeticalByName', 'size': '500'}
    r = requests.get('https://subsonic.darkurthe.net/audiobooks/rest/getAlbumList.view', payload)
    if r.status_code == 200:
@@ -46,11 +46,11 @@
    return False
def updatelibrary(user,passwd):
def updatelibrary(user, passwd):
    s = gensalt()
    t = gentoken(passwd,s)
    t = gentoken(passwd, s)
    payload = {'u': user, 't': t, 's': s, 'c': 'audible', 'v': '1.15.0'}
    r = requests.get('https://subsonic.darkurthe.net/audiobooks/rest/audiobooks/rest/startScan.view', payload)
    r = requests.get('https://subsonic.darkurthe.net/audiobooks/rest/startScan.view', payload, verify=False)
    if r.status_code == 200:
        return True
    else:
@@ -65,7 +65,7 @@
        print("I need an album name to lookup")
        sys.exit(1)
    out = findalbumbyname(str(sys.argv[1]))
    if out == True:
        print("Found: ",sys.argv[1])
    if out:
        print("Found: ", sys.argv[1])
    else:
        print(sys.argv[1], "not found on subsonic server")