emacs-elpa-diffs
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]