handling "/" in title tag and associated problems

Bug #267650 reported by oksijun
2
Affects Status Importance Assigned to Milestone
pytagsfs
Fix Released
Undecided
Forest Bond

Bug Description

Hi,

I have a pytagsfs filesystem mounted:

/usr/bin/pytagsfs -o allow_other,format='/%a/%l/%N-%t.%e',dstfilter='^/[mM].*' /data M

An mp3 file in /data has a title with a '/' character:

$ id3info '01. Great Expectations - Orange Lady.mp3' | grep TIT2
=== TIT2 (Title/songname/content description): Great Expectations / Orange Lady

Under the pytagfs mount, this shows up as:

$ tree -p
.
|-- [drwxr-xr-x] 01-Great Expectations
| `-- [-rw-r--r--] Orange Lady.mp3

The '/' is being interpreted as a directory.

I was under the impression that retagging the file would solve the problem, but the filesystem doesn't get updated:

$ pytags --set="title=Great Expectations - Orange Lady" 01.\ Great\ Expectations\ -\ Orange\ Lady.mp3
01. Great Expectations - Orange Lady.mp3
$ pytags 01.\ Great\ Expectations\ -\ Orange\ Lady.mp3 | grep ^title
title=Great Expectations - Orange Lady
$ tree -p
.
|-- [drwxr-xr-x] 01-Great Expectations
| `-- [-rw-r--r--] Orange Lady.mp3

Renaming the file in the pytagsfs mount doesn't work either:
$ mv 01-Great\ Expectations\ /\ Orange\ Lady.mp3 '01-Great Expectations - Orange Lady.mp3'
mv: cannot move `01-Great Expectations / Orange Lady.mp3' to a subdirectory of itself, `01-Great Expectations - Orange Lady.mp3'

$ tail -1 ../../.log

[08:51:57,360] get_values_for_rename: old path and new path have differing numbers of slashes: /Miles Davis/Big Fun/01-Great Expectations / Orange Lady.mp3, /Miles Davis/Big Fun/01-Great Expectations - Orange Lady.mp3

Revision history for this message
Forest Bond (forest-bond) wrote :

Thanks for the report.

I have a fix for this committed locally that is pending a larger refactoring that I am almost done with. I hope to push these changes to the launchpad bzr repository today.

-Forest

Revision history for this message
oksijun (oksijun) wrote :

I finally got around to trying this (sorry for the delay in answering).

Using the same file as in the original bug report, I found that:

1. Running 'pytags --set="title=Great Expectations - Orange Lady" 01.\ Great\ Expectations\ -\ Orange\ Lady.mp3' on the 'real' file now modifies the contents of the fuse mount correctly (i.e. the unwanted subdirectory dissapears). However, the id3 title tag of the file gets truncated to "Great Expectations - Orange La" (maybe id3v1 vs. id3v2?)

2. Changing the id3 title tag with another tool (in this case, id3tag) has no effect on the fuse mount. Then again, maybe this is by design, and only pytags can be used?

3. Acting directly on the contents of the fuse mount does not work:

$ mv 01-Great\ Expectations\ /\ Orange\ Lady.mp3 '01-Great Expectations - Orange Lady.mp3'

results in :

mv: cannot move ` Orange Lady.mp3' to a subdirectory of itself, `../01-Great Expectations - Orange Lady.mp3'

and .log contains the same message as before:

get_values_for_rename: old path and new path have differing numbers of slashes: /jazz/Miles Davis/Big Fun/01-Great Expectations / Orange Lady.mp3, /jazz/Miles Davis/Big Fun/01-Great Expectations - Orange

I will happily provide more information if required...

Revision history for this message
Forest Bond (forest-bond) wrote :

Hi,

You continue to have problems because I've not yet pushed the fix to launchpad!

Sorry for the delay. I've been trying to find time to get this done for a few days now. I will make it available this weekend, I promise.

-Forest

Revision history for this message
Forest Bond (forest-bond) wrote :

Fixed in revision 456.

Changed in pytagsfs:
assignee: nobody → forest-bond
status: New → Fix Committed
Revision history for this message
Forest Bond (forest-bond) wrote :

Fixed in version 0.8.0rc1.

Changed in pytagsfs:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.