diff options
| author | Jim Blandy <jimb@red-bean.com> | 2023-01-08 16:35:21 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-08 16:35:21 -0800 |
| commit | 26f4582293e0c11aaf5643c5064cd2c98444642c (patch) | |
| tree | 069c44a0ed76afb3d0b19ebdc4ea4aec48930611 | |
| parent | 1f421fb9177afedba7c3759ad5f15776ea38a950 (diff) | |
| parent | 47e7c849fffe5cbc73f454e0fdb9d1f17e46c58f (diff) | |
| download | rust-mode-26f4582293e0c11aaf5643c5064cd2c98444642c.tar.gz | |
Merge pull request #480 from psibi/playpen-fix
Abilty to customize the enabling of URL shortener for playpen
| -rw-r--r-- | rust-playpen.el | 42 |
1 files changed, 25 insertions, 17 deletions
diff --git a/rust-playpen.el b/rust-playpen.el index 1a9e583..a80a184 100644 --- a/rust-playpen.el +++ b/rust-playpen.el @@ -16,6 +16,12 @@ :type 'string :group 'rust-mode) +(defcustom rust-playpen-enable-shortener t + "Enable shortended URL for playpen links." + :type 'boolean + :safe #'booleanp + :group 'rust-mode) + (defcustom rust-shortener-url-format "https://is.gd/create.php?format=simple&url=%s" "Format string to use for creating the shortened link of a playpen submission." :type 'string @@ -28,26 +34,28 @@ (interactive "r") (let* ((data (buffer-substring begin end)) (escaped-data (url-hexify-string data)) - (escaped-playpen-url (url-hexify-string - (format rust-playpen-url-format escaped-data)))) + (playpen-url (format rust-playpen-url-format escaped-data)) + (escaped-playpen-url (url-hexify-string playpen-url))) (if (> (length escaped-playpen-url) 5000) (error "encoded playpen data exceeds 5000 character limit (length %s)" (length escaped-playpen-url)) - (let ((shortener-url (format rust-shortener-url-format escaped-playpen-url)) - (url-request-method "POST")) - (url-retrieve shortener-url - (lambda (state) - ;; filter out the headers etc. included at the - ;; start of the buffer: the relevant text - ;; (shortened url or error message) is exactly - ;; the last line. - (goto-char (point-max)) - (let ((last-line (thing-at-point 'line t)) - (err (plist-get state :error))) - (kill-buffer) - (if err - (error "failed to shorten playpen url: %s" last-line) - (message "%s" last-line))))))))) + (if (not rust-playpen-enable-shortener) + (message "%s" playpen-url) + (let ((shortener-url (format rust-shortener-url-format escaped-playpen-url)) + (url-request-method "POST")) + (url-retrieve shortener-url + (lambda (state) + ;; filter out the headers etc. included at the + ;; start of the buffer: the relevant text + ;; (shortened url or error message) is exactly + ;; the last line. + (goto-char (point-max)) + (let ((last-line (thing-at-point 'line t)) + (err (plist-get state :error))) + (kill-buffer) + (if err + (error "failed to shorten playpen url: %s" last-line) + (message "%s" last-line)))))))))) (defun rust-playpen-buffer () "Create a shareable URL for the contents of the buffer on the Rust playpen." |
