beetbox / beetbox/beets

%asciify{} doesn't replace path separators

Open
#2,126 7 comments 0 reactions 1 assignee Claimed by @euri10 View on GitHub
bug
Dominant language
Python
Stars
15.7k
Forks
2.1k
Avg merge
4d 21h
Merged PRs (30d)
31

Description

### Problem

This is maybe related to https://github.com/beetbox/beets/issues/323.
It seems like %asciify{} messes with the path_sep_replace option. The path separation substitution just doesn't work at all.

Running this command in verbose mode:

``` sh
$ beet -vv import music
```

Led to this problem:

```
user configuration: /home/main/.beets/config.yaml
data directory: /home/main/.beets
plugin paths:
Sending event: pluginload
library database: /home/main/.beets/library.db
library directory: /home/main/Music
Sending event: library_opened
Sending event: import_begin
Sending event: import_task_created
Sending event: import_task_start
Looking up: /home/main/music
Tagging Steven Wilson - 4 ½
Searching for discovered album ID: e85f41ab-9eac-492e-a566-1fdbaf9f42e1
Sending event: albuminfo_received
Candidate: Steven Wilson - 4 ½
Success. Distance: 0.00
Album ID match recommendation is Recommendation.strong
ID match.

/home/main/music (6 items)
Sending event: before_choose_candidate
Tagging:
Steven Wilson - 4 ½
URL:
http://musicbrainz.org/release/e85f41ab-9eac-492e-a566-1fdbaf9f42e1
(Similarity: 99.9%) (tracks) (CD, 2016, XW, Kscope)
* My Book of Regrets (9:35) -> My Book of Regrets (9:23) (length)
Sending event: import_task_choice
Sending event: import_task_apply
0 of 6 items replaced
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Sending event: item_copied
Sending event: database_change
Sending event: database_change
Sending event: write
Sending event: after_write
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: import_task_files
Sending event: album_imported
Sending event: import
Sending event: cli_exit
```

Where then the files get moved to a "wrong" directory:

``` sh
main@htpc:~$ beet ls -f '$path'
/home/main/Music/Steven Wilson/4 1/2/01-01.mp3
/home/main/Music/Steven Wilson/4 1/2/01-02.mp3
/home/main/Music/Steven Wilson/4 1/2/01-03.mp3
/home/main/Music/Steven Wilson/4 1/2/01-04.mp3
/home/main/Music/Steven Wilson/4 1/2/01-05.mp3
/home/main/Music/Steven Wilson/4 1/2/01-06.mp3
```
### Setup
- OS: Linux 4.5.2-040502-generic
- Python version: Python 2.7.11+
- beets version: 1.3.18

My configuration is:

``` yaml
paths:
default: '%asciify{$albumartist}/%asciify{$album}/%if{$disc,$disc,01}-$track'
path_sep_replace: _
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.