Merge branch 'master' into logging

Conflicts:
	beetsplug/fetchart.py
	beetsplug/mpdstats.py
This commit is contained in:
Bruno Cauet 2015-01-09 15:15:27 +01:00
commit b27c5304d1
104 changed files with 144 additions and 124 deletions

2
beet
View file

@ -1,7 +1,7 @@
#!/usr/bin/env python #!/usr/bin/env python
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Fabrice Laporte # Copyright 2015, Fabrice Laporte
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of Confit. # This file is part of Confit.
# Copyright 2014, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, aroquen # Copyright 2015, aroquen
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Fabrice Laporte. # Copyright 2015, Fabrice Laporte.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Jakob Schnitzer. # Copyright 2015, Jakob Schnitzer.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Pedro Silva. # Copyright 2015, Pedro Silva.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the
@ -180,7 +180,8 @@ class FileSystem(ArtSource):
images = [] images = []
for fn in os.listdir(path): for fn in os.listdir(path):
for ext in IMAGE_EXTENSIONS: for ext in IMAGE_EXTENSIONS:
if fn.lower().endswith('.' + ext): if fn.lower().endswith('.' + ext) and \
os.path.isfile(os.path.join(path, fn)):
images.append(fn) images.append(fn)
# Look for "preferred" filenames. # Look for "preferred" filenames.

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Matt Lichtenberg. # Copyright 2015, Matt Lichtenberg.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Jan-Erik Dahlin # Copyright 2015, Jan-Erik Dahlin
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Verrus, <github.com/Verrus/beets-plugin-featInTitle> # Copyright 2015, Verrus, <github.com/Verrus/beets-plugin-featInTitle>
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Philippe Mongeau. # Copyright 2015, Philippe Mongeau.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Blemjhoo Tezoulbr <baobab@heresiarch.info>. # Copyright 2015, Blemjhoo Tezoulbr <baobab@heresiarch.info>.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Fabrice Laporte. # Copyright 2015, Fabrice Laporte.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Thomas Scholtes. # Copyright 2015, Thomas Scholtes.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Rafael Bodill http://github.com/rafi # Copyright 2015, Rafael Bodill http://github.com/rafi
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Jakob Schnitzer. # Copyright 2015, Jakob Schnitzer.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Pedro Silva. # Copyright 2015, Pedro Silva.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,6 +1,6 @@
# coding=utf-8 # coding=utf-8
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Peter Schnebel and Johann Klähn. # Copyright 2015, Peter Schnebel and Johann Klähn.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the
@ -211,6 +211,8 @@ class MPDStats(object):
To this end the difference between the song's supposed end time To this end the difference between the song's supposed end time
and the current time is calculated. If it's greater than a threshold, and the current time is calculated. If it's greater than a threshold,
the song is considered skipped. the song is considered skipped.
Returns whether the change was manual (skipped previous song or not)
""" """
diff = abs(song['remaining'] - (time.time() - song['started'])) diff = abs(song['remaining'] - (time.time() - song['started']))
@ -224,6 +226,8 @@ class MPDStats(object):
if self.do_rating: if self.do_rating:
self.update_rating(song['beets_item'], skipped) self.update_rating(song['beets_item'], skipped)
return skipped
def handle_played(self, song): def handle_played(self, song):
"""Updates the play count of a song. """Updates the play count of a song.
""" """
@ -263,19 +267,24 @@ class MPDStats(object):
remaining = duration - played remaining = duration - played
if self.now_playing and self.now_playing['path'] != path: if self.now_playing and self.now_playing['path'] != path:
self.handle_song_change(self.now_playing) skipped = self.handle_song_change(self.now_playing)
# mpd responds twice on a natural new song start
going_to_happen_twice = not skipped
else:
going_to_happen_twice = False
self._log.info(u'playing {0}', displayable_path(path)) if not going_to_happen_twice:
self._log.info(u'playing {0}', displayable_path(path))
self.now_playing = { self.now_playing = {
'started': time.time(), 'started': time.time(),
'remaining': remaining, 'remaining': remaining,
'path': path, 'path': path,
'beets_item': self.get_item(path), 'beets_item': self.get_item(path),
} }
self.update_item(self.now_playing['beets_item'], self.update_item(self.now_playing['beets_item'],
'last_played', value=int(time.time())) 'last_played', value=int(time.time()))
def run(self): def run(self):
self.mpd.connect() self.mpd.connect()

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, David Hamp-Gonsalves # Copyright 2015, David Hamp-Gonsalves
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Philippe Mongeau. # Copyright 2015, Philippe Mongeau.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Fabrice Laporte, Yevgeny Bezman, and Adrian Sampson. # Copyright 2015, Fabrice Laporte, Yevgeny Bezman, and Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Dang Mai <contact@dangmai.net>. # Copyright 2015, Dang Mai <contact@dangmai.net>.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Blemjhoo Tezoulbr <baobab@heresiarch.info>. # Copyright 2015, Blemjhoo Tezoulbr <baobab@heresiarch.info>.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Thomas Scholtes. # Copyright 2015, Thomas Scholtes.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -2,13 +2,13 @@
* jQuery JavaScript Library v1.7.1 * jQuery JavaScript Library v1.7.1
* http://jquery.com/ * http://jquery.com/
* *
* Copyright 2013, John Resig * Copyright 2015, John Resig
* Dual licensed under the MIT or GPL Version 2 licenses. * Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license * http://jquery.org/license
* *
* Includes Sizzle.js * Includes Sizzle.js
* http://sizzlejs.com/ * http://sizzlejs.com/
* Copyright 2013, The Dojo Foundation * Copyright 2015, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses. * Released under the MIT, BSD, and GPL Licenses.
* *
* Date: Mon Nov 21 21:11:03 2011 -0500 * Date: Mon Nov 21 21:11:03 2011 -0500
@ -3851,7 +3851,7 @@ jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblcl
/*! /*!
* Sizzle CSS Selector Engine * Sizzle CSS Selector Engine
* Copyright 2013, The Dojo Foundation * Copyright 2015, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses. * Released under the MIT, BSD, and GPL Licenses.
* More information: http://sizzlejs.com/ * More information: http://sizzlejs.com/
*/ */

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Blemjhoo Tezoulbr <baobab@heresiarch.info>. # Copyright 2015, Blemjhoo Tezoulbr <baobab@heresiarch.info>.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -12,6 +12,10 @@ Fixes:
built-in whitelist/canonicalization tree. :bug:`1206` built-in whitelist/canonicalization tree. :bug:`1206`
* Fix a crash when ``beet`` is invoked without arguments. :bug:`1205` * Fix a crash when ``beet`` is invoked without arguments. :bug:`1205`
:bug:`1207` :bug:`1207`
* :doc:`/plugins/fetchart`: Do not attempt to import directories as album art.
:bug:`1177` :bug:`1211`
* :doc:`/plugins/mpdstats`: Avoid double-counting some play events. :bug:`773`
:bug:`1212`
1.3.10 (January 5, 2015) 1.3.10 (January 5, 2015)

