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
|
||||
}
|
||||
|
||||
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) {
|
||||
id := uuid()
|
||||
|
||||
|
6
makefile
6
makefile
@ -1,4 +1,7 @@
|
||||
.PHONY: all
|
||||
.PHONY: build
|
||||
.PHONY: install
|
||||
.PHONY: run
|
||||
|
||||
all: build
|
||||
|
||||
@ -12,3 +15,6 @@ install: build
|
||||
install build/craft-bot /usr/local/craft-bot/
|
||||
install craft-bot.service /etc/systemd/system/craft-bot.service
|
||||
systemctl daemon-reload
|
||||
|
||||
run: build
|
||||
./build/craft-bot -c config.json
|
@ -24,6 +24,7 @@ const (
|
||||
emojiUp = "\xE2\xAC\x86"
|
||||
emojiDeaths = "\xF0\x9F\x92\x80"
|
||||
emojiTime = "\xF0\x9F\x95\x90"
|
||||
emojiGun = "\xF0\x9F\x94\xAB"
|
||||
)
|
||||
|
||||
func (p *playerInfo) updatePlayerInfo(ctx context.Context) error {
|
||||
@ -36,10 +37,16 @@ func (p *playerInfo) updatePlayerInfo(ctx context.Context) error {
|
||||
return err
|
||||
}
|
||||
|
||||
kills, err := db.getKillsByOPlayerID(ctx, player.id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
test := `*%s* | %s
|
||||
%s Уровень: *%s*
|
||||
%s Смертей: *%d*
|
||||
%s Время в игре: %s
|
||||
%s Фрагов: %d
|
||||
`
|
||||
|
||||
access := "\xE2\x9D\x8C offLine"
|
||||
@ -55,12 +62,22 @@ func (p *playerInfo) updatePlayerInfo(ctx context.Context) error {
|
||||
test = fmt.Sprintf(test, player.name, access,
|
||||
emojiUp, level,
|
||||
emojiDeaths, player.deaths,
|
||||
emojiTime, player.onlineDuration.String())
|
||||
emojiTime, player.onlineDuration.String(),
|
||||
emojiGun, kills,
|
||||
)
|
||||
|
||||
if p.playerMessageID != 0 {
|
||||
mess := tgbotapi.NewEditMessageText(conf.ChatID, p.playerMessageID, test)
|
||||
mess.ParseMode = tgbotapi.ModeMarkdown
|
||||
|
||||
ikm := tgbotapi.NewInlineKeyboardMarkup(
|
||||
tgbotapi.NewInlineKeyboardRow(
|
||||
tgbotapi.NewInlineKeyboardButtonData("Подробнее", "additional"),
|
||||
),
|
||||
)
|
||||
|
||||
mess.ReplyMarkup = &ikm
|
||||
|
||||
_, err := botApi.Send(mess)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "Failed to update message")
|
||||
|
Loading…
x
Reference in New Issue
Block a user