1
0
Fork 0

[oni-browse-url] Add advice to ‘browse-url’ to redirect some URLs

There are a couple of free alternative front-ends to certain services:

- Scribe for Medium.

- Nitter for Twitter.

- Invidious for Youtube.
This commit is contained in:
Tom Willemse 2022-02-08 09:42:32 -08:00
parent 5834c0a7ef
commit dcf277a644

View file

@ -4,7 +4,7 @@
;; Author: Tom Willemse <tom@ryuslash.org> ;; Author: Tom Willemse <tom@ryuslash.org>
;; Keywords: local ;; Keywords: local
;; Version: 2021.0727.202603 ;; Version: 2022.0207.000602
;; This program is free software; you can redistribute it and/or modify ;; 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 ;; it under the terms of the GNU General Public License as published by
@ -27,10 +27,40 @@
(require 'browse-url) (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 (setq browse-url-browser-function
(if (eql system-type 'windows-nt) (if (eql system-type 'windows-nt)
'browse-url-default-windows-browser 'browse-url-default-windows-browser
'browse-url-firefox)) 'browse-url-firefox))
(advice-add 'browse-url :filter-args #'browse-url-redirect-alternative)
(provide 'oni-browse-url) (provide 'oni-browse-url)
;;; oni-browse-url.el ends here ;;; oni-browse-url.el ends here