View file

@ -1,7 +1,7 @@
#!/usr/bin/env python #!/usr/bin/env python
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Thomas Scholtes. # Copyright 2015, Thomas Scholtes.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Fabrice Laporte # Copyright 2015, Fabrice Laporte
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Fabrice Laporte. # Copyright 2015, Fabrice Laporte.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Thomas Scholtes. # Copyright 2015, Thomas Scholtes.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Thomas Scholtes # Copyright 2015, Thomas Scholtes
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Thomas Scholtes. # Copyright 2015, Thomas Scholtes.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Thomas Scholtes. # Copyright 2015, Thomas Scholtes.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the
@ -12,7 +12,7 @@
# The above copyright notice and this permission notice shall be # The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software. # included in all copies or substantial portions of the Software.
import os.path import os
from _common import unittest from _common import unittest
from helper import TestHelper from helper import TestHelper
@ -22,25 +22,31 @@ class FetchartCliTest(unittest.TestCase, TestHelper):
def setUp(self): def setUp(self):
self.setup_beets() self.setup_beets()
self.load_plugins('fetchart') self.load_plugins('fetchart')
self.config['fetchart']['cover_names'] = 'c\xc3\xb6ver.jpg'
self.config['art_filename'] = 'mycover'
self.album = self.add_album()
def tearDown(self): def tearDown(self):
self.unload_plugins() self.unload_plugins()
self.teardown_beets() self.teardown_beets()
def test_set_art_from_folder(self): def test_set_art_from_folder(self):
self.config['fetchart']['cover_names'] = 'c\xc3\xb6ver.jpg' self.touch('c\xc3\xb6ver.jpg', dir=self.album.path, content='IMAGE')
self.config['art_filename'] = 'mycover'
album = self.add_album()
self.touch('c\xc3\xb6ver.jpg', dir=album.path, content='IMAGE')
self.run_command('fetchart') self.run_command('fetchart')
cover_path = os.path.join(album.path, 'mycover.jpg') cover_path = os.path.join(self.album.path, 'mycover.jpg')
album.load() self.album.load()
self.assertEqual(album['artpath'], cover_path) self.assertEqual(self.album['artpath'], cover_path)
with open(cover_path, 'r') as f: with open(cover_path, 'r') as f:
self.assertEqual(f.read(), 'IMAGE') self.assertEqual(f.read(), 'IMAGE')
def test_filesystem_does_not_pick_up_folder(self):
os.makedirs(os.path.join(self.album.path, 'mycover.jpg'))
self.run_command('fetchart')
self.album.load()
self.assertEqual(self.album['artpath'], None)
def suite(): def suite():
return unittest.TestLoader().loadTestsFromName(__name__) return unittest.TestLoader().loadTestsFromName(__name__)

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Fabrice Laporte. # Copyright 2015, Fabrice Laporte.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Stig Inge Lea Bjornsen. # Copyright 2015, Stig Inge Lea Bjornsen.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Thomas Scholtes. # Copyright 2015, Thomas Scholtes.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Thomas Scholtes. # Copyright 2015, Thomas Scholtes.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Fabrice Laporte. # Copyright 2015, Fabrice Laporte.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Fabrice Laporte. # Copyright 2015, Fabrice Laporte.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Thomas Scholtes. # Copyright 2015, Thomas Scholtes.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Thomas Scholtes. # Copyright 2015, Thomas Scholtes.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Thomas Scholtes # Copyright 2015, Thomas Scholtes
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2013, Adrian Sampson. # Copyright 2015, Adrian Sampson.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
# This file is part of beets. # This file is part of beets.
# Copyright 2014, Thomas Scholtes. # Copyright 2015, Thomas Scholtes.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the # a copy of this software and associated documentation files (the

Some files were not shown because too many files have changed in this diff Show more