Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fba732cc24 | ||
|
|
db379e9491 | ||
|
|
7615daa57e |
2
README
2
README
@@ -17,7 +17,7 @@ aleesa-phrases-go
|
||||
|
||||
Как это собрать?
|
||||
-----------------------------------------------------------------------------------------------------------------------
|
||||
Понадобится golang версии 1.17 или более новая.
|
||||
Понадобится golang версии 1.18 или более новая.
|
||||
|
||||
Сам процесс сборки простой, достаточно запустить:
|
||||
make
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
2
go.mod
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user