diff --git a/oni-browse-url.el b/oni-browse-url.el index cfb8c9d..57feb6e 100644 --- a/oni-browse-url.el +++ b/oni-browse-url.el @@ -4,7 +4,7 @@ ;; Author: Tom Willemse ;; Keywords: local -;; Version: 2021.0727.202603 +;; Version: 2022.0207.000602 ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -27,10 +27,40 @@ (require 'browse-url) +;; Ideas: +;; - Split out to different functions for Medium, Twitter, Youtube, etc. +;; - Split the medium one into *.medium.com and also allow arbitrary sites to be added. +(defun browse-url-redirect-alternative (args) + "Check the url given to ‘browse-url’ and redirect to a free alternative if available. +ARGS is the list of arguments that was passed to ‘browse-url’ +before this filter." + (cond + ((string-prefix-p "https://blog.bitsrc.io" (car args)) + (cons (string-replace "https://blog.bitsrc.io" "https://scribe.rip/bitsrc" (car args)) + (cdr args))) + ((string-prefix-p "https://levelup.gitconnected.com" (car args)) + (cons (string-replace "https://levelup.gitconnected.com" "https://scribe.rip/gitconnected" (car args)) + (cdr args))) + ((string-prefix-p "https://twitter.com" (car args)) + (cons (string-replace "https://twitter.com" "https://nitter.net" (car args)) + (cdr args))) + ((string-prefix-p "https://kevingosse.medium.com" (car args)) + (cons (string-replace "https://kevingosse.medium.com" "https://scribe.rip/kevingosse" (car args)) + (cdr args))) + ((string-prefix-p "https://medium.com" (car args)) + (cons (string-replace "https://medium.com" "https://scribe.rip" (car args)) + (cdr args))) + ((string-prefix-p "https://www.youtube.com" (car args)) + (cons (string-replace "https://www.youtube.com" "https://yewtu.be" (car args)) + (cdr args))) + (t args))) + (setq browse-url-browser-function (if (eql system-type 'windows-nt) 'browse-url-default-windows-browser 'browse-url-firefox)) +(advice-add 'browse-url :filter-args #'browse-url-redirect-alternative) + (provide 'oni-browse-url) ;;; oni-browse-url.el ends here