Add hypo-delete-last

This commit changes the workings of the `hypo--collect-url' function to
store the hash of the last uploaded file or snippet. This is then used
by `hypo-delete-last' to delete that same url.
This commit is contained in:
Tom Willemse 2013-11-06 22:41:32 +01:00
parent 45610d7000
commit 0f6c2b3228
2 changed files with 21 additions and 0 deletions

5
NEWS Normal file
View file

@ -0,0 +1,5 @@
# -*- mode: org; -*-
* v0.2.0
- Add =hypo-delete-last=, which deletes the last posted item of the
current session.

16
hypo.el
View file

@ -31,10 +31,17 @@
(autoload 'beginning-of-sexp "thingatpt") (autoload 'beginning-of-sexp "thingatpt")
(autoload 'end-of-sexp "thingatpt") (autoload 'end-of-sexp "thingatpt")
(defvar hypo--last-post nil
"The hash of the last snippet sent to hypo.
Will be used for certain commands that operate on the last thing
sent to hypo.")
(defun hypo--collect-url () (defun hypo--collect-url ()
"Collect the returned url." "Collect the returned url."
(let* ((start (search-forward "\n\n")) (let* ((start (search-forward "\n\n"))
(end (1- (search-forward "\n")))) (end (1- (search-forward "\n"))))
(setq hypo--last-post (buffer-substring-no-properties (- end 7) end))
(copy-region-as-kill start end))) (copy-region-as-kill start end)))
(defun hypo--collect-and-kill (status) (defun hypo--collect-and-kill (status)
@ -96,5 +103,14 @@ STATUS is ignored."
(progn (end-of-sexp) (point)) (progn (end-of-sexp) (point))
filename))) filename)))
(defun hypo-delete-last ()
"Delete the last thing sent to hypo."
(interactive)
(unless hypo--last-post (error "Nothing posted this session"))
(let ((url-request-method "DELETE"))
(url-retrieve (concat "https://ryuslash.org/hypo/" hypo--last-post)
#'ignore)
(setq hypo--last-post nil)))
(provide 'hypo) (provide 'hypo)
;;; hypo.el ends here ;;; hypo.el ends here