home
/
code
/
tt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Simplify
[tt.git]
/
tt
diff --git
a/tt
b/tt
index
ecafb5c
..
2bbe402
100755
(executable)
--- a/
tt
+++ b/
tt
@@
-42,10
+42,11
@@
(require http-client)
(require rfc3339-old)
(require http-client)
(require rfc3339-old)
-(struct msg (t
m_epoch tm
_rfc3339 nick uri text))
+(struct msg (t
s_epoch ts
_rfc3339 nick uri text))
(struct feed (nick uri))
(define (concurrent-filter-map num_workers f xs)
(struct feed (nick uri))
(define (concurrent-filter-map num_workers f xs)
+ ; TODO switch from mailboxes to channels
(define (make-worker id f)
(define parent (current-thread))
(λ ()
(define (make-worker id f)
(define parent (current-thread))
(λ ()
@@
-72,12
+73,9
@@
[(cons x xs) (begin
(thread-send thd (cons 'unit x))
(dispatch ws xs ys))])])))
[(cons x xs) (begin
(thread-send thd (cons 'unit x))
(dispatch ws xs ys))])])))
- (define workers
- (range 1 (add1 num_workers)))
- (define threads
- (map (λ (id) (thread (make-worker id f))) workers))
- (define results
- (dispatch workers xs '()))
+ (define workers (range num_workers))
+ (define threads (map (λ (id) (thread (make-worker id f))) workers))
+ (define results (dispatch workers xs '()))
(for-each thread-wait threads)
results)
(for-each thread-wait threads)
results)
@@
-87,7
+85,7
@@
['single-line "~a \033[1;37m<~a ~a>\033[0m \033[0;~am~a\033[0m~n"]
['multi-line "~a~n\033[1;37m<~a ~a>\033[0m~n\033[0;~am~a\033[0m~n~n"]
[_ (raise (format "Invalid output format: ~a" out-format))])
['single-line "~a \033[1;37m<~a ~a>\033[0m \033[0;~am~a\033[0m~n"]
['multi-line "~a~n\033[1;37m<~a ~a>\033[0m~n\033[0;~am~a\033[0m~n~n"]
[_ (raise (format "Invalid output format: ~a" out-format))])
- (date->string (seconds->date [msg-t
m
_epoch msg]) #t)
+ (date->string (seconds->date [msg-t
s
_epoch msg]) #t)
(msg-nick msg)
(msg-uri msg)
(if odd 36 33)
(msg-nick msg)
(msg-uri msg)
(if odd 36 33)
@@
-108,17
+106,17
@@
(log-warning "Invalid msg line from nick:~a, msg:~a" nick str)
#f)
(let*
(log-warning "Invalid msg line from nick:~a, msg:~a" nick str)
#f)
(let*
- ([t
m_rfc3339 (list-ref toks 0
)]
- [t
ok_text (list-ref toks 1
)]
- [t
(string->rfc3339-record tm
_rfc3339)]
+ ([t
s_rfc3339 (first toks
)]
+ [t
ext (second toks
)]
+ [t
(string->rfc3339-record ts
_rfc3339)]
; TODO handle tz offset
; TODO handle tz offset
- [t
m
_epoch (find-seconds [rfc3339-record:second t]
+ [t
s
_epoch (find-seconds [rfc3339-record:second t]
[rfc3339-record:minute t]
[rfc3339-record:hour t]
[rfc3339-record:mday t]
[rfc3339-record:month t]
[rfc3339-record:year t])])
[rfc3339-record:minute t]
[rfc3339-record:hour t]
[rfc3339-record:mday t]
[rfc3339-record:month t]
[rfc3339-record:year t])])
- (msg t
m_epoch tm_rfc3339 nick uri tok_
text))))))
+ (msg t
s_epoch ts_rfc3339 nick uri
text))))))
(define (str->lines str)
(string-split str (regexp "[\r\n]+")))
(define (str->lines str)
(string-split str (regexp "[\r\n]+")))
@@
-166,14
+164,12
@@
; TODO timeline contract : time-sorted list of messages
(define (timeline num_workers feeds)
(sort (append* (concurrent-filter-map num_workers feed->msgs feeds))
; TODO timeline contract : time-sorted list of messages
(define (timeline num_workers feeds)
(sort (append* (concurrent-filter-map num_workers feed->msgs feeds))
- (λ (a b) [< (msg-t
m_epoch a) (msg-tm
_epoch b)])))
+ (λ (a b) [< (msg-t
s_epoch a) (msg-ts
_epoch b)])))
(define (str->feed str)
; TODO validation
(define toks (string-split str))
(define (str->feed str)
; TODO validation
(define toks (string-split str))
- (feed
- [list-ref toks 0]
- [list-ref toks 1]))
+ (apply feed toks))
(define (str->feeds str)
(map str->feed (str->lines str)))
(define (str->feeds str)
(map str->feed (str->lines str)))
@@
-204,14
+200,16
@@
(define user-agent
(let*
([prog-name "tt"]
(define user-agent
(let*
([prog-name "tt"]
- [prog-version "0.3.0"]
+ [prog-version "0.3.3"]
+ [prog-uri "https://github.com/xandkar/tt"]
[user-feed-file (expand-user-path "~/twtxt-me.txt")]
[user-feed-file (expand-user-path "~/twtxt-me.txt")]
- [user (list-ref (file->feeds user-feed-file) 0)])
- (format "~a/~a (+~a; @~a)"
- prog-name
- prog-version
- (feed-uri user)
- (feed-nick user))))
+ [user
+ (if (file-exists? user-feed-file)
+ (let ([user (first (file->feeds user-feed-file))])
+ (format "+~a; @~a" (feed-uri user) (feed-nick user)))
+ (format "+~a" prog-uri))]
+ )
+ (format "~a/~a (~a)" prog-name prog-version user)))
(setup-logging)
(current-http-response-auto #f)
(setup-logging)
(current-http-response-auto #f)
This page took
0.038733 seconds
and
4
git commands to generate.