OSDN Git Service

FeedFetcher: suppress verbose messages by MOJO_LOG_LEVEL environ var
[newslash/newslash.git] / src / newslash_web / lib / Newslash / FeedFetcher.pm
index bc00933..80452e0 100644 (file)
@@ -13,6 +13,8 @@ use Data::Dumper;
 use DateTime::Format::MySQL;
 use Newslash::Util;
 use File::Spec;
+use Mojo::Log;
+
 
 sub new {
     my $class = shift;
@@ -64,8 +66,11 @@ sub _load_config {
        my $home = $self->_detect_home;
        if ($home) {
            $config_file = File::Spec->catdir($home, "newslash-feedfetcher.yaml");
+           if (! -e $config_file) {
+               $config_file = File::Spec->catdir($home, "newslash-web.yaml");
+           }
        }
-    }
+   }
 
     my $config = eval { LoadFile($config_file) };
     die qq{Can't parse config "$config_file": $@} if $@;
@@ -76,7 +81,14 @@ sub _load_config {
 
 sub run {
     my $self = shift;
-    my $verbose = 2;
+    my $log = Mojo::Log->new;
+
+    if ($ENV{MOJO_LOG_LEVEL}) {
+       $log->level($ENV{MOJO_LOG_LEVEL});
+    }
+    else {
+       $log->level("warn");
+    }
 
     my $config = $self->_load_config;
     $self->config($config);
@@ -90,16 +102,16 @@ sub run {
     }
     for my $feed (@$rs) {
         if ($feed->{status} ne "active") {
-            print "$feed->{title} is not active. skip ...";
+           $log->info("$feed->{title} is not active. skip ...");
             next;
         }
-        print "fetch $feed->{url} ...\n" if $verbose > 0;
+       $log->info("fetch $feed->{url} ...");
 
         my $f = $feeds->fetch_url(\$feed->{url}, $config->{FeedFetcher} || {});
         my $now = DateTime::Format::MySQL->format_datetime(DateTime->now);
         if (!$f) {
             my $error = $feeds->last_error;
-            warn "fetch $feed->{url} failed - $error.\n";
+            $log->error("fetch $feed->{url} failed - $error.");
             $feeds->update(feed_id => $feed->{feed_id},
                            latest_fetch_time => $now,
                            latest_fetch_result => $feeds->last_errorno);
@@ -126,14 +138,14 @@ sub run {
                                           );
             if (!defined $id) {
                 my $error = $feeds->last_error;
-                warn "cannot create feed item: $error";
+                $log->error("cannot create feed item: $error");
             }
             else {
                 if ($id == 0) {
-                    print "update item " . $item->link . " (feed_id: $feed->{feed_id})\n" if $verbose > 1;
+                    $log->debug("update item " . $item->link . " (feed_id: $feed->{feed_id})");
                 }
                 else {
-                    print "create item " . $item->link . " (feed_id: $feed->{feed_id}, item_id: $id)\n" if $verbose > 1;
+                    $log->debug("create item " . $item->link . " (feed_id: $feed->{feed_id}, item_id: $id)");
                 }
             }
         }