Anonymous avatar Anonymous committed f397e7b

Update MPD whenever database changes

Comments (0)

Files changed (1)

beetsplug/mpdupdate.py

 import socket
 from beets import config
 
+# Global variable so that mpdupdate can detect database changes and run only
+# once before beets exits.
+database_changed = False
+
 # No need to introduce a dependency on an MPD library for such a
 # simple use case. Here's a simple socket abstraction to make things
 # easier.
             'password': u'',
         })
 
-@MPDUpdatePlugin.listen('import')
-def update(lib=None, paths=None):
-    update_mpd(
-        config['mpdupdate']['host'].get(unicode),
-        config['mpdupdate']['port'].get(int),
-        config['mpdupdate']['password'].get(unicode),
-    )
+
+@MPDUpdatePlugin.listen('database_change')
+def handle_change(lib=None):
+    global database_changed
+    database_changed = True
+
+
+@MPDUpdatePlugin.listen('cli_exit')
+def update(lib=None):
+    if database_changed:
+        update_mpd(
+            config['mpdupdate']['host'].get(unicode),
+            config['mpdupdate']['port'].get(int),
+            config['mpdupdate']['password'].get(unicode),
+        )
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.