From 2a3255c48f8e3538a7604d96ebadb9e21b0b9c50 Mon Sep 17 00:00:00 2001 From: marty hiatt Date: Fri, 20 Sep 2024 20:40:47 +0200 Subject: bump version --- lisp/mastodon.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lisp/mastodon.el') diff --git a/lisp/mastodon.el b/lisp/mastodon.el index 3eff126..faeae61 100644 --- a/lisp/mastodon.el +++ b/lisp/mastodon.el @@ -6,7 +6,7 @@ ;; Author: Johnson Denen ;; Marty Hiatt ;; Maintainer: Marty Hiatt -;; Version: 1.0.24 +;; Version: 1.0.27 ;; Package-Requires: ((emacs "27.1") (request "0.3.0") (persist "0.4")) ;; Homepage: https://codeberg.org/martianh/mastodon.el -- cgit v1.2.3 From 951ad5d60e4ff24ad108f60a9f45df8e241ef7c2 Mon Sep 17 00:00:00 2001 From: marty hiatt Date: Wed, 2 Oct 2024 10:15:45 +0200 Subject: add mastodon-transient.el --- lisp/mastodon-transient.el | 111 +++++++++++++++++++++++++++++++++++++++++++++ lisp/mastodon.el | 8 ++-- 2 files changed, 116 insertions(+), 3 deletions(-) create mode 100644 lisp/mastodon-transient.el (limited to 'lisp/mastodon.el') diff --git a/lisp/mastodon-transient.el b/lisp/mastodon-transient.el new file mode 100644 index 0000000..7de780c --- /dev/null +++ b/lisp/mastodon-transient.el @@ -0,0 +1,111 @@ +;;; mastodon-transient.el --- transient menus for mastodon.el -*- lexical-binding: t; -*- + +;; Copyright (C) 2024 martian hiatus + +;; Author: martian hiatus +;; Keywords: convenience + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;;; Commentary: + +;; + +;;; Code: + +(require 'tp) + +(defun mastodon-transient-parse-source-key (key) + "Parse mastodon source KEY. +If KEY needs to be source[key], format like so, else just return +the inner key part." + (let* ((split (split-string key "[][]")) + (array-key (cadr split))) + (if (or (= 1 (length split)) ;; no split + (member array-key '("privacy" "sensitive" "language"))) + key + array-key))) + +(defun mastodon-transient-parse-source-keys (alist) + "Parse ALIST containing source[key] keys." + (cl-loop for a in alist + collect (cons (mastodon-transient-parse-source-key (car a)) + (cdr a)))) + +;; FIXME: PATCHing source vals as JSON request body doesn't work! +;; existing `mastodon-profile--update-preference' doesn't use it! it just uses +;; query params! strange thing is it works for non-source params +(transient-define-suffix mastodon-user-settings-update (&optional args) + "Update current user settings on the server." + :transient 'transient--do-exit + ;; interactive receives args from the prefix: + (interactive (list (transient-args 'mastodon-user-settings))) + (let* ((alist (tp-transient-to-alist args)) + (only-changed (tp-only-changed-args alist)) + (arrays (tp-dots-to-arrays only-changed)) + (parsed-source (mastodon-transient-parse-source-keys arrays)) + (endpoint "accounts/update_credentials") + (url (mastodon-http--api endpoint)) + (resp (mastodon-http--patch url parsed-source))) ; :json))) + (mastodon-http--triage + resp + (lambda (_) + (message "Settings updated!\n%s" parsed-source))))) + +(defun mastodon-transient-get-creds () + "Fetch account data." + (mastodon-http--get-json + (mastodon-http--api "accounts/verify_credentials") + nil :silent)) + +(transient-define-prefix mastodon-user-settings () + "A transient for setting current user settings." + :value (lambda () (tp-return-data + #'mastodon-transient-get-creds)) + [:description + ;; '() + (lambda () + "Settings") + ;; (format "User settings for %s" mastodon-active-user)) + (:info + "Note: use the empty string (\"\") to remove a value from an option.") + ] + ;; strings + ["Account info" + ("n" "display name" "display_name=" :class tp-option-str)] + ;; "choice" booleans (so we can PATCH :json-false explicitly): + ["Account options" + ("l" "locked" "locked=" :class tp-choice-bool) + ("b" "bot" "bot=" :class tp-choice-bool) + ("d" "discoverable" "discoverable=" :class tp-choice-bool) + + ("c" "hide follower/following lists" "source.hide_collections=" :class tp-choice-bool) + ("i" "indexable" "source.indexable=" :class tp-choice-bool)] + ["Tooting options" + ("p" "default privacy" "source.privacy=" :class tp-option + :choices (lambda () mastodon-toot-visibility-settings-list)) + ("s" "mark sensitive" "source.sensitive=" :class tp-choice-bool) + ("g" "default language" "source.language=" :class tp-option + :choices (lambda () mastodon-iso-639-regional))] + ["Update" + ("C-c C-c" "Save settings" mastodon-user-settings-update) + ;; ("C-c C-k" :info "to revert all changes") + ] + (interactive) + (if (not mastodon-active-user) + (user-error "User not set") + (transient-setup 'mastodon-user-settings))) + +(provide 'mastodon-transient) +;;; mastodon-transient.el ends here diff --git a/lisp/mastodon.el b/lisp/mastodon.el index faeae61..6e9586b 100644 --- a/lisp/mastodon.el +++ b/lisp/mastodon.el @@ -38,13 +38,15 @@ ;;; Code: (require 'cl-lib) ; for `cl-some' call in mastodon (eval-when-compile (require 'subr-x)) -(require 'mastodon-http) -(require 'mastodon-toot) -(require 'mastodon-search) (require 'url) (require 'thingatpt) (require 'shr) +(require 'mastodon-http) +(require 'mastodon-toot) +(require 'mastodon-search) +(require 'mastodon-transient) + (declare-function discover-add-context-menu "discover") (declare-function emojify-mode "emojify") (declare-function request "request") -- cgit v1.2.3 From 4d9651981887d9de424ad0250f9be2894d813e3c Mon Sep 17 00:00:00 2001 From: marty hiatt Date: Fri, 4 Oct 2024 08:14:44 +0200 Subject: add tp to Package-Requires --- lisp/mastodon.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lisp/mastodon.el') diff --git a/lisp/mastodon.el b/lisp/mastodon.el index 6e9586b..f5822b1 100644 --- a/lisp/mastodon.el +++ b/lisp/mastodon.el @@ -7,7 +7,8 @@ ;; Marty Hiatt ;; Maintainer: Marty Hiatt ;; Version: 1.0.27 -;; Package-Requires: ((emacs "27.1") (request "0.3.0") (persist "0.4")) +;; Package-Requires: ((emacs "27.1") (request "0.3.0") +;; (persist "0.4") (tp "0.1")) ;; Homepage: https://codeberg.org/martianh/mastodon.el ;; This file is not part of GNU Emacs. -- cgit v1.2.3 From f8345e6f1d9f4d5037a2aa00ba0c21f5682d25ad Mon Sep 17 00:00:00 2001 From: marty hiatt Date: Fri, 4 Oct 2024 08:21:02 +0200 Subject: binding for settings transient --- lisp/mastodon.el | 1 + 1 file changed, 1 insertion(+) (limited to 'lisp/mastodon.el') diff --git a/lisp/mastodon.el b/lisp/mastodon.el index f5822b1..a8714f3 100644 --- a/lisp/mastodon.el +++ b/lisp/mastodon.el @@ -230,6 +230,7 @@ while emojify,el has this feature and mastodon.el implements it.") (define-key map (kbd "U") #'mastodon-profile--update-user-profile-note) (define-key map (kbd "V") #'mastodon-profile--view-favourites) (define-key map (kbd "K") #'mastodon-profile--view-bookmarks) + (define-key map (kbd ":") #'mastodon-user-settings) ;; minor views (define-key map (kbd "R") #'mastodon-views--view-follow-requests) (define-key map (kbd "S") #'mastodon-views--view-scheduled-toots) -- cgit v1.2.3 From fbcec02f9072bd61908deef311b322f6b0719410 Mon Sep 17 00:00:00 2001 From: marty hiatt Date: Thu, 10 Oct 2024 19:45:40 +0200 Subject: 1st mockup of grouped notifs --- lisp/mastodon-notifications.el | 281 ++++++++++++++++++++++++----------------- lisp/mastodon.el | 3 +- 2 files changed, 164 insertions(+), 120 deletions(-) (limited to 'lisp/mastodon.el') diff --git a/lisp/mastodon-notifications.el b/lisp/mastodon-notifications.el index 0c56cbb..0e27ca0 100644 --- a/lisp/mastodon-notifications.el +++ b/lisp/mastodon-notifications.el @@ -162,39 +162,39 @@ Can be called in notifications view or in follow-requests view." (interactive) (mastodon-notifications--follow-request-process :reject)) -(defun mastodon-notifications--mention (note) +(defun mastodon-notifications--mention (group json) "Format for a `mention' NOTE." - (mastodon-notifications--format-note note 'mention)) + (mastodon-notifications--format-note group json 'mention)) -(defun mastodon-notifications--follow (note) +(defun mastodon-notifications--follow (group json) "Format for a `follow' NOTE." - (mastodon-notifications--format-note note 'follow)) + (mastodon-notifications--format-note group json 'follow)) -(defun mastodon-notifications--follow-request (note) +(defun mastodon-notifications--follow-request (group json) "Format for a `follow-request' NOTE." - (mastodon-notifications--format-note note 'follow-request)) + (mastodon-notifications--format-note group json 'follow-request)) -(defun mastodon-notifications--favourite (note) +(defun mastodon-notifications--favourite (group json) "Format for a `favourite' NOTE." - (mastodon-notifications--format-note note 'favourite)) + (mastodon-notifications--format-note group json 'favourite)) -(defun mastodon-notifications--reblog (note) +(defun mastodon-notifications--reblog (group json) "Format for a `boost' NOTE." - (mastodon-notifications--format-note note 'boost)) + (mastodon-notifications--format-note group json 'reblog)) -(defun mastodon-notifications--status (note) +(defun mastodon-notifications--status (group json) "Format for a `status' NOTE. Status notifications are given when `mastodon-tl--enable-notify-user-posts' has been set." - (mastodon-notifications--format-note note 'status)) + (mastodon-notifications--format-note group json 'status)) -(defun mastodon-notifications--poll (note) +(defun mastodon-notifications--poll (group json) "Format for a `poll' NOTE." - (mastodon-notifications--format-note note 'poll)) + (mastodon-notifications--format-note group json 'poll)) -(defun mastodon-notifications--edit (note) +(defun mastodon-notifications--edit (group json) "Format for an `edit' NOTE." - (mastodon-notifications--format-note note 'edit)) + (mastodon-notifications--format-note group json 'edit)) (defun mastodon-notifications--comment-note-text (str) "Add comment face to all text in STR with `shr-text' face only." @@ -208,118 +208,161 @@ Status notifications are given when '(face (font-lock-comment-face shr-text))))) (buffer-string))) -(defun mastodon-notifications--format-note (note type) +(defvar mastodon-notifications-grouped-types + '(follow boost favourite) + "List of notification types for which grouping is implemented.") + +(defvar mastodon-notifications--action-alist + '((reblog . "Boosted") + (favourite . "Favourited") + (follow-request . "Requested to follow") + (follow . "Followed") + (mention . "Mentioned") + (status . "Posted") + (poll . "Posted a poll") + (edit . "Edited"))) + +(defun mastodon-notifications--alist-by-value (str field json) + "From JSON, return the alist whose FIELD value matches STR. +JSON is a list of alists." + (cl-some (lambda (y) + (when (string= str (alist-get field y)) + y)) + json)) + +(defun mastodon-notifications--group-accounts (ids json) + "For IDS, return account data in JSON." + (cl-loop + for x in ids + collect (mastodon-notifications--alist-by-value x 'id json))) + +(defun mastodon-notifications--format-note (group json type) "Format for a NOTE of TYPE." ;; FIXME: apply/refactor filtering as per/with `mastodon-tl--toot' - (let* ((id (alist-get 'id note)) - (profile-note - (when (eq 'follow-request type) - (let ((str (mastodon-tl--field - 'note - (mastodon-tl--field 'account note)))) - (if mastodon-notifications--profile-note-in-foll-reqs-max-length - (string-limit str mastodon-notifications--profile-note-in-foll-reqs-max-length) - str)))) - (status (mastodon-tl--field 'status note)) - (follower (alist-get 'username (alist-get 'account note))) - (toot (alist-get 'status note)) - (filtered (mastodon-tl--field 'filtered toot)) - (filters (when filtered - (mastodon-tl--current-filters filtered)))) - (if (and filtered (assoc "hide" filters)) - nil - (mastodon-tl--insert-status - ;; toot - (cond ((or (eq type 'follow) - (eq type 'follow-request)) - ;; Using reblog with an empty id will mark this as something - ;; non-boostable/non-favable. - (cons '(reblog (id . nil)) note)) - ;; reblogs/faves use 'note' to process their own json - ;; not the toot's. this ensures following etc. work on such notifs - ((or (eq type 'favourite) - (eq type 'boost)) - note) - (t - status)) - ;; body - (let ((body (if-let ((match (assoc "warn" filters))) - (mastodon-tl--spoiler toot (cadr match)) - (mastodon-tl--clean-tabs-and-nl - (if (mastodon-tl--has-spoiler status) - (mastodon-tl--spoiler status) - (if (eq 'follow-request type) - (mastodon-tl--render-text profile-note) - (mastodon-tl--content status))))))) - (cond ((or (eq type 'follow) - (eq type 'follow-request)) - (if (eq type 'follow) - (propertize "Congratulations, you have a new follower!" - 'face 'default) - (concat - (propertize - (format "You have a follow request from... %s" - follower) - 'face 'default) - (when mastodon-notifications--profile-note-in-foll-reqs - (concat - ":\n" - (mastodon-notifications--comment-note-text body)))))) - ((or (eq type 'favourite) - (eq type 'boost)) - (mastodon-notifications--comment-note-text body)) - (t body))) - ;; author-byline - (if (or (eq type 'follow) - (eq type 'follow-request) - (eq type 'mention)) - 'mastodon-tl--byline-author - (lambda (_status &rest _args) ; unbreak stuff - (mastodon-tl--byline-author note))) - ;; action-byline - (lambda (_status) - (mastodon-notifications--byline-concat - (cond ((eq type 'boost) - "Boosted") - ((eq type 'favourite) - "Favourited") - ((eq type 'follow-request) - "Requested to follow") - ((eq type 'follow) - "Followed") - ((eq type 'mention) - "Mentioned") - ((eq type 'status) - "Posted") - ((eq type 'poll) - "Posted a poll") - ((eq type 'edit) - "Edited")))) - id - ;; base toot - (when (or (eq type 'favourite) - (eq type 'boost)) - status))))) - -(defun mastodon-notifications--by-type (note) + ;; (if (member type mastodon-notifications-grouped-types) + (let-alist group + ;; .sample_account_ids .status_id .notifications_count + ;; .most_recent_notifiation_id + (let* ((status (mastodon-notifications--alist-by-value + .status_id 'id (alist-get 'statuses json))) + (accounts (mastodon-notifications--group-accounts + .sample_account_ids (alist-get 'accounts json)))) + (insert (symbol-name type) "\n" + "accounts: " (mapconcat 'identity .sample_account_ids ", ") "\n" + (if (not (> .notifications_count (length .sample_account_ids))) + "" + (concat + "and" + (number-to-string + (- .notifications_count + (length .sample_account_ids)))) + "others \n") + ;; "count: " (number-to-string .notifications_count) + (alist-get type mastodon-notifications--action-alist) + "\n toot: " (or .status_id "") "\n" + "\n\n")) + )) + +;; non-grouped notifs: +;; (let* ((id (alist-get 'id note)) +;; (profile-note +;; (when (eq 'follow-request type) +;; (let ((str (mastodon-tl--field +;; 'note +;; (mastodon-tl--field 'account note)))) +;; (if mastodon-notifications--profile-note-in-foll-reqs-max-length +;; (string-limit str mastodon-notifications--profile-note-in-foll-reqs-max-length) +;; str)))) +;; (status (mastodon-tl--field 'status note)) +;; (follower (alist-get 'username (alist-get 'account note))) +;; (toot (alist-get 'status note)) +;; (filtered (mastodon-tl--field 'filtered toot)) +;; (filters (when filtered +;; (mastodon-tl--current-filters filtered)))) +;; (if (and filtered (assoc "hide" filters)) +;; nil +;; (mastodon-tl--insert-status +;; ;; toot +;; (cond ((or (eq type 'follow) +;; (eq type 'follow-request)) +;; ;; Using reblog with an empty id will mark this as something +;; ;; non-boostable/non-favable. +;; (cons '(reblog (id . nil)) note)) +;; ;; reblogs/faves use 'note' to process their own json +;; ;; not the toot's. this ensures following etc. work on such notifs +;; ((or (eq type 'favourite) +;; (eq type 'boost)) +;; note) +;; (t +;; status)) +;; ;; body +;; (let ((body (if-let ((match (assoc "warn" filters))) +;; (mastodon-tl--spoiler toot (cadr match)) +;; (mastodon-tl--clean-tabs-and-nl +;; (if (mastodon-tl--has-spoiler status) +;; (mastodon-tl--spoiler status) +;; (if (eq 'follow-request type) +;; (mastodon-tl--render-text profile-note) +;; (mastodon-tl--content status))))))) +;; (cond ((or (eq type 'follow) +;; (eq type 'follow-request)) +;; (if (eq type 'follow) +;; (propertize "Congratulations, you have a new follower!" +;; 'face 'default) +;; (concat +;; (propertize +;; (format "You have a follow request from... %s" +;; follower) +;; 'face 'default) +;; (when mastodon-notifications--profile-note-in-foll-reqs +;; (concat +;; ":\n" +;; (mastodon-notifications--comment-note-text body)))))) +;; ((or (eq type 'favourite) +;; (eq type 'boost)) +;; (mastodon-notifications--comment-note-text body)) +;; (t body))) +;; ;; author-byline +;; (if (or (eq type 'follow) +;; (eq type 'follow-request) +;; (eq type 'mention)) +;; 'mastodon-tl--byline-author +;; (lambda (_status &rest _args) ; unbreak stuff +;; (mastodon-tl--byline-author note))) +;; ;; action-byline +;; (lambda (_status) +;; (mastodon-notifications--byline-concat +;; (alist-get type mastodon-notifications--action-alist) +;; )) +;; id +;; ;; base toot +;; (when (or (eq type 'favourite) +;; (eq type 'boost)) +;; status)))))) + +(defun mastodon-notifications--by-type (groups json) "Filter NOTE for those listed in `mastodon-notifications--types-alist'. Call its function in that list on NOTE." - (let* ((type (mastodon-tl--field 'type note)) - (fun (cdr (assoc type mastodon-notifications--types-alist))) - (start-pos (point))) - (when fun - (funcall fun note) - (when mastodon-tl--display-media-p - ;; images-in-notifs custom is handeld in - ;; `mastodon-tl--media-attachment', not here - (mastodon-media--inline-images start-pos (point)))))) + (cl-loop for g in groups + for type = (alist-get 'type g) + for fun = (cdr (assoc type mastodon-notifications--types-alist)) + for start-pos = (point) + do (when fun + (funcall fun g json) + (when mastodon-tl--display-media-p + ;; images-in-notifs custom is handeld in + ;; `mastodon-tl--media-attachment', not here + (mastodon-media--inline-images start-pos (point)))))) (defun mastodon-notifications--timeline (json) "Format JSON in Emacs buffer." (if (seq-empty-p json) (user-error "Looks like you have no (more) notifications for now") - (mapc #'mastodon-notifications--by-type json) - (goto-char (point-min)))) + (let ((groups (alist-get 'notification_groups json))) + ;; (mapc (lambda (x) + (mastodon-notifications--by-type groups json) + ;; grouped) + (goto-char (point-min))))) (defun mastodon-notifications--get-mentions () "Display mention notifications in buffer." diff --git a/lisp/mastodon.el b/lisp/mastodon.el index a8714f3..cc02e8a 100644 --- a/lisp/mastodon.el +++ b/lisp/mastodon.el @@ -366,7 +366,8 @@ from the server and load anew." 'mastodon-notifications--timeline type (when max-id - `(("max_id" . ,(mastodon-tl--buffer-property 'max-id))))) + `(("max_id" . ,(mastodon-tl--buffer-property 'max-id)))) + nil nil nil "v2") (with-current-buffer buffer (use-local-map mastodon-notifications--map))))) -- cgit v1.2.3 From 17ba291ba8b8d1231116af5654f40b80806f4260 Mon Sep 17 00:00:00 2001 From: marty hiatt Date: Fri, 11 Oct 2024 10:56:58 +0200 Subject: mastodon.el: remove force logic from mastodon-notifications-get. we have an update function in notifs view. i think if we run this command, we always want to also check for new notifs. --- lisp/mastodon.el | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) (limited to 'lisp/mastodon.el') diff --git a/lisp/mastodon.el b/lisp/mastodon.el index cc02e8a..80b6d8c 100644 --- a/lisp/mastodon.el +++ b/lisp/mastodon.el @@ -347,29 +347,25 @@ If REPLY-JSON is the json of the toot being replied to." (mastodon-toot--compose-buffer user reply-to-id reply-json)) ;;;###autoload -(defun mastodon-notifications-get (&optional type buffer-name force max-id) +(defun mastodon-notifications-get (&optional type buffer-name max-id) "Display NOTIFICATIONS in buffer. Optionally only print notifications of type TYPE, a string. BUFFER-NAME is added to \"*mastodon-\" to create the buffer name. -FORCE means do not try to update an existing buffer, but fetch -from the server and load anew." +MAX-ID is a request parameter for pagination." (interactive) (let* ((buffer-name (or buffer-name "notifications")) (buffer (concat "*mastodon-" buffer-name "*"))) - (if (and (not force) (get-buffer buffer)) - (progn (pop-to-buffer buffer '(display-buffer-same-window)) - (mastodon-tl--update)) - (message "Loading your notifications...") - (mastodon-tl--init-sync - buffer-name - "notifications" - 'mastodon-notifications--timeline - type - (when max-id - `(("max_id" . ,(mastodon-tl--buffer-property 'max-id)))) - nil nil nil "v2") - (with-current-buffer buffer - (use-local-map mastodon-notifications--map))))) + (message "Loading your notifications...") + (mastodon-tl--init-sync + buffer-name + "notifications" + 'mastodon-notifications--timeline + type + (when max-id + `(("max_id" . ,(mastodon-tl--buffer-property 'max-id)))) + nil nil nil "v2") + (with-current-buffer (get-buffer-create buffer) + (use-local-map mastodon-notifications--map)))) ;; URL lookup: should be available even if `mastodon.el' not loaded: @@ -379,7 +375,8 @@ from the server and load anew." Does a WebFinger lookup on the server. URL can be arg QUERY-URL, or URL at point, or provided by the user. If a status or account is found, load it in `mastodon.el', if -not, just browse the URL in the normal fashion." +not, just browse the URL in the normal fashion. +If FORCE, do a lookup regardless of the result of `mastodon--fedi-url-p'." (interactive) (let* ((query (or query-url (mastodon-tl--property 'shr-url :no-move) -- cgit v1.2.3 From 390c1d0c2dec6f247830cd507d8d1e8ca4db3479 Mon Sep 17 00:00:00 2001 From: marty hiatt Date: Fri, 18 Oct 2024 09:13:07 +0200 Subject: bump version, copyright --- lisp/mastodon-discover.el | 2 +- lisp/mastodon-http.el | 2 +- lisp/mastodon-inspect.el | 2 +- lisp/mastodon-media.el | 2 +- lisp/mastodon-notifications.el | 2 +- lisp/mastodon-profile.el | 2 +- lisp/mastodon-tl.el | 2 +- lisp/mastodon-toot.el | 2 +- lisp/mastodon-views.el | 2 +- lisp/mastodon.el | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) (limited to 'lisp/mastodon.el') diff --git a/lisp/mastodon-discover.el b/lisp/mastodon-discover.el index c34d85f..9278432 100644 --- a/lisp/mastodon-discover.el +++ b/lisp/mastodon-discover.el @@ -1,7 +1,7 @@ ;;; mastodon-discover.el --- Use Mastodon.el with discover.el -*- lexical-binding: t -*- ;; Copyright (C) 2019 Johnson Denen -;; Copyright (C) 2020-2022 Marty Hiatt +;; Copyright (C) 2020-2024 Marty Hiatt ;; Author: Johnson Denen ;; Marty Hiatt ;; Maintainer: Marty Hiatt diff --git a/lisp/mastodon-http.el b/lisp/mastodon-http.el index c0402f0..42b599d 100644 --- a/lisp/mastodon-http.el +++ b/lisp/mastodon-http.el @@ -1,7 +1,7 @@ ;;; mastodon-http.el --- HTTP request/response functions for mastodon.el -*- lexical-binding: t -*- ;; Copyright (C) 2017-2019 Johnson Denen -;; Copyright (C) 2020-2022 Marty Hiatt +;; Copyright (C) 2020-2024 Marty Hiatt ;; Author: Johnson Denen ;; Marty Hiatt ;; Maintainer: Marty Hiatt diff --git a/lisp/mastodon-inspect.el b/lisp/mastodon-inspect.el index 43c8ba4..adc6d64 100644 --- a/lisp/mastodon-inspect.el +++ b/lisp/mastodon-inspect.el @@ -1,7 +1,7 @@ ;;; mastodon-inspect.el --- Client for Mastodon -*- lexical-binding: t -*- ;; Copyright (C) 2017-2019 Johnson Denen -;; Copyright (C) 2020-2022 Marty Hiatt +;; Copyright (C) 2020-2024 Marty Hiatt ;; Author: Johnson Denen ;; Marty Hiatt ;; Maintainer: Marty Hiatt diff --git a/lisp/mastodon-media.el b/lisp/mastodon-media.el index 2ec498e..fff5d23 100644 --- a/lisp/mastodon-media.el +++ b/lisp/mastodon-media.el @@ -1,7 +1,7 @@ ;;; mastodon-media.el --- Functions for inlining Mastodon media -*- lexical-binding: t -*- ;; Copyright (C) 2017-2019 Johnson Denen -;; Copyright (C) 2020-2022 Marty Hiatt +;; Copyright (C) 2020-2024 Marty Hiatt ;; Author: Johnson Denen ;; Marty Hiatt ;; Maintainer: Marty Hiatt diff --git a/lisp/mastodon-notifications.el b/lisp/mastodon-notifications.el index b54b012..c2257b2 100644 --- a/lisp/mastodon-notifications.el +++ b/lisp/mastodon-notifications.el @@ -1,7 +1,7 @@ ;;; mastodon-notifications.el --- Notification functions for mastodon.el -*- lexical-binding: t -*- ;; Copyright (C) 2017-2019 Johnson Denen -;; Copyright (C) 2020-2022 Marty Hiatt +;; Copyright (C) 2020-2024 Marty Hiatt ;; Author: Johnson Denen ;; Marty Hiatt ;; Maintainer: Marty Hiatt diff --git a/lisp/mastodon-profile.el b/lisp/mastodon-profile.el index 900e9c0..8db1d69 100644 --- a/lisp/mastodon-profile.el +++ b/lisp/mastodon-profile.el @@ -1,7 +1,7 @@ ;;; mastodon-profile.el --- Functions for inspecting Mastodon profiles -*- lexical-binding: t -*- ;; Copyright (C) 2017-2019 Johnson Denen -;; Copyright (C) 2020-2022 Marty Hiatt +;; Copyright (C) 2020-2024 Marty Hiatt ;; Author: Johnson Denen ;; Marty Hiatt ;; Maintainer: Marty Hiatt diff --git a/lisp/mastodon-tl.el b/lisp/mastodon-tl.el index 77eb320..92bf0a6 100644 --- a/lisp/mastodon-tl.el +++ b/lisp/mastodon-tl.el @@ -1,7 +1,7 @@ ;;; mastodon-tl.el --- Timeline functions for mastodon.el -*- lexical-binding: t -*- ;; Copyright (C) 2017-2019 Johnson Denen -;; Copyright (C) 2020-2022 Marty Hiatt +;; Copyright (C) 2020-2024 Marty Hiatt ;; Author: Johnson Denen ;; Marty Hiatt ;; Maintainer: Marty Hiatt diff --git a/lisp/mastodon-toot.el b/lisp/mastodon-toot.el index 386b720..b5322b3 100644 --- a/lisp/mastodon-toot.el +++ b/lisp/mastodon-toot.el @@ -1,7 +1,7 @@ ;;; mastodon-toot.el --- Minor mode for sending Mastodon toots -*- lexical-binding: t -*- ;; Copyright (C) 2017-2019 Johnson Denen -;; Copyright (C) 2020-2022 Marty Hiatt +;; Copyright (C) 2020-2024 Marty Hiatt ;; Author: Johnson Denen ;; Marty Hiatt ;; Maintainer: Marty Hiatt diff --git a/lisp/mastodon-views.el b/lisp/mastodon-views.el index ac62b1f..3112c20 100644 --- a/lisp/mastodon-views.el +++ b/lisp/mastodon-views.el @@ -1,6 +1,6 @@ ;;; mastodon-views.el --- Minor views functions for mastodon.el -*- lexical-binding: t -*- -;; Copyright (C) 2020-2022 Marty Hiatt +;; Copyright (C) 2020-2024 Marty Hiatt ;; Author: Marty Hiatt ;; Maintainer: Marty Hiatt ;; Homepage: https://codeberg.org/martianh/mastodon.el diff --git a/lisp/mastodon.el b/lisp/mastodon.el index 80b6d8c..e754b28 100644 --- a/lisp/mastodon.el +++ b/lisp/mastodon.el @@ -6,7 +6,7 @@ ;; Author: Johnson Denen ;; Marty Hiatt ;; Maintainer: Marty Hiatt -;; Version: 1.0.27 +;; Version: 1.1.0 ;; Package-Requires: ((emacs "27.1") (request "0.3.0") ;; (persist "0.4") (tp "0.1")) ;; Homepage: https://codeberg.org/martianh/mastodon.el -- cgit v1.2.3 From 31f77807011aee93957322b4134fb10b6f815a72 Mon Sep 17 00:00:00 2001 From: marty hiatt Date: Sat, 19 Oct 2024 22:01:21 +0200 Subject: bump min emacs to 28.1 --- lisp/mastodon.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lisp/mastodon.el') diff --git a/lisp/mastodon.el b/lisp/mastodon.el index e754b28..37da99c 100644 --- a/lisp/mastodon.el +++ b/lisp/mastodon.el @@ -7,7 +7,7 @@ ;; Marty Hiatt ;; Maintainer: Marty Hiatt ;; Version: 1.1.0 -;; Package-Requires: ((emacs "27.1") (request "0.3.0") +;; Package-Requires: ((emacs "28.1") (request "0.3.0") ;; (persist "0.4") (tp "0.1")) ;; Homepage: https://codeberg.org/martianh/mastodon.el -- cgit v1.2.3 From ef6762986de6f4c85405dbc01ae19854cd2687fd Mon Sep 17 00:00:00 2001 From: marty hiatt Date: Sun, 20 Oct 2024 13:39:06 +0200 Subject: change email address --- README.org | 2 +- lisp/mastodon-async.el | 2 +- lisp/mastodon-auth.el | 2 +- lisp/mastodon-client.el | 2 +- lisp/mastodon-discover.el | 4 ++-- lisp/mastodon-http.el | 4 ++-- lisp/mastodon-inspect.el | 4 ++-- lisp/mastodon-iso.el | 2 +- lisp/mastodon-media.el | 4 ++-- lisp/mastodon-notifications.el | 4 ++-- lisp/mastodon-profile.el | 4 ++-- lisp/mastodon-search.el | 4 ++-- lisp/mastodon-tl.el | 4 ++-- lisp/mastodon-toot.el | 4 ++-- lisp/mastodon-transient.el | 2 +- lisp/mastodon-views.el | 4 ++-- lisp/mastodon.el | 4 ++-- mastodon.texi | 2 +- 18 files changed, 29 insertions(+), 29 deletions(-) (limited to 'lisp/mastodon.el') diff --git a/README.org b/README.org index cf6aed5..1898366 100644 --- a/README.org +++ b/README.org @@ -487,7 +487,7 @@ If you prefer emailing patches to the process described below, feel free to send If you'd like to support continued development of =mastodon.el=, I accept donations via paypal: [[https://paypal.me/martianh][paypal.me/martianh]]. If you would prefer a different -payment method, please write to me at and I can +payment method, please write to me at and I can provide IBAN or other bank account details. I don't have a tech worker's income, so even a small tip would help out. diff --git a/lisp/mastodon-async.el b/lisp/mastodon-async.el index 317be93..b059407 100644 --- a/lisp/mastodon-async.el +++ b/lisp/mastodon-async.el @@ -2,7 +2,7 @@ ;; Copyright (C) 2017 Alex J. Griffith ;; Author: Alex J. Griffith -;; Maintainer: Marty Hiatt +;; Maintainer: Marty Hiatt ;; Package-Requires: ((emacs "27.1")) ;; Homepage: https://codeberg.org/martianh/mastodon.el diff --git a/lisp/mastodon-auth.el b/lisp/mastodon-auth.el index 3796b7e..01639fb 100644 --- a/lisp/mastodon-auth.el +++ b/lisp/mastodon-auth.el @@ -3,7 +3,7 @@ ;; Copyright (C) 2017-2019 Johnson Denen ;; Copyright (C) 2021 Abhiseck Paira ;; Author: Johnson Denen -;; Maintainer: Marty Hiatt +;; Maintainer: Marty Hiatt ;; Homepage: https://codeberg.org/martianh/mastodon.el ;; This file is not part of GNU Emacs. diff --git a/lisp/mastodon-client.el b/lisp/mastodon-client.el index 6e55829..c0db3d6 100644 --- a/lisp/mastodon-client.el +++ b/lisp/mastodon-client.el @@ -3,7 +3,7 @@ ;; Copyright (C) 2017-2019 Johnson Denen ;; Copyright (C) 2021 Abhiseck Paira ;; Author: Johnson Denen -;; Maintainer: Marty Hiatt +;; Maintainer: Marty Hiatt ;; Homepage: https://codeberg.org/martianh/mastodon.el ;; This file is not part of GNU Emacs. diff --git a/lisp/mastodon-discover.el b/lisp/mastodon-discover.el index 9278432..993cc27 100644 --- a/lisp/mastodon-discover.el +++ b/lisp/mastodon-discover.el @@ -3,8 +3,8 @@ ;; Copyright (C) 2019 Johnson Denen ;; Copyright (C) 2020-2024 Marty Hiatt ;; Author: Johnson Denen -;; Marty Hiatt -;; Maintainer: Marty Hiatt +;; Marty Hiatt +;; Maintainer: Marty Hiatt ;; Homepage: https://codeberg.org/martianh/mastodon.el ;; This file is not part of GNU Emacs. diff --git a/lisp/mastodon-http.el b/lisp/mastodon-http.el index 5035cb4..1093de1 100644 --- a/lisp/mastodon-http.el +++ b/lisp/mastodon-http.el @@ -3,8 +3,8 @@ ;; Copyright (C) 2017-2019 Johnson Denen ;; Copyright (C) 2020-2024 Marty Hiatt ;; Author: Johnson Denen -;; Marty Hiatt -;; Maintainer: Marty Hiatt +;; Marty Hiatt +;; Maintainer: Marty Hiatt ;; Homepage: https://codeberg.org/martianh/mastodon.el ;; This file is not part of GNU Emacs. diff --git a/lisp/mastodon-inspect.el b/lisp/mastodon-inspect.el index adc6d64..4981943 100644 --- a/lisp/mastodon-inspect.el +++ b/lisp/mastodon-inspect.el @@ -3,8 +3,8 @@ ;; Copyright (C) 2017-2019 Johnson Denen ;; Copyright (C) 2020-2024 Marty Hiatt ;; Author: Johnson Denen -;; Marty Hiatt -;; Maintainer: Marty Hiatt +;; Marty Hiatt +;; Maintainer: Marty Hiatt ;; Homepage: https://codeberg.org/martianh/mastodon.el ;; This file is not part of GNU Emacs. diff --git a/lisp/mastodon-iso.el b/lisp/mastodon-iso.el index 8ea5635..6199cbe 100644 --- a/lisp/mastodon-iso.el +++ b/lisp/mastodon-iso.el @@ -1,7 +1,7 @@ ;;; mastodon-iso.el --- ISO language code lists for mastodon.el -*- lexical-binding: t -*- ;; Copyright (C) 2022 Marty Hiatt -;; Author: Marty Hiatt +;; Author: Marty Hiatt ;; Homepage: https://codeberg.org/martianh/mastodon.el ;; This file is not part of GNU Emacs. diff --git a/lisp/mastodon-media.el b/lisp/mastodon-media.el index ccd258c..8601410 100644 --- a/lisp/mastodon-media.el +++ b/lisp/mastodon-media.el @@ -3,8 +3,8 @@ ;; Copyright (C) 2017-2019 Johnson Denen ;; Copyright (C) 2020-2024 Marty Hiatt ;; Author: Johnson Denen -;; Marty Hiatt -;; Maintainer: Marty Hiatt +;; Marty Hiatt +;; Maintainer: Marty Hiatt ;; Homepage: https://codeberg.org/martianh/mastodon.el ;; This file is not part of GNU Emacs. diff --git a/lisp/mastodon-notifications.el b/lisp/mastodon-notifications.el index 8d2c928..b16b5a6 100644 --- a/lisp/mastodon-notifications.el +++ b/lisp/mastodon-notifications.el @@ -3,8 +3,8 @@ ;; Copyright (C) 2017-2019 Johnson Denen ;; Copyright (C) 2020-2024 Marty Hiatt ;; Author: Johnson Denen -;; Marty Hiatt -;; Maintainer: Marty Hiatt +;; Marty Hiatt +;; Maintainer: Marty Hiatt ;; Homepage: https://codeberg.org/martianh/mastodon.el ;; This file is not part of GNU Emacs. diff --git a/lisp/mastodon-profile.el b/lisp/mastodon-profile.el index c6a0276..40f834c 100644 --- a/lisp/mastodon-profile.el +++ b/lisp/mastodon-profile.el @@ -3,8 +3,8 @@ ;; Copyright (C) 2017-2019 Johnson Denen ;; Copyright (C) 2020-2024 Marty Hiatt ;; Author: Johnson Denen -;; Marty Hiatt -;; Maintainer: Marty Hiatt +;; Marty Hiatt +;; Maintainer: Marty Hiatt ;; Homepage: https://codeberg.org/martianh/mastodon.el ;; This file is not part of GNU Emacs. diff --git a/lisp/mastodon-search.el b/lisp/mastodon-search.el index cead17e..25db7d8 100644 --- a/lisp/mastodon-search.el +++ b/lisp/mastodon-search.el @@ -1,8 +1,8 @@ ;;; mastodon-search.el --- Search functions for mastodon.el -*- lexical-binding: t -*- ;; Copyright (C) 2017-2019 Marty Hiatt -;; Author: Marty Hiatt -;; Maintainer: Marty Hiatt +;; Author: Marty Hiatt +;; Maintainer: Marty Hiatt ;; Homepage: https://codeberg.org/martianh/mastodon.el ;; This file is not part of GNU Emacs. diff --git a/lisp/mastodon-tl.el b/lisp/mastodon-tl.el index 437a5e3..1a4df7f 100644 --- a/lisp/mastodon-tl.el +++ b/lisp/mastodon-tl.el @@ -3,8 +3,8 @@ ;; Copyright (C) 2017-2019 Johnson Denen ;; Copyright (C) 2020-2024 Marty Hiatt ;; Author: Johnson Denen -;; Marty Hiatt -;; Maintainer: Marty Hiatt +;; Marty Hiatt +;; Maintainer: Marty Hiatt ;; Homepage: https://codeberg.org/martianh/mastodon.el ;; This file is not part of GNU Emacs. diff --git a/lisp/mastodon-toot.el b/lisp/mastodon-toot.el index 95fccc3..fc5825a 100644 --- a/lisp/mastodon-toot.el +++ b/lisp/mastodon-toot.el @@ -3,8 +3,8 @@ ;; Copyright (C) 2017-2019 Johnson Denen ;; Copyright (C) 2020-2024 Marty Hiatt ;; Author: Johnson Denen -;; Marty Hiatt -;; Maintainer: Marty Hiatt +;; Marty Hiatt +;; Maintainer: Marty Hiatt ;; Homepage: https://codeberg.org/martianh/mastodon.el ;; This file is not part of GNU Emacs. diff --git a/lisp/mastodon-transient.el b/lisp/mastodon-transient.el index fe70eac..526dfa4 100644 --- a/lisp/mastodon-transient.el +++ b/lisp/mastodon-transient.el @@ -2,7 +2,7 @@ ;; Copyright (C) 2024 martian hiatus -;; Author: martian hiatus +;; Author: martian hiatus ;; Keywords: convenience ;; This program is free software; you can redistribute it and/or modify diff --git a/lisp/mastodon-views.el b/lisp/mastodon-views.el index 3112c20..8d356fb 100644 --- a/lisp/mastodon-views.el +++ b/lisp/mastodon-views.el @@ -1,8 +1,8 @@ ;;; mastodon-views.el --- Minor views functions for mastodon.el -*- lexical-binding: t -*- ;; Copyright (C) 2020-2024 Marty Hiatt -;; Author: Marty Hiatt -;; Maintainer: Marty Hiatt +;; Author: Marty Hiatt +;; Maintainer: Marty Hiatt ;; Homepage: https://codeberg.org/martianh/mastodon.el ;; This file is not part of GNU Emacs. diff --git a/lisp/mastodon.el b/lisp/mastodon.el index 37da99c..cb5731a 100644 --- a/lisp/mastodon.el +++ b/lisp/mastodon.el @@ -4,8 +4,8 @@ ;; Copyright (C) 2020-2022 Marty Hiatt ;; Copyright (C) 2021 Abhiseck Paira ;; Author: Johnson Denen -;; Marty Hiatt -;; Maintainer: Marty Hiatt +;; Marty Hiatt +;; Maintainer: Marty Hiatt ;; Version: 1.1.0 ;; Package-Requires: ((emacs "28.1") (request "0.3.0") ;; (persist "0.4") (tp "0.1")) diff --git a/mastodon.texi b/mastodon.texi index dafa92d..d1c9268 100644 --- a/mastodon.texi +++ b/mastodon.texi @@ -818,7 +818,7 @@ There's no need for a blank line after the first docstring line (one is added au If you'd like to support continued development of @samp{mastodon.el}, I accept donations via paypal: @uref{https://paypal.me/martianh, paypal.me/martianh}. If you would prefer a different -payment method, please write to me at and I can +payment method, please write to me at and I can provide IBAN or other bank account details. I don't have a tech worker's income, so even a small tip would help out. -- cgit v1.2.3