bleskodev / rubyripper

Fork of the original rubyripper from code.google.com/p/rubyripper + some bugs fixes
126 stars 21 forks source link

Album with '$' in it leads to a false 'no free space' error #472

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Hello !

1) Please describe the steps to reproduce the situation:
a. Rip an album the contains the '$' sign in the album name field. E.g. for me :
Snoop Dogg - Paid tha Cost to Be da Bo$$
b. Rip it in GUI or CLI mode
c. You should get the following errors :

Ripping progress (0 %)
df: `/tmp/Snoop Dogg - Paid tha Cost to Be da Bo6866': No such file or directory
df: no file systems processed
df: `/tmp/Snoop Dogg - Paid tha Cost to Be da Bo6868': No such file or directory
df: no file systems processed
df: `/tmp/Snoop Dogg - Paid tha Cost to Be da Bo6870': No such file or directory
df: no file systems processed
df: `/tmp/Snoop Dogg - Paid tha Cost to Be da Bo6872': No such file or directory
df: no file systems processed
df: `/tmp/Snoop Dogg - Paid tha Cost to Be da Bo6874': No such file or directory
df: no file systems processed
df: `/tmp/Snoop Dogg - Paid tha Cost to Be da Bo6876': No such file or directory
df: no file systems processed
df: `/tmp/Snoop Dogg - Paid tha Cost to Be da Bo6878': No such file or directory
df: no file systems processed
df: `/tmp/Snoop Dogg - Paid tha Cost to Be da Bo6880': No such file or directory
df: no file systems processed
df: `/tmp/Snoop Dogg - Paid tha Cost to Be da Bo6882': No such file or directory
df: no file systems processed
df: `/tmp/Snoop Dogg - Paid tha Cost to Be da Bo6884': No such file or directory
df: no file systems processed
df: `/tmp/Snoop Dogg - Paid tha Cost to Be da Bo6886': No such file or directory
df: no file systems processed
df: `/tmp/Snoop Dogg - Paid tha Cost to Be da Bo6888': No such file or directory
df: no file systems processed
df: `/tmp/Snoop Dogg - Paid tha Cost to Be da Bo6890': No such file or directory
df: no file systems processed
df: `/tmp/Snoop Dogg - Paid tha Cost to Be da Bo6892': No such file or directory
df: no file systems processed
df: `/tmp/Snoop Dogg - Paid tha Cost to Be da Bo6894': No such file or directory
df: no file systems processed
df: `/tmp/Snoop Dogg - Paid tha Cost to Be da Bo6896': No such file or directory
df: no file systems processed
df: `/tmp/Snoop Dogg - Paid tha Cost to Be da Bo6898': No such file or directory
df: no file systems processed
df: `/tmp/Snoop Dogg - Paid tha Cost to Be da Bo6900': No such file or directory
df: no file systems processed
df: `/tmp/Snoop Dogg - Paid tha Cost to Be da Bo6902': No such file or directory
df: no file systems processed
Plus suffisamment d'espace disque! Extraction annuléePlus suffisamment 
d'espace disque! Extraction annuléePlus suffisamment d'espace disque! 
Extraction annuléePlus suffisamment d'espace disque! Extraction annuléePlus 
suffisamment d'espace disque! Extraction annuléePlus suffisamment d'espace 
disque! Extraction annuléePlus suffisamment d'espace disque! Extraction 
annuléePlus suffisamment d'espace disque! Extraction annuléePlus suffisamment 
d'espace disque! Extraction annuléePlus suffisamment d'espace disque! 
Extraction annuléePlus suffisamment d'espace disque! Extraction annuléePlus 
suffisamment d'espace disque! Extraction annuléePlus suffisamment d'espace 
disque! Extraction annuléePlus suffisamment d'espace disque! Extraction 
annuléePlus suffisamment d'espace disque! Extraction annuléePlus suffisamment 
d'espace disque! Extraction annuléePlus suffisamment d'espace disque! 
Extraction annuléePlus suffisamment d'espace disque! Extraction annuléePlus 
suffisamment d'espace disque! Extraction annul�df: `/tmp/Snoop Dogg - Paid 
tha Cost to Be da Bo6904': No such file or directory

3) What version of rubyripper are you using? On what operating system? The
gtk2 of commandline interface?

Ruby ripper 0.6.0, Debian stable.

The problem lies line 1852 : '$' should be escaped in the parameter passed to 
DF.
indeed, in the shell :
$ df "Snoop Dogg - Paid tha Cost to Be da Bo$$"
df: « Snoop Dogg - Paid tha Cost to Be da Bo6376 »: Aucun fichier ou 
dossier de ce type
df: aucun système de fichiers traité
and
$ df "Snoop Dogg - Paid tha Cost to Be da Bo\$\$"
Sys. de fichiers      1K-blocs   Utilisé    Dispo. Uti% Monté sur
/dev/sdb3            266803824 175784856  77466136  70% /home

Thanks by advance and sorry if this bug has already been reported.

Original issue reported on code.google.com by wizzim@gmail.com on 25 Aug 2011 at 6:52

GoogleCodeExporter commented 8 years ago
Thanks for the detailed bugreport. I've fixed it with commit

http://code.google.com/p/rubyripper/source/detail?r=d81c1fa6d32bbac5ad069a24b0a9
2c08c2801229

Original comment by boukewou...@gmail.com on 24 Sep 2011 at 9:10

GoogleCodeExporter commented 8 years ago
If I may : looking at your commit, you plan of preventing at all the user to 
create a file with a '$' in the filename.

It seems to me that it's a pretty harsh limitation since many songs (mostly 
hiphop :)) use this char. Moreover, '$' in filename is a perfectly allowed 
character for NTFS and EXT filesystems.

Wouldn't it be better to just escape it for the DF call, and that's it ?

Thanks for your support and your patience !

Original comment by wizzim@gmail.com on 24 Sep 2011 at 9:37

GoogleCodeExporter commented 8 years ago
Well, there are two reasons for my choice:

1) The $ character isn't that common for filenames (I've never seen one before)
2) The $ character is still preserved in the tags

For most usage the tags should be enough since it's used in most audio players. 
And I guess you can still recognize the songname :)

Original comment by boukewou...@gmail.com on 24 Sep 2011 at 10:05

GoogleCodeExporter commented 8 years ago
Oh, if the tag is untouched then it's ok.

Thanks again

Original comment by wizzim@gmail.com on 24 Sep 2011 at 10:07