cl-telegram-bot/chat:get-chat
generic-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-chat
function was removed from cl-telegram-bot/callback package. Use abovementionnedget-chat
generic-function.
cl-telegram-bot/bot:bot-info
was added tocl-telegram-bot/bot:bot
class.- Macro
cl-telegram-bot/bot:defbot
now accepts optional slots and options likeDEFCLASS
macro does. - Class
cl-telegram-bot/entities/command:bot-command
now has bot-username slot andcl-telegram-bot/entities/command:on-command
generic-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-chat
was added.cl-telegram-bot/message:get-current-bot
function was added.- Functions
cl-telegram-bot/payments:send-invoice
,cl-telegram-bot/payments:answer-shipping-query
andcl-telegram-bot/payments:answer-pre-checkout-query
were 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-command
generic-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-callback
generic-function. After that, you can construct an inline keyboard usingcl-telegram-bot/inline-keyboard:inline-keyboard
function andcl-telegram-bot/inline-keyboard:callback-button
function. This keyboard object can be supplied as:REPLY-MARKUP
argument tocl-telegram-bot/response:reply
function. - New functions
cl-telegram-bot/response:alert
(1
2
) andcl-telegram-bot/response:notify
(1
2
) were added. An example usage of these functions along with inline keyboard was added toexample/bot.lisp
. - Function
cl-telegram-bot/response-processing:interrupt-processing
was 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-message
was added. - Function
cl-telegram-bot/message:get-current-chat
was added.
- Function
CL-TELEGRAM-BOT/MESSAGE:REPLY
was removed and replaced withcl-telegram-bot/response:reply
function. 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
API
reference.
- Change the parameters of
make-request
to allow passing request parameters straight into it. - Add
id
slot tomessage
; addforward-message
,delete-message
functions reliant onid
. - Add more
message
types:reply
,video-message
,document-message
and other media message types. - Add
send-*
media-sending message types. - Add more
chat
types:group
,supergroup
, andchannel
.
- Fixed work with latest
dexador
, because it does not accept:stream t
anymore.
- Bot was fixed to use latest Dexador with support
of
read-timeout
andconnect-timeout
.
- Added a dependency from
trivial-timeout
and 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-processing
checks 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.