New file getter implemented. Windows is stubborn.
This commit is contained in:
@@ -7,37 +7,40 @@
|
||||
racket-webview
|
||||
racket/runtime-path
|
||||
"utils.rkt"
|
||||
net/uri-codec
|
||||
)
|
||||
|
||||
(define-runtime-path rkt-gui-dir "gui")
|
||||
;(ao-set-async-mode! 'ffi)
|
||||
|
||||
(define log-file (build-path (find-system-path 'home-dir) ".rktplayer.log"))
|
||||
(sl-log-to-file log-file)
|
||||
|
||||
(displayln (format "Logging to file ~a" log-file))
|
||||
|
||||
|
||||
(define (my-file-getter url)
|
||||
(dbg-rktplayer "my-file-getter - url = ~a" url)
|
||||
(when (string-prefix? url "/")
|
||||
(set! url (substring url 1)))
|
||||
(if (string-prefix? url "get-image")
|
||||
(let* ((str (uri-decode url))
|
||||
(idx (string-find str "?")))
|
||||
(set! str (substring str (+ idx 1)))
|
||||
(set! idx (string-find str "&"))
|
||||
(set! str (substring str 0 idx))
|
||||
(dbg-rktplayer "returning file ~a" str)
|
||||
(build-path str)
|
||||
)
|
||||
(build-path rkt-gui-dir url)
|
||||
)
|
||||
)
|
||||
|
||||
(define (run)
|
||||
(let* ((ini (new ini% [file 'rktplayer]))
|
||||
(context (new wv-context%
|
||||
[base-path rkt-gui-dir]
|
||||
[ini ini]
|
||||
[file-getter (webview-standard-file-getter
|
||||
rkt-gui-dir
|
||||
#:not-exist
|
||||
(λ (file base-path path)
|
||||
(dbg-rktplayer "FILE:~a, ~a, ~a" file base-path path)
|
||||
(let ((prefix (path->string
|
||||
(build-path (find-system-path 'cache-dir)
|
||||
"rktplayer-cover-image"))))
|
||||
(dbg-rktplayer "prefix= ~a" prefix)
|
||||
(dbg-rktplayer "is-prefix? = ~a" (string-prefix? file prefix))
|
||||
(if (string-prefix? file prefix)
|
||||
(begin
|
||||
(dbg-rktplayer "RETURNING FILE")
|
||||
file)
|
||||
path)))
|
||||
)]
|
||||
[file-getter my-file-getter]
|
||||
))
|
||||
(window (new rktplayer% [wv-context context]))
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user