{"id":13507733,"url":"https://github.com/sovietspaceship/cl-telegram-bot","last_synced_at":"2025-03-30T09:33:02.727Z","repository":{"id":137817448,"uuid":"65646539","full_name":"sovietspaceship/cl-telegram-bot","owner":"sovietspaceship","description":"Telegram Bot API for Common Lisp","archived":true,"fork":false,"pushed_at":"2020-01-02T21:15:17.000Z","size":41,"stargazers_count":39,"open_issues_count":2,"forks_count":4,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-11-01T07:33:14.514Z","etag":null,"topics":["commonlisp","telegram","telegram-bot-api","telegram-bot-framework"],"latest_commit_sha":null,"homepage":null,"language":"Common Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sovietspaceship.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-08-14T02:34:09.000Z","updated_at":"2024-05-27T15:24:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"4e3cd268-ea34-434c-97e8-40cf84e84294","html_url":"https://github.com/sovietspaceship/cl-telegram-bot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sovietspaceship%2Fcl-telegram-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sovietspaceship%2Fcl-telegram-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sovietspaceship%2Fcl-telegram-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sovietspaceship%2Fcl-telegram-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sovietspaceship","download_url":"https://codeload.github.com/sovietspaceship/cl-telegram-bot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246301963,"owners_count":20755512,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["commonlisp","telegram","telegram-bot-api","telegram-bot-framework"],"created_at":"2024-08-01T02:00:38.371Z","updated_at":"2025-03-30T09:33:02.721Z","avatar_url":"https://github.com/sovietspaceship.png","language":"Common Lisp","funding_links":[],"categories":["Bot Libraries"],"sub_categories":[],"readme":"# Telegram Bot API for Common Lisp\n\n**NO LONGER MAINTAINED**: [please use this actively maintained fork](https://github.com/40ants/cl-telegram-bot)\n\nSee the [Telegram Bot API](https://core.telegram.org/bots/api).\n\nThis library uses [Drakma](http://weitz.de/drakma/) and [CL-JSON](https://common-lisp.net/project/cl-json/) with CLOS semantics.\n\nThis library has the following aliases: cl-telegram-bot, tg-bot, telegram-bot.\n\n- function `(make-bot token)`\n    Returns a bot instance for a given token. To get a new token, see [here](https://core.telegram.org/bots#3-how-do-i-create-a-bot).\n\n- macro `(with-package package-name \u0026rest body)`\n    Interns JSON symbols into package-name (usually, the package the bot is being used) while executing `body`.\n\n- function `(access object \u0026rest slot-list)`\n    Convenience function to access nested fields in a JSON object. Returns NIL if at least one slot is unbound. For example, to access update.message.from.id, you can use\n    `(access update 'message 'from 'id)`. This operation is linear in time, so I suggest keeping it at a minimum,\n    reusing the fields multiple times, e.g. using a let*. \n    You can use this function from any JSON field, so `(access message 'from 'id)` from a previously accessed message field\n    should be used when many nested fields share a common parent.\n\n- macro `(decode json-object)`\n    Decode JSON object to CLOS object. Use to convert the return value of API calls when needed, e.g.\n    `(decode (send-message ...)` returns an object ready to be used (by `access`, for example).\n\n- macro `(find-json-symbol :symbol-name)`\n    Returns JSON-interned symbol.\n\n- function `(get-slot obj slot)`\n    Returns slot from obj, NIL if unbound. Use with JSON CLOS object.\n\n- error `request-error`\n    Used (currently) by get-updates on HTTP error.\n\n- unexported function `(cl-telegram-bot::get-class-slots object)` (SBCL only)\n    Use this function to inspect JSON objects. For debugging only.\n\n- unexported function `(cl-telegram-bot::make-request b method-name options-alist)`\n    Make direct API request using Drakma. Use for debugging only.\n\n- unexported function `(cl-telegram-bot::trace-http)`\n    Turns on Drakma's HTTP header output. Use for debugging only.\n\n- function [`(get-updates bot \u0026key limit timeout)`](https://core.telegram.org/bots/api#getupdates)\n    Returns a vector of updates as CLOS objects.\n\n    NOTE: The offset parameter is omitted as it is internally managed by the cl-telegram-bot:bot class.\n\n## API methods\n\nNOTE: the keyword argument :reply-to-message-id from the official API was renamed to :reply in every function.\n\n- function [`(set-webhook bot \u0026key url certificate)`](https://core.telegram.org/bots/api#setwebhook)\n\n- function [`(send-message bot chat-id text \u0026key parse-mode disable-web-page-preview disable-notification reply)`](https://core.telegram.org/bots/api#sendmessage)\n\n- function [`(forward-message bot chat-id from-chat-id message-id \u0026key disable-notification)`](https://core.telegram.org/bots/api#forwardmessage)\n\n- function [`(send-photo bot chat-id photo \u0026key caption disable-notification reply reply-markup)`](https://core.telegram.org/bots/api#sendphoto)\n\n- function [`(send-audio bot chat-id audio \u0026key duration performer title disable-notification reply reply-markup)`](https://core.telegram.org/bots/api#sendaudio)\n\n- function [`(send-document bot chat-id document \u0026key caption disable-notification reply reply-markup)`](https://core.telegram.org/bots/api#senddocument)\n\n- function [`(send-sticker bot chat-id sticker \u0026key disable-notification reply reply-markup)`](https://core.telegram.org/bots/api#sendsticker)\n\n- function [`(send-video bot chat-id video \u0026key duration width height caption disable-notification reply reply-markup)`](https://core.telegram.org/bots/api#sendvideo)\n\n- function [`(send-voice bot chat-id voice \u0026key duration disable-notification reply reply-markup)`](https://core.telegram.org/bots/api#sendvoice)\n\n- function [`(send-location bot chat-id latitude longitude \u0026key disable-notification reply reply-markup)`](https://core.telegram.org/bots/api#sendlocation)\n\n- function [`(send-venue bot chat-id latitude longitude title address \u0026key foursquare-id disable-notification reply reply-markup)`](https://core.telegram.org/bots/api#sendvenue)\n\n- function [`(send-contact bot chat-id phone-number first-name \u0026key last-name disable-notification reply reply-markup)`](https://core.telegram.org/bots/api#sendcontact)\n\n- function [`(send-chat-action bot chat-id action)`](https://core.telegram.org/bots/api#sendchataction)\n\n- function [`(get-user-profile-photos bot user-id \u0026key offset limit)`](https://core.telegram.org/bots/api#getuserprofilephotos)\n\n- function [`(get-file bot file-id)`](https://core.telegram.org/bots/api#getfile)\n\n- function [`(kick-chat-member bot chat-id user-id)`](https://core.telegram.org/bots/api#kickchatmember)\n\n- function [`(leave-chat bot chat-id)`](https://core.telegram.org/bots/api#leavechat)\n\n- function [`(unban-chat-member bot chat-id user-id)`](https://core.telegram.org/bots/api#unbanchatmember)\n\n- function [`(get-chat bot chat-id)`](https://core.telegram.org/bots/api#getchat)\n\n- function [`(get-chat-administrators bot chat-id)`](https://core.telegram.org/bots/api#getchatadministrators)\n\n- function [`(get-chat-members-count bot chat-id)`](https://core.telegram.org/bots/api#getchatmemberscount)\n\n- function [`(get-chat-member bot chat-id user-id)`](https://core.telegram.org/bots/api#getchatmember)\n\n- function [`(answer-callback-query bot callback-query-id \u0026key text show-alert)`](https://core.telegram.org/bots/api#answercallbackquery)\n\n- function [`(edit-message-text bot chat-id message-id inline-message-id text \u0026key parse-mode disable-web-page-preview reply-markup)`](https://core.telegram.org/bots/api#editmessagetext)\n\n- function [`(edit-message-caption bot chat-id message-id inline-message-id \u0026key caption reply-markup)`](https://core.telegram.org/bots/api#editmessagecaption)\n\n- function [`(edit-message-reply-markup bot chat-id message-id inline-message-id \u0026key reply-markup)`](https://core.telegram.org/bots/api#editmessagereplymarkup)\n\n- function [`(answer-inline-query bot inline-query-id results \u0026key cache-time is-personal next-offset switch-pm-text)`](https://core.telegram.org/bots/api#answerinlinequery)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsovietspaceship%2Fcl-telegram-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsovietspaceship%2Fcl-telegram-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsovietspaceship%2Fcl-telegram-bot/lists"}