Renamed plugin, added comments and minor fixes.

This commit is contained in:
L Maffeo 2018-08-18 14:22:25 +02:00
parent fc1592adbe
commit d4cecccdac
2 changed files with 0 additions and 106 deletions

View file

@ -1,69 +0,0 @@
# -*- coding: utf-8 -*-
# Subsonic plugin for Beets
# Allows to trigger a library scan on Subsonic
# after music has been imported with Beets
# Your Beets configuration file should contain
# a subsonic section like the following:
# subsonic:
# host: 192.168.x.y (the IP address where Subsonic listens on)
# port: 4040 (default)
# user: <your username>
# pass: <your password>
# Plugin wrote by maffo999
"""Updates Subsonic library on Beets import
"""
from __future__ import division, absolute_import, print_function
from beets.plugins import BeetsPlugin
import requests
import string
import hashlib
import random
class Subsonic(BeetsPlugin):
def __init__(self):
super(Subsonic, self).__init__()
self.register_listener('import', self.loaded)
def loaded(self):
host = self.config['host'].get()
port = self.config['port'].get()
user = self.config['user'].get()
passw = self.config['pass'].get()
r = string.ascii_letters + string.digits
url = "http://"+str(host)+":"+str(port)+"/rest/startScan"
salt = "".join([random.choice(r) for n in range(6)])
t = passw + salt
token = hashlib.md5()
token.update(t.encode('utf-8'))
payload = {
'u': user,
't': token.hexdigest(),
's': salt,
'v': '1.15.0',
'c': 'beets'
}
response = requests.post(url, params=payload)
if (response.status_code == 0):
self._log.error(u'Generic error, please try again later.')
print("Generic error, please try again later.")
elif (response.status_code == 30):
self._log.error(u'Subsonic server not compatible with plugin.')
print("Subsonic server not compatible with plugin.")
elif (response.status_code == 40):
self._log.error(u'Wrong username or password.')
print("Wrong username or password.")
elif (response.status_code == 50):
self._log.error(u'User not allowed to perform the operation.')
print("User not allowed to perform the requested operation.")
elif (response.status_code == 60):
self._log.error(u'This feature requires Subsonic Premium.')
print("This feature requires Subsonic Premium.")
elif (response.status_code == 200):
self._log.info('Operation completed successfully!')
print("Operation completed successfully!")
else:
self._log.error(u'Unknown error code returned from server.')
print("Unknown error code returned from server.")

View file

@ -1,37 +0,0 @@
Subsonic Plugin
================
``Subsonic`` is a very simple plugin for beets that lets you automatically
update `Subsonic`_'s index whenever you change your beets library.
.. _Subsonic: http://www.subsonic.org
To use ``Subsonic`` plugin, enable it in your configuration
(see :ref:`using-plugins`).
Then, you'll probably want to configure the specifics of your Subsonic server.
You can do that using an ``subsonic:`` section in your ``config.yaml``,
which looks like this::
subsonic:
host: 192.168.x.x
port: 4040
user: username
pass: password
With that all in place, beets will send a Rest API to your Subsonic
server every time you change your beets library.
This plugin requires the Premium version of Subsonic (or a Trial Premium version).
This plugin requires Subsonic version 6.1 or higher.
Configuration
-------------
The available options under the ``subsonic:`` section are:
- **host**: The Subsonic server name/IP.
- **port**: The Subsonic server port.
- **user**: The Subsonic user.
- **pass**: The Subsonic user password.
This plugin does not set default values for the above values.