From: Vangelis forthnet Sent: Tuesday, June 6, 2017 17:13
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...
I don't use --subdir either, but it seems some users do.
https://squarepenguin.co.uk/forums/thread-96.html
Not only do they use it, but there is a demand for multi-level
subdirectories. Your change is fine for users who just use --subdir
without --subdir-format, which is what I think artisticforge was doing, but
it would prevent use of --subdir-format to create multi-level
subdirectories.
I suggest something along the lines of replacing line 4043 with
if ($opt->{subdirformat}!='') {my $subdir = $prog->substitute(
$opt->{subdirformat}, 1)};
else {$subdir = $prog->substitute ('<longname>', 0)};
I need to get some help to get the syntax right. If I put in a second my
after else it objects to it, but without it it says I am using $subdir as a
global variable which requires an explicit package name, as it does for
$prog. I have obviously upset the block structure, but I can't see where.
At one stage I was puzzled as to how / was replaced by \ for Windows paths,
as it is not done by the substitute() function. The answer seems to be that
it is done by catdir in line 4044.
As for readability of Perl, my Perl book is over 1000 pages long. If I look
in the index for catdir or canonpath or any of the other methods of
File::Spec I can't find them. Fortunately they are in the online
documentation. I think I'll stick to learning C++ and Python.
_______________________________________________
get_iplayer mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/get_iplayer