hacker-news: Fix using, fix bug printing HN company posts. Refactor a bit
parent
92a0e1e701
commit
639952a1de
|
@ -1,26 +1,26 @@
|
|||
! Copyright (C) 2012 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors assocs classes.tuple colors.constants
|
||||
colors.hex combinators formatting fry hashtables http.client io
|
||||
io.styles json json.reader kernel make math math.parser
|
||||
sequences splitting ui urls ;
|
||||
colors.hex combinators concurrency.combinators formatting fry
|
||||
hashtables http.client io io.styles json json.reader kernel make
|
||||
math math.parser sequences splitting ui urls ;
|
||||
IN: hacker-news
|
||||
|
||||
<PRIVATE
|
||||
|
||||
: json-null>f ( obj -- obj/f )
|
||||
dup json-null = [ drop f ] when ;
|
||||
: hacker-news-recent-ids ( -- seq )
|
||||
"https://hacker-news.firebaseio.com/v0/topstories.json?print=pretty"
|
||||
http-get nip json> ;
|
||||
|
||||
: hacker-news-items ( n -- seq )
|
||||
[
|
||||
"https://hacker-news.firebaseio.com/v0/topstories.json?print=pretty"
|
||||
http-get nip json>
|
||||
] dip head
|
||||
[
|
||||
number>string
|
||||
"https://hacker-news.firebaseio.com/v0/item/" ".json?print=pretty" surround
|
||||
http-get nip json>
|
||||
] parallel-map ;
|
||||
: hacker-news-id>json-url ( n -- url )
|
||||
number>string
|
||||
"https://hacker-news.firebaseio.com/v0/item/" ".json?print=pretty" surround ;
|
||||
|
||||
: hacker-news-items ( seq -- seq' )
|
||||
[ hacker-news-id>json-url http-get nip json> ] parallel-map ;
|
||||
|
||||
: hacker-news-recent-items ( n -- seq )
|
||||
[ hacker-news-recent-ids ] dip head hacker-news-items ;
|
||||
|
||||
: write-title ( title url -- )
|
||||
'[
|
||||
|
@ -57,9 +57,13 @@ PRIVATE>
|
|||
[ dup "by" of [ " by " write-text [ "by" of ] [ post>user-url ] bi write-link ] [ drop ] if ]
|
||||
! [ dup postedAgo>> [ " " write-text postedAgo>> write-text ] [ drop ] if ]
|
||||
[
|
||||
" | " write-text
|
||||
[ "descendants" of [ "discuss" ] [ "%d comments" sprintf ] if-zero ]
|
||||
[ post>comments-url ] bi write-link nl nl
|
||||
dup "decendants" of [
|
||||
" | " write-text
|
||||
[ "descendants" of [ "discuss" ] [ "%d comments" sprintf ] if-zero ]
|
||||
[ post>comments-url ] bi write-link
|
||||
] [
|
||||
drop
|
||||
] if nl nl
|
||||
]
|
||||
} cleave ;
|
||||
|
||||
|
@ -74,6 +78,6 @@ PRIVATE>
|
|||
} assoc-union format nl ;
|
||||
|
||||
: hacker-news. ( -- )
|
||||
25 hacker-news-items
|
||||
30 hacker-news-recent-items
|
||||
banner.
|
||||
[ 1 + post. ] each-index ;
|
||||
|
|
Loading…
Reference in New Issue