This is the lyrics Reference Manual, version 0.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Sep 15 05:59:04 2024 GMT+0.
The main system appears first, followed by any subsystem dependency.
lyrics
Song lyrics with local database
Mihai Olteanu <mihai_olteanu@fastmail.fm>
GPLv3
0.1
drakma
(system).
plump
(system).
lquery
(system).
cl-ppcre
(system).
sqlite
(system).
alexandria
(system).
bordeaux-threads
(system).
defmemo
(system).
package.lisp
(file).
lyrics.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
lyrics/lyrics.lisp
package.lisp
(file).
lyrics
(system).
lyrics
(function).
search-song
(function).
*db*
(special variable).
*raw-websites*
(special variable).
*websites*
(special variable).
case-insensitive-regex
(function).
copy-website
(function).
find-lyrics
(function).
lyrics-from-db
(function).
make-website
(function).
request-lyrics
(function).
save-lyrics-to-db
(function).
setup-db
(function).
url
(function).
website
(structure).
website-css-selector
(reader).
(setf website-css-selector)
(writer).
website-name
(reader).
(setf website-name)
(writer).
website-p
(function).
website-separator
(reader).
(setf website-separator)
(writer).
website-url-template
(reader).
(setf website-url-template)
(writer).
Packages are listed by definition order.
lyrics
common-lisp
.
defmemo
.
drakma
.
sqlite
.
lyrics
(function).
search-song
(function).
*db*
(special variable).
*raw-websites*
(special variable).
*websites*
(special variable).
case-insensitive-regex
(function).
copy-website
(function).
find-lyrics
(function).
lyrics-from-db
(function).
make-website
(function).
request-lyrics
(function).
save-lyrics-to-db
(function).
setup-db
(function).
url
(function).
website
(structure).
website-css-selector
(reader).
(setf website-css-selector)
(writer).
website-name
(reader).
(setf website-name)
(writer).
website-p
(function).
website-separator
(reader).
(setf website-separator)
(writer).
website-url-template
(reader).
(setf website-url-template)
(writer).
Definitions are sorted by export status, category, package, and then by lexicographic order.
Memoized lyrics search. Search the lyrics for the given artist and song name. If the lyrics are not in the db, try and extract them from one of the supported lyrics websites. If found, save the lyrics the db and return them. If not found, return nil.
Return a list of entries, where each entry is a list with the artist name, the song name and the verse line where the lyrics appears. The artist name and song can be used to request the full lyrics. There can be multiple entries for the same artist/song combination.
List of structures, where each structure is a lyrics website
Transform a ’day’ string into ’[dD][aA][yY]’ for a case insensitive search.
See if this website hosts the lyrics for this artist and song. If yes, then use the css selectors to extract the lyrics. If not, return nil, and move along. Maybe other sites host them.
Get the lyrics from the db, if they exists. Return nil otherwise.
Start an asynchronous request for lyrics. The argument is a list of artist-name and song-name lists. This is a batch request for lyrics. The actual lyrics can be later retrieved from the database since this function only returns the thread that is started for the request.
Save the lyrics for future retrieval and return them.
Create a sqlite table in ~/ if one does not already exist.
Create a valid url from the website pattern. First, the artist and song string must be prepared by replacing the spaces with the website separator and then the final url is prepared by replacing the aritst-name and song-name in the template.
name
.
Jump to: | (
C F L M R S U W |
---|
Jump to: | (
C F L M R S U W |
---|
Jump to: | *
C N S U |
---|
Jump to: | *
C N S U |
---|
Jump to: | F L P S W |
---|
Jump to: | F L P S W |
---|