diff options
author | Miguel Ángel Moreno <mail@migalmoreno.com> | 2023-06-12 00:20:55 +0200 |
---|---|---|
committer | Miguel Ángel Moreno <mail@migalmoreno.com> | 2023-06-12 00:40:29 +0200 |
commit | f27baeeefcb038420e36e314f2b6d3ae0aaeb2bb (patch) | |
tree | cec6cf44616e8ba9c116af91bad3693915a055b5 | |
parent | 389595a5c9be282b3c568880f49d9bfefb4d287b (diff) |
feat: Remove non-essential routers
* Media toggler can be replaced with built-in auto-rules.
* Web routes to be replaced with router composition.
-rw-r--r-- | router.lisp | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/router.lisp b/router.lisp index 557e865..abf664e 100644 --- a/router.lisp +++ b/router.lisp @@ -108,27 +108,6 @@ the current URL as argument, and can be given in a `format'-like syntax.")) (:metaclass user-class) (:documentation "`route' that instructs resources to be opened externally.")) -(define-class media-toggler (route) - ((media-p - t - :type boolean - :documentation "Whether to display media in the route.")) - (:export-class-name-p t) - (:export-slot-names-p t) - (:export-accessor-names-p t) - (:accessor-name-transformer (class*:make-name-transformer name)) - (:metaclass user-class) - (:documentation "`route' that toggles the state of media display.")) - -(define-class web-route (redirector blocker opener media-toggler) - () - (:export-class-name-p t) - (:export-slot-names-p t) - (:export-accessor-names-p t) - (:accessor-name-transformer (class*:make-name-transformer name)) - (:metaclass user-class) - (:documentation "`route' that combines many routes for behavior you might -want to modify in a web buffer.")) (define-mode router-mode () "Apply a set of routes on the current browsing session." @@ -502,35 +481,7 @@ If REVERSE, reverse the redirect logic." (when (nyxt:toplevel-p request-data) (nyxt::buffer-delete (buffer request-data))))) -(defmethod dispatch-route (request-data (route media-toggler)) (when request-data - (flet ((set-media-state (state req) - (setf (nyxt:ffi-buffer-auto-load-image-enabled-p (buffer req)) - state) - (setf (nyxt:ffi-buffer-media-enabled-p (buffer req)) state))) - (set-media-state (media-p route) request-data)) - request-data)) - -(defmethod dispatch-route (request-data (route web-route)) - (with-slots (redirect-url original-url redirect-rule - blocklist resource media-p) - route - (when (or original-url redirect-url redirect-rule) - (dispatch-route - request-data (make-instance 'redirector - :original-url original-url - :redirect-url redirect-url - :redirect-rule redirect-rule))) - (when blocklist - (dispatch-route - request-data (make-instance 'blocker :blocklist blocklist))) - (when media-p - (dispatch-route - request-data (make-instance 'media-toggler :media-p media-p))) - (when resource - (dispatch-route - request-data (make-instance 'opener :resource resource))))) - (defmethod route-handler (request-data (mode router-mode)) "Handle routes from MODE to dispatch with REQUEST-DATA." (when request-data |