Commit graph

2752 commits

Author SHA1 Message Date
milesial
d5caae12bd
Now logs both the source and the destination 2018-10-25 15:29:28 +02:00
milesial
d4e615feba
Fixed typo in convert when copying cover art 2018-10-24 19:07:12 +02:00
Patrick Heneghan
9c7a313b0d
Remove default arg for lastgenre --force flag 2018-10-16 18:51:39 +01:00
Samuel Nilsson
a928dbc470 Added contextpath configuration to subsonicupdate plugin. Fixed bug in
subsonicupdate port configuration.
2018-10-10 21:22:31 +02:00
Jack Wilsdon
5ad16983d4
Fix miscellaneous typos 2018-10-09 01:11:06 +01:00
Adrian Sampson
8b59b20ef8 Tiny style fix for #3028 2018-09-16 20:56:06 -04:00
Andrew Rogl
865940746c More clean up requests 2018-09-11 18:52:55 +10:00
Andrew Rogl
308dccab95 Address requested changes from Adrian 2018-09-10 20:47:58 +10:00
Andrew Rogl
c43a957f46 Clean up flake errors 2018-09-09 15:48:07 +10:00
Andrew Rogl
919f3f9c34 mbsync no longer queries MusicBrainz when the either the mb_albumid or mb_trackid field is invalid 2018-09-09 15:20:26 +10:00
Adrian Sampson
e8ffaf9984
Merge pull request #3020 from Archer4499/master
chroma: Bias toward looking up more relevant releases using date/country
2018-08-31 22:39:45 -04:00
Derek King
549c115752 Return tuple of numbers instead of string for release_key 2018-09-01 04:10:29 +10:00
Adrian Sampson
eec5bfe73a Fiddle with some whitespace 2018-08-30 14:58:12 -04:00
Derek King
7a8f980323 chroma: Allow releases to be sorted by date/country
Uses
match:preferred:countries/original_year:
config options to determine whether the releases should be sorted by their respective fields.
The behaviour is the same as before when the default config is used.
2018-08-31 00:39:47 +10:00
L Maffeo
7369933232 Updated documentation 2018-08-28 21:50:24 +02:00
L Maffeo
c7aa248a77 Configuration defaults review 2018-08-28 21:34:58 +02:00
L Maffeo
39e8a8389b Code cleanup 2018-08-26 17:38:17 +02:00
L Maffeo
b747291468 Passed tox tests 2018-08-26 15:22:22 +02:00
L Maffeo
bd5ab43bc6 Removed logging (needs additional testing) 2018-08-26 14:34:47 +02:00
Io Ii
7bfb7e12e7 Minor fix in config 2018-08-26 09:13:23 +02:00
Io Ii
10c40b1575 Second review by @sampsyo 2018-08-26 08:35:16 +02:00
Adrian Sampson
1f37cb61a3
Merge branch 'master' into master 2018-08-25 06:55:12 -07:00
Martin Haaß
a3770686b4 to fix the peak calculation also delete the division 2018-08-20 23:39:34 +02:00
Martin Haaß
f58f03dbfd replaygain: albumpeak on large collections is calculated as average, not maximum (bug 3008) 2018-08-20 23:06:11 +02:00
L Maffeo
d4cecccdac Renamed plugin, added comments and minor fixes. 2018-08-18 14:22:25 +02:00
L Maffeo
fc1592adbe Renamed plugin, added default configuration and comments 2018-08-18 14:17:00 +02:00
Adrian Sampson
890ba85c79
Merge pull request #3004 from thetarkus/gmusic-additions-2
gmusic plugin fixes and additions
2018-08-15 12:03:13 -04:00
thetarkus
e824132137 Rename oauth_filepath to oauth_file, update gmusic doc 2018-08-15 11:42:04 -04:00
Adrian Sampson
cab6910866
Merge pull request #2718 from beetbox/fix-itunes
fetchart: Restore iTunes Store source
2018-08-15 10:34:07 -04:00
nath@dp7510
399bfb985e fetchart: fix itunes debug info
Some typos + make it more useful overall
2018-08-15 13:56:39 +02:00
nath@dp7510
0107262ed3 fetchart: restore itunes art source
Reimplement minimalistic itunes scraper from scratch
2018-08-15 13:55:55 +02:00
thetarkus
abffb29a3f gmusic plugin addition: add oauth_filepath option, better device_id
guessing
2018-08-14 23:30:54 -04:00
thetarkus
b7354fef23 gmusic plugin: only authenticate when needed 2018-08-14 22:35:10 -04:00
Adrian Sampson
69c8684302 Revise comment 2018-08-14 10:19:13 -04:00
Adrian Sampson
4242a6b202 Merge pull request #3003 from bemeurer/master
Parallelize absubmit
2018-08-14 10:18:46 -04:00
Adrian Sampson
86d353717a
Merge pull request #3002 from thetarkus/gmusic-additions-1
Add uploader_id, uploader_name, and device_id for gmusicapi auth in gmusic plugin
2018-08-14 09:17:45 -04:00
Bernardo Meurer
4eafa40ff2
Revert to sequential behavior for Python 2 2018-08-14 00:05:00 -03:00
Bernardo Meurer
0803ba74e2
Attempt at Python2 and 3 compatibility 2018-08-13 23:58:38 -03:00
Bernardo Meurer
a9f56db11e
Attempt to use ThreadPoolExecutor 2018-08-13 23:50:51 -03:00
Bernardo Meurer
31c95482d9
Fix imports 2018-08-13 23:23:41 -03:00
Bernardo Meurer
6c2daa061e
Moved from Pool to ThreadPool 2018-08-13 23:22:40 -03:00
Bernardo Meurer
22a6a0e6ef
Parallelized absubmit 2018-08-13 22:44:45 -03:00
Adrian Sampson
bac8faad78 Resolve W605: invalid escape sequence
This came up in lots of regexes that weren't using "raw" literals.
2018-08-13 10:41:01 -04:00
thetarkus
b1d5cc1485 Add uploader_id, uploader_name, and device_id for gmusicapi auth. 2018-08-13 02:52:16 -04:00
L Maffeo
67568b4f4c Passed tox tests 2018-08-12 19:37:31 +02:00
L Maffeo
5617eef6c7 Added subsonic plugin 2018-08-12 17:48:53 +02:00
Scott Carlson
a605a1ba55
Fixing Flake8 spacing complaint 2018-08-09 21:28:35 -05:00
Scott Carlson
cfe8ed9c34
Gmusic fixes based on review and changelog addition
* Fixes based on review and changelog addition
2018-08-06 16:41:09 -05:00
Scott Carlson
ef4490087b
Fixing Flake8 line issues 2018-08-05 00:17:19 -05:00
Scott Carlson
61363c8cd9
Fixing user messages to be more explicit 2018-08-04 23:54:58 -05:00
Scott Carlson
4fc15d2b17
Adding auto to default configs 2018-08-04 23:49:59 -05:00
Scott Carlson
69b4c68b63
Adding autoupload method to upload on import 2018-08-04 21:58:29 -05:00
Ryan Veach
1505ff071d changed flask cors import 2018-07-10 10:32:21 -05:00
Zsin Skri
ceabc72feb lastgenre: remove unnecessary check
In _resolv_genres wo do not have to explicitly check if self.c14n_branches is
not empty. The tree will have been loaded when self.canonicalize is truthy. Also
if self.c14n_branches would be empty the canonicalization is a no-op anyway...
2018-07-01 09:15:05 +02:00
Zsin Skri
cef9a3311c LastGenre: allow prefer_specific without canonical
This improves lastgenre's behaviour when the configuration option
`prefer_specific` is set but `canonical` is not.
Previously it would not set any tags. Now it does apply tags, sorted using the
canonicalization tree, but not canonicalized.

