/ultralisp-client

A Common Lisp client to Ultralisp.org package registry.

Primary LanguageCommon Lisp

ultralisp-client - A client for working with Ultralisp.org

ULTRALISP-CLIENT ASDF System Details

Installation

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)

Usage

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")>)

API

ULTRALISP-CLIENT

package ultralisp-client

Generics

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

Functions

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.

ULTRALISP-CLIENT/CLIENT

package ultralisp-client/client

Functions

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

ULTRALISP-CLIENT/LOWLEVEL

package ultralisp-client/lowlevel

Classes

API

class ultralisp-client/lowlevel:api (client)

PROJECT2

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)

RELEASE-INFO

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)

SEARCH-RESULT

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)

SOURCE

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)

SYSTEM-INFO

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)

TAG

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)

Generics

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.

Functions

function ultralisp-client/lowlevel:make-api

[generated by 40ANTS-DOC]