Anonymous user
Simple database: Difference between revisions
m
→{{header|Common Lisp}}: small improvements: prompt more and better defaults for make-episode, improve output formatting
m (→{{header|Common Lisp}}: small improvements: prompt more and better defaults for make-episode, improve output formatting) |
|||
Line 253:
(format stream (if *print-escape*
"#s(episode~@{~*~@[ :~1:*~a ~s~]~})"
"~
:series (episode-series ep)
:season (episode-season ep)
Line 324:
(when (not last)
(setf last (make-episode)))
(let* ((series (prompt-read "Series Title" (episode-series last)))
(make-episode▼
(when (and (episode-part last)
:tags (parse-tags (prompt-read "Tags"))))▼
(or (eq (episode-season last) season)
(eq (episode-part last) 1)))
(1+ (episode-part last))))))
(date (parse-date (prompt-read "Date watched" (format-ymd (get-current-date)))))
▲ (make-episode
:series series
:title title
:season season
:episode episode
:part part
:date date
:tags tags)))
(defun parse-integer-quietly (&rest args)
Line 375 ⟶ 388:
(format t "~30a ~a ~@[ (~{~a~^ ~})~]~%"
(car series) (series-description (cdr series)) (series-tags (cdr series)))
(format t "~{~& ~a~%~}" (series-episodes series)))
(defun watch-series (title)
Line 381 ⟶ 394:
(format t "~30a ~@[ (~{~a~^ ~})~]~%~@[ ~a~%~]" title (series-tags series)
(series-description series))
(format t "~{~& ~a~%~}" (reverse (series-episodes series)))))
(defun dump-db (database)
Line 388 ⟶ 401:
(defun watch-latest ()
(format t "~{~& ~a~%~}" (sort (get-latest *db*) #'compare-by-date)))
(defun watch-all ()
(format t "~{~& ~a~%~}" (sort (get-all *db*) #'compare-by-date)))
(defun watch-new-series (&key name description tags)
Line 411 ⟶ 424:
(defun watch-series-names ()
(format T "~{~& ~a~%~}"
(sort (mapcar #'car *db*)
(lambda (series1 series2)
Line 419 ⟶ 432:
(defun watch-load (dbfile)
(setf *db* (load-db dbfile)))
(defun argv ()
|