(define (wanttosearch)
(> (- (current-time) lastsearch)
- (if (> (length trans) 0) 300 60))
+ (if (eq? (cdr (assoc 'search-mode session)) 'wait)
+ 7200
+ (if (> (length trans) 0) 300 60)))
)
(define defspeed '())
(do ((arg (getopt) (getopt))) ((not (and (pair? arg) (char? (car arg)))) (set! args arg))
(cond ((eq? (car arg) #\h)
(begin (display "usage: autodl [-s server] -S sessfile\n" (current-error-port))
- (display " autodl [-s server] -e search-expression [-p prio] [-t tag] [-a userarg]\n" (current-error-port))
+ (display " autodl [-w] [-s server] -e search-expression [-p prio] [-t tag] [-a userarg]\n" (current-error-port))
(display " autodl [-s server]\n" (current-error-port))
(display " autodl -h\n" (current-error-port))
(exit 0)))
(set! session (cons (cons 'info-file (cdr arg)) session)))))
((eq? (car arg) #\e)
(set! session (cons (cons 'sexpr (dc-lexsexpr (cdr arg))) session)))
+ ((eq? (car arg) #\w)
+ (set! session (cons '(search-mode . wait) session)))
)
)
)
(set! session (cons '(prio . 10) session)))
(if (not (assoc 'maxtrans session))
(set! session (cons '(maxtrans . 1) session)))
+ (if (not (assoc 'search-mode session))
+ (set! session (cons '(search-mode . wait) session)))
(if (not (validate-session session)) (begin (display "Invalid session!\n" (current-error-port)) (exit 1)))
(if (not dc-server) (set! dc-server (getenv "DCSERVER")))
(if (not dc-server) (set! dc-server "localhost"))
(let ((ires (dc-intresp resp)))
(if (and ires (= (car ires) srchid))
(begin (set! info-searcheta (+ (current-time) (cadr ires)))
- (logf (string-append "search rescheduled to T+" (number->string (cadr ires))))))))
+ (logf (string-append "search rescheduled to T+" (number->string (cadr ires))))
+ (write-info-file)))))
((621) ; Search committed
(let ((ires (dc-intresp resp)))
(if (and ires (= (car ires) srchid))
(begin (logf "search committed")
(set! info-searcheta 0)
- (set! lastsearch (current-time))))))
+ (set! lastsearch (current-time))
+ (write-info-file)))))
((622) ; Search result
(let ((ires (list->vector (dc-intresp resp))))
(if (and ires (= (vector-ref ires 0) srchid)) (apply handlesr (map (lambda (n) (vector-ref ires n)) '(1 2 3 4 5 7 8))))))