3 Commits
v1.0 ... v1.2

4 changed files with 53 additions and 21 deletions

2
README
View File

@@ -17,7 +17,7 @@ aleesa-phrases-go
Как это собрать?
-----------------------------------------------------------------------------------------------------------------------
Понадобится golang версии 1.17 или более новая.
Понадобится golang версии 1.18 или более новая.
Сам процесс сборки простой, достаточно запустить:
make

View File

@@ -95,6 +95,9 @@ var pebbleDB struct {
}
}
// Создадим источник рандома
var random *rand.Rand
// ReadConfig читает и валидирует конфиг, а также выставляет некоторые default-ы, если значений для параметров в конфиге нет
func ReadConfig() MyConfig {
configLoaded := false
@@ -307,7 +310,7 @@ func FetchRandomV(db *pebble.DB, dbName string) (string, error) {
return answer, fmt.Errorf("garbage in count_db while getting info about %s: %s", dbName, err)
}
phraseNum := 1 + rand.Intn(amountNum)
phraseNum := random.Intn(amountNum + 1)
phraseItem := fmt.Sprintf("%d", phraseNum)
answer, err = FetchV(db, phraseItem)

View File

@@ -8,6 +8,7 @@ import (
"fmt"
"io/fs"
"math"
"math/rand"
"os"
"os/signal"
"strconv"
@@ -370,29 +371,53 @@ func msgParser(ctx context.Context, msg string) {
msgLen := len(j.Message)
if j.Message[0:len(j.Misc.CSign)] == j.Misc.CSign { //nolint:gocritic
var cmd = j.Message[len(j.Misc.CSign):]
switch cmd := j.Message[len(j.Misc.CSign):]; {
case cmd == "friday" || cmd == "пятница":
j.Message = friday()
switch cmd {
case "friday":
j.Message = friday()
case "пятница":
j.Message = friday()
case "proverb":
case cmd == "proverb" || cmd == "пословица":
j.Message = proverb()
case "пословица":
j.Message = proverb()
case "f":
case cmd == "f" || cmd == "ф":
j.Message = fortune()
case "ф":
case cmd == "fortune" || cmd == "фортунка":
j.Message = fortune()
case "fortune":
j.Message = fortune()
case "фортунка":
j.Message = fortune()
case "karma":
j.Message = getKarma(j.ChatID, "")
case "карма":
case cmd == "karma" || cmd == "карма":
j.Message = getKarma(j.ChatID, "")
case cmd[:3] == "rum" || cmd[:3] == "ром":
format := "/me притаскивает на подносе стопку рома для %s, края стопки искрятся кристаллами соли."
j.Message = fmt.Sprintf(format, j.Misc.Username)
case cmd[:5] == "vodka" || cmd[:5] == "водка":
format := "/me подаёт шот водки с небольшим маринованным огурчиком на блюдце для %s. Из огурчика торчит "
format += "небольшая вилочка."
j.Message = fmt.Sprintf(format, j.Misc.Username)
case cmd[:4] == "beer" || cmd[:4] == "пиво":
format := "/me бахает об стол перед %s кружкой холодного пива, часть пенной шапки сползает по запотевшей "
format += "стенке кружки."
j.Message = fmt.Sprintf(format, j.Misc.Username)
case cmd[:7] == "tequila" || cmd[:6] == "текила":
format := "/me ставит рядом с %s шот текилы, аккуратно на ребро стопки насаживает дольку лайма и ставит "
format += "кофейное блюдце с горочкой соли."
j.Message = fmt.Sprintf(format, j.Misc.Username)
case cmd[:6] == "whisky" || cmd[:5] == "виски":
format := "/me демонстративно достаёт из морозилки пару кубических камушков, бросает их в толстодонный "
format += "стакан и аккуратно наливает Jack Daniels. Запускает стакан вдоль барной стойки, он "
format += "останавливается около %s."
j.Message = fmt.Sprintf(format, j.Misc.Username)
case cmd[:8] == "absinthe" || cmd[:6] == "абсент":
format := "/me наливает абсент в стопку. Смочив кубик сахара в абсенте кладёт его на дырявую ложечку и "
format += "поджигает. Как только пламя потухнет, %s размешивает оплавившийся кубик в абсенте и подносит "
format += "стопку %s."
j.Message = fmt.Sprintf(format, j.Misc.BotNick, j.Misc.Username)
default:
cmdLen := len(cmd)
cmds := []string{"karma ", "карма "}
@@ -552,6 +577,10 @@ func init() {
TimestampFormat: "2006-01-02 15:04:05",
})
// Запустим наш рандомайзер
rngSeed := rand.NewSource(time.Now().UnixNano())
random = rand.New(rngSeed)
config = ReadConfig()
// no panic, no trace

2
go.mod
View File

@@ -3,6 +3,7 @@ module main
go 1.18
require (
github.com/cockroachdb/errors v1.8.1
github.com/cockroachdb/pebble v0.0.0-20220513193540-b8c9a560bed5
github.com/go-redis/redis/v8 v8.11.5
github.com/hjson/hjson-go v3.1.0+incompatible
@@ -12,7 +13,6 @@ require (
require (
github.com/DataDog/zstd v1.4.5 // indirect
github.com/cespare/xxhash/v2 v2.1.2 // indirect
github.com/cockroachdb/errors v1.8.1 // indirect
github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f // indirect
github.com/cockroachdb/redact v1.0.8 // indirect
github.com/cockroachdb/sentry-go v0.6.1-cockroachdb.2 // indirect