add frags
All checks were successful
continuous-integration/drone Build is passing

This commit is contained in:
Timofey.Kovalev 2021-06-16 11:33:05 +03:00
parent cbf3bb0303
commit 19d6fff7e7
3 changed files with 48 additions and 1 deletions

View File

@ -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()

View File

@ -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

View File

@ -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")