cl-telegram-bot/chat:get-chatgeneric-function is now exported from cl-telegram-bot/chat package instead of cl-telegram-bot/message. Also, now it is applicable to updates, and other objects which can be associated with a chat.callback-chatfunction was removed from cl-telegram-bot/callback package. Use abovementionnedget-chatgeneric-function.
cl-telegram-bot/bot:bot-infowas added tocl-telegram-bot/bot:botclass.- Macro
cl-telegram-bot/bot:defbotnow accepts optional slots and options likeDEFCLASSmacro does. - Class
cl-telegram-bot/entities/command:bot-commandnow has bot-username slot andcl-telegram-bot/entities/command:on-commandgeneric-function is called in a group chat only if the command was addressed to a current bot. Previously, bot was not able to process commands in group chats. - Some kinds of messages are wrapped into an envelope class now to distinguish between edited message, channel posts, and edited channel post. These envelope classes are gathered in package cl-telegram-bot/envelope.
cl-telegram-bot/message:get-sender-chatwas added.cl-telegram-bot/message:get-current-botfunction was added.- Functions
cl-telegram-bot/payments:send-invoice,cl-telegram-bot/payments:answer-shipping-queryandcl-telegram-bot/payments:answer-pre-checkout-querywere fixed. - Package cl-telegram-bot/user was added with a bunch of classes and functions.
- Now bot can be started in debug mode. When this mode is on, then interactive debugger will pop up on errors.
- If bot defines some commands implementing
cl-telegram-bot/entities/command:on-commandgeneric-function, then these commands will be reported to the telegram server automatically and it will show the to user when he starts text with/. - Added support for buttons with callbacks. To define a callback, implement a method for
cl-telegram-bot/callback:on-callbackgeneric-function. After that, you can construct an inline keyboard usingcl-telegram-bot/inline-keyboard:inline-keyboardfunction andcl-telegram-bot/inline-keyboard:callback-buttonfunction. This keyboard object can be supplied as:REPLY-MARKUPargument tocl-telegram-bot/response:replyfunction. - New functions
cl-telegram-bot/response:alert(12) andcl-telegram-bot/response:notify(12) were added. An example usage of these functions along with inline keyboard was added toexample/bot.lisp. - Function
cl-telegram-bot/response-processing:interrupt-processingwas added in case if you want to interrupt processing of current message and skip the rest of the handler. - Function
cl-telegram-bot/message:get-current-messagewas added. - Function
cl-telegram-bot/message:get-current-chatwas added.
- Function
CL-TELEGRAM-BOT/MESSAGE:REPLYwas removed and replaced withcl-telegram-bot/response:replyfunction. Previously it interrupted the processing flow and you only was able to reply once. With the new function you can respond with different pieces, for example to show user a image and text with inline keyboard.
- Changed a lot of imports some symbols not bound to functions were removed, some readers and accessors are exported.
- Added an autogenerated
APIreference.
- Change the parameters of
make-requestto allow passing request parameters straight into it. - Add
idslot tomessage; addforward-message,delete-messagefunctions reliant onid. - Add more
messagetypes:reply,video-message,document-messageand other media message types. - Add
send-*media-sending message types. - Add more
chattypes:group,supergroup, andchannel.
- Fixed work with latest
dexador, because it does not accept:stream tanymore.
- Bot was fixed to use latest Dexador with support
of
read-timeoutandconnect-timeout.
- Added a dependency from
trivial-timeoutand now connect timeout is used when doing requests toAPI. - Function
make-<bot-class>now proxie any parameters to the class's constructor. - Now function
stop-processingchecks if thread is alive before destroying it.
Project was broken down to subpackages, nicknames telegram-bot and
tg-bot were removed, because now system uses ASDF's
package-inferred-system class and each file have it's own separate packages.