diff --git a/aleesa-phrases-lib.go b/aleesa-phrases-lib.go index 781b58c..ebc6da8 100644 --- a/aleesa-phrases-lib.go +++ b/aleesa-phrases-lib.go @@ -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) diff --git a/aleesa-phrases.go b/aleesa-phrases.go index b44c756..ad8e389 100644 --- a/aleesa-phrases.go +++ b/aleesa-phrases.go @@ -8,6 +8,7 @@ import ( "fmt" "io/fs" "math" + "math/rand" "os" "os/signal" "strconv" @@ -552,6 +553,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