;;; my-rtliber.el -- Extensions for rt-liberation -*- lexical-binding: t -*- ;; Copyright (C) 2023 Free Software Foundation. ;; Author: Yuchen Pei ;; Package-Requires: ((emacs "28.2")) ;; This file is part of dotfiles. ;; dotfiles is free software: you can redistribute it and/or modify it under ;; the terms of the GNU Affero General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; dotfiles 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 Affero General ;; Public License for more details. ;; You should have received a copy of the GNU Affero General Public ;; License along with dotfiles. If not, see . ;;; Commentary: ;; Extensions for rt-liberation. ;;; Code: (require 'rt-liberation) ;;; fixme: fsf credentials (defun my-rt-liber-my-open-tickets () (interactive) (rt-liber-browse-query (format "owner = '%s' and status != 'resolved'" rt-liber-username))) (defun my-rt-liber-my-tickets () (interactive) (rt-liber-browse-query (format "owner = '%s'" rt-liber-username))) (defun my-rt-liber-backlog () (interactive) (rt-liber-browse-query "created >= '90 days ago' and owner = 'nobody' and status != 'resolved'")) (defun my-rt-liber-get-ticket-by-id (id) (interactive "sTicket ID: ") (rt-liber-browse-query (concat "id = " id))) (defun my-rt-liber-query-by-subject (query) (interactive "sQuery in subject: ") (rt-liber-browse-query (concat "subject like '" query "'"))) ;;; Used to override `rt-liber-viewer-visit-in-browser' (defun my-rt-liber-viewer-visit-in-browser (&optional external) "Visit this ticket section in the RT Web interface. With a prefix arg, browse using secondary browser." (interactive "P") (let ((id (rt-liber-ticket-id-only rt-liber-ticket-local)) (browser-function (if external browse-url-secondary-browser-function 'browse-url))) (if id (funcall browser-function (concat rt-liber-base-url "Ticket/Display.html?id=" id "#txn-" (alist-get 'id (rt-liber-viewer2-get-section-data)))) (error "no ticket currently in view")))) (provide 'my-rtliber) ;;; my-rtliber.el ends here