calendar.parser,robots: hhmm>timestamp -> hhmm>duration
Better to parse it as a duration because it is not a valid timestamp.char-rename
parent
2895d5e095
commit
3bbc784fad
|
@ -44,6 +44,13 @@ IN: calendar.parser.tests
|
||||||
time- 1 seconds before?
|
time- 1 seconds before?
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
|
! hhmm>duration
|
||||||
|
{
|
||||||
|
T{ duration { hour 10 } { minute 20 } }
|
||||||
|
} [
|
||||||
|
"1020" hhmm>duration
|
||||||
|
] unit-test
|
||||||
|
|
||||||
! parse-rfc822-gmt-offset
|
! parse-rfc822-gmt-offset
|
||||||
{ T{ duration f 0 0 0 0 0 0 } } [
|
{ T{ duration f 0 0 0 0 0 0 } } [
|
||||||
"GMT" parse-rfc822-gmt-offset
|
"GMT" parse-rfc822-gmt-offset
|
||||||
|
|
|
@ -27,11 +27,6 @@ ERROR: invalid-timestamp-format ;
|
||||||
|
|
||||||
: read-sp ( -- token ) " " read-token ;
|
: read-sp ( -- token ) " " read-token ;
|
||||||
|
|
||||||
: hhmm>timestamp ( hhmm -- timestamp )
|
|
||||||
[
|
|
||||||
0 0 0 read-00 read-00 0 instant <timestamp>
|
|
||||||
] with-string-reader ;
|
|
||||||
|
|
||||||
: signed-gmt-offset ( dt ch -- dt' )
|
: signed-gmt-offset ( dt ch -- dt' )
|
||||||
{ { CHAR: + [ 1 ] } { CHAR: - [ -1 ] } } case time* ;
|
{ { CHAR: + [ 1 ] } { CHAR: - [ -1 ] } } case time* ;
|
||||||
|
|
||||||
|
@ -181,3 +176,7 @@ MACRO: attempt-all-quots ( quots -- quot )
|
||||||
|
|
||||||
: ymd>timestamp ( str -- timestamp )
|
: ymd>timestamp ( str -- timestamp )
|
||||||
[ (ymd>timestamp) ] with-string-reader ;
|
[ (ymd>timestamp) ] with-string-reader ;
|
||||||
|
|
||||||
|
! Duration parsing
|
||||||
|
: hhmm>duration ( hhmm -- duration )
|
||||||
|
[ instant read-00 >>hour read-00 >>minute ] with-string-reader ;
|
||||||
|
|
|
@ -26,8 +26,8 @@ IN: robots.tests
|
||||||
}
|
}
|
||||||
{ visit-time
|
{ visit-time
|
||||||
{
|
{
|
||||||
T{ timestamp { hour 2 } }
|
T{ duration { hour 2 } }
|
||||||
T{ timestamp { hour 5 } }
|
T{ duration { hour 5 } }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
{ request-rate 1 }
|
{ request-rate 1 }
|
||||||
|
|
|
@ -63,7 +63,7 @@ visit-time request-rate crawl-delay unknowns ;
|
||||||
{ "crawl-delay" [ string>number >>crawl-delay ] }
|
{ "crawl-delay" [ string>number >>crawl-delay ] }
|
||||||
{ "request-rate" [ string>number >>request-rate ] }
|
{ "request-rate" [ string>number >>request-rate ] }
|
||||||
{
|
{
|
||||||
"visit-time" [ "-" split1 [ hhmm>timestamp ] bi@ 2array
|
"visit-time" [ "-" split1 [ hhmm>duration ] bi@ 2array
|
||||||
>>visit-time
|
>>visit-time
|
||||||
] }
|
] }
|
||||||
[ pick unknowns>> push-at ]
|
[ pick unknowns>> push-at ]
|
||||||
|
|
Loading…
Reference in New Issue