Migrate providers to macro

master
Elis Axelsson 10 years ago
parent e12faa58a4
commit f8600284a4
  1. 68
      webpaste.el

@ -106,53 +106,29 @@ Usage:
;;; Define providers ;;; Define providers
(defcustom webpaste-providers-alist (defcustom webpaste-providers-alist
'(("ix.io" . '(("ix.io" .
(lambda (text) (webpaste-provider
"Paste TEXT to http://ix.io/." :domain "http://ix.io/"
:parser 'buffer-string
(let ((post-data)) :post-field "f:1"
;; Add TEXT to POST-DATA :success
(cl-pushnew (cons "f:1" text) post-data) (cl-function (lambda (&key data &allow-other-keys)
(when data
;; Use request.el to do request to ix.io to submit data (webpaste-return-url data))))))
(request "http://ix.io/"
:type "POST"
:data post-data
:parser 'buffer-string
:success (cl-function (lambda (&key data &allow-other-keys)
(when data
(webpaste-return-url data))))
:error
(cl-function (lambda (&key error-thrown &allow-other-keys)
(message "Got error: %S" error-thrown)
(webpaste-paste-text text)))))
nil))
("dpaste.com" . ("dpaste.com" .
(lambda (text) (webpaste-provider
"Paste TEXT to http://dpaste.com/." :domain "http://dpaste.com/api/v2/"
:parser 'buffer-string
;; Prepare post fields :post-data '(("syntax" . "text")
(let ((post-data '(("syntax" . "text") ("title" . "")
("title" . "") ("poster" . "")
("poster" . "") ("expiry_days" . "1"))
("expiry_days" . "1")))) :post-field "content"
:success
;; Add TEXT as content (cl-function (lambda (&key response &allow-other-keys)
(cl-pushnew (cons "content" text) post-data) (webpaste-return-url
(request-response-header response "Location")))))))
;; Use request.el to do request to dpaste.com to submit data
(request "http://dpaste.com/api/v2/"
:type "POST"
:data post-data
:parser 'buffer-string
:success
(cl-function (lambda (&key response &allow-other-keys)
(webpaste-return-url
(request-response-header response "Location"))))
:error
(cl-function (lambda (&key error-thrown &allow-other-keys)
(message "Got error: %S" error-thrown)
(webpaste-paste-text text)))))
nil)))
"Define all webpaste.el providers. "Define all webpaste.el providers.
Consists of provider name and lambda function to do the actuall call to the Consists of provider name and lambda function to do the actuall call to the
provider. The lamda should call webpaste-return-url with resulting url to provider. The lamda should call webpaste-return-url with resulting url to

Loading…
Cancel
Save