[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/webpaste 406d713 115/298: Shared success lambdas between d
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/webpaste 406d713 115/298: Shared success lambdas between different paste providers |
Date: |
Thu, 9 Dec 2021 18:59:56 -0500 (EST) |
branch: elpa/webpaste
commit 406d713873a6dc401a9a260e0463132c952058ec
Author: Elis Axelsson <elis.axelsson@gmail.com>
Commit: Elis Axelsson <elis.axelsson@gmail.com>
Shared success lambdas between different paste providers
This will make it easier to create providers and to test providers.
---
test/webpaste-test.el | 4 +--
webpaste.el | 74 +++++++++++++++++++++++++--------------------------
2 files changed, 39 insertions(+), 39 deletions(-)
diff --git a/test/webpaste-test.el b/test/webpaste-test.el
index 8b54ced..e38f849 100644
--- a/test/webpaste-test.el
+++ b/test/webpaste-test.el
@@ -16,8 +16,8 @@
:post-field "data"
:no-failover t
:sync t
- :success (cl-function (lambda (&allow-other-keys)
- (setq success-lambda nil))))))
+ :success-lambda (cl-function (lambda (&allow-other-keys)
+ (setq success-lambda
nil))))))
(funcall provider "dummy-text")
diff --git a/webpaste.el b/webpaste.el
index d2d929f..c8ba838 100644
--- a/webpaste.el
+++ b/webpaste.el
@@ -68,27 +68,27 @@ each run.")
(no-failover nil)
(sync nil)
post-field
- success)
+ success-lambda)
"Macro to create the lambda function for a provider.
This macro accepts the parameters :uri, :type, :parser, :post-data, :post-field
-and :success.
+and :success-lambda.
Usage:
(webpaste-provider
[:keyword [option]]...)
-:uri URI that we should do the request to to paste data.
-:type HTTP Request type, defaults to POST.
-:parser Defines how request.el parses the result. Look up :parser for
- `request`. This defaults to 'buffer-string.
-:post-data Default post fields sent to service. Defaults to nil.
-:post-field Name of the field to insert the code into.
-:no-failover Set to t to not allow doing failovers, Defaults to nil.
-:sync Set to t to wait until request is done. Defaults to nil.
- This should only be used for debugging purposes.
-:success Callback sent to `request`, look up how to write these in the
- documentation for `request`"
+:uri URI that we should do the request to to paste data.
+:type HTTP Request type, defaults to POST.
+:parser Defines how request.el parses the result. Look up :parser for
+ `request'. This defaults to 'buffer-string.
+:post-data Default post fields sent to service. Defaults to nil.
+:post-field Name of the field to insert the code into.
+:no-failover Set to t to not allow doing failovers. Defaults to nil.
+:sync Set to t to wait until request is done. Defaults to nil. This
+ should only be used for debugging purposes.
+:success-lambda Callback sent to `request', look up how to write these in the
+ documentation for `request'."
(lambda (text)
"Paste TEXT to provider"
@@ -101,7 +101,7 @@ Usage:
:type type
:data post-data
:parser parser
- :success success
+ :success success-lambda
:sync sync
:error
(cl-function (lambda (&key error-thrown &allow-other-keys)
@@ -111,36 +111,43 @@ Usage:
+;;; Predefined success lambdas for providers
+(defvar webpaste/providers-success-location-header
+ (cl-function (lambda (&key response &allow-other-keys)
+ (when response
+ (webpaste-return-url
+ (request-response-header response "Location")))))
+ "Predefined success callback for providers returning a Location header.")
+
+
+(defvar webpaste/providers-success-returned-string
+ (cl-function (lambda (&key data &allow-other-keys)
+ (when data
+ (webpaste-return-url
+ (replace-regexp-in-string "\n$" "" data)))))
+ "Predefined success callback for providers returning a string with URL.")
+
+
+
;;; Define providers
(defcustom webpaste-providers-alist
`(("ptpb.pw"
,(webpaste-provider
:uri "https://ptpb.pw/";
:post-field "c"
- :success
- (cl-function (lambda (&key response &allow-other-keys)
- (webpaste-return-url
- (request-response-header response "Location"))))))
+ :success-lambda webpaste/providers-success-location-header))
("ix.io"
,(webpaste-provider
:uri "http://ix.io/";
:post-field "f:1"
- :success
- (cl-function (lambda (&key data &allow-other-keys)
- (when data
- (webpaste-return-url
- (replace-regexp-in-string "\n$" "" data)))))))
+ :success-lambda webpaste/providers-success-returned-string))
("sprunge.us"
,(webpaste-provider
:uri "http://sprunge.us/";
:post-field "sprunge"
- :success
- (cl-function (lambda (&key data &allow-other-keys)
- (when data
- (webpaste-return-url
- (replace-regexp-in-string "\n$" "" data)))))))
+ :success-lambda webpaste/providers-success-returned-string))
("dpaste.com"
,(webpaste-provider
@@ -150,10 +157,7 @@ Usage:
("poster" . "")
("expiry_days" . 1))
:post-field "content"
- :success
- (cl-function (lambda (&key response &allow-other-keys)
- (webpaste-return-url
- (request-response-header response "Location"))))))
+ :success-lambda webpaste/providers-success-location-header))
("dpaste.de"
,(webpaste-provider
@@ -162,11 +166,7 @@ Usage:
("format" . "url")
("expires" . 86400))
:post-field "content"
- :success
- (cl-function (lambda (&key data &allow-other-keys)
- (when data
- (webpaste-return-url
- (replace-regexp-in-string "\n$" "" data))))))))
+ :success-lambda webpaste/providers-success-returned-string)))
"Define all webpaste.el providers.
Consists of provider name and lambda function to do the actuall call to the
- [nongnu] elpa/webpaste b03b90f 138/298: Add confirmation dialog of paste, before pasting, (continued)
- [nongnu] elpa/webpaste b03b90f 138/298: Add confirmation dialog of paste, before pasting, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste f0a36e2 140/298: Added some docs of how to enable the confirmation dialog before pasting, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste 272757b 056/298: Change documentation string, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste 58f66ef 069/298: Bump version to prepare for melpa stable, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste 6e34759 072/298: Added another privider to list to implement, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste f378ca9 075/298: Added Cask file, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste 2bb8a4c 077/298: Set up tests directory, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste f338ca7 083/298: Added Travis-CI build status image, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste f658339 096/298: Bump version number for stable release, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste e485847 107/298: Break out pasting to provider to own function, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste 406d713 115/298: Shared success lambdas between different paste providers,
ELPA Syncer <=
- [nongnu] elpa/webpaste 7f62fed 118/298: Tidy up some lists in tests with backquotes, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste 0e4ac51 132/298: Added support for buffer-language depending on mode for some providers, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste 9ddc617 133/298: Simplify webpaste/get-lang-alist-with-overrides implementation, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste f08a2dc 136/298: Rename internal variable, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste af0474e 139/298: Merge branch 'naclander-master', ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste b9b2ce0 143/298: Added support for languages for providers that appends language to the URL, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste c091dab 146/298: Change some types based on actual use, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste 0144016 147/298: Remove unused variable, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste b5491ab 150/298: Bump version for stable release, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste 29d10d7 151/298: Added paste.pound-python.org as provider, ELPA Syncer, 2021/12/09