diff --git a/beet b/beet index c5699a5ac..e30c8b6eb 100755 --- a/beet +++ b/beet @@ -1,7 +1,7 @@ #!/usr/bin/env python # 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 # a copy of this software and associated documentation files (the diff --git a/beets/__init__.py b/beets/__init__.py index db0b38a2c..be95bdcb4 100644 --- a/beets/__init__.py +++ b/beets/__init__.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beets/autotag/__init__.py b/beets/autotag/__init__.py index 3fa98758c..7ed7ce6bc 100644 --- a/beets/autotag/__init__.py +++ b/beets/autotag/__init__.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beets/autotag/hooks.py b/beets/autotag/hooks.py index 5118212b4..6b592e1de 100644 --- a/beets/autotag/hooks.py +++ b/beets/autotag/hooks.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beets/autotag/match.py b/beets/autotag/match.py index d51cd4fb1..ea80ae111 100644 --- a/beets/autotag/match.py +++ b/beets/autotag/match.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beets/autotag/mb.py b/beets/autotag/mb.py index 7c598a17f..78f4cba7d 100644 --- a/beets/autotag/mb.py +++ b/beets/autotag/mb.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beets/dbcore/__init__.py b/beets/dbcore/__init__.py index c364fdfc3..d08bd5013 100644 --- a/beets/dbcore/__init__.py +++ b/beets/dbcore/__init__.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beets/dbcore/db.py b/beets/dbcore/db.py index 0c786daa5..7017e3e62 100644 --- a/beets/dbcore/db.py +++ b/beets/dbcore/db.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beets/dbcore/query.py b/beets/dbcore/query.py index 5a116eb2b..3ea37524a 100644 --- a/beets/dbcore/query.py +++ b/beets/dbcore/query.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beets/dbcore/queryparse.py b/beets/dbcore/queryparse.py index 90963696b..89a6f5ca2 100644 --- a/beets/dbcore/queryparse.py +++ b/beets/dbcore/queryparse.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beets/dbcore/types.py b/beets/dbcore/types.py index 82346e704..c171a9310 100644 --- a/beets/dbcore/types.py +++ b/beets/dbcore/types.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beets/importer.py b/beets/importer.py index a0f100749..a47fe9a56 100644 --- a/beets/importer.py +++ b/beets/importer.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beets/library.py b/beets/library.py index 180f029cb..9b3e4a238 100644 --- a/beets/library.py +++ b/beets/library.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beets/mediafile.py b/beets/mediafile.py index 3e3d2aa23..7522acf0a 100644 --- a/beets/mediafile.py +++ b/beets/mediafile.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beets/plugins.py b/beets/plugins.py index b7d2f968b..12c8ad100 100755 --- a/beets/plugins.py +++ b/beets/plugins.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beets/ui/__init__.py b/beets/ui/__init__.py index ebde7ebbf..291c768ec 100644 --- a/beets/ui/__init__.py +++ b/beets/ui/__init__.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beets/ui/commands.py b/beets/ui/commands.py index f68a5e7c2..da96b1898 100644 --- a/beets/ui/commands.py +++ b/beets/ui/commands.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beets/util/__init__.py b/beets/util/__init__.py index 047eea005..f952a711a 100644 --- a/beets/util/__init__.py +++ b/beets/util/__init__.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beets/util/artresizer.py b/beets/util/artresizer.py index 5b51392bd..09092bbe8 100644 --- a/beets/util/artresizer.py +++ b/beets/util/artresizer.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beets/util/confit.py b/beets/util/confit.py index de22e0adf..b157c35a2 100644 --- a/beets/util/confit.py +++ b/beets/util/confit.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beets/util/enumeration.py b/beets/util/enumeration.py index e8cd0fe10..86e11874a 100644 --- a/beets/util/enumeration.py +++ b/beets/util/enumeration.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beets/util/functemplate.py b/beets/util/functemplate.py index 03e57c618..6d236c8a2 100644 --- a/beets/util/functemplate.py +++ b/beets/util/functemplate.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beets/util/pipeline.py b/beets/util/pipeline.py index d267789c8..9b4446d9f 100644 --- a/beets/util/pipeline.py +++ b/beets/util/pipeline.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beets/vfs.py b/beets/vfs.py index e940e21fe..f0032d63b 100644 --- a/beets/vfs.py +++ b/beets/vfs.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/__init__.py b/beetsplug/__init__.py index 98a7ffd5c..337f84daa 100644 --- a/beetsplug/__init__.py +++ b/beetsplug/__init__.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/beatport.py b/beetsplug/beatport.py index cb3579750..5c116455f 100644 --- a/beetsplug/beatport.py +++ b/beetsplug/beatport.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/bench.py b/beetsplug/bench.py index 56695e7c4..80c9a39ec 100644 --- a/beetsplug/bench.py +++ b/beetsplug/bench.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/bpd/__init__.py b/beetsplug/bpd/__init__.py index c4f3fb379..3380011f5 100644 --- a/beetsplug/bpd/__init__.py +++ b/beetsplug/bpd/__init__.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/bpd/gstplayer.py b/beetsplug/bpd/gstplayer.py index 275f34b5c..2e7c05201 100644 --- a/beetsplug/bpd/gstplayer.py +++ b/beetsplug/bpd/gstplayer.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/bpm.py b/beetsplug/bpm.py index 257113db6..aa395719f 100644 --- a/beetsplug/bpm.py +++ b/beetsplug/bpm.py @@ -1,5 +1,5 @@ # This file is part of beets. -# Copyright 2014, aroquen +# Copyright 2015, aroquen # # Permission is hereby granted, free of charge, to any person obtaining # a copy of this software and associated documentation files (the diff --git a/beetsplug/bucket.py b/beetsplug/bucket.py index 8d09f8988..45ad163f9 100644 --- a/beetsplug/bucket.py +++ b/beetsplug/bucket.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/chroma.py b/beetsplug/chroma.py index 44ab25508..5e17efe82 100644 --- a/beetsplug/chroma.py +++ b/beetsplug/chroma.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/convert.py b/beetsplug/convert.py index 76694cc12..219baf1f3 100644 --- a/beetsplug/convert.py +++ b/beetsplug/convert.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/discogs.py b/beetsplug/discogs.py index e2695688a..0491bcb4c 100644 --- a/beetsplug/discogs.py +++ b/beetsplug/discogs.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/duplicates.py b/beetsplug/duplicates.py index 6e4ad4f3c..60a49d091 100644 --- a/beetsplug/duplicates.py +++ b/beetsplug/duplicates.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/echonest.py b/beetsplug/echonest.py index c93901875..22616385b 100644 --- a/beetsplug/echonest.py +++ b/beetsplug/echonest.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/embedart.py b/beetsplug/embedart.py index 527160200..1fa6b714b 100644 --- a/beetsplug/embedart.py +++ b/beetsplug/embedart.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/fetchart.py b/beetsplug/fetchart.py index 0d068e133..03d6ce18a 100644 --- a/beetsplug/fetchart.py +++ b/beetsplug/fetchart.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the @@ -180,7 +180,8 @@ class FileSystem(ArtSource): images = [] for fn in os.listdir(path): 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) # Look for "preferred" filenames. diff --git a/beetsplug/freedesktop.py b/beetsplug/freedesktop.py index f862f6352..6411328ff 100644 --- a/beetsplug/freedesktop.py +++ b/beetsplug/freedesktop.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/fromfilename.py b/beetsplug/fromfilename.py index f3884f556..4121c40e3 100644 --- a/beetsplug/fromfilename.py +++ b/beetsplug/fromfilename.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/ftintitle.py b/beetsplug/ftintitle.py index 91aa9f33f..daeadc1d6 100644 --- a/beetsplug/ftintitle.py +++ b/beetsplug/ftintitle.py @@ -1,5 +1,5 @@ # This file is part of beets. -# Copyright 2013, Verrus, +# Copyright 2015, Verrus, # # Permission is hereby granted, free of charge, to any person obtaining # a copy of this software and associated documentation files (the diff --git a/beetsplug/fuzzy.py b/beetsplug/fuzzy.py index c6fa36a26..fcc59ef5a 100644 --- a/beetsplug/fuzzy.py +++ b/beetsplug/fuzzy.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/ihate.py b/beetsplug/ihate.py index 37cf07f74..62e0b5e58 100644 --- a/beetsplug/ihate.py +++ b/beetsplug/ihate.py @@ -1,5 +1,5 @@ # This file is part of beets. -# Copyright 2014, Blemjhoo Tezoulbr . +# Copyright 2015, Blemjhoo Tezoulbr . # # Permission is hereby granted, free of charge, to any person obtaining # a copy of this software and associated documentation files (the diff --git a/beetsplug/importfeeds.py b/beetsplug/importfeeds.py index d173f81c8..86b7ede74 100644 --- a/beetsplug/importfeeds.py +++ b/beetsplug/importfeeds.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/info.py b/beetsplug/info.py index 2b1000405..fc7d05f38 100644 --- a/beetsplug/info.py +++ b/beetsplug/info.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/inline.py b/beetsplug/inline.py index e57f97bd5..71a2e6e6b 100644 --- a/beetsplug/inline.py +++ b/beetsplug/inline.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/keyfinder.py b/beetsplug/keyfinder.py index 4f0380528..ef3b4cfb8 100644 --- a/beetsplug/keyfinder.py +++ b/beetsplug/keyfinder.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/lastgenre/__init__.py b/beetsplug/lastgenre/__init__.py index 92395dd79..f38d10fe1 100644 --- a/beetsplug/lastgenre/__init__.py +++ b/beetsplug/lastgenre/__init__.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/lastimport.py b/beetsplug/lastimport.py index d39c1299d..5c3995d2a 100644 --- a/beetsplug/lastimport.py +++ b/beetsplug/lastimport.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/lyrics.py b/beetsplug/lyrics.py index 007888e2d..51703a22b 100644 --- a/beetsplug/lyrics.py +++ b/beetsplug/lyrics.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/mbsync.py b/beetsplug/mbsync.py index 7bc26d954..b1a74da28 100644 --- a/beetsplug/mbsync.py +++ b/beetsplug/mbsync.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/missing.py b/beetsplug/missing.py index 0ebafdada..a27be65d1 100644 --- a/beetsplug/missing.py +++ b/beetsplug/missing.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/mpdstats.py b/beetsplug/mpdstats.py index 6e47f990b..86206f9df 100644 --- a/beetsplug/mpdstats.py +++ b/beetsplug/mpdstats.py @@ -1,6 +1,6 @@ # coding=utf-8 # 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 # 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 and the current time is calculated. If it's greater than a threshold, the song is considered skipped. + + Returns whether the change was manual (skipped previous song or not) """ diff = abs(song['remaining'] - (time.time() - song['started'])) @@ -224,6 +226,8 @@ class MPDStats(object): if self.do_rating: self.update_rating(song['beets_item'], skipped) + return skipped + def handle_played(self, song): """Updates the play count of a song. """ @@ -263,19 +267,24 @@ class MPDStats(object): remaining = duration - played 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 = { - 'started': time.time(), - 'remaining': remaining, - 'path': path, - 'beets_item': self.get_item(path), - } + self.now_playing = { + 'started': time.time(), + 'remaining': remaining, + 'path': path, + 'beets_item': self.get_item(path), + } - self.update_item(self.now_playing['beets_item'], - 'last_played', value=int(time.time())) + self.update_item(self.now_playing['beets_item'], + 'last_played', value=int(time.time())) def run(self): self.mpd.connect() diff --git a/beetsplug/mpdupdate.py b/beetsplug/mpdupdate.py index b5137237a..ff6e6dbe2 100644 --- a/beetsplug/mpdupdate.py +++ b/beetsplug/mpdupdate.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/play.py b/beetsplug/play.py index 91339cffd..5072234ca 100644 --- a/beetsplug/play.py +++ b/beetsplug/play.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/random.py b/beetsplug/random.py index f594bd73b..2c4d0c000 100644 --- a/beetsplug/random.py +++ b/beetsplug/random.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/replaygain.py b/beetsplug/replaygain.py index 7fa42779d..2781f116c 100644 --- a/beetsplug/replaygain.py +++ b/beetsplug/replaygain.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/rewrite.py b/beetsplug/rewrite.py index 9aaa05950..34c2e0ed4 100644 --- a/beetsplug/rewrite.py +++ b/beetsplug/rewrite.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/scrub.py b/beetsplug/scrub.py index 87625ecbd..929b3d9ee 100644 --- a/beetsplug/scrub.py +++ b/beetsplug/scrub.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/smartplaylist.py b/beetsplug/smartplaylist.py index 5cae4f385..368d516cc 100644 --- a/beetsplug/smartplaylist.py +++ b/beetsplug/smartplaylist.py @@ -1,5 +1,5 @@ # This file is part of beets. -# Copyright 2013, Dang Mai . +# Copyright 2015, Dang Mai . # # Permission is hereby granted, free of charge, to any person obtaining # a copy of this software and associated documentation files (the diff --git a/beetsplug/the.py b/beetsplug/the.py index edc653787..b3ff8b930 100644 --- a/beetsplug/the.py +++ b/beetsplug/the.py @@ -1,5 +1,5 @@ # This file is part of beets. -# Copyright 2013, Blemjhoo Tezoulbr . +# Copyright 2015, Blemjhoo Tezoulbr . # # Permission is hereby granted, free of charge, to any person obtaining # a copy of this software and associated documentation files (the diff --git a/beetsplug/types.py b/beetsplug/types.py index e351c8add..8a1e6c2d6 100644 --- a/beetsplug/types.py +++ b/beetsplug/types.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/web/__init__.py b/beetsplug/web/__init__.py index cf45d8c48..a60461689 100644 --- a/beetsplug/web/__init__.py +++ b/beetsplug/web/__init__.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/beetsplug/web/static/jquery.js b/beetsplug/web/static/jquery.js index a9d6fe8c1..5b43a3ece 100644 --- a/beetsplug/web/static/jquery.js +++ b/beetsplug/web/static/jquery.js @@ -2,13 +2,13 @@ * jQuery JavaScript Library v1.7.1 * http://jquery.com/ * - * Copyright 2013, John Resig + * Copyright 2015, John Resig * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * Includes Sizzle.js * http://sizzlejs.com/ - * Copyright 2013, The Dojo Foundation + * Copyright 2015, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * * 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 - * Copyright 2013, The Dojo Foundation + * Copyright 2015, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * More information: http://sizzlejs.com/ */ diff --git a/beetsplug/zero.py b/beetsplug/zero.py index 937d23bd3..6b4875c62 100644 --- a/beetsplug/zero.py +++ b/beetsplug/zero.py @@ -1,5 +1,5 @@ # This file is part of beets. -# Copyright 2013, Blemjhoo Tezoulbr . +# Copyright 2015, Blemjhoo Tezoulbr . # # Permission is hereby granted, free of charge, to any person obtaining # a copy of this software and associated documentation files (the diff --git a/docs/changelog.rst b/docs/changelog.rst index 01426c0a1..286c26abb 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -12,6 +12,10 @@ Fixes: built-in whitelist/canonicalization tree. :bug:`1206` * Fix a crash when ``beet`` is invoked without arguments. :bug:`1205` :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) diff --git a/setup.py b/setup.py index 53f5137e9..802809a92 100755 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # 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 # a copy of this software and associated documentation files (the diff --git a/test/_common.py b/test/_common.py index b222566b7..3852ba2f0 100644 --- a/test/_common.py +++ b/test/_common.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/helper.py b/test/helper.py index 4dafb4c39..afa5d29d1 100644 --- a/test/helper.py +++ b/test/helper.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/lyrics_download_samples.py b/test/lyrics_download_samples.py index 34f71c0d1..819d6f9f7 100644 --- a/test/lyrics_download_samples.py +++ b/test/lyrics_download_samples.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_art.py b/test/test_art.py index b7169067c..02e589a3a 100644 --- a/test/test_art.py +++ b/test/test_art.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_autotag.py b/test/test_autotag.py index 4599d6df2..3405351e6 100644 --- a/test/test_autotag.py +++ b/test/test_autotag.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_bucket.py b/test/test_bucket.py index c65116663..38846e324 100644 --- a/test/test_bucket.py +++ b/test/test_bucket.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_convert.py b/test/test_convert.py index 05d643e3e..f3f8cbeff 100644 --- a/test/test_convert.py +++ b/test/test_convert.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_datequery.py b/test/test_datequery.py index 61f6abe2e..06d857c0b 100644 --- a/test/test_datequery.py +++ b/test/test_datequery.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_dbcore.py b/test/test_dbcore.py index c05dc1c5d..4882c4da5 100644 --- a/test/test_dbcore.py +++ b/test/test_dbcore.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_echonest.py b/test/test_echonest.py index d845b8a6b..a92bd4086 100644 --- a/test/test_echonest.py +++ b/test/test_echonest.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_embedart.py b/test/test_embedart.py index 8e03c5eba..d0314dc02 100644 --- a/test/test_embedart.py +++ b/test/test_embedart.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_fetchart.py b/test/test_fetchart.py index 5e36f9145..e5a15f46c 100644 --- a/test/test_fetchart.py +++ b/test/test_fetchart.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the @@ -12,7 +12,7 @@ # The above copyright notice and this permission notice shall be # included in all copies or substantial portions of the Software. -import os.path +import os from _common import unittest from helper import TestHelper @@ -22,25 +22,31 @@ class FetchartCliTest(unittest.TestCase, TestHelper): def setUp(self): self.setup_beets() 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): self.unload_plugins() self.teardown_beets() def test_set_art_from_folder(self): - self.config['fetchart']['cover_names'] = 'c\xc3\xb6ver.jpg' - self.config['art_filename'] = 'mycover' - album = self.add_album() - self.touch('c\xc3\xb6ver.jpg', dir=album.path, content='IMAGE') + self.touch('c\xc3\xb6ver.jpg', dir=self.album.path, content='IMAGE') 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.assertEqual(album['artpath'], cover_path) + self.album.load() + self.assertEqual(self.album['artpath'], cover_path) with open(cover_path, 'r') as f: 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(): return unittest.TestLoader().loadTestsFromName(__name__) diff --git a/test/test_files.py b/test/test_files.py index 272a33fe7..03daf92e3 100644 --- a/test/test_files.py +++ b/test/test_files.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_ftintitle.py b/test/test_ftintitle.py index 77e416c5a..6b2e43b33 100644 --- a/test/test_ftintitle.py +++ b/test/test_ftintitle.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_importadded.py b/test/test_importadded.py index b228ee24c..11c541ffa 100644 --- a/test/test_importadded.py +++ b/test/test_importadded.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_importer.py b/test/test_importer.py index 89a65b74f..9a555c665 100644 --- a/test/test_importer.py +++ b/test/test_importer.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_info.py b/test/test_info.py index 9c641e501..15f5936ce 100644 --- a/test/test_info.py +++ b/test/test_info.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_keyfinder.py b/test/test_keyfinder.py index 5795002dc..a8428cbb3 100644 --- a/test/test_keyfinder.py +++ b/test/test_keyfinder.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_lastgenre.py b/test/test_lastgenre.py index ee893be91..3ac96b279 100644 --- a/test/test_lastgenre.py +++ b/test/test_lastgenre.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_library.py b/test/test_library.py index f4bdb15d6..717cc1aa1 100644 --- a/test/test_library.py +++ b/test/test_library.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_lyrics.py b/test/test_lyrics.py index 6ed0c61cb..21eb87256 100644 --- a/test/test_lyrics.py +++ b/test/test_lyrics.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_mb.py b/test/test_mb.py index f41ec5510..2e5cd1aa3 100644 --- a/test/test_mb.py +++ b/test/test_mb.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_mbsync.py b/test/test_mbsync.py index 2a064a311..8dddf60c0 100644 --- a/test/test_mbsync.py +++ b/test/test_mbsync.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_mediafile.py b/test/test_mediafile.py index 722b74484..c685cdd94 100644 --- a/test/test_mediafile.py +++ b/test/test_mediafile.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_mediafile_edge.py b/test/test_mediafile_edge.py index 81b689fbc..fa12d1dda 100644 --- a/test/test_mediafile_edge.py +++ b/test/test_mediafile_edge.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_pipeline.py b/test/test_pipeline.py index 0c4de6836..917983a91 100644 --- a/test/test_pipeline.py +++ b/test/test_pipeline.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_player.py b/test/test_player.py index 966b98dac..147026963 100644 --- a/test/test_player.py +++ b/test/test_player.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_plugins.py b/test/test_plugins.py index eea162e90..0880e2d27 100644 --- a/test/test_plugins.py +++ b/test/test_plugins.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_query.py b/test/test_query.py index f2ad3cb6e..879e9ca7d 100644 --- a/test/test_query.py +++ b/test/test_query.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_replaygain.py b/test/test_replaygain.py index bad779c69..aa0d19b23 100644 --- a/test/test_replaygain.py +++ b/test/test_replaygain.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_sort.py b/test/test_sort.py index be5706bca..f0b56d3ca 100644 --- a/test/test_sort.py +++ b/test/test_sort.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_template.py b/test/test_template.py index f14aed019..1bc0b2cd7 100644 --- a/test/test_template.py +++ b/test/test_template.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_types_plugin.py b/test/test_types_plugin.py index d175525be..697cda702 100644 --- a/test/test_types_plugin.py +++ b/test/test_types_plugin.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_ui.py b/test/test_ui.py index 4ef5a9fcf..e32f9ed83 100644 --- a/test/test_ui.py +++ b/test/test_ui.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_ui_importer.py b/test/test_ui_importer.py index 3a8b2696c..8006e4215 100644 --- a/test/test_ui_importer.py +++ b/test/test_ui_importer.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/test_vfs.py b/test/test_vfs.py index e31640aa2..ae8e7aef6 100644 --- a/test/test_vfs.py +++ b/test/test_vfs.py @@ -1,5 +1,5 @@ # 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 # a copy of this software and associated documentation files (the diff --git a/test/testall.py b/test/testall.py index 70bf44f87..5fe8c5536 100755 --- a/test/testall.py +++ b/test/testall.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # 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 # a copy of this software and associated documentation files (the