]> git.99rst.org Git - irssi-scripts.irssi.org.git/commitdiff
(irssi-feed) Add a check for a correct servertag and reformat output of João Orui...
authorCaesar <redacted>
Sun, 15 Sep 2013 20:27:36 +0000 (22:27 +0200)
committerbw1 <redacted>
Sat, 14 Apr 2018 17:19:38 +0000 (19:19 +0200)
scripts/irssi-feed.pl

index aad59f6a0a34407b6848e687b06bd98353a0ac92..31086b7798e0ec7a6845dbbee155c9b97fd8190f 100644 (file)
@@ -386,11 +386,23 @@ sub feed_get_news {
 
 sub feed_announce_item {
        my ($feed, $news) = @_;
-       my $space = "";
-       $space =~ s//' ' x ((length $feed->{id}) + 3)/e;
        my $titleline = $news->title;
        $titleline =~ s/\s*\n\s*/ | /g;
-       feed_announce_item_print($feed, '<' . feed_stringrepr($feed) . '> ' . $titleline . "\n" . $space . $news->link, Irssi::MSGLEVEL_PUBLIC);
+
+       my $channel = $feed->{channel};
+       if($channel) {
+               my $server = Irssi::server_find_tag($feed->{servtag});
+               if($server) {
+                       $server->command("/notice $channel <" . feed_stringrepr($feed, 0, 1) . '> ' . $titleline . " " . $news->link);
+               } else {
+                       feedprint('Feed ' . feed_stringrepr($feed) . ' failed to find servertag ' . $feed->{servtag} . '. Deactivated!') if($feed->{active});
+                       $feed->{active} = 0;
+               }
+       } else {
+               my $space = "";
+               $space =~ s//' ' x ((length $feed->{id}) + 3)/e;
+               feedprint('<' . feed_stringrepr($feed) . '> ' . $titleline . "\n" . $space . $news->link);
+       }
 }
 
 sub finished_load_message {
@@ -409,7 +421,7 @@ sub feed_delete {
 }
 
 sub feed_stringrepr {
-       my ($feed, $long) = @_;
+       my ($feed, $long, $nocolor) = @_;
        return unless $feed;
        if($long) {
                return "#" .
@@ -420,11 +432,12 @@ sub feed_stringrepr {
                $feed->{name} . 
                (($feed->{name} ne $feed->{uri}) ? (" (" .$feed->{uri}. ")") : "") . 
                ($feed->{active} ? " ":" in")."active, " . 
-               $feed->{timeout} ."s";
+               $feed->{timeout} ."s" .
+               ($feed->{channel} ? ' (printed to ' . $feed->{channel} . '@' . $feed->{servtag} . ')' : '');
        } else {
-               return ($feed->{color} ? $feed->{color} : '') .
+               return ($feed->{color} && !$nocolor ? $feed->{color} : '') .
                $feed->{id} .
-               ($feed->{color} ? '%n' : '');
+               ($feed->{color} && !$nocolor ? '%n' : '');
        }
 }
 
@@ -447,18 +460,6 @@ sub feedprint {
        }
 }
 
-sub feed_announce_item_print {
-       my ($feed, $msg) = @_;
-       my $channel = $feed->{channel};
-       my $server = Irssi::server_find_tag( $feed->{servtag} );
-       if($channel) {
-               $server->command("/notice $channel $msg");
-       } else {
-               feedprint($msg);
-       }
-}
-
-
 Irssi::command_bind('feed', \&feedreader_cmd);
 Irssi::settings_add_str('feedreader', 'feedlist', '');
 our $initial_skips = 0;
git clone https://git.99rst.org/PROJECT