Aria2.el RPC 认证

在安装ukaszg/aria2之后

(package! aria2 :recipe
  (:host gitlab :repo "ukaszg/aria2"))

按照这种方式修改aria2.el行:

(secret :initarg :secret
            ;:initform aria2-rcp-secret
            :initform (identity aria2-rcp-secret)
            :type string
            :docstring "Secret value used for authentication with the aria2c process, for use with --rpc-secret= switch.")

在执行 aria2-downloads-list出现:Debugger entered--Lisp error: (void-function defmethod)

Debugger entered--Lisp error: (void-function defmethod)
  (defmethod get-next-id ((this aria2-controller)) "Return next request id json form. Resets back to 1..." (let ((id (1+ (eieio-oref this 'request-id)))) (eieio-oset this 'request-id (if (equal id most-positive-fixnum) 0 id)) id))
  #<subr eval-buffer>(#<buffer  *load*> nil "/Users/boyer/.emacs.d/.local/straight/build-29.0.5..." nil t)
  apply(#<subr eval-buffer> (#<buffer  *load*> nil "/Users/boyer/.emacs.d/.local/straight/build-29.0.5..." nil t))
  eval-buffer(#<buffer  *load*> nil "/Users/boyer/.emacs.d/.local/straight/build-29.0.5..." nil t)  ; Reading at buffer position 10340
  load-with-code-conversion("/Users/boyer/.emacs.d/.local/straight/build-29.0.5..." "/Users/boyer/.emacs.d/.local/straight/build-29.0.5..." nil t)
  #<subr autoload-do-load>((autoload "aria2" ("/Users/boyer/.emacs.d/.local/autoloads.29.0.50.elc" . 1255376) t nil) aria2-downloads-list nil)
  apply(#<subr autoload-do-load> ((autoload "aria2" ("/Users/boyer/.emacs.d/.local/autoloads.29.0.50.elc" . 1255376) t nil) aria2-downloads-list))
  autoload-do-load((autoload "aria2" ("/Users/boyer/.emacs.d/.local/autoloads.29.0.50.elc" . 1255376) t nil) aria2-downloads-list)
  command-execute(aria2-downloads-list record)
  counsel-M-x-action("aria2-downloads-list")
  ivy-call()
  #f(compiled-function (arg1 arg2 &rest rest) "Read a string in the minibuffer, with completion.\n\nPROMPT is a string, normally ending in a colon and a space.\n`ivy-count-format' is prepended to PROMPT during completion.\n\nCOLLECTION is either a list of strings, a function, an alist, or\na hash table, supplied for `minibuffer-completion-table'.\n\nPREDICATE is applied to filter out the COLLECTION immediately.\nThis argument is for compatibility with `completing-read'.\n\nWhen REQUIRE-MATCH is non-nil, only members of COLLECTION can be\nselected.\n\nIf INITIAL-INPUT is non-nil, then insert that input in the\nminibuffer initially.\n\nHISTORY is a name of a variable to hold the completion session\nhistory.\n\nKEYMAP is composed with `ivy-minibuffer-map'.\n\nPRESELECT, when non-nil, determines which one of the candidates\nmatching INITIAL-INPUT to select initially.  An integer stands\nfor the position of the desired candidate in the collection,\ncounting from zero.  Otherwise, use the first occurrence of\nPRESELECT in the collection.  Comparison is first done with\n`equal'.  If that fails, and when applicable, match PRESELECT as\na regular expression.\n\nDEF is for compatibility with `completing-read'.\n\nUPDATE-FN is called each time the candidate list is re-displayed.\n\nWhen SORT is non-nil, `ivy-sort-functions-alist' determines how\nto sort candidates before displaying them.\n\nACTION is a function to call after selecting a candidate.\nIt takes one argument, the selected candidate. If COLLECTION is\nan alist, the argument is a cons cell, otherwise it's a string.\n\nMULTI-ACTION, when non-nil, is called instead of ACTION when\nthere are marked candidates. It takes the list of candidates as\nits only argument. When it's nil, ACTION is called on each marked\ncandidate.\n\nUNWIND is a function of no arguments to call before exiting.\n\nRE-BUILDER is a function transforming input text into a regex\npattern.\n\nMATCHER is a function which can override how candidates are\nfiltered based on user input.  It takes a regex pattern and a\nlist of candidates, and returns the list of matching candidates.\n\nDYNAMIC-COLLECTION is a boolean specifying whether the list of\ncandidates is updated after each input by calling COLLECTION.\n\nEXTRA-PROPS is a plist that can be used to store\ncollection-specific session-specific data.\n\nCALLER is a symbol to uniquely identify the caller to `ivy-read'.\nIt is used, along with COLLECTION, to determine which\ncustomizations apply to the current completion session." #<bytecode -0x14b625a617866f55>)("M-x " ("toggle-debug-on-error" "aria2-downloads-list" "doom/increase-font-size" "calibredb-find-counsel" "insert-file" "my-open-calendar" "multi-translate-at-point" "markdown-insert-gfm-checkbox" "transwin-ask-set-transparency" "org-archive-to-archive-sibling" "elgantt--reload" "multi-translate" "elfeed" "lsp-clear" "telega" "rime-deploy" "org-save-all-org-buffers" "easy-hugo" "org-force-cycle-archived" "eaf-open-demo" "rime-select-schema" "forge-add-repository" "doom/reload" "org-roam-ui-mode" "org-gcal-post-at-point" "undo" "+beancount/balance" "elgantt-open" "beancount-fava" "+lookup/in-all-docsets" "org-roam-db-sync" "+lookup/in-docsets" "counsel-dash" "forge-list-repositories" "swift-menu" "ido-switch-buffer" "pocket-reader" "eww" "calibredb" "replace-string" "+lookup/documentation" "+snippets/find-private" "eaf-create-mindmap" "dash-docs-install-docset" "org-mode" "eaf-open-browser" "forge-browse-issues" "org-download-clipboard" "w3m-goto-url" "org-gcal-sync" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x)
  apply(#f(compiled-function (arg1 arg2 &rest rest) "Read a string in the minibuffer, with completion.\n\nPROMPT is a string, normally ending in a colon and a space.\n`ivy-count-format' is prepended to PROMPT during completion.\n\nCOLLECTION is either a list of strings, a function, an alist, or\na hash table, supplied for `minibuffer-completion-table'.\n\nPREDICATE is applied to filter out the COLLECTION immediately.\nThis argument is for compatibility with `completing-read'.\n\nWhen REQUIRE-MATCH is non-nil, only members of COLLECTION can be\nselected.\n\nIf INITIAL-INPUT is non-nil, then insert that input in the\nminibuffer initially.\n\nHISTORY is a name of a variable to hold the completion session\nhistory.\n\nKEYMAP is composed with `ivy-minibuffer-map'.\n\nPRESELECT, when non-nil, determines which one of the candidates\nmatching INITIAL-INPUT to select initially.  An integer stands\nfor the position of the desired candidate in the collection,\ncounting from zero.  Otherwise, use the first occurrence of\nPRESELECT in the collection.  Comparison is first done with\n`equal'.  If that fails, and when applicable, match PRESELECT as\na regular expression.\n\nDEF is for compatibility with `completing-read'.\n\nUPDATE-FN is called each time the candidate list is re-displayed.\n\nWhen SORT is non-nil, `ivy-sort-functions-alist' determines how\nto sort candidates before displaying them.\n\nACTION is a function to call after selecting a candidate.\nIt takes one argument, the selected candidate. If COLLECTION is\nan alist, the argument is a cons cell, otherwise it's a string.\n\nMULTI-ACTION, when non-nil, is called instead of ACTION when\nthere are marked candidates. It takes the list of candidates as\nits only argument. When it's nil, ACTION is called on each marked\ncandidate.\n\nUNWIND is a function of no arguments to call before exiting.\n\nRE-BUILDER is a function transforming input text into a regex\npattern.\n\nMATCHER is a function which can override how candidates are\nfiltered based on user input.  It takes a regex pattern and a\nlist of candidates, and returns the list of matching candidates.\n\nDYNAMIC-COLLECTION is a boolean specifying whether the list of\ncandidates is updated after each input by calling COLLECTION.\n\nEXTRA-PROPS is a plist that can be used to store\ncollection-specific session-specific data.\n\nCALLER is a symbol to uniquely identify the caller to `ivy-read'.\nIt is used, along with COLLECTION, to determine which\ncustomizations apply to the current completion session." #<bytecode -0x14b625a617866f55>) ("M-x " ("toggle-debug-on-error" "aria2-downloads-list" "doom/increase-font-size" "calibredb-find-counsel" "insert-file" "my-open-calendar" "multi-translate-at-point" "markdown-insert-gfm-checkbox" "transwin-ask-set-transparency" "org-archive-to-archive-sibling" "elgantt--reload" "multi-translate" "elfeed" "lsp-clear" "telega" "rime-deploy" "org-save-all-org-buffers" "easy-hugo" "org-force-cycle-archived" "eaf-open-demo" "rime-select-schema" "forge-add-repository" "doom/reload" "org-roam-ui-mode" "org-gcal-post-at-point" "undo" "+beancount/balance" "elgantt-open" "beancount-fava" "+lookup/in-all-docsets" "org-roam-db-sync" "+lookup/in-docsets" "counsel-dash" "forge-list-repositories" "swift-menu" "ido-switch-buffer" "pocket-reader" "eww" "calibredb" "replace-string" "+lookup/documentation" "+snippets/find-private" "eaf-create-mindmap" "dash-docs-install-docset" "org-mode" "eaf-open-browser" "forge-browse-issues" "org-download-clipboard" "w3m-goto-url" "org-gcal-sync" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x))
  ivy-posframe--read(#f(compiled-function (arg1 arg2 &rest rest) "Read a string in the minibuffer, with completion.\n\nPROMPT is a string, normally ending in a colon and a space.\n`ivy-count-format' is prepended to PROMPT during completion.\n\nCOLLECTION is either a list of strings, a function, an alist, or\na hash table, supplied for `minibuffer-completion-table'.\n\nPREDICATE is applied to filter out the COLLECTION immediately.\nThis argument is for compatibility with `completing-read'.\n\nWhen REQUIRE-MATCH is non-nil, only members of COLLECTION can be\nselected.\n\nIf INITIAL-INPUT is non-nil, then insert that input in the\nminibuffer initially.\n\nHISTORY is a name of a variable to hold the completion session\nhistory.\n\nKEYMAP is composed with `ivy-minibuffer-map'.\n\nPRESELECT, when non-nil, determines which one of the candidates\nmatching INITIAL-INPUT to select initially.  An integer stands\nfor the position of the desired candidate in the collection,\ncounting from zero.  Otherwise, use the first occurrence of\nPRESELECT in the collection.  Comparison is first done with\n`equal'.  If that fails, and when applicable, match PRESELECT as\na regular expression.\n\nDEF is for compatibility with `completing-read'.\n\nUPDATE-FN is called each time the candidate list is re-displayed.\n\nWhen SORT is non-nil, `ivy-sort-functions-alist' determines how\nto sort candidates before displaying them.\n\nACTION is a function to call after selecting a candidate.\nIt takes one argument, the selected candidate. If COLLECTION is\nan alist, the argument is a cons cell, otherwise it's a string.\n\nMULTI-ACTION, when non-nil, is called instead of ACTION when\nthere are marked candidates. It takes the list of candidates as\nits only argument. When it's nil, ACTION is called on each marked\ncandidate.\n\nUNWIND is a function of no arguments to call before exiting.\n\nRE-BUILDER is a function transforming input text into a regex\npattern.\n\nMATCHER is a function which can override how candidates are\nfiltered based on user input.  It takes a regex pattern and a\nlist of candidates, and returns the list of matching candidates.\n\nDYNAMIC-COLLECTION is a boolean specifying whether the list of\ncandidates is updated after each input by calling COLLECTION.\n\nEXTRA-PROPS is a plist that can be used to store\ncollection-specific session-specific data.\n\nCALLER is a symbol to uniquely identify the caller to `ivy-read'.\nIt is used, along with COLLECTION, to determine which\ncustomizations apply to the current completion session." #<bytecode -0x14b625a617866f55>) "M-x " ("toggle-debug-on-error" "aria2-downloads-list" "doom/increase-font-size" "calibredb-find-counsel" "insert-file" "my-open-calendar" "multi-translate-at-point" "markdown-insert-gfm-checkbox" "transwin-ask-set-transparency" "org-archive-to-archive-sibling" "elgantt--reload" "multi-translate" "elfeed" "lsp-clear" "telega" "rime-deploy" "org-save-all-org-buffers" "easy-hugo" "org-force-cycle-archived" "eaf-open-demo" "rime-select-schema" "forge-add-repository" "doom/reload" "org-roam-ui-mode" "org-gcal-post-at-point" "undo" "+beancount/balance" "elgantt-open" "beancount-fava" "+lookup/in-all-docsets" "org-roam-db-sync" "+lookup/in-docsets" "counsel-dash" "forge-list-repositories" "swift-menu" "ido-switch-buffer" "pocket-reader" "eww" "calibredb" "replace-string" "+lookup/documentation" "+snippets/find-private" "eaf-create-mindmap" "dash-docs-install-docset" "org-mode" "eaf-open-browser" "forge-browse-issues" "org-download-clipboard" "w3m-goto-url" "org-gcal-sync" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x)
  apply(ivy-posframe--read #f(compiled-function (arg1 arg2 &rest rest) "Read a string in the minibuffer, with completion.\n\nPROMPT is a string, normally ending in a colon and a space.\n`ivy-count-format' is prepended to PROMPT during completion.\n\nCOLLECTION is either a list of strings, a function, an alist, or\na hash table, supplied for `minibuffer-completion-table'.\n\nPREDICATE is applied to filter out the COLLECTION immediately.\nThis argument is for compatibility with `completing-read'.\n\nWhen REQUIRE-MATCH is non-nil, only members of COLLECTION can be\nselected.\n\nIf INITIAL-INPUT is non-nil, then insert that input in the\nminibuffer initially.\n\nHISTORY is a name of a variable to hold the completion session\nhistory.\n\nKEYMAP is composed with `ivy-minibuffer-map'.\n\nPRESELECT, when non-nil, determines which one of the candidates\nmatching INITIAL-INPUT to select initially.  An integer stands\nfor the position of the desired candidate in the collection,\ncounting from zero.  Otherwise, use the first occurrence of\nPRESELECT in the collection.  Comparison is first done with\n`equal'.  If that fails, and when applicable, match PRESELECT as\na regular expression.\n\nDEF is for compatibility with `completing-read'.\n\nUPDATE-FN is called each time the candidate list is re-displayed.\n\nWhen SORT is non-nil, `ivy-sort-functions-alist' determines how\nto sort candidates before displaying them.\n\nACTION is a function to call after selecting a candidate.\nIt takes one argument, the selected candidate. If COLLECTION is\nan alist, the argument is a cons cell, otherwise it's a string.\n\nMULTI-ACTION, when non-nil, is called instead of ACTION when\nthere are marked candidates. It takes the list of candidates as\nits only argument. When it's nil, ACTION is called on each marked\ncandidate.\n\nUNWIND is a function of no arguments to call before exiting.\n\nRE-BUILDER is a function transforming input text into a regex\npattern.\n\nMATCHER is a function which can override how candidates are\nfiltered based on user input.  It takes a regex pattern and a\nlist of candidates, and returns the list of matching candidates.\n\nDYNAMIC-COLLECTION is a boolean specifying whether the list of\ncandidates is updated after each input by calling COLLECTION.\n\nEXTRA-PROPS is a plist that can be used to store\ncollection-specific session-specific data.\n\nCALLER is a symbol to uniquely identify the caller to `ivy-read'.\nIt is used, along with COLLECTION, to determine which\ncustomizations apply to the current completion session." #<bytecode -0x14b625a617866f55>) ("M-x " ("toggle-debug-on-error" "aria2-downloads-list" "doom/increase-font-size" "calibredb-find-counsel" "insert-file" "my-open-calendar" "multi-translate-at-point" "markdown-insert-gfm-checkbox" "transwin-ask-set-transparency" "org-archive-to-archive-sibling" "elgantt--reload" "multi-translate" "elfeed" "lsp-clear" "telega" "rime-deploy" "org-save-all-org-buffers" "easy-hugo" "org-force-cycle-archived" "eaf-open-demo" "rime-select-schema" "forge-add-repository" "doom/reload" "org-roam-ui-mode" "org-gcal-post-at-point" "undo" "+beancount/balance" "elgantt-open" "beancount-fava" "+lookup/in-all-docsets" "org-roam-db-sync" "+lookup/in-docsets" "counsel-dash" "forge-list-repositories" "swift-menu" "ido-switch-buffer" "pocket-reader" "eww" "calibredb" "replace-string" "+lookup/documentation" "+snippets/find-private" "eaf-create-mindmap" "dash-docs-install-docset" "org-mode" "eaf-open-browser" "forge-browse-issues" "org-download-clipboard" "w3m-goto-url" "org-gcal-sync" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x))
  ivy-read("M-x " ("toggle-debug-on-error" "aria2-downloads-list" "doom/increase-font-size" "calibredb-find-counsel" "insert-file" "my-open-calendar" "multi-translate-at-point" "markdown-insert-gfm-checkbox" "transwin-ask-set-transparency" "org-archive-to-archive-sibling" "elgantt--reload" "multi-translate" "elfeed" "lsp-clear" "telega" "rime-deploy" "org-save-all-org-buffers" "easy-hugo" "org-force-cycle-archived" "eaf-open-demo" "rime-select-schema" "forge-add-repository" "doom/reload" "org-roam-ui-mode" "org-gcal-post-at-point" "undo" "+beancount/balance" "elgantt-open" "beancount-fava" "+lookup/in-all-docsets" "org-roam-db-sync" "+lookup/in-docsets" "counsel-dash" "forge-list-repositories" "swift-menu" "ido-switch-buffer" "pocket-reader" "eww" "calibredb" "replace-string" "+lookup/documentation" "+snippets/find-private" "eaf-create-mindmap" "dash-docs-install-docset" "org-mode" "eaf-open-browser" "forge-browse-issues" "org-download-clipboard" "w3m-goto-url" "org-gcal-sync" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x)
  counsel-M-x()
  funcall-interactively(counsel-M-x)
  call-interactively(counsel-M-x nil nil)
  command-execute(counsel-M-x)

获取aria2.el中的rc-secret

rc-secret(动态生成的),可以通过相关属性获取到 在执行aria2--downloads-list之后,通过查看aria2属性:aria2--ccaria2--cc-file,中可以获取到secret。 aria2–cc-file默认值:~/.emacs.d/aria2-controller.eieio

;; Object aria2-controller-48954608
;; EIEIO PERSISTENT OBJECT
(aria2-controller "aria2-controller-48954608"
  :file "aria2-controller.eieio"
  :request-id 88
  :rcp-url "http://localhost:6800/jsonrpc"
  :secret "500D5E7A-2B0E-4EFB-985F-DA0561D4E5BD"
  :pid 27731)

aria2-cc属性:

#s(aria2-controller "/Users/boyer/.emacs.d/aria2-controller.eieio" 151 "http://localhost:6800/jsonrpc" "500D5E7A-2B0E-4EFB-985F-DA0561D4E5BD" 27731)

怎么修复aria2的问题,读了源码没有找到替换的方法。

query-replace "defmethod" "cl-defmethod"

你要是不会改的話可以用我改过的版本。(需要 Emacs 编译时开启 json 支持)

2 个赞

恩,谢谢,最新版本原来在这,之前尝试过 GitHub - LdBeth/aria2.el: Emacs interface for aria2 ,感觉这个库可以更新下。

emacs-plus@29 默认支持jansson,可以直接使用aria2.el库了吗?

$ brew info emacs-plus@29
d12frosted/emacs-plus/emacs-plus@29: stable 29.0.50
/usr/local/Cellar/emacs-plus@29/29.0.50 (4,102 files, 135.4MB) *
  Built from source on 2022-01-05 at 11:41:03 with: --with-xwidgets --with-imagemagick
From: https://github.com/d12frosted/homebrew-emacs-plus/blob/HEAD/Formula/[email protected]
==> Dependencies
Build: autoconf ✔, gnu-sed ✔, pkg-config ✔, texinfo ✔
Required: gnutls ✔, librsvg ✔, little-cms2 ✔, jansson ✔
Optional: imagemagick ✘, dbus ✘, mailutils ✘

试一下不就知道了。

安装LdBeth/InfernoEmacs/blob/master/core/aria2.el编译通过了,执行aria2-downloads-list时,aria2访问认证问题,在aria2.el没有可配置参数aria2-rcp-secret的参数。

Debugger entered--Lisp error: (error "ERROR: Unauthorized")
  signal(error ("ERROR: Unauthorized"))
  error("ERROR: %s" "Unauthorized")
  (or (alist-get 'result json-response) (error "ERROR: %s" (alist-get 'message (alist-get 'error json-response))))
  (let ((url-request-method "POST") (url-request-data (json-serialize (list '(jsonrpc . 2.0) (cons 'id (get-next-id this)) (cons 'method method) (cons 'params (vconcat (list ...) (delq nil params)))))) (url-request-extra-headers '(("Content-Type" . "application/json"))) url-history-track json-response) (if aria2--debug (progn (message "SEND: %s" url-request-data))) (save-current-buffer (set-buffer (url-retrieve-synchronously (eieio-oref this 'rcp-url) t)) (goto-char (point-max)) (beginning-of-line) (setq json-response (json-parse-buffer :object-type 'alist)) (kill-buffer)) (if aria2--debug (progn (message "RECV: %s" json-response))) (or (alist-get 'result json-response) (error "ERROR: %s" (alist-get 'message (alist-get 'error json-response)))))
  (progn (run-process this) (let ((url-request-method "POST") (url-request-data (json-serialize (list '(jsonrpc . 2.0) (cons 'id (get-next-id this)) (cons 'method method) (cons 'params (vconcat ... ...))))) (url-request-extra-headers '(("Content-Type" . "application/json"))) url-history-track json-response) (if aria2--debug (progn (message "SEND: %s" url-request-data))) (save-current-buffer (set-buffer (url-retrieve-synchronously (eieio-oref this 'rcp-url) t)) (goto-char (point-max)) (beginning-of-line) (setq json-response (json-parse-buffer :object-type 'alist)) (kill-buffer)) (if aria2--debug (progn (message "RECV: %s" json-response))) (or (alist-get 'result json-response) (error "ERROR: %s" (alist-get 'message (alist-get 'error json-response))))))
  (progn (progn (run-process this) (let ((url-request-method "POST") (url-request-data (json-serialize (list '... (cons ... ...) (cons ... method) (cons ... ...)))) (url-request-extra-headers '(("Content-Type" . "application/json"))) url-history-track json-response) (if aria2--debug (progn (message "SEND: %s" url-request-data))) (save-current-buffer (set-buffer (url-retrieve-synchronously (eieio-oref this 'rcp-url) t)) (goto-char (point-max)) (beginning-of-line) (setq json-response (json-parse-buffer :object-type 'alist)) (kill-buffer)) (if aria2--debug (progn (message "RECV: %s" json-response))) (or (alist-get 'result json-response) (error "ERROR: %s" (alist-get 'message (alist-get 'error json-response)))))))
  (closure (t) (this method &rest params) "Calls a remote METHOD with PARAMS. Returns respons..." (progn (progn (run-process this) (let ((url-request-method "POST") (url-request-data (json-serialize ...)) (url-request-extra-headers '...) url-history-track json-response) (if aria2--debug (progn (message "SEND: %s" url-request-data))) (save-current-buffer (set-buffer (url-retrieve-synchronously ... t)) (goto-char (point-max)) (beginning-of-line) (setq json-response (json-parse-buffer :object-type ...)) (kill-buffer)) (if aria2--debug (progn (message "RECV: %s" json-response))) (or (alist-get 'result json-response) (error "ERROR: %s" (alist-get ... ...)))))))(#<aria2-controller aria2-controller-1febe0cf38b6> "aria2.tellActive" ["gid" "status" "totalLength" "completedLength" "downloadSpeed" "uploadSpeed" "files" "dir" "bittorrent" "errorCode"])
  apply((closure (t) (this method &rest params) "Calls a remote METHOD with PARAMS. Returns respons..." (progn (progn (run-process this) (let ((url-request-method "POST") (url-request-data (json-serialize ...)) (url-request-extra-headers '...) url-history-track json-response) (if aria2--debug (progn (message "SEND: %s" url-request-data))) (save-current-buffer (set-buffer (url-retrieve-synchronously ... t)) (goto-char (point-max)) (beginning-of-line) (setq json-response (json-parse-buffer :object-type ...)) (kill-buffer)) (if aria2--debug (progn (message "RECV: %s" json-response))) (or (alist-get 'result json-response) (error "ERROR: %s" (alist-get ... ...))))))) #<aria2-controller aria2-controller-1febe0cf38b6> ("aria2.tellActive" ["gid" "status" "totalLength" "completedLength" "downloadSpeed" "uploadSpeed" "files" "dir" "bittorrent" "errorCode"]))
  make-request(#<aria2-controller aria2-controller-1febe0cf38b6> "aria2.tellActive" ["gid" "status" "totalLength" "completedLength" "downloadSpeed" "uploadSpeed" "files" "dir" "bittorrent" "errorCode"])
  (progn (make-request this "aria2.tellActive" keys))
  (closure (t) (this &optional keys) "Return statuses of active downloads." (progn (make-request this "aria2.tellActive" keys)))(#<aria2-controller aria2-controller-1febe0cf38b6> ["gid" "status" "totalLength" "completedLength" "downloadSpeed" "uploadSpeed" "files" "dir" "bittorrent" "errorCode"])
  apply((closure (t) (this &optional keys) "Return statuses of active downloads." (progn (make-request this "aria2.tellActive" keys))) #<aria2-controller aria2-controller-1febe0cf38b6> ["gid" "status" "totalLength" "completedLength" "downloadSpeed" "uploadSpeed" "files" "dir" "bittorrent" "errorCode"])
  tellActive(#<aria2-controller aria2-controller-1febe0cf38b6> ["gid" "status" "totalLength" "completedLength" "downloadSpeed" "uploadSpeed" "files" "dir" "bittorrent" "errorCode"])
  (append (tellActive aria2--cc aria2--tell-keys) (tellWaiting aria2--cc nil nil aria2--tell-keys) (tellStopped aria2--cc nil nil aria2--tell-keys) nil)
  (let (entries (info (append (tellActive aria2--cc aria2--tell-keys) (tellWaiting aria2--cc nil nil aria2--tell-keys) (tellStopped aria2--cc nil nil aria2--tell-keys) nil))) (let ((--dolist-tail-- info)) (while --dolist-tail-- (let ((e (car --dolist-tail--))) (setq entries (cons (list (alist-get ... e) (vector ... ... ... ... ... ... ... ...)) entries)) (setq --dolist-tail-- (cdr --dolist-tail--)))) entries))
  aria2--list-entries()
  tabulated-list-print()
  (let ((delay-mode-hooks t)) (tabulated-list-mode) (setq major-mode 'aria2-mode) (setq mode-name "Aria2") (progn (if (get 'tabulated-list-mode 'mode-class) (put 'aria2-mode 'mode-class (get 'tabulated-list-mode 'mode-class))) (if (keymap-parent aria2-mode-map) nil (set-keymap-parent aria2-mode-map (current-local-map))) (let ((parent (char-table-parent aria2-mode-syntax-table))) (if (and parent (not (eq parent (standard-syntax-table)))) nil (set-char-table-parent aria2-mode-syntax-table (syntax-table)))) (if (or (abbrev-table-get aria2-mode-abbrev-table :parents) (eq aria2-mode-abbrev-table local-abbrev-table)) nil (abbrev-table-put aria2-mode-abbrev-table :parents (list local-abbrev-table)))) (use-local-map aria2-mode-map) (set-syntax-table aria2-mode-syntax-table) (setq local-abbrev-table aria2-mode-abbrev-table) (if (file-executable-p aria2-executable) nil (signal 'aria2-err-no-executable nil)) (if aria2--cc nil (condition-case nil (setq aria2--cc (eieio-persistent-read aria2--cc-file 'aria2-controller)) (error (setq aria2--cc (make-instance 'aria2-controller "aria2-controller" :file aria2--cc-file))))) (if aria2-kill-process-on-emacs-exit (add-hook 'kill-emacs-hook 'aria2--kill-on-exit) (add-hook 'kill-emacs-hook 'aria2--persist-settings-on-exit)) (setq tabulated-list-format aria2--list-format) (tabulated-list-init-header) (setq tabulated-list-entries #'aria2--list-entries) (tabulated-list-print) (if (not aria2--master-timer) (progn (setq aria2--master-timer (run-at-time t 5 #'aria2--manage-refresh-timer)))) (hl-line-mode 1) (set (make-local-variable 'mode-line-format) aria2-mode-line-format))
  (progn (make-local-variable 'delay-mode-hooks) (let ((delay-mode-hooks t)) (tabulated-list-mode) (setq major-mode 'aria2-mode) (setq mode-name "Aria2") (progn (if (get 'tabulated-list-mode 'mode-class) (put 'aria2-mode 'mode-class (get 'tabulated-list-mode 'mode-class))) (if (keymap-parent aria2-mode-map) nil (set-keymap-parent aria2-mode-map (current-local-map))) (let ((parent (char-table-parent aria2-mode-syntax-table))) (if (and parent (not (eq parent ...))) nil (set-char-table-parent aria2-mode-syntax-table (syntax-table)))) (if (or (abbrev-table-get aria2-mode-abbrev-table :parents) (eq aria2-mode-abbrev-table local-abbrev-table)) nil (abbrev-table-put aria2-mode-abbrev-table :parents (list local-abbrev-table)))) (use-local-map aria2-mode-map) (set-syntax-table aria2-mode-syntax-table) (setq local-abbrev-table aria2-mode-abbrev-table) (if (file-executable-p aria2-executable) nil (signal 'aria2-err-no-executable nil)) (if aria2--cc nil (condition-case nil (setq aria2--cc (eieio-persistent-read aria2--cc-file 'aria2-controller)) (error (setq aria2--cc (make-instance 'aria2-controller "aria2-controller" :file aria2--cc-file))))) (if aria2-kill-process-on-emacs-exit (add-hook 'kill-emacs-hook 'aria2--kill-on-exit) (add-hook 'kill-emacs-hook 'aria2--persist-settings-on-exit)) (setq tabulated-list-format aria2--list-format) (tabulated-list-init-header) (setq tabulated-list-entries #'aria2--list-entries) (tabulated-list-print) (if (not aria2--master-timer) (progn (setq aria2--master-timer (run-at-time t 5 #'aria2--manage-refresh-timer)))) (hl-line-mode 1) (set (make-local-variable 'mode-line-format) aria2-mode-line-format)))
  aria2-mode()
  (save-current-buffer (set-buffer (pop-to-buffer aria2-list-buffer-name)) (aria2-mode))
  aria2-downloads-list()
  funcall-interactively(aria2-downloads-list)
  call-interactively(aria2-downloads-list record nil)
  command-execute(aria2-downloads-list record)
  counsel-M-x-action("aria2-downloads-list")
  ivy-call()
  #f(compiled-function (arg1 arg2 &rest rest) "Read a string in the minibuffer, with completion.\n\nPROMPT is a string, normally ending in a colon and a space.\n`ivy-count-format' is prepended to PROMPT during completion.\n\nCOLLECTION is either a list of strings, a function, an alist, or\na hash table, supplied for `minibuffer-completion-table'.\n\nPREDICATE is applied to filter out the COLLECTION immediately.\nThis argument is for compatibility with `completing-read'.\n\nWhen REQUIRE-MATCH is non-nil, only members of COLLECTION can be\nselected.\n\nIf INITIAL-INPUT is non-nil, then insert that input in the\nminibuffer initially.\n\nHISTORY is a name of a variable to hold the completion session\nhistory.\n\nKEYMAP is composed with `ivy-minibuffer-map'.\n\nPRESELECT, when non-nil, determines which one of the candidates\nmatching INITIAL-INPUT to select initially.  An integer stands\nfor the position of the desired candidate in the collection,\ncounting from zero.  Otherwise, use the first occurrence of\nPRESELECT in the collection.  Comparison is first done with\n`equal'.  If that fails, and when applicable, match PRESELECT as\na regular expression.\n\nDEF is for compatibility with `completing-read'.\n\nUPDATE-FN is called each time the candidate list is re-displayed.\n\nWhen SORT is non-nil, `ivy-sort-functions-alist' determines how\nto sort candidates before displaying them.\n\nACTION is a function to call after selecting a candidate.\nIt takes one argument, the selected candidate. If COLLECTION is\nan alist, the argument is a cons cell, otherwise it's a string.\n\nMULTI-ACTION, when non-nil, is called instead of ACTION when\nthere are marked candidates. It takes the list of candidates as\nits only argument. When it's nil, ACTION is called on each marked\ncandidate.\n\nUNWIND is a function of no arguments to call before exiting.\n\nRE-BUILDER is a function transforming input text into a regex\npattern.\n\nMATCHER is a function which can override how candidates are\nfiltered based on user input.  It takes a regex pattern and a\nlist of candidates, and returns the list of matching candidates.\n\nDYNAMIC-COLLECTION is a boolean specifying whether the list of\ncandidates is updated after each input by calling COLLECTION.\n\nEXTRA-PROPS is a plist that can be used to store\ncollection-specific session-specific data.\n\nCALLER is a symbol to uniquely identify the caller to `ivy-read'.\nIt is used, along with COLLECTION, to determine which\ncustomizations apply to the current completion session." #<bytecode 0x1e149951e1e36ca2>)("M-x " ("toggle-debug-on-error" "aria2-downloads-list" "markdown-insert-gfm-checkbox" "doom/increase-font-size" "calibredb-find-counsel" "insert-file" "my-open-calendar" "multi-translate-at-point" "transwin-ask-set-transparency" "org-archive-to-archive-sibling" "elgantt--reload" "multi-translate" "elfeed" "lsp-clear" "telega" "rime-deploy" "org-save-all-org-buffers" "easy-hugo" "org-force-cycle-archived" "eaf-open-demo" "rime-select-schema" "forge-add-repository" "doom/reload" "org-roam-ui-mode" "org-gcal-post-at-point" "undo" "+beancount/balance" "elgantt-open" "beancount-fava" "+lookup/in-all-docsets" "org-roam-db-sync" "+lookup/in-docsets" "counsel-dash" "forge-list-repositories" "swift-menu" "ido-switch-buffer" "pocket-reader" "eww" "calibredb" "replace-string" "+lookup/documentation" "+snippets/find-private" "eaf-create-mindmap" "dash-docs-install-docset" "org-mode" "eaf-open-browser" "forge-browse-issues" "org-download-clipboard" "w3m-goto-url" "org-gcal-sync" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x)
  apply(#f(compiled-function (arg1 arg2 &rest rest) "Read a string in the minibuffer, with completion.\n\nPROMPT is a string, normally ending in a colon and a space.\n`ivy-count-format' is prepended to PROMPT during completion.\n\nCOLLECTION is either a list of strings, a function, an alist, or\na hash table, supplied for `minibuffer-completion-table'.\n\nPREDICATE is applied to filter out the COLLECTION immediately.\nThis argument is for compatibility with `completing-read'.\n\nWhen REQUIRE-MATCH is non-nil, only members of COLLECTION can be\nselected.\n\nIf INITIAL-INPUT is non-nil, then insert that input in the\nminibuffer initially.\n\nHISTORY is a name of a variable to hold the completion session\nhistory.\n\nKEYMAP is composed with `ivy-minibuffer-map'.\n\nPRESELECT, when non-nil, determines which one of the candidates\nmatching INITIAL-INPUT to select initially.  An integer stands\nfor the position of the desired candidate in the collection,\ncounting from zero.  Otherwise, use the first occurrence of\nPRESELECT in the collection.  Comparison is first done with\n`equal'.  If that fails, and when applicable, match PRESELECT as\na regular expression.\n\nDEF is for compatibility with `completing-read'.\n\nUPDATE-FN is called each time the candidate list is re-displayed.\n\nWhen SORT is non-nil, `ivy-sort-functions-alist' determines how\nto sort candidates before displaying them.\n\nACTION is a function to call after selecting a candidate.\nIt takes one argument, the selected candidate. If COLLECTION is\nan alist, the argument is a cons cell, otherwise it's a string.\n\nMULTI-ACTION, when non-nil, is called instead of ACTION when\nthere are marked candidates. It takes the list of candidates as\nits only argument. When it's nil, ACTION is called on each marked\ncandidate.\n\nUNWIND is a function of no arguments to call before exiting.\n\nRE-BUILDER is a function transforming input text into a regex\npattern.\n\nMATCHER is a function which can override how candidates are\nfiltered based on user input.  It takes a regex pattern and a\nlist of candidates, and returns the list of matching candidates.\n\nDYNAMIC-COLLECTION is a boolean specifying whether the list of\ncandidates is updated after each input by calling COLLECTION.\n\nEXTRA-PROPS is a plist that can be used to store\ncollection-specific session-specific data.\n\nCALLER is a symbol to uniquely identify the caller to `ivy-read'.\nIt is used, along with COLLECTION, to determine which\ncustomizations apply to the current completion session." #<bytecode 0x1e149951e1e36ca2>) ("M-x " ("toggle-debug-on-error" "aria2-downloads-list" "markdown-insert-gfm-checkbox" "doom/increase-font-size" "calibredb-find-counsel" "insert-file" "my-open-calendar" "multi-translate-at-point" "transwin-ask-set-transparency" "org-archive-to-archive-sibling" "elgantt--reload" "multi-translate" "elfeed" "lsp-clear" "telega" "rime-deploy" "org-save-all-org-buffers" "easy-hugo" "org-force-cycle-archived" "eaf-open-demo" "rime-select-schema" "forge-add-repository" "doom/reload" "org-roam-ui-mode" "org-gcal-post-at-point" "undo" "+beancount/balance" "elgantt-open" "beancount-fava" "+lookup/in-all-docsets" "org-roam-db-sync" "+lookup/in-docsets" "counsel-dash" "forge-list-repositories" "swift-menu" "ido-switch-buffer" "pocket-reader" "eww" "calibredb" "replace-string" "+lookup/documentation" "+snippets/find-private" "eaf-create-mindmap" "dash-docs-install-docset" "org-mode" "eaf-open-browser" "forge-browse-issues" "org-download-clipboard" "w3m-goto-url" "org-gcal-sync" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x))
  ivy-posframe--read(#f(compiled-function (arg1 arg2 &rest rest) "Read a string in the minibuffer, with completion.\n\nPROMPT is a string, normally ending in a colon and a space.\n`ivy-count-format' is prepended to PROMPT during completion.\n\nCOLLECTION is either a list of strings, a function, an alist, or\na hash table, supplied for `minibuffer-completion-table'.\n\nPREDICATE is applied to filter out the COLLECTION immediately.\nThis argument is for compatibility with `completing-read'.\n\nWhen REQUIRE-MATCH is non-nil, only members of COLLECTION can be\nselected.\n\nIf INITIAL-INPUT is non-nil, then insert that input in the\nminibuffer initially.\n\nHISTORY is a name of a variable to hold the completion session\nhistory.\n\nKEYMAP is composed with `ivy-minibuffer-map'.\n\nPRESELECT, when non-nil, determines which one of the candidates\nmatching INITIAL-INPUT to select initially.  An integer stands\nfor the position of the desired candidate in the collection,\ncounting from zero.  Otherwise, use the first occurrence of\nPRESELECT in the collection.  Comparison is first done with\n`equal'.  If that fails, and when applicable, match PRESELECT as\na regular expression.\n\nDEF is for compatibility with `completing-read'.\n\nUPDATE-FN is called each time the candidate list is re-displayed.\n\nWhen SORT is non-nil, `ivy-sort-functions-alist' determines how\nto sort candidates before displaying them.\n\nACTION is a function to call after selecting a candidate.\nIt takes one argument, the selected candidate. If COLLECTION is\nan alist, the argument is a cons cell, otherwise it's a string.\n\nMULTI-ACTION, when non-nil, is called instead of ACTION when\nthere are marked candidates. It takes the list of candidates as\nits only argument. When it's nil, ACTION is called on each marked\ncandidate.\n\nUNWIND is a function of no arguments to call before exiting.\n\nRE-BUILDER is a function transforming input text into a regex\npattern.\n\nMATCHER is a function which can override how candidates are\nfiltered based on user input.  It takes a regex pattern and a\nlist of candidates, and returns the list of matching candidates.\n\nDYNAMIC-COLLECTION is a boolean specifying whether the list of\ncandidates is updated after each input by calling COLLECTION.\n\nEXTRA-PROPS is a plist that can be used to store\ncollection-specific session-specific data.\n\nCALLER is a symbol to uniquely identify the caller to `ivy-read'.\nIt is used, along with COLLECTION, to determine which\ncustomizations apply to the current completion session." #<bytecode 0x1e149951e1e36ca2>) "M-x " ("toggle-debug-on-error" "aria2-downloads-list" "markdown-insert-gfm-checkbox" "doom/increase-font-size" "calibredb-find-counsel" "insert-file" "my-open-calendar" "multi-translate-at-point" "transwin-ask-set-transparency" "org-archive-to-archive-sibling" "elgantt--reload" "multi-translate" "elfeed" "lsp-clear" "telega" "rime-deploy" "org-save-all-org-buffers" "easy-hugo" "org-force-cycle-archived" "eaf-open-demo" "rime-select-schema" "forge-add-repository" "doom/reload" "org-roam-ui-mode" "org-gcal-post-at-point" "undo" "+beancount/balance" "elgantt-open" "beancount-fava" "+lookup/in-all-docsets" "org-roam-db-sync" "+lookup/in-docsets" "counsel-dash" "forge-list-repositories" "swift-menu" "ido-switch-buffer" "pocket-reader" "eww" "calibredb" "replace-string" "+lookup/documentation" "+snippets/find-private" "eaf-create-mindmap" "dash-docs-install-docset" "org-mode" "eaf-open-browser" "forge-browse-issues" "org-download-clipboard" "w3m-goto-url" "org-gcal-sync" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x)
  apply(ivy-posframe--read #f(compiled-function (arg1 arg2 &rest rest) "Read a string in the minibuffer, with completion.\n\nPROMPT is a string, normally ending in a colon and a space.\n`ivy-count-format' is prepended to PROMPT during completion.\n\nCOLLECTION is either a list of strings, a function, an alist, or\na hash table, supplied for `minibuffer-completion-table'.\n\nPREDICATE is applied to filter out the COLLECTION immediately.\nThis argument is for compatibility with `completing-read'.\n\nWhen REQUIRE-MATCH is non-nil, only members of COLLECTION can be\nselected.\n\nIf INITIAL-INPUT is non-nil, then insert that input in the\nminibuffer initially.\n\nHISTORY is a name of a variable to hold the completion session\nhistory.\n\nKEYMAP is composed with `ivy-minibuffer-map'.\n\nPRESELECT, when non-nil, determines which one of the candidates\nmatching INITIAL-INPUT to select initially.  An integer stands\nfor the position of the desired candidate in the collection,\ncounting from zero.  Otherwise, use the first occurrence of\nPRESELECT in the collection.  Comparison is first done with\n`equal'.  If that fails, and when applicable, match PRESELECT as\na regular expression.\n\nDEF is for compatibility with `completing-read'.\n\nUPDATE-FN is called each time the candidate list is re-displayed.\n\nWhen SORT is non-nil, `ivy-sort-functions-alist' determines how\nto sort candidates before displaying them.\n\nACTION is a function to call after selecting a candidate.\nIt takes one argument, the selected candidate. If COLLECTION is\nan alist, the argument is a cons cell, otherwise it's a string.\n\nMULTI-ACTION, when non-nil, is called instead of ACTION when\nthere are marked candidates. It takes the list of candidates as\nits only argument. When it's nil, ACTION is called on each marked\ncandidate.\n\nUNWIND is a function of no arguments to call before exiting.\n\nRE-BUILDER is a function transforming input text into a regex\npattern.\n\nMATCHER is a function which can override how candidates are\nfiltered based on user input.  It takes a regex pattern and a\nlist of candidates, and returns the list of matching candidates.\n\nDYNAMIC-COLLECTION is a boolean specifying whether the list of\ncandidates is updated after each input by calling COLLECTION.\n\nEXTRA-PROPS is a plist that can be used to store\ncollection-specific session-specific data.\n\nCALLER is a symbol to uniquely identify the caller to `ivy-read'.\nIt is used, along with COLLECTION, to determine which\ncustomizations apply to the current completion session." #<bytecode 0x1e149951e1e36ca2>) ("M-x " ("toggle-debug-on-error" "aria2-downloads-list" "markdown-insert-gfm-checkbox" "doom/increase-font-size" "calibredb-find-counsel" "insert-file" "my-open-calendar" "multi-translate-at-point" "transwin-ask-set-transparency" "org-archive-to-archive-sibling" "elgantt--reload" "multi-translate" "elfeed" "lsp-clear" "telega" "rime-deploy" "org-save-all-org-buffers" "easy-hugo" "org-force-cycle-archived" "eaf-open-demo" "rime-select-schema" "forge-add-repository" "doom/reload" "org-roam-ui-mode" "org-gcal-post-at-point" "undo" "+beancount/balance" "elgantt-open" "beancount-fava" "+lookup/in-all-docsets" "org-roam-db-sync" "+lookup/in-docsets" "counsel-dash" "forge-list-repositories" "swift-menu" "ido-switch-buffer" "pocket-reader" "eww" "calibredb" "replace-string" "+lookup/documentation" "+snippets/find-private" "eaf-create-mindmap" "dash-docs-install-docset" "org-mode" "eaf-open-browser" "forge-browse-issues" "org-download-clipboard" "w3m-goto-url" "org-gcal-sync" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x))
  ivy-read("M-x " ("toggle-debug-on-error" "aria2-downloads-list" "markdown-insert-gfm-checkbox" "doom/increase-font-size" "calibredb-find-counsel" "insert-file" "my-open-calendar" "multi-translate-at-point" "transwin-ask-set-transparency" "org-archive-to-archive-sibling" "elgantt--reload" "multi-translate" "elfeed" "lsp-clear" "telega" "rime-deploy" "org-save-all-org-buffers" "easy-hugo" "org-force-cycle-archived" "eaf-open-demo" "rime-select-schema" "forge-add-repository" "doom/reload" "org-roam-ui-mode" "org-gcal-post-at-point" "undo" "+beancount/balance" "elgantt-open" "beancount-fava" "+lookup/in-all-docsets" "org-roam-db-sync" "+lookup/in-docsets" "counsel-dash" "forge-list-repositories" "swift-menu" "ido-switch-buffer" "pocket-reader" "eww" "calibredb" "replace-string" "+lookup/documentation" "+snippets/find-private" "eaf-create-mindmap" "dash-docs-install-docset" "org-mode" "eaf-open-browser" "forge-browse-issues" "org-download-clipboard" "w3m-goto-url" "org-gcal-sync" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x)
  counsel-M-x()
  funcall-interactively(counsel-M-x)
  call-interactively(counsel-M-x nil nil)
  command-execute(counsel-M-x)

把你 aria2c 的配置文件删了再试

删了aria2.conf,可以正常使用了。

aria2.el 不支持 aria2.conf 相关配置吗?

这样的话,如何通过google插件Aria2 for Chrome访问aria2.el下载服务。 例如:需要的认证密钥rpc-secret,怎么获取aria2.el服务的rpc-secret?

获取aria2.el中的rc-secret

rc-secret(动态生成的),可以通过相关属性获取到 在执行aria2--downloads-list之后,通过查看aria2属性:aria2--ccaria2--cc-file,中可以获取到secret。 aria2–cc-file默认值:~/.emacs.d/aria2-controller.eieio

;; Object aria2-controller-48954608
;; EIEIO PERSISTENT OBJECT
(aria2-controller "aria2-controller-48954608"
  :file "aria2-controller.eieio"
  :request-id 88
  :rcp-url "http://localhost:6800/jsonrpc"
  :secret "500D5E7A-2B0E-4EFB-985F-DA0561D4E5BD"
  :pid 27731)

aria2-cc属性:

#s(aria2-controller "/Users/boyer/.emacs.d/aria2-controller.eieio" 151 "http://localhost:6800/jsonrpc" "500D5E7A-2B0E-4EFB-985F-DA0561D4E5BD" 27731)