humbler
2.0.0A Tumblr API interface
About Humbler
Humbler is a Tumblr API interface that attempts to make it as little of a pain to use as possible. oAuth login and signing is handled by North.
How To
Begin by loading Humbler and the North backend you prefer. For the purposes of illustration here we'll use Drakma:
(ql:quickload '(north-drakma humbler))
Before you can use Tumblr's API you'll need an application. Copy both the consumer key and secret and plug them into a new client:
(setf humbler:*client* (make-instance 'humbler:client :key api-key :secret api-secret))
Humbler should configure the proper oAuth URLs automatically. All you need to do now is to initiate the authentication by using Login.
(humbler:login)
This should return an URL if successful. Open this URL in your browser and allow the application access. It should redirect you to a localhost address, which then completes the authentication process automatically. If you want to handle the handshake in your own server, rather than letting Humbler spawn one, pass the :callback
URL when you create the client instance.
(humbler:*user*)
(humbler:name (humbler:*user*))
Humbler offers an object-oriented interface that tries to take a lot of manual work off your hands and a lower-level API-mapping. Here's an example using both to create a text post:
(humbler:blog/post-text "my-blog" "Hey, testing this Common Lisp library called Humbler..." :title "Whoa nelly!")
(humbler:save (make-instance 'humbler:text-post :body "Nobody reads text posts anyway." :title "Welp."))
While the low-level functions have some limitations and oddities about them (max 20 results on a listing every call, strange inconsistencies, partial objects) due to the way Tumblr's API is made, the high-level functions try to smoothen over these issues so you don't have to worry about them. If for some reason you hate automatisation or how this abstraction works, you are of course free to build your own on top of the bare API calls though.
Humbler's symbols are split into three packages: HUMBLER-API
which contains the API mapping functions, HUMBLER-OBJECTS
containing the object and generic function interface, and finally HUMBLER-EXTRA
with some functions to help deal with Tumblr (only programmatically, not mentally).
Deferred Slots
Tumblr's API doesn't always return complete objects; some calls only return a slice of the fields an object may exhibit. Humbler tries to take this annoying management off your hands by automatically augmenting your object with slot values from a fitting API call if you try to access it and it is not yet bound. If it fails to augment a slot, either because it does not know any API call to use to retrieve it or because something else went wrong, an error is signalled instead.
Multiple Users
If you need to allow multiple users simultaneously, you'll need to create a separate client
instance for each, and make sure to bind *client*
and *user*
where you access them.
More Examples
Post to all your blogs:
(dolist (blog (my-blogs))
(repost (make-instance 'text-post :body "Hi!") blog))
Reblog the last 100 photos from a blog:
(mapcar #'reblog (posts "cool-photo-blog" :type :photo :amount 100))
View the most recent text posts from a tag:
(mapcar #'body (remove-if-not #'text-post-p (tag "interesting-tag")))
Delete all your drafts:
(mapcar #'destroy (my-drafts :amount T))
Interactively reply to all your asks:
(dolist (sub (my-submissions :amount T))
(when (answer-post-p sub)
(format T "~a: ~a~%" (asking-name sub) (question sub))
(reply sub (read-line))))
Further Reading
- The symbol index.
- North, the oAuth library.
- Chirp, Humbler's sister library for Twitter.
- Tumblr's frankly abysmal API 'documentation'.
System Information
Definition Index
-
HUMBLER-OBJECTS
- ORG.TYMOONNEXT.HUMBLER.OBJECTS
No documentation provided.-
EXTERNAL CLASS ANSWER-POST
Class representing an answer post.
-
EXTERNAL CLASS AUDIO-POST
Class representing an audio post. In order to change or upload audio files, please use the FILE slot. Acceptable are a string (representing the URL to a music track), a pathname or an octet vector. The file format has to be MP3.
-
EXTERNAL CLASS BLOG
Class representing a blog. This is not equivalent to a user. Each user is necessarily also a blog, but not every blog is a user. One user may have access to multiple blogs. Pure blogs can't follow or like anything or do any of the real-user related things, but since most of the user settings are not actually accessible through the API, the difference in slots between blogs and users is minimal.
-
EXTERNAL CLASS CHAT-POST
Class representing a chat post.
-
EXTERNAL CLASS DIALOGUE
Class representing a dialogue entry in a chat-post.
-
EXTERNAL CLASS LINK-POST
Class representing a link post.
-
EXTERNAL CLASS PHOTO
Class representing a photo in a photo/set post.
-
EXTERNAL CLASS PHOTO-POST
Class representing a photo/set post. In order to change or upload photos, please use the FILE slot. Acceptable are a single string (representing the URL to a photo), a pathname, an octet vector or a list of pathnames or octet vectors.
-
EXTERNAL CLASS PHOTO-SIZE
Class representing a photo-size of a photo.
-
EXTERNAL CLASS POST
Superclass for posts. Should not be used directly. Every type of post has a lot of fields in common with every other, this class defines these common fields. Note that some fields, such as TWEET, SLUG and POST-FORMAT are only used for creating or editing posts and are never actually returned by the API.
-
EXTERNAL CLASS QUOTE-POST
Class representing a quote post.
-
EXTERNAL CLASS TEXT-POST
Class representing a text post.
-
EXTERNAL CLASS TRAIL
No documentation provided. -
EXTERNAL CLASS USER
Class representing a user. Every user is also a blog. See the BLOG class.
-
EXTERNAL CLASS VIDEO-PLAYER
Class representing a video player object in a video-post.
-
EXTERNAL CLASS VIDEO-POST
Class representing a video post. In order to change or upload video files, please use the FILE slot. Acceptable are a string (being the HTML embedding code for the video), a pathname or an octet vector. The file format has to be MP4 with audio encoded in AAC.
-
EXTERNAL FUNCTION ANSWER-POST-P
- THING
No documentation provided. -
EXTERNAL FUNCTION AUDIO-POST-P
- THING
No documentation provided. -
EXTERNAL FUNCTION BLOG-P
- THING
No documentation provided. -
EXTERNAL FUNCTION CHAT-POST-P
- THING
No documentation provided. -
EXTERNAL FUNCTION DIALOGUE-P
- THING
No documentation provided. -
EXTERNAL FUNCTION LINK-POST-P
- THING
No documentation provided. -
EXTERNAL FUNCTION MAKE-BLOG
- RESULT
No documentation provided. -
EXTERNAL FUNCTION MAKE-DIALOGUE
- RESULT
No documentation provided. -
EXTERNAL FUNCTION MAKE-PHOTO
- RESULT
No documentation provided. -
EXTERNAL FUNCTION MAKE-PHOTO-SIZE
- RESULT
No documentation provided. -
EXTERNAL FUNCTION MAKE-POST
- RESULT
No documentation provided. -
EXTERNAL FUNCTION MAKE-TRAIL
- RESULT
No documentation provided. -
EXTERNAL FUNCTION MAKE-USER
- RESULT
No documentation provided. -
EXTERNAL FUNCTION MAKE-VIDEO-PLAYER
- RESULT
No documentation provided. -
EXTERNAL FUNCTION PHOTO-P
- THING
No documentation provided. -
EXTERNAL FUNCTION PHOTO-POST-P
- THING
No documentation provided. -
EXTERNAL FUNCTION PHOTO-SIZE-P
- THING
No documentation provided. -
EXTERNAL FUNCTION POST-P
- THING
No documentation provided. -
EXTERNAL FUNCTION QUOTE-POST-P
- THING
No documentation provided. -
EXTERNAL FUNCTION TEXT-POST-P
- THING
No documentation provided. -
EXTERNAL FUNCTION TRAIL-P
- THING
No documentation provided. -
EXTERNAL FUNCTION USER-P
- THING
No documentation provided. -
EXTERNAL FUNCTION VIDEO-PLAYER-P
- THING
No documentation provided. -
EXTERNAL FUNCTION VIDEO-POST-P
- THING
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ADMIN
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ALBUM
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ALBUM-ART
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ANSWER
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF ANSWER)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ARTIST
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ASK-ANON
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ASK-P
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ASK-PAGE-TITLE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ASKING-NAME
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ASKING-URL
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION AUGMENT
- TARGET
- SOURCE
Fills up slots in TARGET with information from SOURCE.
-
EXTERNAL GENERIC-FUNCTION AVATAR
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION BLOG
- NAME
Tries to fetch the blog object given by NAME. If a blog object is passed, the same post is fetched anew and the new copy is returned. The old is left intact. Returns a blog object or NIL if no blog could be found.
-
EXTERNAL GENERIC-FUNCTION BLOG-NAME
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION BLOG=
- A
- B
Returns T if the two blogs match in name, NIL otherwise.
-
EXTERNAL GENERIC-FUNCTION BLOGS
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION BODY
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF BODY)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION BOOKMARKLET
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION CAN-SEND-FAN-MAIL
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION CAPTION
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF CAPTION)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION CONTENT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION COPY
- THING
Attempts to copy the passed object by creating a new instance of the same class and then calling AUGMENT on it. Note that since AUGMENT does not copy fields, this is NOT a deep copy and thus slot values are shared!
-
EXTERNAL GENERIC-FUNCTION CURRENT-P
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DASHBOARD
- &KEY
- AMOUNT
- OFFSET
- TYPE
Retrieve a list of posts on your dashboard. If AMOUNT is above twenty, multiple requests are made in order to gather the desired amount automatically.
-
EXTERNAL GENERIC-FUNCTION DATE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF DATE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DEFAULT-POST-FORMAT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DESCRIPTION
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF DESCRIPTION)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DESTROY
- POST
Delete the given post. Returns the post object on success, signals an error on failure.
-
EXTERNAL GENERIC-FUNCTION DIALOGUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DRAFT-COUNT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DRAFTS
- BLOG
- &KEY
- AMOUNT
- OFFSET
- BEFORE-ID
Retrieve a list of drafted posts if possible. If AMOUNT is above twenty, multiple requests are made in order to gather the desired amount automatically.
-
EXTERNAL GENERIC-FUNCTION EMBED-CODE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION FACEBOOK-OPENGRAPH-ENABLED
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION FILE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF FILE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION FOLLOW
- BLOG
Follow the given blog. Returns the blog on success, signals an error on failure.
-
EXTERNAL GENERIC-FUNCTION FOLLOWED
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION FOLLOWERS
- BLOG
- &KEY
- AMOUNT
- OFFSET
Returns a list of USER objects that follow the given blog. If AMOUNT is above twenty, multiple requests are made in order to gather the desired amount automatically.
-
EXTERNAL GENERIC-FUNCTION FOLLOWING
- &KEY
- AMOUNT
- OFFSET
Retrieve a list of blogs that you are following. If AMOUNT is above twenty, multiple requests are made in order to gather the desired amount automatically.
-
EXTERNAL GENERIC-FUNCTION HEIGHT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ID
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION LABEL
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION LIKE
- POST
Like the given post. Returns the post object on success, signals an error on failure.
-
EXTERNAL GENERIC-FUNCTION LIKE-COUNT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION LIKED
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION LIKES
- BLOG
- &KEY
- AMOUNT
- OFFSET
Retrieve a list of liked posts if possible. If AMOUNT is above twenty, multiple requests are made in order to gather the desired amount automatically.
-
EXTERNAL GENERIC-FUNCTION MESSAGE-COUNT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION MOBILE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION MY-BLOGS
No documentation provided. -
EXTERNAL GENERIC-FUNCTION MY-DRAFTS
- &KEY
- AMOUNT
- OFFSET
Shorthand for (DRAFTS *user*)
-
EXTERNAL GENERIC-FUNCTION MY-FOLLOWERS
- &KEY
- AMOUNT
- OFFSET
Shorthand for (FOLLOWERS *user*)
-
EXTERNAL GENERIC-FUNCTION MY-LIKES
- &KEY
- AMOUNT
- OFFSET
Shorthand for (LIKES *user*)
-
EXTERNAL GENERIC-FUNCTION MY-POSTS
- &KEY
- TYPE
- TAG
- AMOUNT
- OFFSET
Shorthand for (POSTS *user*)
-
EXTERNAL GENERIC-FUNCTION MY-QUEUE
- &KEY
- AMOUNT
- OFFSET
Shorthand for (QUEUE *user*)
-
EXTERNAL GENERIC-FUNCTION MY-SUBMISSIONS
- &KEY
- AMOUNT
- OFFSET
Shorthand for (SUBMISSIONS *user*)
-
EXTERNAL GENERIC-FUNCTION MYSELF
Retrieve information about yourself. Returns a USER object.
-
EXTERNAL GENERIC-FUNCTION NAME
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION NOTE-COUNT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION NSFW-P
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION PHOTOS
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF PHOTOS)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION PHRASE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION PLAY-COUNT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION PLAYER
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION PLAYERS
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION POST
- ID
- &OPTIONAL
- BLOG-NAME
Retrieve an individual post by its unique ID. If a blog object is passed, the same post is fetched anew and the new copy is returned. The old is left intact. Returns a post object or NIL if no post can be found.
-
EXTERNAL GENERIC-FUNCTION POST-COUNT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION POST-FORMAT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF POST-FORMAT)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION POST-TYPE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION POST-URL
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION POST=
- A
- B
Returns T if the two posts match in ID, NIL otherwise.
-
EXTERNAL GENERIC-FUNCTION POSTS
- BLOG
- &KEY
- TYPE
- TAG
- AMOUNT
- OFFSET
Retrieve a list of public posts filtered by TYPE and TAG. If AMOUNT is above twenty, multiple requests are made in order to gather the desired amount automatically.
-
EXTERNAL GENERIC-FUNCTION QUESTION
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION QUEUE
- BLOG
- &KEY
- AMOUNT
- OFFSET
Retrieve a list of queued posts if possible. If AMOUNT is above twenty, multiple requests are made in order to gather the desired amount automatically.
-
EXTERNAL GENERIC-FUNCTION QUEUE-COUNT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION RAW-CONTENT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION REBLOG
- POST
- &KEY
- COMMENT
Reblog the given post. Returns the newly created reblog post object on success, signals an error on failure.
-
EXTERNAL GENERIC-FUNCTION REBLOG-KEY
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION REBLOG-P
- POST
No documentation provided. -
EXTERNAL GENERIC-FUNCTION REFRESH
- POST
Update the post object with newly retrieved values. This changes the passed object's slots. See AUGMENT. Returns the post object on success, signals an error on failure.
-
EXTERNAL GENERIC-FUNCTION REPLY
- POST
- ANSWER
No documentation provided. -
EXTERNAL GENERIC-FUNCTION REPOST
- POST
- NEW-BLOG
Creates a copy of the post object and posts it to the given blog as a new post. Returns the repost object on success, signals an error on failure. Note that the slot values of the repost are shared with that of the original post. See COPY.
-
EXTERNAL GENERIC-FUNCTION ROOT-P
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SAVE
- POST
Creates or edits the given post with the new values. Returns the post object on success, signals an error on failure.
-
EXTERNAL GENERIC-FUNCTION SHARE-LIKES
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SIZES
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SLUG
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF SLUG)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SOURCE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF SOURCE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SOURCE-TITLE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SOURCE-URL
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION STATE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF STATE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SUBMISSIONS
- BLOG
- &KEY
- AMOUNT
- OFFSET
Retrieve a list of submitted posts if possible. If AMOUNT is above twenty, multiple requests are made in order to gather the desired amount automatically.
-
EXTERNAL GENERIC-FUNCTION SUMMARY
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TAG
- TAG
- &KEY
- AMOUNT
- OFFSET
- BEFORE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TAGS
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF TAGS)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TEXT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF TEXT)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TEXT-FORMAT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF TEXT-FORMAT)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TIMESTAMP
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TITLE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF TITLE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TRACK-NAME
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TRACK-NUMBER
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TRAIL
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TRAIL-BLOG
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TRAIL-POST
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TWEET
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF TWEET)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TWITTER-ENABLED
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TWITTER-SEND
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION UNFOLLOW
- BLOG
Unfollow the given blog. Returns the blog on success, signals an error on failure.
-
EXTERNAL GENERIC-FUNCTION UNLIKE
- POST
Unlike the given post. Returns the post object on success, signals an error on failure.
-
EXTERNAL GENERIC-FUNCTION UPDATED
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION URL
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF URL)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION WIDTH
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION YEAR
- OBJECT
No documentation provided.
-
HUMBLER-API
- ORG.TYMOONNEXT.HUMBLER.API
No documentation provided.-
EXTERNAL FUNCTION BLOG/AVATAR
- BLOG
- &KEY
- (SIZE 64)
Returns the avatar image as a PNG octet-sequence. SIZE --- The size of the avatar to return, one of 16 24 30 40 48 64 96 128 512
-
EXTERNAL FUNCTION BLOG/FOLLOWERS
- BLOG
- &KEY
- (LIMIT 20)
- (OFFSET 0)
Returns a list of followers of this blog. Secondary value returns the total number of followers. LIMIT --- The number of posts to include, must range between 1 and 20. OFFSET --- The offset in posts to return. Each object in the list has the following fields: NAME --- The user's name. FOLLOWING --- T if you are following this user, NIL otherwise. URL --- The address to the primary blog of this user. UPDATED --- Unix-time of the last update of this user.
-
EXTERNAL FUNCTION BLOG/INFO
- BLOG
Returns information about a blog. Included fields: TITLE --- The title of the blog. POSTS --- Total number of posts on this blog. NAME --- The blog username. UPDATED --- Unix-Time of the last update. DESCRIPTION --- The blog's description. ASK --- T if asks are enabled, NIL otherwise. ASK-ANON --- T if anonymous asks are allowed, NIL otherwise. Only included if ASK is T. LIKES --- The number of posts this user has liked. Only included if likes sharing is enabled and this blog is indeed a user.
-
EXTERNAL FUNCTION BLOG/LIKES
- BLOG
- &KEY
- (LIMIT 20)
- (OFFSET 0)
Returns a list of publicly shown posts that were liked by this blog. Secondary value returns the total number of liked posts. LIMIT --- The number of posts to include, must range between 1 and 20. OFFSET --- The offset in posts to return. See BLOG/POSTS for information on the structure of a post object.
-
EXTERNAL FUNCTION BLOG/POST-AUDIO
- BLOG
- AUDIO
- &KEY
- CAPTION
- (STATE PUBLISHED)
- TAGS
- TWEET
- DATE
- (FORMAT HTML)
- SLUG
Creates a audio post and returns the post's ID. Required arguments: BLOG --- string The name of the blog to post to. Your account has to have access to this blog in order for the post to succeed. AUDIO ::= string | pathname | octet-array If a string, it should be an external URL that hosts the file. Otherwise a pathname/octet-array of an MP3 file. Optional arguments: CAPTION --- string The caption to describe the audio with. STATE ::= :published | :draft | :queue | :private Sets the state of the post, can later be changed through BLOG/POST/EDIT. TAGS ::= string | list Either a list or a comma-separated string of tags. TWEET ::= string | :off If :off no tweet is made, if a string is given it is used as the tweet text. DATE ::= string | local-time:timestamp 'The GMT date and time of the post' according to doc, but no further specification of what the format is supposed to be exactly. According to date fields in responses, it should probably be of the format '2014-08-31 07:41:44 GMT' FORMAT ::= :html | :markdown Specifies the markup in the text body, quote, caption, or whatever the current text-block container is. SLUG --- string A short string to use at the end of the URL to the post.
-
EXTERNAL FUNCTION BLOG/POST-CHAT
- BLOG
- CONVERSATION
- &KEY
- TITLE
- (STATE PUBLISHED)
- TAGS
- TWEET
- DATE
- (FORMAT HTML)
- SLUG
Creates a chat post and returns the post's ID. Required arguments: BLOG --- string The name of the blog to post to. Your account has to have access to this blog in order for the post to succeed. CONVERSATION-- string The conversation to post. Optional arguments: TITLE --- string The title to use for your conversation post. STATE ::= :published | :draft | :queue | :private Sets the state of the post, can later be changed through BLOG/POST/EDIT. TAGS ::= string | list Either a list or a comma-separated string of tags. TWEET ::= string | :off If :off no tweet is made, if a string is given it is used as the tweet text. DATE ::= string | local-time:timestamp 'The GMT date and time of the post' according to doc, but no further specification of what the format is supposed to be exactly. According to date fields in responses, it should probably be of the format '2014-08-31 07:41:44 GMT' FORMAT ::= :html | :markdown Specifies the markup in the text body, quote, caption, or whatever the current text-block container is. SLUG --- string A short string to use at the end of the URL to the post.
-
EXTERNAL FUNCTION BLOG/POST-LINK
- BLOG
- URL
- &KEY
- DESCRIPTION
- TITLE
- (STATE PUBLISHED)
- TAGS
- TWEET
- DATE
- (FORMAT HTML)
- SLUG
Creates a link post and returns the post's ID. Required arguments: BLOG --- string The name of the blog to post to. Your account has to have access to this blog in order for the post to succeed. URL --- string The link to post. Optional arguments: TITLE --- string The title to use for your url post. If not specified automatically grabbed from the URL source page. DESCRIPTION--- string Optional description text to use along your URL. If not specified automatically grabbed from the URL source page. STATE ::= :published | :draft | :queue | :private Sets the state of the post, can later be changed through BLOG/POST/EDIT. TAGS ::= string | list Either a list or a comma-separated string of tags. TWEET ::= string | :off If :off no tweet is made, if a string is given it is used as the tweet text. DATE ::= string | local-time:timestamp 'The GMT date and time of the post' according to doc, but no further specification of what the format is supposed to be exactly. According to date fields in responses, it should probably be of the format '2014-08-31 07:41:44 GMT' FORMAT ::= :html | :markdown Specifies the markup in the text body, quote, caption, or whatever the current text-block container is. SLUG --- string A short string to use at the end of the URL to the post.
-
EXTERNAL FUNCTION BLOG/POST-PHOTO
- BLOG
- PHOTO
- &KEY
- CAPTION
- LINK
- (STATE PUBLISHED)
- TAGS
- TWEET
- DATE
- (FORMAT HTML)
- SLUG
Creates a photo post and returns the post's ID. Required arguments: BLOG --- string The name of the blog to post to. Your account has to have access to this blog in order for the post to succeed. PHOTO ::= string | pathname | octet-array | (pathname* octet-array*) If a string, it should be an URL to the photo to be posted. Otherwise a pathname/octet-array or a list thereof to compose the photo or photo-set. Optional arguments: CAPTION --- string The caption to describe the photo/set with. LINK --- string An optional link to use for when the image is clicked on. STATE ::= :published | :draft | :queue | :private Sets the state of the post, can later be changed through BLOG/POST/EDIT. TAGS ::= string | list Either a list or a comma-separated string of tags. TWEET ::= string | :off If :off no tweet is made, if a string is given it is used as the tweet text. DATE ::= string | local-time:timestamp 'The GMT date and time of the post' according to doc, but no further specification of what the format is supposed to be exactly. According to date fields in responses, it should probably be of the format '2014-08-31 07:41:44 GMT' FORMAT ::= :html | :markdown Specifies the markup in the text body, quote, caption, or whatever the current text-block container is. SLUG --- string A short string to use at the end of the URL to the post.
-
EXTERNAL FUNCTION BLOG/POST-QUOTE
- BLOG
- QUOTE
- &KEY
- SOURCE
- (STATE PUBLISHED)
- TAGS
- TWEET
- DATE
- (FORMAT HTML)
- SLUG
Creates a quote post and returns the post's ID. Required arguments: BLOG --- string The name of the blog to post to. Your account has to have access to this blog in order for the post to succeed. QUOTE --- string The quote to use, marked up in FORMAT. Optional arguments: SOURCE --- string Quote source attribution. STATE ::= :published | :draft | :queue | :private Sets the state of the post, can later be changed through BLOG/POST/EDIT. TAGS ::= string | list Either a list or a comma-separated string of tags. TWEET ::= string | :off If :off no tweet is made, if a string is given it is used as the tweet text. DATE ::= string | local-time:timestamp 'The GMT date and time of the post' according to doc, but no further specification of what the format is supposed to be exactly. According to date fields in responses, it should probably be of the format '2014-08-31 07:41:44 GMT' FORMAT ::= :html | :markdown Specifies the markup in the text body, quote, caption, or whatever the current text-block container is. SLUG --- string A short string to use at the end of the URL to the post.
-
EXTERNAL FUNCTION BLOG/POST-TEXT
- BLOG
- BODY
- &KEY
- TITLE
- (STATE PUBLISHED)
- TAGS
- TWEET
- DATE
- (FORMAT HTML)
- SLUG
Creates a text post and returns the post's ID. Required arguments: BLOG --- string The name of the blog to post to. Your account has to have access to this blog in order for the post to succeed. BODY --- string The main post body, marked up in FORMAT. Optional arguments: TITLE --- string The title to use for your text post. STATE ::= :published | :draft | :queue | :private Sets the state of the post, can later be changed through BLOG/POST/EDIT. TAGS ::= string | list Either a list or a comma-separated string of tags. TWEET ::= string | :off If :off no tweet is made, if a string is given it is used as the tweet text. DATE ::= string | local-time:timestamp 'The GMT date and time of the post' according to doc, but no further specification of what the format is supposed to be exactly. According to date fields in responses, it should probably be of the format '2014-08-31 07:41:44 GMT' FORMAT ::= :html | :markdown Specifies the markup in the text body, quote, caption, or whatever the current text-block container is. SLUG --- string A short string to use at the end of the URL to the post.
-
EXTERNAL FUNCTION BLOG/POST-VIDEO
- BLOG
- VIDEO
- &KEY
- CAPTION
- (STATE PUBLISHED)
- TAGS
- TWEET
- DATE
- (FORMAT HTML)
- SLUG
Creates a video post and returns the post's ID. Required arguments: BLOG --- string The name of the blog to post to. Your account has to have access to this blog in order for the post to succeed. VIDEO ::= string | pathname | octet-array If a string, it should be the HTML embed-code for the video. Otherwise a pathname/octet-array of an MP4 video with AAC audio encoding. Optional arguments: CAPTION --- string THe caption to describe the video with. STATE ::= :published | :draft | :queue | :private Sets the state of the post, can later be changed through BLOG/POST/EDIT. TAGS ::= string | list Either a list or a comma-separated string of tags. TWEET ::= string | :off If :off no tweet is made, if a string is given it is used as the tweet text. DATE ::= string | local-time:timestamp 'The GMT date and time of the post' according to doc, but no further specification of what the format is supposed to be exactly. According to date fields in responses, it should probably be of the format '2014-08-31 07:41:44 GMT' FORMAT ::= :html | :markdown Specifies the markup in the text body, quote, caption, or whatever the current text-block container is. SLUG --- string A short string to use at the end of the URL to the post.
-
EXTERNAL FUNCTION BLOG/POST/DELETE
- BLOG
- ID
Delete the post with the given ID. Returns the post's ID.
-
EXTERNAL FUNCTION BLOG/POST/EDIT
- BLOG
- ID
- &KEY
- PHOTO
- AUDIO
- VIDEO
- BODY
- QUOTE
- URL
- CONVERSATION
- CAPTION
- DESCRIPTION
- ANSWER
- SOURCE
- LINK
- TITLE
- (STATE PUBLISHED)
- TAGS
- TWEET
- DATE
- (FORMAT HTML)
- SLUG
Edit the post with the given ID. See the individual BLOG/POST-* functions for the argument explanations. Returns the post ID.
-
EXTERNAL FUNCTION BLOG/POST/REBLOG
- BLOG
- ID
- REBLOG-KEY
- &KEY
- COMMENT
Reblog the post with the given ID on the specified BLOG. ID --- The post's unique ID. REBLOG-KEY --- The reblog-key for this post (See BLOG/POSTS) COMMENT --- An optional comment to add to the reblog. Returns the reblog's post ID.
-
EXTERNAL FUNCTION BLOG/POSTS
- BLOG
- &KEY
- TYPE
- ID
- TAG
- (LIMIT 20)
- (OFFSET 0)
- REBLOG-INFO
- NOTES-INFO
- FILTER
Returns a list of posts from the blog. Secondary value contains the total number of posts on the blog. Tertiary value contains the blog object. See BLOG/INFO. TYPE --- The type of posts to include, must be one of :text :quote :link :answer :video :audio :photo :chat ID --- If specified with a post-id, only that particular post is returned. TAG --- Filter posts by a tag. LIMIT --- The number of posts to include, must range between 1 and 20. OFFSET --- The offset in posts to return. REBLOG-INFO --- Whether to return the various 'reblogged-' fields. NOTES-INFO --- Whether to return note count and metadata. FILTER --- The post format to return, either NIL for HTML, :text for HTML-stripped text, or :raw for the text the user entered. A post object contains the following fields: BLOG-NAME --- The hostname of the blog. ID --- The unique post-ID. POST-URL --- Direct URL to the post. TYPE --- The type of the post as a string. TIMESTAMP --- Unix-Timestamp of the post's creation date. DATE --- The 'GMT-formatted' version of the creation date. FORMAT --- Either 'html' or 'markdown'. REBLOG-KEY --- The key necessary to reblog this post. TAGS --- The list of tags as strings. BOOKMARKLET --- Only exists if true, signals that the post was made using the tumblr bookmarklet. MOBILE --- Onlx exists if true, signals that the post was made using mobile or email publishing. SOURCE-URL --- The source address of quotes, reblogs, etc. Exists only if there is a source. SOURCE-TITLE --- The title of the source site, exists only if there is a source. LIKED --- T if you have liked this post, NIL otherwise. Only exists if you have been logged in. STATE --- The state of the post, one of 'published' 'queued' 'draft' or 'private'. Text-post attributes: TITLE --- The title of the post BODY --- The text-post's content. Photo-post attributes: PHOTOS --- A list of photo objects with the following properties: CAPTION --- Caption for this particular photo. ALT-SIZES --- List of size objects with the following properties: WIDTH --- The exact width of this size in pixels. HEIGHT --- The exact height of this size in pixels. URL --- The URL pointing to this image size. CAPTION --- The caption for this photo/set. WIDTH --- Width of the photo/set. HEIGHT --- Height of the photo/set. Quote-post attributes: TEXT --- The quote text. SOURCE --- HTML of the supplied, supposed quote source. Link-post attributes: TITLE --- The title of the page the link points to. URL --- The actual address of the link. DESCRIPTION --- An optional description supplied by the user. Chat-post attributes: TITLE --- Optional title of the conversation. BODY --- The full conversation. DIALOGUE --- List of objects with the following properties: LABEL --- Conversation entry label. NAME --- Name of the speaker. PHRASE --- Actual dialogue sentence. Audio-post attributes: CAPTION --- The caption the user supplied for the audio post. PLAYER --- HTML player embed code. PLAYS --- Counter for the number of times this has been played. ALBUM-ART --- URL to the album-art image of the track. [ID3] ARTIST --- The track's artist. [ID3] ALBUM --- The track's album. [ID3] TRACK-NAME --- The name of the track. [ID3] TRACK-NUMBER --- The ordering number of the track. [ID3] YEAR --- The publishing year of the track. [ID3] Video-post attributes: CAPTION --- The caption for the video post. PLAYER --- A list of players with the following properties: WIDTH --- The width of the player object. EMBED-CODE --- The HTML embed code for the video player. Answer-post attributes: ASKING-NAME --- The name of the blog that asked the question. ASKING-URL --- Full URL to the asker's blog. QUESTION --- The actual question text. ANSWER --- Full text of the answer.
-
EXTERNAL FUNCTION BLOG/POSTS/DRAFT
- BLOG
- &KEY
- (BEFORE-ID 0)
- FILTER
Returns the list of drafts on the blog. See BLOG/POSTS for the post object structure. BEFORE-ID --- Returns posts that appear after this ID. FILTER --- The post format to return, either NIL for HTML, :text for HTML-stripped text, or :raw for the text the user entered.
-
EXTERNAL FUNCTION BLOG/POSTS/QUEUE
- BLOG
- &KEY
- (LIMIT 20)
- (OFFSET 0)
- FILTER
Returns the list of posts in the blog's queue. See BLOG/POSTS for the post object structure. LIMIT --- The number of posts to include, must range between 1 and 20. OFFSET --- The offset in posts to return. FILTER --- The post format to return, either NIL for HTML, :text for HTML-stripped text, or :raw for the text the user entered.
-
EXTERNAL FUNCTION BLOG/POSTS/SUBMISSION
- BLOG
- &KEY
- (OFFSET 0)
- FILTER
Returns the list of submitted posts and asks. See BLOG/POSTS for the post object structure. OFFSET --- The offset in posts to return. FILTER --- The post format to return, either NIL for HTML, :text for HTML-stripped text, or :raw for the text the user entered.
-
EXTERNAL FUNCTION TAGGED
- TAG
- &KEY
- BEFORE
- (LIMIT 20)
- FILTER
Returns the list of posts under the given tag. See BLOG/POSTS for the post object structure. TAG --- The tag to filter for. BEFORE --- A Unix-Timestamp from before which time you'd like to get posts returned. Defaults to the current time. LIMIT --- The number of posts to include, must range between 1 and 20. FILTER --- The post format to return, either NIL for HTML, :text for HTML-stripped text, or :raw for the text the user entered.
-
EXTERNAL FUNCTION USER/DASHBOARD
- &KEY
- (LIMIT 20)
- (OFFSET 0)
- TYPE
- SINCE-ID
- REBLOG-INFO
- NOTES-INFO
Returns a list of posts on your dashboard. See BLOG/POSTS for the post object structure. LIMIT --- The number of posts to include, must range between 1 and 20. OFFSET --- The offset in posts to return. TYPE --- The type of posts to include, must be one of :text :quote :link :answer :video :audio :photo :chat SINCE-ID --- Return only posts appearing after this post-ID. REBLOG-INFO --- Whether to return the various 'reblogged-' fields. NOTES-INFO --- Whether to return note count and metadata.
-
EXTERNAL FUNCTION USER/FOLLOW
- BLOG
Follow a blog. BLOG --- The blog's short name. Returns T on success.
-
EXTERNAL FUNCTION USER/FOLLOWING
- &KEY
- (LIMIT 20)
- (OFFSET 0)
Returns a list of blogs you follow. LIMIT --- The number of posts to include, must range between 1 and 20. OFFSET --- The offset in posts to return. A blog object contains the following properties: DESCRIPTION --- The blog's description text. UPDATED --- Unix-Timestamp of the last update. TITLE --- Title used on the blog's page. NAME --- The blog's short name. URL --- The full URL to the blog.
-
EXTERNAL FUNCTION USER/INFO
Returns information about yourself. FOLLOWING --- Counter for the number of blogs you are following. DEFAULT-POST-FORMAT The default format to use for posting, one of 'html' 'markdown' 'raw' NAME --- The short name of the user. LIKES --- Counter for the number of likes. BLOGS --- A list of blog objects with the following properties: NAME --- Short name of the blog. URL --- The full URL to the blog. TITLE --- The title string used on the blog. PRIMARY --- T if this is the user's primary blog, NIL otherwise. FOLLOWERS --- Counter for the number of followers on this blog. TWEET --- String denoting what to do with tweets (?) One of 'Y' 'N' 'auto', but idk what the difference between 'Y' and 'auto' is, so. FACEBOOK --- Whether to send posts to facebook, either 'Y' or 'N'. TYPE --- Either 'public' or 'private'. !! OFFICIALLY UNDOCUMENTED PROPERTIES The following BLOG properties are also included in a request: DRAFTS --- Number of drafts on the blog. QUEUE --- Number of posts queued up. MESSAGES --- The number of messages (asks) received. ADMIN --- Whether you are an administrator of the blog. FACEBOOK-OPENGRAPH-ENABLED No idea wtf this is. TWITTER-SEND --- Probably whether to send twitter messages? No idea. TWITTER-ENABLED --- Whether twitter was linked or not, most likely. LIKES --- The number of posts this user-blog has liked. SHARE-LIKES --- T if likes are shared, NIL otherwise. CAN-SEND-FAN-MAIL - Whether this blog can send fan mail (?) FOLLOWED --- Not sure, maybe whether the blog follows you? ASK-ANON --- Whether anon-asks are allowed. ASK-PAGE-TITLE --- The ask-page title. ASK --- Whether asks are enabled. IS-NSFW --- T if this is a NSFW-blog. DESCRIPTION --- The blog's description. UPDATED --- Unix-Timestamp of the last update. POSTS --- Counter for the number of posts on this blog.
-
EXTERNAL FUNCTION USER/LIKE
- ID
- REBLOG-KEY
Like a post. ID --- The post's unique ID. REBLOG-KEY --- The reblog-key for this post (See BLOG/POSTS) Returns T on success.
-
EXTERNAL FUNCTION USER/LIKES
- &KEY
- (LIMIT 20)
- (OFFSET 0)
Returns a list of posts you liked. See BLOG/POSTS for the post object structure. LIMIT --- The number of posts to include, must range between 1 and 20. OFFSET --- The offset in posts to return.
-
EXTERNAL FUNCTION USER/UNFOLLOW
- BLOG
Unfollow a blog. BLOG --- The blog's short name. Returns T on success.
-
EXTERNAL FUNCTION USER/UNLIKE
- ID
- REBLOG-KEY
Unlike a post. ID --- The post's unique ID. REBLOG-KEY --- The reblog-key for this post (See BLOG/POSTS) Returns T on success.
-
HUMBLER-EXTRA
- ORG.TYMOONNEXT.HUMBLER.EXTRA
No documentation provided.-
EXTERNAL SPECIAL-VARIABLE *CLIENT*
The client object used to access the Tumblr API.
-
EXTERNAL SPECIAL-VARIABLE *OAUTH/ACCESS-TOKEN*
No documentation provided. -
EXTERNAL SPECIAL-VARIABLE *OAUTH/AUTHORIZE*
No documentation provided. -
EXTERNAL SPECIAL-VARIABLE *OAUTH/REQUEST-TOKEN*
No documentation provided. -
EXTERNAL SPECIAL-VARIABLE *TUMBLR-DATETIME-FORMAT*
Local-time format to produce tumblr's datetime format.
-
EXTERNAL SPECIAL-VARIABLE *USER*
The central user object storing a reference to whoever is currently logged in. Note that accessing this variable directly might result in NIL even if the oAuth handshake has been completed. Use (*USER*), the function, instead to ensure that the returned value is valid.
-
EXTERNAL CLASS CLIENT
No documentation provided. -
EXTERNAL FUNCTION *USER*
Returns the central user object that the client is authenticated as.
-
EXTERNAL FUNCTION FORMAT-TUMBLR-DATE
- TIMESTAMP
Returns a string version of the local-time timestamp using the proper timezone and format.
-
EXTERNAL FUNCTION FROM-KEYWORD
- KEYWORD
Turns a keyword into a key. Replaces - with _ and downcases the keyword as a string. This is useful to parse the request parameters from the lisp representation into the api representation.
-
EXTERNAL FUNCTION GET-UNIX-TIME
Returns an integer representing the seconds since the unix epoch.
-
EXTERNAL FUNCTION LOGIN
- &OPTIONAL
- (CLIENT *CLIENT*)
Performs a login with North. This will load Hunchentoot and spawn an HTTP server if the client's callback is :SPAWN. The server will be automatically torn down again once the oAuth handshake is complete.
-
EXTERNAL FUNCTION LOGOUT
Resets the *client* and *user* to NIL, thus logging you out.
-
EXTERNAL FUNCTION PAGEINATE
- FUNCTION
- OFFSET
- AMOUNT
- &REST
- ARGS
Gather results from FUNCTION until AMOUNT is gathered. The function needs to accept both OFFSET and LIMIT keywords. As per default for tumblr calls, the objects are gathered in steps of twenty. AMOUNT can be a positive integer or T for as many as possible. The returned set may be less than the requested amount.
-
EXTERNAL FUNCTION PAGEINATE-ID
- FUNCTION
- BEFORE-ID
- OFFSET
- AMOUNT
- &REST
- ARGS
Gather results from FUNCTION until AMOUNT is gathered. The function needs to accept a BEFORE-ID keyword and return a list of objects that have an ID slot accessible through the ID reader. AMOUNT can be a positive integer or T for as many as possible. The returned set may be less than the requested amount.
-
EXTERNAL FUNCTION PAGEINATE-TIME
- FUNCTION
- BEFORE-TIME
- OFFSET
- AMOUNT
- &REST
- ARGS
Gather results from FUNCTION until AMOUNT is gathered. The function needs to accept a BEFORE keyword and return a list of objects that have a TIMESTAMP slot accessible through the TIMESTAMP reader. AMOUNT can be a positive integer or T for as many as possible. The returned set may be less than the requested amount.
-
EXTERNAL FUNCTION PARSE-TUMBLR-DATE
- DATESTRING
Parses a tumblr datestring (2014-08-01 23:52:31 GMT) into a local-time timestamp. If it fails to parse, the datestring is returned instead.
-
EXTERNAL FUNCTION PREPARE
- PARAMETERS
Filters out empty key-value pairs and turns all values into strings, ready to be sent out as request parameters. This function is DESTRUCTIVE.
-
EXTERNAL FUNCTION PRINT-SLOTS
- OBJECT
- &KEY
- (OMIT-UNBOUND T)
Prints all slots of the object and their values.
-
EXTERNAL FUNCTION RAW-REQUEST
- URL
- &KEY
- (METHOD GET)
- PARAMETERS
- OAUTH
- &ALLOW-OTHER-KEYS
Performs a raw request, with JSON as text. URL --- Url to request METHOD --- Request method PARAMETERS --- List of parameters OAUTH --- Whether to use oAuth signing or not.
-
EXTERNAL FUNCTION REQUEST
- URL
- &REST
- ARGS
- &KEY
- (METHOD GET)
- PARAMETERS
- OAUTH
- (REQUEST-FUN #'RAW-REQUEST)
- &ALLOW-OTHER-KEYS
Wrapper around RAW-REQUEST, automatically parsing the JSON or producing a nice error on failure.
-
EXTERNAL FUNCTION TO-KEYWORD
- STRING
Turns a key into a keyword. Replaces _ with - and uppercases the string, then interns it into the keyword package. This is useful to parse the request responses into an alist.
-
EXTERNAL MACRO PREPARE*
- &REST
- PARAMETER-NAMES
Creates a PREPARE statement out of the provided variables.
-
HUMBLER
- ORG.TYMOONNEXT.HUMBLER
No documentation provided.-
EXTERNAL SPECIAL-VARIABLE *CLIENT*
The client object used to access the Tumblr API.
-
EXTERNAL SPECIAL-VARIABLE *OAUTH/ACCESS-TOKEN*
No documentation provided. -
EXTERNAL SPECIAL-VARIABLE *OAUTH/AUTHORIZE*
No documentation provided. -
EXTERNAL SPECIAL-VARIABLE *OAUTH/REQUEST-TOKEN*
No documentation provided. -
EXTERNAL SPECIAL-VARIABLE *TUMBLR-DATETIME-FORMAT*
Local-time format to produce tumblr's datetime format.
-
EXTERNAL SPECIAL-VARIABLE *USER*
The central user object storing a reference to whoever is currently logged in. Note that accessing this variable directly might result in NIL even if the oAuth handshake has been completed. Use (*USER*), the function, instead to ensure that the returned value is valid.
-
EXTERNAL CLASS ANSWER-POST
Class representing an answer post.
-
EXTERNAL CLASS AUDIO-POST
Class representing an audio post. In order to change or upload audio files, please use the FILE slot. Acceptable are a string (representing the URL to a music track), a pathname or an octet vector. The file format has to be MP3.
-
EXTERNAL CLASS BLOG
Class representing a blog. This is not equivalent to a user. Each user is necessarily also a blog, but not every blog is a user. One user may have access to multiple blogs. Pure blogs can't follow or like anything or do any of the real-user related things, but since most of the user settings are not actually accessible through the API, the difference in slots between blogs and users is minimal.
-
EXTERNAL CLASS CHAT-POST
Class representing a chat post.
-
EXTERNAL CLASS CLIENT
No documentation provided. -
EXTERNAL CLASS DIALOGUE
Class representing a dialogue entry in a chat-post.
-
EXTERNAL CLASS LINK-POST
Class representing a link post.
-
EXTERNAL CLASS PHOTO
Class representing a photo in a photo/set post.
-
EXTERNAL CLASS PHOTO-POST
Class representing a photo/set post. In order to change or upload photos, please use the FILE slot. Acceptable are a single string (representing the URL to a photo), a pathname, an octet vector or a list of pathnames or octet vectors.
-
EXTERNAL CLASS PHOTO-SIZE
Class representing a photo-size of a photo.
-
EXTERNAL CLASS POST
Superclass for posts. Should not be used directly. Every type of post has a lot of fields in common with every other, this class defines these common fields. Note that some fields, such as TWEET, SLUG and POST-FORMAT are only used for creating or editing posts and are never actually returned by the API.
-
EXTERNAL CLASS QUOTE-POST
Class representing a quote post.
-
EXTERNAL CLASS TEXT-POST
Class representing a text post.
-
EXTERNAL CLASS TRAIL
No documentation provided. -
EXTERNAL CLASS USER
Class representing a user. Every user is also a blog. See the BLOG class.
-
EXTERNAL CLASS VIDEO-PLAYER
Class representing a video player object in a video-post.
-
EXTERNAL CLASS VIDEO-POST
Class representing a video post. In order to change or upload video files, please use the FILE slot. Acceptable are a string (being the HTML embedding code for the video), a pathname or an octet vector. The file format has to be MP4 with audio encoded in AAC.
-
EXTERNAL FUNCTION *USER*
Returns the central user object that the client is authenticated as.
-
EXTERNAL FUNCTION ANSWER-POST-P
- THING
No documentation provided. -
EXTERNAL FUNCTION AUDIO-POST-P
- THING
No documentation provided. -
EXTERNAL FUNCTION BLOG-P
- THING
No documentation provided. -
EXTERNAL FUNCTION BLOG/AVATAR
- BLOG
- &KEY
- (SIZE 64)
Returns the avatar image as a PNG octet-sequence. SIZE --- The size of the avatar to return, one of 16 24 30 40 48 64 96 128 512
-
EXTERNAL FUNCTION BLOG/FOLLOWERS
- BLOG
- &KEY
- (LIMIT 20)
- (OFFSET 0)
Returns a list of followers of this blog. Secondary value returns the total number of followers. LIMIT --- The number of posts to include, must range between 1 and 20. OFFSET --- The offset in posts to return. Each object in the list has the following fields: NAME --- The user's name. FOLLOWING --- T if you are following this user, NIL otherwise. URL --- The address to the primary blog of this user. UPDATED --- Unix-time of the last update of this user.
-
EXTERNAL FUNCTION BLOG/INFO
- BLOG
Returns information about a blog. Included fields: TITLE --- The title of the blog. POSTS --- Total number of posts on this blog. NAME --- The blog username. UPDATED --- Unix-Time of the last update. DESCRIPTION --- The blog's description. ASK --- T if asks are enabled, NIL otherwise. ASK-ANON --- T if anonymous asks are allowed, NIL otherwise. Only included if ASK is T. LIKES --- The number of posts this user has liked. Only included if likes sharing is enabled and this blog is indeed a user.
-
EXTERNAL FUNCTION BLOG/LIKES
- BLOG
- &KEY
- (LIMIT 20)
- (OFFSET 0)
Returns a list of publicly shown posts that were liked by this blog. Secondary value returns the total number of liked posts. LIMIT --- The number of posts to include, must range between 1 and 20. OFFSET --- The offset in posts to return. See BLOG/POSTS for information on the structure of a post object.
-
EXTERNAL FUNCTION BLOG/POST-AUDIO
- BLOG
- AUDIO
- &KEY
- CAPTION
- (STATE PUBLISHED)
- TAGS
- TWEET
- DATE
- (FORMAT HTML)
- SLUG
Creates a audio post and returns the post's ID. Required arguments: BLOG --- string The name of the blog to post to. Your account has to have access to this blog in order for the post to succeed. AUDIO ::= string | pathname | octet-array If a string, it should be an external URL that hosts the file. Otherwise a pathname/octet-array of an MP3 file. Optional arguments: CAPTION --- string The caption to describe the audio with. STATE ::= :published | :draft | :queue | :private Sets the state of the post, can later be changed through BLOG/POST/EDIT. TAGS ::= string | list Either a list or a comma-separated string of tags. TWEET ::= string | :off If :off no tweet is made, if a string is given it is used as the tweet text. DATE ::= string | local-time:timestamp 'The GMT date and time of the post' according to doc, but no further specification of what the format is supposed to be exactly. According to date fields in responses, it should probably be of the format '2014-08-31 07:41:44 GMT' FORMAT ::= :html | :markdown Specifies the markup in the text body, quote, caption, or whatever the current text-block container is. SLUG --- string A short string to use at the end of the URL to the post.
-
EXTERNAL FUNCTION BLOG/POST-CHAT
- BLOG
- CONVERSATION
- &KEY
- TITLE
- (STATE PUBLISHED)
- TAGS
- TWEET
- DATE
- (FORMAT HTML)
- SLUG
Creates a chat post and returns the post's ID. Required arguments: BLOG --- string The name of the blog to post to. Your account has to have access to this blog in order for the post to succeed. CONVERSATION-- string The conversation to post. Optional arguments: TITLE --- string The title to use for your conversation post. STATE ::= :published | :draft | :queue | :private Sets the state of the post, can later be changed through BLOG/POST/EDIT. TAGS ::= string | list Either a list or a comma-separated string of tags. TWEET ::= string | :off If :off no tweet is made, if a string is given it is used as the tweet text. DATE ::= string | local-time:timestamp 'The GMT date and time of the post' according to doc, but no further specification of what the format is supposed to be exactly. According to date fields in responses, it should probably be of the format '2014-08-31 07:41:44 GMT' FORMAT ::= :html | :markdown Specifies the markup in the text body, quote, caption, or whatever the current text-block container is. SLUG --- string A short string to use at the end of the URL to the post.
-
EXTERNAL FUNCTION BLOG/POST-LINK
- BLOG
- URL
- &KEY
- DESCRIPTION
- TITLE
- (STATE PUBLISHED)
- TAGS
- TWEET
- DATE
- (FORMAT HTML)
- SLUG
Creates a link post and returns the post's ID. Required arguments: BLOG --- string The name of the blog to post to. Your account has to have access to this blog in order for the post to succeed. URL --- string The link to post. Optional arguments: TITLE --- string The title to use for your url post. If not specified automatically grabbed from the URL source page. DESCRIPTION--- string Optional description text to use along your URL. If not specified automatically grabbed from the URL source page. STATE ::= :published | :draft | :queue | :private Sets the state of the post, can later be changed through BLOG/POST/EDIT. TAGS ::= string | list Either a list or a comma-separated string of tags. TWEET ::= string | :off If :off no tweet is made, if a string is given it is used as the tweet text. DATE ::= string | local-time:timestamp 'The GMT date and time of the post' according to doc, but no further specification of what the format is supposed to be exactly. According to date fields in responses, it should probably be of the format '2014-08-31 07:41:44 GMT' FORMAT ::= :html | :markdown Specifies the markup in the text body, quote, caption, or whatever the current text-block container is. SLUG --- string A short string to use at the end of the URL to the post.
-
EXTERNAL FUNCTION BLOG/POST-PHOTO
- BLOG
- PHOTO
- &KEY
- CAPTION
- LINK
- (STATE PUBLISHED)
- TAGS
- TWEET
- DATE
- (FORMAT HTML)
- SLUG
Creates a photo post and returns the post's ID. Required arguments: BLOG --- string The name of the blog to post to. Your account has to have access to this blog in order for the post to succeed. PHOTO ::= string | pathname | octet-array | (pathname* octet-array*) If a string, it should be an URL to the photo to be posted. Otherwise a pathname/octet-array or a list thereof to compose the photo or photo-set. Optional arguments: CAPTION --- string The caption to describe the photo/set with. LINK --- string An optional link to use for when the image is clicked on. STATE ::= :published | :draft | :queue | :private Sets the state of the post, can later be changed through BLOG/POST/EDIT. TAGS ::= string | list Either a list or a comma-separated string of tags. TWEET ::= string | :off If :off no tweet is made, if a string is given it is used as the tweet text. DATE ::= string | local-time:timestamp 'The GMT date and time of the post' according to doc, but no further specification of what the format is supposed to be exactly. According to date fields in responses, it should probably be of the format '2014-08-31 07:41:44 GMT' FORMAT ::= :html | :markdown Specifies the markup in the text body, quote, caption, or whatever the current text-block container is. SLUG --- string A short string to use at the end of the URL to the post.
-
EXTERNAL FUNCTION BLOG/POST-QUOTE
- BLOG
- QUOTE
- &KEY
- SOURCE
- (STATE PUBLISHED)
- TAGS
- TWEET
- DATE
- (FORMAT HTML)
- SLUG
Creates a quote post and returns the post's ID. Required arguments: BLOG --- string The name of the blog to post to. Your account has to have access to this blog in order for the post to succeed. QUOTE --- string The quote to use, marked up in FORMAT. Optional arguments: SOURCE --- string Quote source attribution. STATE ::= :published | :draft | :queue | :private Sets the state of the post, can later be changed through BLOG/POST/EDIT. TAGS ::= string | list Either a list or a comma-separated string of tags. TWEET ::= string | :off If :off no tweet is made, if a string is given it is used as the tweet text. DATE ::= string | local-time:timestamp 'The GMT date and time of the post' according to doc, but no further specification of what the format is supposed to be exactly. According to date fields in responses, it should probably be of the format '2014-08-31 07:41:44 GMT' FORMAT ::= :html | :markdown Specifies the markup in the text body, quote, caption, or whatever the current text-block container is. SLUG --- string A short string to use at the end of the URL to the post.
-
EXTERNAL FUNCTION BLOG/POST-TEXT
- BLOG
- BODY
- &KEY
- TITLE
- (STATE PUBLISHED)
- TAGS
- TWEET
- DATE
- (FORMAT HTML)
- SLUG
Creates a text post and returns the post's ID. Required arguments: BLOG --- string The name of the blog to post to. Your account has to have access to this blog in order for the post to succeed. BODY --- string The main post body, marked up in FORMAT. Optional arguments: TITLE --- string The title to use for your text post. STATE ::= :published | :draft | :queue | :private Sets the state of the post, can later be changed through BLOG/POST/EDIT. TAGS ::= string | list Either a list or a comma-separated string of tags. TWEET ::= string | :off If :off no tweet is made, if a string is given it is used as the tweet text. DATE ::= string | local-time:timestamp 'The GMT date and time of the post' according to doc, but no further specification of what the format is supposed to be exactly. According to date fields in responses, it should probably be of the format '2014-08-31 07:41:44 GMT' FORMAT ::= :html | :markdown Specifies the markup in the text body, quote, caption, or whatever the current text-block container is. SLUG --- string A short string to use at the end of the URL to the post.
-
EXTERNAL FUNCTION BLOG/POST-VIDEO
- BLOG
- VIDEO
- &KEY
- CAPTION
- (STATE PUBLISHED)
- TAGS
- TWEET
- DATE
- (FORMAT HTML)
- SLUG
Creates a video post and returns the post's ID. Required arguments: BLOG --- string The name of the blog to post to. Your account has to have access to this blog in order for the post to succeed. VIDEO ::= string | pathname | octet-array If a string, it should be the HTML embed-code for the video. Otherwise a pathname/octet-array of an MP4 video with AAC audio encoding. Optional arguments: CAPTION --- string THe caption to describe the video with. STATE ::= :published | :draft | :queue | :private Sets the state of the post, can later be changed through BLOG/POST/EDIT. TAGS ::= string | list Either a list or a comma-separated string of tags. TWEET ::= string | :off If :off no tweet is made, if a string is given it is used as the tweet text. DATE ::= string | local-time:timestamp 'The GMT date and time of the post' according to doc, but no further specification of what the format is supposed to be exactly. According to date fields in responses, it should probably be of the format '2014-08-31 07:41:44 GMT' FORMAT ::= :html | :markdown Specifies the markup in the text body, quote, caption, or whatever the current text-block container is. SLUG --- string A short string to use at the end of the URL to the post.
-
EXTERNAL FUNCTION BLOG/POST/DELETE
- BLOG
- ID
Delete the post with the given ID. Returns the post's ID.
-
EXTERNAL FUNCTION BLOG/POST/EDIT
- BLOG
- ID
- &KEY
- PHOTO
- AUDIO
- VIDEO
- BODY
- QUOTE
- URL
- CONVERSATION
- CAPTION
- DESCRIPTION
- ANSWER
- SOURCE
- LINK
- TITLE
- (STATE PUBLISHED)
- TAGS
- TWEET
- DATE
- (FORMAT HTML)
- SLUG
Edit the post with the given ID. See the individual BLOG/POST-* functions for the argument explanations. Returns the post ID.
-
EXTERNAL FUNCTION BLOG/POST/REBLOG
- BLOG
- ID
- REBLOG-KEY
- &KEY
- COMMENT
Reblog the post with the given ID on the specified BLOG. ID --- The post's unique ID. REBLOG-KEY --- The reblog-key for this post (See BLOG/POSTS) COMMENT --- An optional comment to add to the reblog. Returns the reblog's post ID.
-
EXTERNAL FUNCTION BLOG/POSTS
- BLOG
- &KEY
- TYPE
- ID
- TAG
- (LIMIT 20)
- (OFFSET 0)
- REBLOG-INFO
- NOTES-INFO
- FILTER
Returns a list of posts from the blog. Secondary value contains the total number of posts on the blog. Tertiary value contains the blog object. See BLOG/INFO. TYPE --- The type of posts to include, must be one of :text :quote :link :answer :video :audio :photo :chat ID --- If specified with a post-id, only that particular post is returned. TAG --- Filter posts by a tag. LIMIT --- The number of posts to include, must range between 1 and 20. OFFSET --- The offset in posts to return. REBLOG-INFO --- Whether to return the various 'reblogged-' fields. NOTES-INFO --- Whether to return note count and metadata. FILTER --- The post format to return, either NIL for HTML, :text for HTML-stripped text, or :raw for the text the user entered. A post object contains the following fields: BLOG-NAME --- The hostname of the blog. ID --- The unique post-ID. POST-URL --- Direct URL to the post. TYPE --- The type of the post as a string. TIMESTAMP --- Unix-Timestamp of the post's creation date. DATE --- The 'GMT-formatted' version of the creation date. FORMAT --- Either 'html' or 'markdown'. REBLOG-KEY --- The key necessary to reblog this post. TAGS --- The list of tags as strings. BOOKMARKLET --- Only exists if true, signals that the post was made using the tumblr bookmarklet. MOBILE --- Onlx exists if true, signals that the post was made using mobile or email publishing. SOURCE-URL --- The source address of quotes, reblogs, etc. Exists only if there is a source. SOURCE-TITLE --- The title of the source site, exists only if there is a source. LIKED --- T if you have liked this post, NIL otherwise. Only exists if you have been logged in. STATE --- The state of the post, one of 'published' 'queued' 'draft' or 'private'. Text-post attributes: TITLE --- The title of the post BODY --- The text-post's content. Photo-post attributes: PHOTOS --- A list of photo objects with the following properties: CAPTION --- Caption for this particular photo. ALT-SIZES --- List of size objects with the following properties: WIDTH --- The exact width of this size in pixels. HEIGHT --- The exact height of this size in pixels. URL --- The URL pointing to this image size. CAPTION --- The caption for this photo/set. WIDTH --- Width of the photo/set. HEIGHT --- Height of the photo/set. Quote-post attributes: TEXT --- The quote text. SOURCE --- HTML of the supplied, supposed quote source. Link-post attributes: TITLE --- The title of the page the link points to. URL --- The actual address of the link. DESCRIPTION --- An optional description supplied by the user. Chat-post attributes: TITLE --- Optional title of the conversation. BODY --- The full conversation. DIALOGUE --- List of objects with the following properties: LABEL --- Conversation entry label. NAME --- Name of the speaker. PHRASE --- Actual dialogue sentence. Audio-post attributes: CAPTION --- The caption the user supplied for the audio post. PLAYER --- HTML player embed code. PLAYS --- Counter for the number of times this has been played. ALBUM-ART --- URL to the album-art image of the track. [ID3] ARTIST --- The track's artist. [ID3] ALBUM --- The track's album. [ID3] TRACK-NAME --- The name of the track. [ID3] TRACK-NUMBER --- The ordering number of the track. [ID3] YEAR --- The publishing year of the track. [ID3] Video-post attributes: CAPTION --- The caption for the video post. PLAYER --- A list of players with the following properties: WIDTH --- The width of the player object. EMBED-CODE --- The HTML embed code for the video player. Answer-post attributes: ASKING-NAME --- The name of the blog that asked the question. ASKING-URL --- Full URL to the asker's blog. QUESTION --- The actual question text. ANSWER --- Full text of the answer.
-
EXTERNAL FUNCTION BLOG/POSTS/DRAFT
- BLOG
- &KEY
- (BEFORE-ID 0)
- FILTER
Returns the list of drafts on the blog. See BLOG/POSTS for the post object structure. BEFORE-ID --- Returns posts that appear after this ID. FILTER --- The post format to return, either NIL for HTML, :text for HTML-stripped text, or :raw for the text the user entered.
-
EXTERNAL FUNCTION BLOG/POSTS/QUEUE
- BLOG
- &KEY
- (LIMIT 20)
- (OFFSET 0)
- FILTER
Returns the list of posts in the blog's queue. See BLOG/POSTS for the post object structure. LIMIT --- The number of posts to include, must range between 1 and 20. OFFSET --- The offset in posts to return. FILTER --- The post format to return, either NIL for HTML, :text for HTML-stripped text, or :raw for the text the user entered.
-
EXTERNAL FUNCTION BLOG/POSTS/SUBMISSION
- BLOG
- &KEY
- (OFFSET 0)
- FILTER
Returns the list of submitted posts and asks. See BLOG/POSTS for the post object structure. OFFSET --- The offset in posts to return. FILTER --- The post format to return, either NIL for HTML, :text for HTML-stripped text, or :raw for the text the user entered.
-
EXTERNAL FUNCTION CHAT-POST-P
- THING
No documentation provided. -
EXTERNAL FUNCTION DIALOGUE-P
- THING
No documentation provided. -
EXTERNAL FUNCTION FORMAT-TUMBLR-DATE
- TIMESTAMP
Returns a string version of the local-time timestamp using the proper timezone and format.
-
EXTERNAL FUNCTION FROM-KEYWORD
- KEYWORD
Turns a keyword into a key. Replaces - with _ and downcases the keyword as a string. This is useful to parse the request parameters from the lisp representation into the api representation.
-
EXTERNAL FUNCTION GET-UNIX-TIME
Returns an integer representing the seconds since the unix epoch.
-
EXTERNAL FUNCTION LINK-POST-P
- THING
No documentation provided. -
EXTERNAL FUNCTION LOGIN
- &OPTIONAL
- (CLIENT *CLIENT*)
Performs a login with North. This will load Hunchentoot and spawn an HTTP server if the client's callback is :SPAWN. The server will be automatically torn down again once the oAuth handshake is complete.
-
EXTERNAL FUNCTION LOGOUT
Resets the *client* and *user* to NIL, thus logging you out.
-
EXTERNAL FUNCTION MAKE-BLOG
- RESULT
No documentation provided. -
EXTERNAL FUNCTION MAKE-DIALOGUE
- RESULT
No documentation provided. -
EXTERNAL FUNCTION MAKE-PHOTO
- RESULT
No documentation provided. -
EXTERNAL FUNCTION MAKE-PHOTO-SIZE
- RESULT
No documentation provided. -
EXTERNAL FUNCTION MAKE-POST
- RESULT
No documentation provided. -
EXTERNAL FUNCTION MAKE-TRAIL
- RESULT
No documentation provided. -
EXTERNAL FUNCTION MAKE-USER
- RESULT
No documentation provided. -
EXTERNAL FUNCTION MAKE-VIDEO-PLAYER
- RESULT
No documentation provided. -
EXTERNAL FUNCTION PAGEINATE
- FUNCTION
- OFFSET
- AMOUNT
- &REST
- ARGS
Gather results from FUNCTION until AMOUNT is gathered. The function needs to accept both OFFSET and LIMIT keywords. As per default for tumblr calls, the objects are gathered in steps of twenty. AMOUNT can be a positive integer or T for as many as possible. The returned set may be less than the requested amount.
-
EXTERNAL FUNCTION PAGEINATE-ID
- FUNCTION
- BEFORE-ID
- OFFSET
- AMOUNT
- &REST
- ARGS
Gather results from FUNCTION until AMOUNT is gathered. The function needs to accept a BEFORE-ID keyword and return a list of objects that have an ID slot accessible through the ID reader. AMOUNT can be a positive integer or T for as many as possible. The returned set may be less than the requested amount.
-
EXTERNAL FUNCTION PAGEINATE-TIME
- FUNCTION
- BEFORE-TIME
- OFFSET
- AMOUNT
- &REST
- ARGS
Gather results from FUNCTION until AMOUNT is gathered. The function needs to accept a BEFORE keyword and return a list of objects that have a TIMESTAMP slot accessible through the TIMESTAMP reader. AMOUNT can be a positive integer or T for as many as possible. The returned set may be less than the requested amount.
-
EXTERNAL FUNCTION PARSE-TUMBLR-DATE
- DATESTRING
Parses a tumblr datestring (2014-08-01 23:52:31 GMT) into a local-time timestamp. If it fails to parse, the datestring is returned instead.
-
EXTERNAL FUNCTION PHOTO-P
- THING
No documentation provided. -
EXTERNAL FUNCTION PHOTO-POST-P
- THING
No documentation provided. -
EXTERNAL FUNCTION PHOTO-SIZE-P
- THING
No documentation provided. -
EXTERNAL FUNCTION POST-P
- THING
No documentation provided. -
EXTERNAL FUNCTION PREPARE
- PARAMETERS
Filters out empty key-value pairs and turns all values into strings, ready to be sent out as request parameters. This function is DESTRUCTIVE.
-
EXTERNAL FUNCTION PRINT-SLOTS
- OBJECT
- &KEY
- (OMIT-UNBOUND T)
Prints all slots of the object and their values.
-
EXTERNAL FUNCTION QUOTE-POST-P
- THING
No documentation provided. -
EXTERNAL FUNCTION RAW-REQUEST
- URL
- &KEY
- (METHOD GET)
- PARAMETERS
- OAUTH
- &ALLOW-OTHER-KEYS
Performs a raw request, with JSON as text. URL --- Url to request METHOD --- Request method PARAMETERS --- List of parameters OAUTH --- Whether to use oAuth signing or not.
-
EXTERNAL FUNCTION REQUEST
- URL
- &REST
- ARGS
- &KEY
- (METHOD GET)
- PARAMETERS
- OAUTH
- (REQUEST-FUN #'RAW-REQUEST)
- &ALLOW-OTHER-KEYS
Wrapper around RAW-REQUEST, automatically parsing the JSON or producing a nice error on failure.
-
EXTERNAL FUNCTION TAGGED
- TAG
- &KEY
- BEFORE
- (LIMIT 20)
- FILTER
Returns the list of posts under the given tag. See BLOG/POSTS for the post object structure. TAG --- The tag to filter for. BEFORE --- A Unix-Timestamp from before which time you'd like to get posts returned. Defaults to the current time. LIMIT --- The number of posts to include, must range between 1 and 20. FILTER --- The post format to return, either NIL for HTML, :text for HTML-stripped text, or :raw for the text the user entered.
-
EXTERNAL FUNCTION TEXT-POST-P
- THING
No documentation provided. -
EXTERNAL FUNCTION TO-KEYWORD
- STRING
Turns a key into a keyword. Replaces _ with - and uppercases the string, then interns it into the keyword package. This is useful to parse the request responses into an alist.
-
EXTERNAL FUNCTION TRAIL-P
- THING
No documentation provided. -
EXTERNAL FUNCTION USER-P
- THING
No documentation provided. -
EXTERNAL FUNCTION USER/DASHBOARD
- &KEY
- (LIMIT 20)
- (OFFSET 0)
- TYPE
- SINCE-ID
- REBLOG-INFO
- NOTES-INFO
Returns a list of posts on your dashboard. See BLOG/POSTS for the post object structure. LIMIT --- The number of posts to include, must range between 1 and 20. OFFSET --- The offset in posts to return. TYPE --- The type of posts to include, must be one of :text :quote :link :answer :video :audio :photo :chat SINCE-ID --- Return only posts appearing after this post-ID. REBLOG-INFO --- Whether to return the various 'reblogged-' fields. NOTES-INFO --- Whether to return note count and metadata.
-
EXTERNAL FUNCTION USER/FOLLOW
- BLOG
Follow a blog. BLOG --- The blog's short name. Returns T on success.
-
EXTERNAL FUNCTION USER/FOLLOWING
- &KEY
- (LIMIT 20)
- (OFFSET 0)
Returns a list of blogs you follow. LIMIT --- The number of posts to include, must range between 1 and 20. OFFSET --- The offset in posts to return. A blog object contains the following properties: DESCRIPTION --- The blog's description text. UPDATED --- Unix-Timestamp of the last update. TITLE --- Title used on the blog's page. NAME --- The blog's short name. URL --- The full URL to the blog.
-
EXTERNAL FUNCTION USER/INFO
Returns information about yourself. FOLLOWING --- Counter for the number of blogs you are following. DEFAULT-POST-FORMAT The default format to use for posting, one of 'html' 'markdown' 'raw' NAME --- The short name of the user. LIKES --- Counter for the number of likes. BLOGS --- A list of blog objects with the following properties: NAME --- Short name of the blog. URL --- The full URL to the blog. TITLE --- The title string used on the blog. PRIMARY --- T if this is the user's primary blog, NIL otherwise. FOLLOWERS --- Counter for the number of followers on this blog. TWEET --- String denoting what to do with tweets (?) One of 'Y' 'N' 'auto', but idk what the difference between 'Y' and 'auto' is, so. FACEBOOK --- Whether to send posts to facebook, either 'Y' or 'N'. TYPE --- Either 'public' or 'private'. !! OFFICIALLY UNDOCUMENTED PROPERTIES The following BLOG properties are also included in a request: DRAFTS --- Number of drafts on the blog. QUEUE --- Number of posts queued up. MESSAGES --- The number of messages (asks) received. ADMIN --- Whether you are an administrator of the blog. FACEBOOK-OPENGRAPH-ENABLED No idea wtf this is. TWITTER-SEND --- Probably whether to send twitter messages? No idea. TWITTER-ENABLED --- Whether twitter was linked or not, most likely. LIKES --- The number of posts this user-blog has liked. SHARE-LIKES --- T if likes are shared, NIL otherwise. CAN-SEND-FAN-MAIL - Whether this blog can send fan mail (?) FOLLOWED --- Not sure, maybe whether the blog follows you? ASK-ANON --- Whether anon-asks are allowed. ASK-PAGE-TITLE --- The ask-page title. ASK --- Whether asks are enabled. IS-NSFW --- T if this is a NSFW-blog. DESCRIPTION --- The blog's description. UPDATED --- Unix-Timestamp of the last update. POSTS --- Counter for the number of posts on this blog.
-
EXTERNAL FUNCTION USER/LIKE
- ID
- REBLOG-KEY
Like a post. ID --- The post's unique ID. REBLOG-KEY --- The reblog-key for this post (See BLOG/POSTS) Returns T on success.
-
EXTERNAL FUNCTION USER/LIKES
- &KEY
- (LIMIT 20)
- (OFFSET 0)
Returns a list of posts you liked. See BLOG/POSTS for the post object structure. LIMIT --- The number of posts to include, must range between 1 and 20. OFFSET --- The offset in posts to return.
-
EXTERNAL FUNCTION USER/UNFOLLOW
- BLOG
Unfollow a blog. BLOG --- The blog's short name. Returns T on success.
-
EXTERNAL FUNCTION USER/UNLIKE
- ID
- REBLOG-KEY
Unlike a post. ID --- The post's unique ID. REBLOG-KEY --- The reblog-key for this post (See BLOG/POSTS) Returns T on success.
-
EXTERNAL FUNCTION VIDEO-PLAYER-P
- THING
No documentation provided. -
EXTERNAL FUNCTION VIDEO-POST-P
- THING
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ADMIN
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ALBUM
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ALBUM-ART
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ANSWER
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF ANSWER)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ARTIST
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ASK-ANON
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ASK-P
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ASK-PAGE-TITLE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ASKING-NAME
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ASKING-URL
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION AUGMENT
- TARGET
- SOURCE
Fills up slots in TARGET with information from SOURCE.
-
EXTERNAL GENERIC-FUNCTION AVATAR
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION BLOG
- NAME
Tries to fetch the blog object given by NAME. If a blog object is passed, the same post is fetched anew and the new copy is returned. The old is left intact. Returns a blog object or NIL if no blog could be found.
-
EXTERNAL GENERIC-FUNCTION BLOG-NAME
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION BLOG=
- A
- B
Returns T if the two blogs match in name, NIL otherwise.
-
EXTERNAL GENERIC-FUNCTION BLOGS
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION BODY
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF BODY)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION BOOKMARKLET
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION CAN-SEND-FAN-MAIL
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION CAPTION
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF CAPTION)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION CONTENT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION COPY
- THING
Attempts to copy the passed object by creating a new instance of the same class and then calling AUGMENT on it. Note that since AUGMENT does not copy fields, this is NOT a deep copy and thus slot values are shared!
-
EXTERNAL GENERIC-FUNCTION CURRENT-P
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DASHBOARD
- &KEY
- AMOUNT
- OFFSET
- TYPE
Retrieve a list of posts on your dashboard. If AMOUNT is above twenty, multiple requests are made in order to gather the desired amount automatically.
-
EXTERNAL GENERIC-FUNCTION DATE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF DATE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DEFAULT-POST-FORMAT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DESCRIPTION
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF DESCRIPTION)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DESTROY
- POST
Delete the given post. Returns the post object on success, signals an error on failure.
-
EXTERNAL GENERIC-FUNCTION DIALOGUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DRAFT-COUNT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DRAFTS
- BLOG
- &KEY
- AMOUNT
- OFFSET
- BEFORE-ID
Retrieve a list of drafted posts if possible. If AMOUNT is above twenty, multiple requests are made in order to gather the desired amount automatically.
-
EXTERNAL GENERIC-FUNCTION EMBED-CODE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION FACEBOOK-OPENGRAPH-ENABLED
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION FILE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF FILE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION FOLLOW
- BLOG
Follow the given blog. Returns the blog on success, signals an error on failure.
-
EXTERNAL GENERIC-FUNCTION FOLLOWED
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION FOLLOWERS
- BLOG
- &KEY
- AMOUNT
- OFFSET
Returns a list of USER objects that follow the given blog. If AMOUNT is above twenty, multiple requests are made in order to gather the desired amount automatically.
-
EXTERNAL GENERIC-FUNCTION FOLLOWING
- &KEY
- AMOUNT
- OFFSET
Retrieve a list of blogs that you are following. If AMOUNT is above twenty, multiple requests are made in order to gather the desired amount automatically.
-
EXTERNAL GENERIC-FUNCTION HEIGHT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ID
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION LABEL
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION LIKE
- POST
Like the given post. Returns the post object on success, signals an error on failure.
-
EXTERNAL GENERIC-FUNCTION LIKE-COUNT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION LIKED
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION LIKES
- BLOG
- &KEY
- AMOUNT
- OFFSET
Retrieve a list of liked posts if possible. If AMOUNT is above twenty, multiple requests are made in order to gather the desired amount automatically.
-
EXTERNAL GENERIC-FUNCTION MESSAGE-COUNT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION MOBILE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION MY-BLOGS
No documentation provided. -
EXTERNAL GENERIC-FUNCTION MY-DRAFTS
- &KEY
- AMOUNT
- OFFSET
Shorthand for (DRAFTS *user*)
-
EXTERNAL GENERIC-FUNCTION MY-FOLLOWERS
- &KEY
- AMOUNT
- OFFSET
Shorthand for (FOLLOWERS *user*)
-
EXTERNAL GENERIC-FUNCTION MY-LIKES
- &KEY
- AMOUNT
- OFFSET
Shorthand for (LIKES *user*)
-
EXTERNAL GENERIC-FUNCTION MY-POSTS
- &KEY
- TYPE
- TAG
- AMOUNT
- OFFSET
Shorthand for (POSTS *user*)
-
EXTERNAL GENERIC-FUNCTION MY-QUEUE
- &KEY
- AMOUNT
- OFFSET
Shorthand for (QUEUE *user*)
-
EXTERNAL GENERIC-FUNCTION MY-SUBMISSIONS
- &KEY
- AMOUNT
- OFFSET
Shorthand for (SUBMISSIONS *user*)
-
EXTERNAL GENERIC-FUNCTION MYSELF
Retrieve information about yourself. Returns a USER object.
-
EXTERNAL GENERIC-FUNCTION NAME
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION NOTE-COUNT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION NSFW-P
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION PHOTOS
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF PHOTOS)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION PHRASE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION PLAY-COUNT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION PLAYER
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION PLAYERS
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION POST
- ID
- &OPTIONAL
- BLOG-NAME
Retrieve an individual post by its unique ID. If a blog object is passed, the same post is fetched anew and the new copy is returned. The old is left intact. Returns a post object or NIL if no post can be found.
-
EXTERNAL GENERIC-FUNCTION POST-COUNT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION POST-FORMAT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF POST-FORMAT)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION POST-TYPE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION POST-URL
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION POST=
- A
- B
Returns T if the two posts match in ID, NIL otherwise.
-
EXTERNAL GENERIC-FUNCTION POSTS
- BLOG
- &KEY
- TYPE
- TAG
- AMOUNT
- OFFSET
Retrieve a list of public posts filtered by TYPE and TAG. If AMOUNT is above twenty, multiple requests are made in order to gather the desired amount automatically.
-
EXTERNAL GENERIC-FUNCTION QUESTION
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION QUEUE
- BLOG
- &KEY
- AMOUNT
- OFFSET
Retrieve a list of queued posts if possible. If AMOUNT is above twenty, multiple requests are made in order to gather the desired amount automatically.
-
EXTERNAL GENERIC-FUNCTION QUEUE-COUNT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION RAW-CONTENT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION REBLOG
- POST
- &KEY
- COMMENT
Reblog the given post. Returns the newly created reblog post object on success, signals an error on failure.
-
EXTERNAL GENERIC-FUNCTION REBLOG-KEY
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION REBLOG-P
- POST
No documentation provided. -
EXTERNAL GENERIC-FUNCTION REFRESH
- POST
Update the post object with newly retrieved values. This changes the passed object's slots. See AUGMENT. Returns the post object on success, signals an error on failure.
-
EXTERNAL GENERIC-FUNCTION REPLY
- POST
- ANSWER
No documentation provided. -
EXTERNAL GENERIC-FUNCTION REPOST
- POST
- NEW-BLOG
Creates a copy of the post object and posts it to the given blog as a new post. Returns the repost object on success, signals an error on failure. Note that the slot values of the repost are shared with that of the original post. See COPY.
-
EXTERNAL GENERIC-FUNCTION ROOT-P
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SAVE
- POST
Creates or edits the given post with the new values. Returns the post object on success, signals an error on failure.
-
EXTERNAL GENERIC-FUNCTION SHARE-LIKES
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SIZES
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SLUG
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF SLUG)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SOURCE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF SOURCE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SOURCE-TITLE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SOURCE-URL
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION STATE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF STATE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SUBMISSIONS
- BLOG
- &KEY
- AMOUNT
- OFFSET
Retrieve a list of submitted posts if possible. If AMOUNT is above twenty, multiple requests are made in order to gather the desired amount automatically.
-
EXTERNAL GENERIC-FUNCTION SUMMARY
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TAG
- TAG
- &KEY
- AMOUNT
- OFFSET
- BEFORE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TAGS
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF TAGS)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TEXT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF TEXT)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TEXT-FORMAT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF TEXT-FORMAT)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TIMESTAMP
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TITLE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF TITLE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TRACK-NAME
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TRACK-NUMBER
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TRAIL
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TRAIL-BLOG
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TRAIL-POST
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TWEET
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF TWEET)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TWITTER-ENABLED
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TWITTER-SEND
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION UNFOLLOW
- BLOG
Unfollow the given blog. Returns the blog on success, signals an error on failure.
-
EXTERNAL GENERIC-FUNCTION UNLIKE
- POST
Unlike the given post. Returns the post object on success, signals an error on failure.
-
EXTERNAL GENERIC-FUNCTION UPDATED
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION URL
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF URL)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION WIDTH
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION YEAR
- OBJECT
No documentation provided. -
EXTERNAL MACRO PREPARE*
- &REST
- PARAMETER-NAMES
Creates a PREPARE statement out of the provided variables.