Add current page size in Kb and the whole bandwidth usage at the end - clic - Clic is an command line interactive client for gopher written in Common LISP HTML git clone git://bitreich.org/clic/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/clic/ DIR Log DIR Files DIR Refs DIR Tags DIR README DIR LICENSE --- DIR commit 1f6eeef4e3b769c19b558f9218d618b59383a54d DIR parent e621aa67e792e7fa10c602cdf2820d652b3afe3e HTML Author: Solene Rapenne <solene@perso.pw> Date: Mon, 13 Aug 2018 12:33:37 +0200 Add current page size in Kb and the whole bandwidth usage at the end Diffstat: M clic.lisp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) --- DIR diff --git a/clic.lisp b/clic.lisp @@ -63,6 +63,10 @@ ;;; array of lines of last menu (defparameter *previous-buffer* nil) +;;; bandwidth usage counter +(defparameter *total-bandwidth-in* 0) +(defparameter *last-bandwidth-in* 0) + ;;; a list containing the last viewed pages (defparameter *history* '()) @@ -303,6 +307,7 @@ :fill-pointer 0 :initial-element nil :adjustable t)) + (setf *last-bandwidth-in* 0) (let ((real-time (get-internal-real-time))) ;; we prepare informations about the connection @@ -319,11 +324,15 @@ count line into lines while line do + ;; count bandwidth usage + (incf *total-bandwidth-in* (length line)) + (incf *last-bandwidth-in* (length line)) ;; increase array size if needed (when (= lines (- (array-total-size *buffer*) 1)) (adjust-array *buffer* (+ 200 (array-total-size *buffer*)))) (vector-push line *buffer*))) + ;; we store the duration of the connection (setf *duration* (float (/ (- (get-internal-real-time) real-time) internal-time-units-per-second))))) @@ -707,13 +716,14 @@ (defun display-prompt() (let ((last-page (car *history*))) - (format t "~agopher://~a:~a/~a~a (~as) / (p)rev (r)edisplay (h)istory : " + (format t "~agopher://~a:~a/~a~a (~as, ~aKb) / (p)rev (r)edisplay (h)istory : " (if *kiosk-mode* "KIOSK " "") (location-host last-page) (location-port last-page) (location-type last-page) (location-uri last-page) - *duration*)) + *duration* + (floor (/ *last-bandwidth-in* 1024.0)))) (force-output)) (defun shell() @@ -769,7 +779,8 @@ ;; to look it here (when (not (eq 'end (visit destination))) ;; we continue to the shell if we are in a terminal - (shell)))) + (shell))) + (format t "~a kB in.~%" (floor (/ *total-bandwidth-in* 1024.0)))) (pipe-to-stdout destination))))) ;; we allow ecl to use a new kind of argument