it* hacker news on gopher Err codevoid.de 70 i Err codevoid.de 70 hgit clone git://git.codevoid.de/hn-gopher URL:git://git.codevoid.de/hn-gopher codevoid.de 70 1Log /git/hn-gopher/log.gph codevoid.de 70 1Files /git/hn-gopher/files.gph codevoid.de 70 1Refs /git/hn-gopher/refs.gph codevoid.de 70 i--- Err codevoid.de 70 1commit 2b7e9e0f8bb755628f7f9e77174c93b95e299da6 /git/hn-gopher/commit/2b7e9e0f8bb755628f7f9e77174c93b95e299da6.gph codevoid.de 70 1parent 23a060ffd2c3ed13af0c3c49a8938c4802e3e5da /git/hn-gopher/commit/23a060ffd2c3ed13af0c3c49a8938c4802e3e5da.gph codevoid.de 70 hAuthor: Stefan Hagen URL:mailto:sh+git[at]codevoid[dot]de codevoid.de 70 iDate: Sun, 29 Jul 2018 23:44:21 +0200 Err codevoid.de 70 i Err codevoid.de 70 iHandle 0 comments and filter frontpage a bit Err codevoid.de 70 i Err codevoid.de 70 iDiffstat: Err codevoid.de 70 i M hn-scraper.pl | 25 ++++++++++++++++++------- Err codevoid.de 70 i Err codevoid.de 70 i1 file changed, 18 insertions(+), 7 deletions(-) Err codevoid.de 70 i--- Err codevoid.de 70 1diff --git a/hn-scraper.pl b/hn-scraper.pl /git/hn-gopher/file/hn-scraper.pl.gph codevoid.de 70 it@@ -15,7 +15,7 @@ use Data::Dumper; Err codevoid.de 70 i ### CONFIGURATION Err codevoid.de 70 i my $protocol = "https"; Err codevoid.de 70 i my $server = "hn.algolia.com"; Err codevoid.de 70 i-my $api_taguri = "/api/v1/search?tags="; Err codevoid.de 70 i+my $api_uri = "/api/v1"; Err codevoid.de 70 i my $go_root = "/srv/codevoid-gopher"; Err codevoid.de 70 i my $go_path = "/hn"; Err codevoid.de 70 i Err codevoid.de 70 it@@ -62,8 +62,13 @@ sub scrapeSubComments { Err codevoid.de 70 i ### SUB: scrapeComments($objectID, $number) Err codevoid.de 70 i sub scrapeComments { Err codevoid.de 70 i my ( $objectID, $number ) = @_; Err codevoid.de 70 i- my $payload = getApiData("$api_taguri"."comment,story_$objectID&hitsPerPage=$number"); Err codevoid.de 70 i- my $content = scrapeSubComments($payload, $objectID, 0); Err codevoid.de 70 i+ my $content = ""; Err codevoid.de 70 i+ if($number) { Err codevoid.de 70 i+ my $payload = getApiData("$api_uri/search?tags="."comment,story_$objectID&hitsPerPage=$number"); Err codevoid.de 70 i+ $content = scrapeSubComments($payload, $objectID, 0); Err codevoid.de 70 i+ } else { Err codevoid.de 70 i+ $content = "No comments available\n"; Err codevoid.de 70 i+ } Err codevoid.de 70 i saveFile($content, "story_$objectID.gph"); Err codevoid.de 70 i } Err codevoid.de 70 i Err codevoid.de 70 it@@ -181,7 +186,8 @@ sub saveFile { Err codevoid.de 70 i ### MAIN PROGRAM Err codevoid.de 70 i Err codevoid.de 70 i my ($selected_story) = @ARGV; Err codevoid.de 70 i-my $json_fp = getApiData("$api_taguri"."front_page"); Err codevoid.de 70 i+my $json_fp = getApiData("$api_uri/search_by_date?tags=front_page&numericFilters=points>60"); Err codevoid.de 70 i+#my $json_fp = getApiData("$api_uri/search?tags=story"); Err codevoid.de 70 i Err codevoid.de 70 i my $content = ""; Err codevoid.de 70 i for my $hit ($json_fp->{"hits"}) { Err codevoid.de 70 it@@ -199,13 +205,18 @@ for my $hit ($json_fp->{"hits"}) { Err codevoid.de 70 i $story->{'created_at'} =~ /(....-..-..)T(..:..).*/; Err codevoid.de 70 i my $date = $1; Err codevoid.de 70 i my $time = $2; Err codevoid.de 70 i+ my $number = 0; Err codevoid.de 70 i+ if($story->{'num_comments'}) { Err codevoid.de 70 i+ $number = $story->{'num_comments'}; Err codevoid.de 70 i+ } Err codevoid.de 70 i Err codevoid.de 70 i $content .= "[h| $title|URL:$url|server|port]\n"; Err codevoid.de 70 i $content .= " by $author ($story->{'points'} points) at $time ($date)\n"; Err codevoid.de 70 i- $content .= "[1| read $story->{'num_comments'} comments|$go_path/story_$story->{'objectID'}.gph|server|port]\n"; Err codevoid.de 70 i+ $content .= "[1| read $number comments|$go_path/story_$story->{'objectID'}.gph|server|port]\n"; Err codevoid.de 70 i $content .= "\n"; Err codevoid.de 70 i- print "Debug: scrapeComments($story->{'objectID'}, $story->{'num_comments'});\n"; Err codevoid.de 70 i- scrapeComments($story->{'objectID'}, $story->{'num_comments'}); Err codevoid.de 70 i+ print "Debug: scrapeComments($story->{'objectID'}, $number);\n"; Err codevoid.de 70 i+ Err codevoid.de 70 i+ scrapeComments($story->{'objectID'}, $number); Err codevoid.de 70 i } Err codevoid.de 70 i } Err codevoid.de 70 i # saving index last to avoid broken links while scraper is running. Err codevoid.de 70 .