A bug in get_iplayer-3.01?

Vangelis forthnet northmedia1 at the.forthnet.gr
Tue Jun 6 09:13:37 PDT 2017


On Mon Jun 5 23:55:58 BST 2017, RS wrote:

> I was trying to work out how the procedures
> substitute and sanitize_path were intended to interact.
> They both seem to be doing the same job
> in different ways which are hard to follow.

RS previously wrote:

> substitute needs to be called before create_dir,
> so that the sub-directory name is sanitised
> by removal of the / before the sub-directory is created.

and

> In another part of the code there is a variable sanitize_mode
> which can have values between 0 and 4
> to denote different treatment for
> sanitising file and directory names

This is:

# sanitize_mode == 0 then sanitize final string and also sanitize '/' in 
field values
# sanitize_mode == 1 then sanitize final string but don't sanitize '/' (and 
'\' on Windows) in field values
# sanitize_mode == 2 then just substitute only
# sanitize_mode == 3 then substitute then use encode entities for fields 
only
# sanitize_mode == 4 then substitute then escape characters in fields only 
for use in double-quoted shell text.

As Ralph (thanks!) has pointed out earlier in the thread:

> I think the call where it's passed as 1 is
> (snip)
> elsif ( $opt->{subdir} ) {
>  my $subdir = $prog->substitute( $opt->{subdirformat} || '<longname>', 
> 1 );

So, the substitution parameter <longname> is
undergoing sanitize_mode == 1, hence "/" isn't replaced.
Instead of applying the patch I posted previously,
I changed

-my $subdir = $prog->substitute( $opt->{subdirformat} || '<longname>', 1 );
+my $subdir = $prog->substitute( $opt->{subdirformat} || '<longname>', 0 );

which seems to also have the desired effect:

get_iplayer --type=tv --pid=b08r69t1 --subdir -i | FindStr dir =>

dir:            D:\Vangelis\iPlayer Recordings\Vets_24_7_Series_4

This has only been tested on Windows, I don't use --subdir
myself TBH, so unsure whether this breaks other stuff...

Regards,
Vangelis. 




More information about the get_iplayer mailing list