| 78 | | } |
|---|
| 79 | | |
|---|
| 80 | | my %formats = ( |
|---|
| 81 | | 'u' => sub { my $s = $_[0]->url; $s =~ s!^https?://!!; $s }, |
|---|
| 82 | | 'l' => sub { my $s = $_[0]->link; $s =~ s!^https?://!!; $s }, |
|---|
| 83 | | 't' => sub { $_[0]->title }, |
|---|
| 84 | | 'i' => sub { $_[0]->id }, |
|---|
| 85 | | ); |
|---|
| 86 | | |
|---|
| 87 | | my $format_re = qr/%(u|l|t|i)/; |
|---|
| 88 | | |
|---|
| 89 | | sub gen_filename { |
|---|
| 90 | | my($self, $feed) = @_; |
|---|
| 91 | | |
|---|
| 92 | | my $file = $self->conf->{filename} || |
|---|
| 93 | | '%i.' . ($self->conf->{format} eq 'RSS' ? 'rss' : 'atom'); |
|---|
| 94 | | $file =~ s{$format_re}{ |
|---|
| 95 | | $self->safe_filename($formats{$1}->($feed)) |
|---|
| 96 | | }egx; |
|---|
| 97 | | $file; |
|---|
| 98 | | } |
|---|
| 99 | | |
|---|
| 100 | | sub safe_filename { |
|---|
| 101 | | my($self, $path) = @_; |
|---|
| 102 | | $path =~ s![^\w\s]+!_!g; |
|---|
| 103 | | $path =~ s!\s+!_!g; |
|---|
| 104 | | $path; |
|---|