Files
rktplayer/rktplayer.rkt

50 lines
1.2 KiB
Racket

#lang racket
(require racket/gui
"gui.rkt"
simple-ini/class
racket-sound
racket-webview
racket/runtime-path
"utils.rkt"
net/uri-codec
)
(define-runtime-path rkt-gui-dir "gui")
(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 my-file-getter]
))
(window (new rktplayer% [wv-context context]))
)
window)
)
;(run)