-
Description: A client for working with Ultralisp.org
-
Licence: Unlicense
-
Author: Alexander Artemenko [email protected]
-
Bug tracker: https://github.com/ultralisp/ultralisp-client/issues
-
Source control: GIT
-
Depends on: jsonrpc, openrpc-client
You can install this library from Quicklisp, but you want to receive updates quickly, then install it from Ultralisp.org:
(ql-dist:install-dist "http://dist.ultralisp.org/"
:prompt nil)
(ql:quickload :ultralisp-client)
Here is example of usage:
CL-USER> (ultralisp-client:get-all-tags)
...
#<ULTRALISP-CLIENT/LOWLEVEL:TAG NAME="ansi-terminal" PROJECT-COUNT=1>
#<ULTRALISP-CLIENT/LOWLEVEL:TAG NAME="ape" PROJECT-COUNT=1>
#<ULTRALISP-CLIENT/LOWLEVEL:TAG NAME="api" PROJECT-COUNT=12>
...
#<ULTRALISP-CLIENT/LOWLEVEL:TAG NAME="template-engine" PROJECT-COUNT=3> ...)
CL-USER> (ultralisp-client:get-projects-by-tag "template-engine")
(#<ULTRALISP-CLIENT/LOWLEVEL:PROJECT2 CREATED-AT="2019-03-19T05:10:39.000000Z"
UPDATED-AT="2020-12-25T05:58:49.000000Z"
ID=850 VERSION=0 LATEST=T DELETED=NIL
NAME="mmontone/djula"
DESCRIPTION="Common Lisp port of the Django templating language">
#<ULTRALISP-CLIENT/LOWLEVEL:PROJECT2 CREATED-AT="2020-04-11T16:38:27.000000Z"
UPDATED-AT="2020-04-11T16:51:01.000000Z"
ID=1432 VERSION=0 LATEST=T DELETED=NIL
NAME="RailsOnLisp/rol-template"
DESCRIPTION="RailsOnLisp template engine">
#<ULTRALISP-CLIENT/LOWLEVEL:PROJECT2 CREATED-AT="2020-04-13T14:54:22.000000Z"
UPDATED-AT="2020-10-02T16:26:19.000000Z"
ID=1470 VERSION=0 LATEST=T DELETED=NIL
NAME="mmontone/ten"
DESCRIPTION="Yet another template system for Common Lisp">)
CL-USER> (first *)
#<ULTRALISP-CLIENT/LOWLEVEL:PROJECT2 CREATED-AT="2019-03-19T05:10:39.000000Z" UPDATED-AT="2020-12-25T05:58:49.000000Z" ID=850 VERSION=0 LATEST=T DELETED=NIL NAME="mmontone/djula" DESCRIPTION="Common Lisp port of the Django templating language">
CL-USER> (ultralisp-client:get-project-tags *)
("html-template" "template-engine")
CL-USER> (ultralisp-client:get-project-systems **)
(#<ULTRALISP-CLIENT/LOWLEVEL:SYSTEM-INFO PROJECT-NAME="mmontone-djula"
FILENAME="djula-translate.asd"
NAME="djula-translate"
DEPENDENCIES=("djula" "translate")>
#<ULTRALISP-CLIENT/LOWLEVEL:SYSTEM-INFO PROJECT-NAME="mmontone-djula"
FILENAME="djula-test.asd"
NAME="djula-test"
DEPENDENCIES=("djula" "fiveam")>
#<ULTRALISP-CLIENT/LOWLEVEL:SYSTEM-INFO PROJECT-NAME="mmontone-djula"
FILENAME="djula-locale.asd"
NAME="djula-locale"
DEPENDENCIES=("djula" "cl-locale")>
#<ULTRALISP-CLIENT/LOWLEVEL:SYSTEM-INFO PROJECT-NAME="mmontone-djula"
FILENAME="djula-gettext.asd"
NAME="djula-gettext"
DEPENDENCIES=("djula" "gettext")>
#<ULTRALISP-CLIENT/LOWLEVEL:SYSTEM-INFO PROJECT-NAME="mmontone-djula"
FILENAME="djula-demo.asd"
NAME="djula-demo"
DEPENDENCIES=("djula" "hunchentoot" "trivial-open-browser")>
#<ULTRALISP-CLIENT/LOWLEVEL:SYSTEM-INFO PROJECT-NAME="mmontone-djula"
FILENAME="djula.asd"
NAME="djula"
DEPENDENCIES=("access" "alexandria" "babel" "cl-ppcre" "split-sequence" "local-time" "closer-mop" "trivial-backtrace" "cl-slice" "cl-locale" "gettext" "parser-combinators" "iterate")>)
package ultralisp-client
generic-function ultralisp-client:get-project-sources
project
Returns a list of project sources with their systems and release information.
generic-function ultralisp-client:get-project-systems
project
generic-function ultralisp-client:get-project-tags
project
function ultralisp-client:get-all-tags
Returns a list of all known tags and numbers of projects associated with them.
function ultralisp-client:get-project-by-name
name
function ultralisp-client:get-projects-by-tag
tag
Returns projects having a given tag.
package ultralisp-client/client
function ultralisp-client/client:ensure-connected
&optional (url *url*)
Use this function to override URL
if it is different from default https://ultralisp.org/api/.
package ultralisp-client/lowlevel
class ultralisp-client/lowlevel:api
(client)
class ultralisp-client/lowlevel:project2
()
Readers
reader ultralisp-client/lowlevel:project2-created-at
(project2) (:created-at = nil)
reader ultralisp-client/lowlevel:project2-deleted
(project2) (:deleted = nil)
reader ultralisp-client/lowlevel:project2-description
(project2) (:description = nil)
reader ultralisp-client/lowlevel:project2-id
(project2) (:id = nil)
reader ultralisp-client/lowlevel:project2-latest
(project2) (:latest = nil)
reader ultralisp-client/lowlevel:project2-name
(project2) (:name = nil)
reader ultralisp-client/lowlevel:project2-updated-at
(project2) (:updated-at = nil)
reader ultralisp-client/lowlevel:project2-version
(project2) (:version = nil)
class ultralisp-client/lowlevel:release-info
()
Readers
reader ultralisp-client/lowlevel:release-info-archive-path
(release-info) (:archive-path = nil)
reader ultralisp-client/lowlevel:release-info-content-sha1
(release-info) (:content-sha1 = nil)
reader ultralisp-client/lowlevel:release-info-file-size
(release-info) (:file-size = nil)
reader ultralisp-client/lowlevel:release-info-md5sum
(release-info) (:md5sum = nil)
reader ultralisp-client/lowlevel:release-info-project-name
(release-info) (:project-name = nil)
reader ultralisp-client/lowlevel:release-info-project-prefix
(release-info) (:project-prefix = nil)
reader ultralisp-client/lowlevel:release-info-project-url
(release-info) (:project-url = nil)
reader ultralisp-client/lowlevel:release-info-system-files
(release-info) (:system-files = nil)
class ultralisp-client/lowlevel:search-result
()
Readers
reader ultralisp-client/lowlevel:search-result-documentation
(search-result) (:documentation = nil)
reader ultralisp-client/lowlevel:search-result-package
(search-result) (:package = nil)
reader ultralisp-client/lowlevel:search-result-symbol
(search-result) (:symbol = nil)
reader ultralisp-client/lowlevel:search-result-system
(search-result) (:system = nil)
reader ultralisp-client/lowlevel:search-result-type
(search-result) (:type = nil)
class ultralisp-client/lowlevel:source
()
Readers
reader ultralisp-client/lowlevel:source-created-at
(source) (:created-at = nil)
reader ultralisp-client/lowlevel:source-deleted
(source) (:deleted = nil)
reader ultralisp-client/lowlevel:source-id
(source) (:id = nil)
reader ultralisp-client/lowlevel:source-latest
(source) (:latest = nil)
reader ultralisp-client/lowlevel:source-params
(source) (:params = nil)
reader ultralisp-client/lowlevel:source-project-id
(source) (:project-id = nil)
reader ultralisp-client/lowlevel:source-project-version
(source) (:project-version = nil)
reader ultralisp-client/lowlevel:source-release-info
(source) (:release-info = nil)
reader ultralisp-client/lowlevel:source-systems-info
(source) (:systems-info = nil)
reader ultralisp-client/lowlevel:source-type
(source) (:type = nil)
reader ultralisp-client/lowlevel:source-updated-at
(source) (:updated-at = nil)
reader ultralisp-client/lowlevel:source-version
(source) (:version = nil)
class ultralisp-client/lowlevel:system-info
()
Readers
reader ultralisp-client/lowlevel:system-info-author
(system-info) (:author = nil)
reader ultralisp-client/lowlevel:system-info-dependencies
(system-info) (:dependencies = nil)
reader ultralisp-client/lowlevel:system-info-description
(system-info) (:description = nil)
reader ultralisp-client/lowlevel:system-info-filename
(system-info) (:filename = nil)
reader ultralisp-client/lowlevel:system-info-license
(system-info) (:license = nil)
reader ultralisp-client/lowlevel:system-info-long-description
(system-info) (:long-description = nil)
reader ultralisp-client/lowlevel:system-info-maintainer
(system-info) (:maintainer = nil)
reader ultralisp-client/lowlevel:system-info-name
(system-info) (:name = nil)
reader ultralisp-client/lowlevel:system-info-path
(system-info) (:path = nil)
reader ultralisp-client/lowlevel:system-info-project-name
(system-info) (:project-name = nil)
class ultralisp-client/lowlevel:tag
()
Readers
reader ultralisp-client/lowlevel:tag-name
(tag) (:name = nil)
reader ultralisp-client/lowlevel:tag-project-count
(tag) (:project-count = nil)
generic-function ultralisp-client/lowlevel:get-all-tags
client
Returns known tags and a number of projects associated with each tag. Tags are sorted alphabetically.
generic-function ultralisp-client/lowlevel:get-project-by-name
client name
Returns a project details by it's name. Name should be in it's full form like "40ants/doc".
generic-function ultralisp-client/lowlevel:get-project-sources
client project-id
Retrieve all sources known for given project.
URL
of the project can be retrieved from it's source params.
If source type is GITHUB, then it's params contain "user-or-org" and "project" keys.
URL can be contructed from these values.
For source type GIT, params hashmap will contain "url" key.
Systems in systems-info key of a source, are sorted by name.
generic-function ultralisp-client/lowlevel:get-project-systems
client project-id
Retrieve all systems of a given project.
Systems are sorted alphabetically.
In case if project defines two or more sources, systems can be duplicated in the list.
Use get-project-sources in this case, to get separated list of systems for each source.
generic-function ultralisp-client/lowlevel:get-project-tags
client project-id
Retrieve all tags of a single project.
generic-function ultralisp-client/lowlevel:get-projects-by-tag
client tag &key limit page-key
Returns project market by a given tag.
generic-function ultralisp-client/lowlevel:rpc-discover
client
generic-function ultralisp-client/lowlevel:search-symbols
client term &key limit page-key
Search a symbol by it's name or docstring.