|
|
@@ -1,10 +1,10 @@
|
|
|
(in-package :cl-user)
|
|
|
(defpackage chad-music.server
|
|
|
- (:use :cl #:alexandria #:chad-music.db #:jonathan))
|
|
|
+ (:use :cl #:alexandria #:chad-music.db #:jonathan)
|
|
|
+ (:export #:main))
|
|
|
(in-package :chad-music.server)
|
|
|
|
|
|
-(defvar *path-url-mappings*
|
|
|
- '(("/media/pogo/Music/" . "/music/")) "Map database paths to urls")
|
|
|
+(defvar *path-url-mappings* nil "alist map database paths to urls")
|
|
|
|
|
|
(defun get-url (path)
|
|
|
(declare #.*standard-optimize-settings*)
|
|
|
@@ -151,17 +151,30 @@
|
|
|
(if file (list 200 nil file) +404+))))
|
|
|
|
|
|
(defvar *mapper* (myway:make-mapper))
|
|
|
-(myway:connect *mapper* "/cat/:category/size" 'get-category-size)
|
|
|
-(myway:connect *mapper* "/cat/:category" 'get-category)
|
|
|
-(myway:connect *mapper* "/cat" 'get-category-list)
|
|
|
-(myway:connect *mapper* "/album/:id/tracks" 'get-album-tracks)
|
|
|
-;;(myway:connect *mapper* "*" (lambda (p) (declare (ignore p)) +404+))
|
|
|
-
|
|
|
-(defun main (&rest args &key (port 5000) (debug nil) (use-thread t) (serve-files t) &allow-other-keys)
|
|
|
+(myway:connect *mapper* "/api/cat/:category/size" 'get-category-size)
|
|
|
+(myway:connect *mapper* "/api/cat/:category" 'get-category)
|
|
|
+(myway:connect *mapper* "/api/cat" 'get-category-list)
|
|
|
+(myway:connect *mapper* "/api/album/:id/tracks" 'get-album-tracks)
|
|
|
+
|
|
|
+(defun main (&rest args &key (port 5000) (debug nil) (use-thread t) (serve-files nil) &allow-other-keys)
|
|
|
+ ;; Load config file
|
|
|
+ (when-let (file (probe-file
|
|
|
+ (merge-pathnames "config.lisp"
|
|
|
+ (asdf:component-pathname
|
|
|
+ (asdf:find-system '#:chad-music)))))
|
|
|
+ (load file))
|
|
|
+
|
|
|
+ ;; Load database
|
|
|
+ (when-let (file (probe-file *db-path*))
|
|
|
+ (chad-music.db:load-db file))
|
|
|
+
|
|
|
+ ;; Set up debug file server
|
|
|
(when serve-files
|
|
|
(loop for (path-prefix . url-prefix) in *path-url-mappings*
|
|
|
do (myway:connect *mapper* (concatenate 'string url-prefix "*")
|
|
|
(file-server path-prefix))))
|
|
|
+
|
|
|
+ ;; Start application
|
|
|
(apply #'clack:clackup
|
|
|
(myway:to-app *mapper*)
|
|
|
:server :woo
|