]> git.rmz.io Git - dotfiles.git/blob - bin/old/addName.pl
merge bin from shada
[dotfiles.git] / bin / old / addName.pl
1 #! /usr/bin/perl
2
3 use warnings;
4 use strict;
5 # getopts module
6 use Getopt::Std;
7 # getstore madule
8 use LWP::Simple;
9 # Curent Working Directory module
10 use Cwd;
11
12 # eguides URL
13 my $url = 'http://epguides.com';
14
15 # get options
16 our($opt_n);
17 getopts('n') or die; # sets opt_n to true if -n is given
18 #+or dies when options are unknown
19
20 my $cwd = getcwd();
21 my $path = 'tmp';
22
23 print $cwd . "\n";
24
25 $cwd =~ /.*\/(.*) (?:\[.*\])*\/Season (\d+)/;
26 print $1 . " " . $2 . "\n";
27 my $file = $1;
28
29
30 getstore( "$url/$file", $path);
31
32 open FILE, $path or die $!;
33 my @lines = <FILE>;
34 close FILE;
35 unlink($path);
36
37
38 my @old_file_names = <*>;
39
40 foreach my $old_file_name (@old_file_names) {
41 # print $old_file_name . "\n";
42 if ($old_file_name =~ /0?(?<season>\d+).*?0?(?<episode>\d+)/) {
43 # print $+{episode} . "\n";
44 my $episode = length($+{episode}) == 1 ? '0' . $+{episode} : $+{episode};
45 my $pattern = '(0?'.$+{season}.')-([0 ]?'.$+{episode}.').*>(.*) *<\/a>';
46 foreach my $line (@lines) {
47 if ($line =~ /$pattern/) {
48 my $new_file_name = $1 . "x" . $episode . " " .$3 . ".avi";
49 # print "pattern -> " . $pattern . "\n";
50 if ($opt_n) {
51 print $old_file_name . " -> " . $new_file_name . "\n";
52 } else {
53 rename($old_file_name, $new_file_name);
54 }
55 last;
56 }
57 }
58 }
59 }