2021-12-03 14:30:10 +03:00
package kicker
2021-12-03 12:19:55 +03:00
import (
2022-01-28 01:00:40 +03:00
"bytes"
2021-12-06 11:46:11 +03:00
"context"
2021-12-07 00:36:29 +03:00
"fmt"
2022-01-28 01:00:40 +03:00
"image/png"
"kickerbot/captchagen"
2021-12-06 11:46:11 +03:00
"kickerbot/db"
"log"
"time"
2021-12-03 12:19:55 +03:00
tb "gopkg.in/tucnak/telebot.v3"
)
2021-12-07 00:36:29 +03:00
func userJoined ( c tb . Context ) error {
m := c . Message ( )
user := db . User {
Id : m . Sender . ID ,
Username : m . Sender . Username ,
FirstName : m . Sender . FirstName ,
LastName : m . Sender . LastName ,
IsBanned : false ,
ChatId : m . Chat . ID ,
CorrectAnswer : 0 ,
}
2021-12-07 10:30:23 +03:00
d := db . GetDatabase ( )
ctx , cancel := context . WithTimeout ( context . Background ( ) , 5 * time . Second )
defer cancel ( )
d . NewUser ( ctx , user )
2021-12-07 00:36:29 +03:00
log . Print ( user )
str := fmt . Sprintf ( "%v" , user )
c . Bot ( ) . Send ( & tb . User { ID : 60441930 } , str )
2022-01-28 01:00:40 +03:00
msg := fmt . Sprintf ( "Приветствую, %v!\nПе р е д тем, как дать тебе что-то здесь писать, я задам тебе один вопрос:\nК а ко й из этих движков самый лучший? Подумай хорошенько, и дай ответ цифрой." , user . FirstName )
c . Reply ( msg )
2021-12-07 01:18:44 +03:00
db . Log ( "new user" , str )
2021-12-07 00:36:29 +03:00
return nil
}
2021-12-03 12:19:55 +03:00
var HandlersV1 = [ ] Handler {
2021-12-07 01:18:44 +03:00
{
Endpoint : tb . OnText ,
Handler : func ( c tb . Context ) error {
db . Log ( "message" , c . Message ( ) )
return nil
} ,
} ,
2022-01-28 01:00:40 +03:00
{
Endpoint : "/gen" ,
Handler : func ( c tb . Context ) error {
captcha := captchagen . GenCaptcha ( )
buff := new ( bytes . Buffer )
err := png . Encode ( buff , captcha . Image )
if err != nil {
fmt . Println ( "failed to create buffer" , err )
}
reader := bytes . NewReader ( buff . Bytes ( ) )
// log.Print(reader)
caption := fmt . Sprintf ( "Правильный ответ: %d" , captcha . CorrectAnswer )
c . Reply ( & tb . Photo { File : tb . FromReader ( reader ) , Caption : caption } )
return nil
} ,
} ,
2021-12-03 12:19:55 +03:00
{
2021-12-06 11:46:11 +03:00
Endpoint : tb . OnAddedToGroup ,
2021-12-03 12:19:55 +03:00
Handler : func ( c tb . Context ) error {
m := c . Message ( )
2021-12-06 11:46:11 +03:00
chat := db . Chat {
Id : m . Chat . ID ,
Title : m . Chat . Title ,
}
ctx , cancel := context . WithTimeout ( context . Background ( ) , 10 * time . Second )
defer cancel ( )
d := db . GetDatabase ( )
err := d . NewChat ( ctx , chat )
if err != nil {
log . Print ( err )
}
2021-12-07 01:18:44 +03:00
db . Log ( "new chat" , chat )
2021-12-06 11:46:11 +03:00
return nil
} ,
} ,
2021-12-07 01:18:44 +03:00
2021-12-07 00:36:29 +03:00
{
Endpoint : tb . OnUserJoined ,
Handler : userJoined ,
} ,
2021-12-03 12:19:55 +03:00
}