For this the default tree is loaded even when `canonical` is not set.
An extra check is added to only use it for canonicalization when `canonical` is
set.
2018-06-30 22:27:29 +02:00
Mike
1d32849daa Add ability for play plugin to emit utf8 BOM 2018-06-08 23:26:48 -06:00
Adrian Sampson
7d607b4c5d Merge pull request #2813 from autrimpo/issue2757
Use NullPaddedInt for R128 tags
2018-05-31 10:13:20 -04:00
Abra
3348a466f4 Make lyrics plugin group songs by 'albumartist' rather than 'artist'
when writing ReST
2018-05-14 11:18:34 +04:00
Bin Jin
69d6dfe097 mbsync: fix updating album with invalid first track MBID
MBID of recording could become invalid after merging. The existing
code always copies metadata from first track after updating. But for
albums with invalid track MBID that happens to be the first track,
MusicBrainz changes won't be applied to whole album, only whose
tracks with valid MBID. This is particularly annoying since those
changes are actually displayed for every `beet mbsync` run, but never
get applied.

Fix this issue by finding any track that get MusicBrainz updates, and
apply it to whole album.
2018-05-10 16:38:30 +08:00
Jérémie Detrey
3b03372502 mbsync: Use release-track-id to construct track mapping.
Fixes #1234 by following recording MBIDs changes.
2018-05-08 16:30:07 +02:00
rachmadaniHaryono
e90a547642 chg: dev: fix list item remove error 2018-05-03 09:46:03 +08:00
Dmitry Bogdanov
a840bc700b
Merge branch 'master' into discogs_original_year 2018-05-02 17:41:07 +02:00
Jérémie Detrey
9f4c5c8096 Do not rely on positional arguments for TrackInfo. 2018-04-30 18:37:27 +02:00
Adrian Sampson
f1d5c2f398 Fix #2537: keyfinder uses imported_items() 2018-04-29 13:45:39 -04:00
Dmitry Bogdanov
6aba118e94 Fetch original_year from master releases for Discogs (#1122)
This adds an additional Discogs API call inside get_album_info().
Assume that original_year equals to year for releases without a
master release.
2018-04-29 18:18:15 +02:00
Dmitry Bogdanov
f9b6473893 Some more code style fixes 2018-04-28 19:03:32 +02:00
Dmitry Bogdanov
7ac2aff50c Fix a few code style issues 2018-04-28 14:06:29 +02:00
Dmitry Bogdanov
0ea5882bc0 Better comments in code explaining Discogs track IDs (#2336) 2018-04-28 02:32:42 +02:00
Dmitry Bogdanov
09ee194142 Make Discogs medium indexing code easier to understand 2018-04-28 02:23:46 +02:00
Dmitry Bogdanov
48140f11e7 Use releasegroup_id to store master release IDs from Discogs
Master releases roughly correspond to MusicBrainz' release groups.
It will be usefull to store master IDs, for example to retrieve
original release dates (#1122).
2018-04-27 21:56:51 +02:00
Dmitry Bogdanov
2e422122b3 Invent our own track IDs for Discogs
Discogs does not provide track IDs. As a workaround, invent our own
IDs by combining release ID with original track position strings
returned by Discogs (#2336).
2018-04-27 20:30:35 +02:00
Dmitry Bogdanov
676536efa7 Fix incorrect indexing of two-sided mediums
Fix incorrect split of a tracklist by medium for the case of
two-sided mediums (#2887).

Following the discussion in #2887, the 'medium_total' value should
contain the number of tracks on the medium to which each particular
track belongs, not the total number of different mediums present on
a release.

Fix unit tests accordingly.
2018-04-27 19:28:35 +02:00
Tobias Sauerwein
499b3867b2 Remove unused import. 2018-04-20 08:25:08 +02:00
Tobias Sauerwein
4748a68b6b Remove exception handling. 2018-04-20 08:16:56 +02:00
cgtobi
7d45eabb25
Merge branch 'master' into sonos 2018-04-20 07:44:21 +02:00
Tobias Sauerwein
5e084b7186 Fix exception handling and add docs to the toc. 2018-04-20 07:39:12 +02:00
Tobias Sauerwein
c420f6bf99 Add sonos updater plugin. 2018-04-19 23:58:40 +02:00
Cédric Schieli
b9bac391a9
Really fix album replaygain calculation with gstreamer backend.
Fixes #2845
2018-03-19 21:09:35 +01:00
Waweic
06d4fe254d Implement recommendations by sampsyo
Implemented all recommendations.
2018-03-06 17:49:20 +01:00
Waweic
3c3e579dcc Make programming style pep8 compliant 2018-03-01 20:20:38 +01:00
Waweic
d0fd41b474 Add unicode support for Python 2 and 3
Converts bytes to unicode using util.text_string, assuming that the
string is a UTF-8 string.
If that fails, it falls back to a hardcoded fallback filename.
2018-03-01 19:45:44 +01:00
Waweic
4df313e3ce Fix unicode problems in web plugin
Added Exception to the web plugin to catch non latin-1 characters and change them to ascii chars.
Added Description to the changelog file
2018-03-01 11:56:38 +01:00
Waweic
b94227a53d Merge https://github.com/waweic/beets into patch-2
Catch up
2018-02-27 22:03:50 +01:00
Adrian Sampson
453fd372a3 Flatten a config view (#2821) 2018-02-26 18:00:59 -05:00
Adrian Sampson
3b49da0c52 Merge pull request #2821 from Konubinix/master
Add a support for supports_credentials
2018-02-26 17:59:57 -05:00
Samuel Loury
e3599742b4 Add a support for supports_credentials
If the web plugin is behind a credential based http server and is
accessed by another in-browser client in another domain, the
specification of CORS requires the server to indicate it supports
such credentials.
2018-02-26 21:08:02 +01:00
waweic
be96c1022a
Fix album_art() in __init__.py
flask.send_file() expects a string, g.lib.get_album() returns bytes. Added decode() to album_art(). 

If g.lib.get_album() gets a non-existing id, it returns None. Python would throw an error in this case. Added check to prevent this.
2018-02-26 18:33:30 +01:00
waweic
df83516086
Fix jumping time in beets.js
Round was used instead of floor
2018-02-26 17:01:06 +01:00
wisp3rwind
318f0c4d16 Advanced fetchart source config: pep8 2018-02-24 11:26:50 +01:00
wordofglass
e7a3e27ed9 Advanced fetchart source config: Actually use the new syntax 2018-02-24 11:26:50 +01:00
wordofglass
2c1e4d878b Advanced fetchart source config: add the (still unused) match_by constructor argument 2018-02-24 11:26:50 +01:00
Adrian Sampson
f2733883ef Merge branch 'master' of github.com:beetbox/beets 2018-02-23 18:19:11 -05:00
Adrian Sampson
a6be28a65e Fix #2817: drop in configuration was ignored
This was overridden by the default CLI option. Now the default for the
config option is None, meaning no change to the config.
2018-02-23 18:18:32 -05:00
David Logie
d6b6ebbeb9 mbcollection: Make sure missing albums are removed from collections correctly. 2018-02-23 12:34:33 +00:00
Michal Koutenský
d4625bced0 Have convert plugin run early in the pipeline 2018-02-19 10:46:06 +01:00
Michal Koutenský
8350ed6baf Unique debug messages for R128 functions 2018-02-18 20:09:58 +01:00
Kovrinic
ace7fab4d8 PlexUpdate: token redacted 2018-01-31 00:49:55 -06:00
Adrian Sampson
3f2cefd985 Merge pull request #2601 from m42i/m42i/importadded
Fix #1918: ValueError on trying to import
2018-01-30 22:55:28 -05:00
Adrian Sampson
224d782c2c Fix #2771: handle errors in genius lyrics source 2018-01-30 22:37:44 -05:00
Adrian Sampson
277d81b4d6 lyrics: Don't write ReST by default! 2018-01-30 22:33:32 -05:00
Adrian Sampson
e7417e3683 lyrics: Don't crash when BeautifulSoup isn't found 2018-01-30 22:31:15 -05:00
Adrian Sampson
b28e0b43ff Merge pull request #2778 from ylep/replaygain-options
Add --force, --write and --nowrite options to replaygain plugin
2018-01-02 14:50:27 -05:00
Yann Leprince
d9bec61e98 Merge branch 'master' of https://github.com/beetbox/beets into replaygain-options 2018-01-02 12:35:27 +01:00
Yann Leprince
499cd378b7 fix the default write behaviour to the importer configuration 2018-01-02 12:11:47 +01:00
Yann Leprince
079e167b6b Merge branch 'master' of https://github.com/beetbox/beets into fix-bs1170gain 2018-01-02 10:54:40 +01:00
Yann Leprince
3ef4b70439 Fix coding style 2017-12-31 14:51:14 +01:00
Yann Leprince
1f6335581e Add --force, --write and --nowrite options to replaygain plugin 2017-12-31 12:00:02 +01:00
Yann Leprince
05775ccac6 Fix fragile parsing of bs1770gain output
bs1770gain is sorting the filenames internally, so in some corner cases it returns the results in a different order from the command-line arguments.

This patch uses the --xml option of bs1770gain (introduced in 0.4.6) in order to read the filenames reliably.
2017-12-31 11:27:42 +01:00
Vrihub
d0af7a7bd3 Merge branch '2738-filename-tracknumber' of https://github.com/Vrihub/beets into 2738-filename-tracknumber 2017-12-21 15:20:35 +01:00
Vrihub
4ee5f2ca88 Fix "line too long" Travis CI error 2017-12-21 15:18:25 +01:00
Vrihub
9cd7473c6b
Merge branch 'master' into 2738-filename-tracknumber 2017-12-21 15:02:09 +01:00
Vrihub
84cf3361ce Refactored some regular expressions. Added changelog entry
Some more changes to the regular expressions in the "PATTERNS" list.
Also allow "_" as a separator, where only "-" was allowed.
Replaced similar regexps containing different combinations of \s, "-", "."
with a single regexp using a set of characters [\s.\-_].
2017-12-21 14:47:41 +01:00
Constantine Evans
dd2b44ef20 minor fixes and changelog entry 2017-12-11 13:31:40 -08:00
Vrihub
7132ad094b First tentative fix for issue 2738.
Don't ignore anymore filenames such as "01.mp3", instead use the number
in the filename as track number.
2017-12-11 19:32:53 +01:00
Constantine Evans
c9b4e9b414 only use tiebreak if tiebreak includes an entry for the kind being considered, otherwise use default (eg, if only items is specified, and -a is being used, use default order of priority 2017-12-10 12:28:47 -08:00
Adrian Sampson
d932aa4f5c
Merge pull request #2750 from woparry/master
Add tags configuration to acousticbrainz plugin
2017-12-02 22:19:23 -05:00
Owen Parry
1f45ea00f4 use as_str_seq and fix line length 2017-12-02 11:31:31 -08:00
Aaron Jubbal
e24f732014 Changed dont_convert to no_convert. 2017-11-29 20:08:50 -08:00
Aaron Jubbal
0998d9f8ef Added default value for dont_convert option, addressing crashes. 2017-11-29 17:53:50 -08:00
Aaron Jubbal
7265077e75 dont_convert option implemented.
Local testing indicates success.
2017-11-29 16:13:38 -08:00
Owen Parry
eaa84178f7 split long line 2017-11-27 09:11:53 -08:00
Owen Parry
325ae6f0ee Add tags configuration to acousticbrainz plugin 2017-11-27 07:55:38 -08:00
Barry Broderick
530beb6312 removed whitespaces from empty line 2017-11-22 10:10:28 -05:00
Barry Broderick
a7818027ab replaced the exception test in convert_field with an isinstance test 2017-11-20 23:09:36 -05:00
Barry Broderick
585d4ba89d attempted fix for #2740 2017-11-20 09:56:40 -05:00
David Logie
c10e62f212 mbcollection: Fix default 'remove' value.
If the default is not None the value cannot be overriden by the user's
config.yaml.
2017-11-13 15:48:22 +00:00
test
842f6afd7f Fix indentation 2017-11-10 14:04:16 +01:00
test
8544b3a830 Fix long line and add changelog entry 2017-11-10 13:46:26 +01:00
test
54297dbab4 Tentative fix for issue 2734: also check for RETAG 2017-11-05 12:04:40 +01:00
Adrian Sampson
14476e2f8a scrub: Handle MutagenError (fix #2716)
In older versions of Mutagen, an IOError indicated things like
permissions errors. Now, a custom MutagenError is raised. Now we handle
both.
2017-10-20 14:49:53 -04:00
Adrian Sampson
d02bef1aec Merge pull request #2709 from lmagno/master
Fetch lyrics from Genius through scraper
2017-10-09 18:50:58 -04:00
Lucas Magno
fc2d379fb5 Comply with PEP8 2017-10-09 06:22:42 -03:00
Lucas Magno
1b35a5df0d Fetch lyrics from Genius through scraper 2017-10-08 09:13:51 -03:00
konman2
578143ae12 updated to pass pep8 checks 2017-10-07 21:28:33 -07:00
konman2
fdeef05cc9 clearart asks for permission before deleting embedded albumart 2017-10-07 20:42:01 -07:00
Adrian Sampson
114a2f8bd4 Merge pull request #2707 from gdtwst/mpdstats_edits
mpdstats: update stats when switching from song to stream and when playing a song consecutively
2017-10-07 09:06:51 -07:00
gdtwst
e5afc5e0b3 Remove whitespaces from empty line 2017-10-07 19:00:08 +07:00
Heinz Wiesinger
bd6645d135 Fix album replaygain calculation with gstreamer backend.
Fixes #2636
2017-10-04 20:22:01 +02:00
gdtwst
c2770a5f6b Enable play counts for repeated plays of the same song. 2017-10-04 19:10:59 +07:00
gdtwst
eb338d208b Register song changes when switching from song to stream URL 2017-10-04 16:35:22 +07:00
j000
5a82c7ead1 Remove whitespaces from empty line 2017-09-27 23:31:35 +02:00
j000
77e8f21094 [Play plugin]Respect relative paths when using albums 2017-09-26 03:20:00 +02:00
Jonas Wagner
114a6f80da Fix the --key option in the duplicates plugin.
During a refactoring, the "dest='keys'" parameter was lost. This caused
the option to not have any effect.
2017-09-22 20:27:47 +02:00
David Logie
bed003f97b Use the built-in method of overriding config with cli options. 2017-09-18 18:19:51 +01:00
David Logie
61b0246651 mbcollection: Add support from removing albums.
Add a new ``mbcollection.remove`` configuration option (default: None)
and a new ``-r`` (``--remove``) flag which removes albums from
collections that are no longer present in the beets database.

The ``-r`` flag takes precedence over the ``remove`` configuration
option.
2017-09-14 15:49:42 +01:00
zigarrre
b376139663 Refactored move functions for clarity according to #2682
The move functions in library.py and manipule_files in importer.py where
changed to use a single parameter for the file operation instead of
multiple boolean flags.

A typo in the documentation of the Album.move and Item.move functions
confusing True and False when describing the store parameter was fixed
as well.
2017-09-11 17:03:44 +02:00
David Logie
7db09c6aba Silence pep8 warning. 2017-09-09 19:13:44 +01:00
David Logie
46f7ce78f1 mbcollection: Support specifiying collection ID. 2017-09-09 18:59:25 +01:00
euri10
25fb2453b4 Modified the name of the fetchart plugin switch from missing to quiet 2017-09-05 18:27:47 +02:00
euri10
b2fd274e2c Added a missing switch to the fetchart command so that only missing albums
are displayed
2017-09-05 16:34:26 +02:00
Adrian Sampson
34246a00e7 Fix #2673: JSON file encoding in absubmit
First, it's best to open the file as binary so the JSON module itself
can figure out how to decode it (it will just use UTF-8). Then, we can
use `load` instead of `loads` to avoid needing to read the file
explicitly ourselves.
2017-08-27 10:20:36 -04:00
Adrian Sampson
015aee3662 Fix #2671: missing syspath on acoustid call 2017-08-26 11:18:27 -04:00
wordofglass
8833fef249 Merge pull request #2668 from wordofglass/edit_logic
Edit plugin logic: Regression from previous PR; incorrect diffs
2017-08-25 15:52:40 +02:00
wordofglass
7f12cc0c88 edit, Model.copy: documentation improvements 2017-08-25 15:47:07 +02:00
wordofglass
352d99cccd edit: Do not deepcopy objects, finally fixes the regression from #2659
Deepcopying fails if a database is attached as Model._db since the
sqlite connection objects it contains are non-copyable
2017-08-24 15:03:18 +02:00
wordofglass
33f7e67943 edit: Fix a regression from #2659 when re-tagging albums 2017-08-24 13:40:50 +02:00
wordofglass
989845199b edit: Correctly reset the old object, do not reload it from the tags
Previously, if continuing to edit (i.e. invoking the $EDITOR) multiple
times in one invocation of EditPlugin.edit_objects, the plugin would
reload the old state from the file tags. The initial 'old state' is
usually only loaded from the database, though. As a consequence, if
database and tags were not in sync, the diffs from first and all
subsequent edits could differ unexpectedly.
2017-08-24 13:40:35 +02:00
Adrian Sampson
d87c73efb3 Merge pull request #2662 from natezb/master
Fix kodiupdate URL and add better error reporting
2017-08-22 12:59:19 -04:00
wordofglass
df479d686d Fix the edit plugin displaying bogus data or even crashing on re-imports 2017-08-21 00:32:03 +02:00
Nate Bogdanowicz
f5dbb7b0c5 Make error handling and logging more detailed 2017-08-20 14:51:03 -07:00
Nate Bogdanowicz
7eb9913391 Fix kodi url 2017-08-20 13:14:48 -07:00
Adrian Sampson
51961bbba2 gmusic: Use Unicode literals (#2660) 2017-08-20 13:03:40 -04:00
David Logie
f909f092fc Fix importfeeds plugin on Python 3. 2017-08-12 16:45:13 +01:00
Adrian Sampson
c06eca7e58 Merge pull request #2634 from anarcat/musixmatch-block-detect
lyrics: detect MusixMatch blocking
2017-07-18 17:13:31 -04:00
Antoine Beaupré
5ef68783a8
strip trailing and leading extra dashes
those are introduced if non-word characters are found, and are ugly
2017-07-18 16:33:22 -04:00
Antoine Beaupré
b4b5473093
add pointer to slugify in slug 2017-07-18 16:14:10 -04:00
Antoine Beaupré
a8afabea80
move slug utility function to top-level
it's a generic utility function that can be reused, there's nothing
class-specific about it.
2017-07-18 16:12:48 -04:00
Antoine Beaupré
5e8d17a4fc
lyrics: detect MusixMatch blocking
we just look for the bad string in the HTML. this has the downside
that we may consider songs that have those exact lyrics (you never
know, really) may trigger this warning as well and we would fail to
fetch those songs.

we also fail if lyrics contain another magic string that seems to come
up when you do fill in the CAPTCHA after being blocked.
2017-07-17 12:21:55 -04:00
Antoine Beaupré
458f3636f4
compare artists based on the slug
this is necessary because otherwise artists with different string
representations but the same slug would overwrite one another

this outlines more clearly the code duplication between the rst code
and the slugify function, something which can be fixed later.
2017-07-17 11:59:14 -04:00
Antoine Beaupré
9c36a41ea8
slight refactoring: strip album only once 2017-07-17 11:50:15 -04:00
Antoine Beaupré
9894e8752b
ignore trailing/leading whitespace when comparing artists 2017-07-17 11:49:35 -04:00
Antoine Beaupré
36f84bfedd
add missing trailing newline after lyrics block
this would yield a warning for every song
2017-07-17 11:44:06 -04:00
Adrian Sampson
b303d5beb0 Slightly more complete sentences in comments 2017-07-17 10:59:04 -04:00
Antoine Beaupré
93966ed4ee
strip whitespace in titles
this would cause problems with songs that had trailing spaces with the
index directive
2017-07-17 09:00:22 -04:00
Antoine Beaupré
b6e42ee2e8
fix another unicode error
the unicode strings are not binary - rely on Python to do the right
thing here instead of encoding a string we know is already properly
encoded
2017-07-17 08:55:09 -04:00
Antoine Beaupré
6d58110bd2
move heredocs to top-level globals 2017-07-17 08:50:19 -04:00
Antoine Beaupré
7e0a48a46d
s/rest/rest/ 2017-07-17 08:49:40 -04:00
Adrian Sampson
9de94378b9 An even shorter metavariable 2017-07-16 10:14:49 -04:00
Adrian Sampson
813cf97686 Better metavariable for lyrics --help output 2017-07-16 10:10:41 -04:00
Antoine Beaupré
5d8c15980e
fix flake8 warning 2017-07-15 16:24:07 -04:00
Antoine Beaupré
0bcd16f1ab
deal with encoding issues in python3
when we encode explicitly, we return bytes, so open files as binary
2017-07-15 16:21:41 -04:00
Antoine Beaupré
f667428758
write sphinx base files
we write the artists files in a subdirectory, to avoid infinite
recursions or flooding the current directory needlessly.

this way, the user has a good base structure and can just chain the
command into sphinx to continue building the next format, after
possible tweaks.
2017-07-15 15:43:16 -04:00
Antoine Beaupré
e6adb5e7da
cosmetic: do not use needless heredoc 2017-07-15 15:33:35 -04:00
Antoine Beaupré
91de8aac84
move rst writer to a different function
this simplifies and clarifies the code, although we need to call the writerst function twice to wrap up at the end of the loop
2017-07-15 15:33:35 -04:00
Antoine Beaupré
d330353e1c
rename the skip option to local
skip was a misnomer: we actually skip "unfetched" lyrics. this means
it's somewhat of a double-negative and really confusing.

--local is clearer, although less in opposition with --force
2017-07-15 14:19:25 -04:00
Antoine Beaupré
ac32ae574c
optimize: write only 3 times per file
this makes the code more readable and reduces the number of syscalls
to write files
2017-07-15 09:23:59 -04:00
Antoine Beaupré
469c03a7bf
deal properly with empty album titles 2017-07-15 09:23:59 -04:00
Antoine Beaupré
63aa3b3165
write to separate rst files
this makes the ePUB easier to parse by e-readers, because they do not
need to load one giant HTML file, but one per author. it also makes
sphinx rendering more efficient and interactive
2017-07-15 09:23:58 -04:00
Antoine Beaupré
0fbfa1feae
render RST instead of HTML
ReStructuredText has the advantage over HTML that it can be rendered
easily to multiple formats (HTML, ePUB, PDF) and it supports indexes.

the output needs to be fed into a file and integrated into an existing
Sphinx document, of course.
2017-07-14 17:34:55 -04:00
Antoine Beaupré
9f3e5b28b4
output lyrics in HTML, allow skipping
the idea here is to format the lyrics output a little better so that
it can (for example) be shown as a web page or an ebook.

the new skip option allows for faster generation of the output in the
(most common) case where not all lyrics are available.
2017-07-14 15:31:22 -04:00
Michal Koutenský
70a2ad354b fixes issue #2615 2017-07-04 15:53:02 +02:00
masi
3bea876111 Fix #1918: ValueError on trying to import 2017-06-17 23:20:46 +02:00
Adrian Sampson
f2b6801e6c Merge pull request #2596 from aranc23/metasync-fixes
do not quote the value in xml, use quoteattr to add quotes as needed
2017-06-15 21:01:46 -04:00
Adrian Sampson
8ba0060f44 Wrap a long line 2017-06-15 20:46:54 -04:00
Adrian Sampson
009c6a4f6d Slightly clearer layout for #2593, and comments 2017-06-15 17:51:14 -04:00
Aran Cox
f36c70c754 do not quote the value in xml, use quoteattr to add quotes as needed 2017-06-15 09:00:59 -05:00
robot3498712
cafbb2438e fixed failing test - line too long 2017-06-15 13:27:28 +02:00
robot3498712
bc8a8ecf5f fix /issues/2592: web: Use Unicode paths to send files on Windows under Python 2 2017-06-15 12:49:00 +02:00
Adrian Sampson
ace5656e36 Complete set of __future__ imports 2017-06-14 19:08:27 -04:00
Adrian Sampson
1f2b8cef97 Tiny code and docs fixes for gmusic (#2586) 2017-06-14 19:05:38 -04:00