From d4cecccdace3fabf9e89736ad5ba6c05a9e351af Mon Sep 17 00:00:00 2001 From: L Maffeo Date: Sat, 18 Aug 2018 14:22:25 +0200 Subject: [PATCH] Renamed plugin, added comments and minor fixes. --- beetsplug/subsonic.py | 69 --------------------------------------- docs/plugins/subsonic.rst | 37 --------------------- 2 files changed, 106 deletions(-) delete mode 100644 beetsplug/subsonic.py delete mode 100644 docs/plugins/subsonic.rst diff --git a/beetsplug/subsonic.py b/beetsplug/subsonic.py deleted file mode 100644 index 667e18bdd..000000000 --- a/beetsplug/subsonic.py +++ /dev/null @@ -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: -# pass: -# 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.") diff --git a/docs/plugins/subsonic.rst b/docs/plugins/subsonic.rst deleted file mode 100644 index 0bcf0a0e9..000000000 --- a/docs/plugins/subsonic.rst +++ /dev/null @@ -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.