This commit is contained in:
parent
cbf3bb0303
commit
19d6fff7e7
24
dataBase.go
24
dataBase.go
@ -164,6 +164,30 @@ func (db *dbLayer) getPlayerByName(ctx context.Context, name string) (*Player, e
|
|||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (db *dbLayer) getKillsByOPlayerID(ctx context.Context, playerID string) (int, error) {
|
||||||
|
query := "SELECT SUM(count) FROM killings WHERE player_id = $1 GROUP BY player_id"
|
||||||
|
|
||||||
|
rows, err := db.db.QueryContext(ctx, query, playerID)
|
||||||
|
if err != nil {
|
||||||
|
return 0, errors.Wrapf(err, "Failed to run db query [%s]", query)
|
||||||
|
}
|
||||||
|
|
||||||
|
defer rows.Close()
|
||||||
|
|
||||||
|
if rows.Next() {
|
||||||
|
var killsNum int
|
||||||
|
|
||||||
|
err = rows.Scan(&killsNum)
|
||||||
|
if err != nil {
|
||||||
|
return 0, errors.Wrap(err, "Failed to fetch data base")
|
||||||
|
}
|
||||||
|
|
||||||
|
return killsNum, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (db *dbLayer) createPlayer(ctx context.Context, name string, lastOnline time.Time) (*Player, error) {
|
func (db *dbLayer) createPlayer(ctx context.Context, name string, lastOnline time.Time) (*Player, error) {
|
||||||
id := uuid()
|
id := uuid()
|
||||||
|
|
||||||
|
6
makefile
6
makefile
@ -1,4 +1,7 @@
|
|||||||
|
.PHONY: all
|
||||||
.PHONY: build
|
.PHONY: build
|
||||||
|
.PHONY: install
|
||||||
|
.PHONY: run
|
||||||
|
|
||||||
all: build
|
all: build
|
||||||
|
|
||||||
@ -12,3 +15,6 @@ install: build
|
|||||||
install build/craft-bot /usr/local/craft-bot/
|
install build/craft-bot /usr/local/craft-bot/
|
||||||
install craft-bot.service /etc/systemd/system/craft-bot.service
|
install craft-bot.service /etc/systemd/system/craft-bot.service
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
|
|
||||||
|
run: build
|
||||||
|
./build/craft-bot -c config.json
|
@ -24,6 +24,7 @@ const (
|
|||||||
emojiUp = "\xE2\xAC\x86"
|
emojiUp = "\xE2\xAC\x86"
|
||||||
emojiDeaths = "\xF0\x9F\x92\x80"
|
emojiDeaths = "\xF0\x9F\x92\x80"
|
||||||
emojiTime = "\xF0\x9F\x95\x90"
|
emojiTime = "\xF0\x9F\x95\x90"
|
||||||
|
emojiGun = "\xF0\x9F\x94\xAB"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (p *playerInfo) updatePlayerInfo(ctx context.Context) error {
|
func (p *playerInfo) updatePlayerInfo(ctx context.Context) error {
|
||||||
@ -36,10 +37,16 @@ func (p *playerInfo) updatePlayerInfo(ctx context.Context) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kills, err := db.getKillsByOPlayerID(ctx, player.id)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
test := `*%s* | %s
|
test := `*%s* | %s
|
||||||
%s Уровень: *%s*
|
%s Уровень: *%s*
|
||||||
%s Смертей: *%d*
|
%s Смертей: *%d*
|
||||||
%s Время в игре: %s
|
%s Время в игре: %s
|
||||||
|
%s Фрагов: %d
|
||||||
`
|
`
|
||||||
|
|
||||||
access := "\xE2\x9D\x8C offLine"
|
access := "\xE2\x9D\x8C offLine"
|
||||||
@ -55,12 +62,22 @@ func (p *playerInfo) updatePlayerInfo(ctx context.Context) error {
|
|||||||
test = fmt.Sprintf(test, player.name, access,
|
test = fmt.Sprintf(test, player.name, access,
|
||||||
emojiUp, level,
|
emojiUp, level,
|
||||||
emojiDeaths, player.deaths,
|
emojiDeaths, player.deaths,
|
||||||
emojiTime, player.onlineDuration.String())
|
emojiTime, player.onlineDuration.String(),
|
||||||
|
emojiGun, kills,
|
||||||
|
)
|
||||||
|
|
||||||
if p.playerMessageID != 0 {
|
if p.playerMessageID != 0 {
|
||||||
mess := tgbotapi.NewEditMessageText(conf.ChatID, p.playerMessageID, test)
|
mess := tgbotapi.NewEditMessageText(conf.ChatID, p.playerMessageID, test)
|
||||||
mess.ParseMode = tgbotapi.ModeMarkdown
|
mess.ParseMode = tgbotapi.ModeMarkdown
|
||||||
|
|
||||||
|
ikm := tgbotapi.NewInlineKeyboardMarkup(
|
||||||
|
tgbotapi.NewInlineKeyboardRow(
|
||||||
|
tgbotapi.NewInlineKeyboardButtonData("Подробнее", "additional"),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
mess.ReplyMarkup = &ikm
|
||||||
|
|
||||||
_, err := botApi.Send(mess)
|
_, err := botApi.Send(mess)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrap(err, "Failed to update message")
|
return errors.Wrap(err, "Failed to update message")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user