[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/srht edd3735d01 1/4: New custom option srht-browse-url-
From: |
ELPA Syncer |
Subject: |
[elpa] externals/srht edd3735d01 1/4: New custom option srht-browse-url-after-kill. |
Date: |
Fri, 3 Nov 2023 18:59:01 -0400 (EDT) |
branch: externals/srht
commit edd3735d01b1f9c7413dbc577ffebe88721afb88
Author: Aleksandr Vityazev <avityazev@posteo.org>
Commit: Aleksandr Vityazev <avityazev@posteo.org>
New custom option srht-browse-url-after-kill.
* Update copyright.
* lisp/srht:
New custom option - srht-browse-url-after-kill;
Rename srht-kill-link to srht-copy-url;
New function srht-browse-url;
* lisp/srht-git: Update according to the changes.
* lisp/srht-paste: Update according to the changes.
---
lisp/srht-builds.el | 2 +-
lisp/srht-git.el | 7 +++++--
lisp/srht-paste.el | 29 +++++++++++++++++++----------
lisp/srht.el | 23 ++++++++++++++++-------
4 files changed, 41 insertions(+), 20 deletions(-)
diff --git a/lisp/srht-builds.el b/lisp/srht-builds.el
index f0e176b78e..dea0d46353 100644
--- a/lisp/srht-builds.el
+++ b/lisp/srht-builds.el
@@ -1,6 +1,6 @@
;;; srht-builds.el --- Sourcehut builds -*- lexical-binding: t;
-*-
-;; Copyright © 2022 Free Software Foundation, Inc.
+;; Copyright © 2022-2023 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
diff --git a/lisp/srht-git.el b/lisp/srht-git.el
index 893734c12f..c1433f739c 100644
--- a/lisp/srht-git.el
+++ b/lisp/srht-git.el
@@ -1,6 +1,6 @@
;;; srht-git.el --- Sourcehut git -*- lexical-binding: t;
-*-
-;; Copyright © 2022 Free Software Foundation, Inc.
+;; Copyright © 2022-2023 Free Software Foundation, Inc.
;; Created: <2022-04-26 Tue>
@@ -209,7 +209,10 @@ and domain name DOMAIN."
(201 (srht-with-json-read-from-string body
(map (:name repo-name)
(:owner (map (:canonical_name username))))
- (srht-kill-link domain 'git username repo-name)
+ (let ((url (srht--make-uri
+ domain 'git (format "/%s/%s" username repo-name)
nil)))
+ (srht-copy-url url)
+ (srht-browse-url url))
(srht-retrive (srht-git-repos domain)
:then (lambda (resp)
(srht-put srht-git-repos domain resp)))))
diff --git a/lisp/srht-paste.el b/lisp/srht-paste.el
index 973b223d45..95144f0a9c 100644
--- a/lisp/srht-paste.el
+++ b/lisp/srht-paste.el
@@ -1,6 +1,6 @@
;;; srht-paste.el --- Sourcehut paste -*- lexical-binding: t;
-*-
-;; Copyright © 2022 Free Software Foundation, Inc.
+;; Copyright © 2022-2023 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
@@ -118,11 +118,14 @@ and domain name DOMAIN."
(pcase status
(201 (srht-with-json-read-from-string body
(map (:sha sha)
- (:user (map (:canonical_name name))))
- (srht-kill-link domain 'paste name sha)
- (srht-retrive (srht-pastes domain)
- :then (lambda (resp)
- (srht-put srht-paste-all-pastes domain
resp)))))
+ (:user (map (:canonical_name username))))
+ (let ((url (srht--make-uri
+ domain 'paste (format "/%s/%s" username sha) nil)))
+ (srht-copy-url url)
+ (srht-browse-url url)
+ (srht-retrive (srht-pastes domain)
+ :then (lambda (resp)
+ (srht-put srht-paste-all-pastes domain
resp))))))
(204 (srht-retrive (srht-pastes domain)
:then (lambda (resp)
(srht-put srht-paste-all-pastes domain resp)
@@ -158,13 +161,19 @@ Set FILENAME and VISIBILITY."
:else (lambda (err) (srht-paste--else domain err))))
;;;###autoload
-(defun srht-paste-link (domain)
- "Kill the link of the selected paste owned by the USER from the DOMAIN
instance."
+(defun srht-paste-copy-url (domain)
+ "Copy selected paste URL to clipboard.
+DOMAIN (see `srht-read-domain')."
(interactive (list (srht-read-domain "Instance: ")))
(when (string-empty-p srht-username)
(error "`srht-username' must be set"))
- (srht-kill-link domain 'paste (concat "~" (string-trim-left srht-username
"~"))
- (srht-paste--sha domain)))
+ (let* ((sha (srht-paste--sha domain))
+ (username (concat "~" (string-trim-left srht-username "~")))
+ (url (srht--make-uri
+ domain 'paste (format "/%s/%s" username sha) nil)))
+ (srht-copy-url url)
+ (srht-browse-url url)))
+
(provide 'srht-paste)
;;; srht-paste.el ends here
diff --git a/lisp/srht.el b/lisp/srht.el
index 4a804e66f1..04fcb2c49d 100644
--- a/lisp/srht.el
+++ b/lisp/srht.el
@@ -1,6 +1,6 @@
;;; srht.el --- Sourcehut -*- lexical-binding: t; -*-
-;; Copyright © 2022 Free Software Foundation, Inc.
+;; Copyright © 2022-2023 Free Software Foundation, Inc.
;; Author: Aleksandr Vityazev <avityazev@posteo.org>
;; Maintainer: Aleksandr Vityazev <avityazev@posteo.org>
@@ -8,7 +8,7 @@
;; Package-Version: 0.2
;; Homepage: https://sr.ht/~akagi/srht.el/
;; Keywords: comm
-;; Package-Requires: ((emacs "27.1") (plz "0.1"))
+;; Package-Requires: ((emacs "27.1") (plz "0.7"))
;; This file is part of GNU Emacs.
@@ -58,6 +58,11 @@ It is necessary to use Oauth personal token not Oauth2."
:type 'string
:group 'srht)
+(defcustom srht-browse-url-after-kill nil
+ "When t open the url copied to `kill-ring' url `browse-url'."
+ :type 'boolean
+ :group 'srht)
+
(defun srht-token ()
"Lookup variable `srht-token' if needed and return it.
If variable `srht-token' is nil or cannot be looked up or is empty, signal
@@ -209,11 +214,15 @@ completion function is trying to complete."
(complete-with-action action collection string pred)))))
(completing-read prompt table nil t)))
-(defun srht-kill-link (domain service name resource)
- "Make URL the latest kill in the kill ring.
-Constructed from DOMAIN, SERVICE, NAME and RESOURCE."
- (kill-new (srht--make-uri domain service (format "/%s/%s" name resource)
nil))
- (message "URL in kill-ring"))
+(defun srht-copy-url (url)
+ "Make URL the latest kill in the kill ring."
+ (kill-new url)
+ (message "Copied \"%s\" into clipboard" url))
+
+(defun srht-browse-url (url)
+ "Browse URL."
+ (when srht-browse-url-after-kill
+ (browse-url url)))
(defmacro srht-with-json-read-from-string (string pattern &rest body)
"Read the JSON object contained in STRING.