Simple database: Difference between revisions

→‎{{header|Common Lisp}}: improve file handling
(→‎{{header|Common Lisp}}: add function to list all episodes, implement some suggestions from the friendly people in #lisp)
(→‎{{header|Common Lisp}}: improve file handling)
Line 125:
:tags (parse-tags (prompt-read "Tags"))))
 
(defun save-db (filenamedbfile database)
(let ((file (probe-file filenamedbfile)))
(rename-file file (concatenate 'string (file-namestring file) ",1"))
(with-open-file (out file
Line 135:
(pprint database out))))))
 
(defun watch-save (dbfile)
(save-db "lwatch"dbfile *db*))
 
(defun load-db (filenamedbfile)
(with-open-file (in filenamedbfile)
(with-standard-io-syntax
(read in))))
 
(defun get-series (name database)
(get-valuecdr (assoc name database :test #'equal)))
 
(defun get-episode-list (series database)
Line 212:
 
(defun main (argv)
(watch-loadlet ((dbfile (make-pathname :name "lwatch" :type nil :defaults *load-truename*)))
(cond ((equal (cadr argv) "add") (watch-add)load (watch-save)dbfile)
(cond ((equal (cadr argv) "latestadd") (watch-latestadd) (watch-save dbfile))
((nullequal (cadr argv) "latest") (watch-latest))
((equalnull (cadr argv) "series") (watch-series-nameslatest))
((equal (cadr argv) "allseries") (watch-allseries-names))
(T (watch-series(equal (cadr argv) "all")) (watch-all))
(T (watch-series (cadr argv))))))
 
(main (argv))</lang>
Anonymous user