Initial v1.1.8 Commits

This commit is contained in:
amurcanov
2026-05-23 22:18:08 +03:00
commit ac86caaf8b
76 changed files with 15693 additions and 0 deletions
+74
View File
@@ -0,0 +1,74 @@
package main
import (
"fmt"
"math/rand"
"strings"
)
var maleFirstNames = []string{
"Александр", "Алексей", "Андрей", "Антон", "Арсений",
"Артур", "Артём", "Богдан", "Валерий", "Василий",
"Виктор", "Владислав", "Глеб", "Григорий", "Даниил",
"Денис", "Дмитрий", "Евгений", "Егор", "Иван",
"Игорь", "Илья", "Кирилл", "Леонид", "Максим",
"Марк", "Матвей", "Михаил", "Никита", "Николай",
"Олег", "Павел", "Пётр", "Роман", "Руслан",
"Сергей", "Станислав", "Тимофей", "Фёдор",
}
var femaleFirstNames = []string{
"Алина", "Алёна", "Анастасия", "Ангелина", "Анна",
"Вера", "Вероника", "Виктория", "Дарья", "Ева",
"Екатерина", "Елена", "Елизавета", "Ирина", "Кира",
"Кристина", "Ксения", "Любовь", "Маргарита", "Марина",
"Мария", "Милана", "Надежда", "Наталья", "Ольга",
"Полина", "Светлана", "София", "Татьяна", "Юлия", "Яна",
}
var lastNames = []string{
"Алексеев", "Андреев", "Антонов", "Баранов", "Белов",
"Белый", "Бельский", "Беляев", "Борисов", "Васильев",
"Великий", "Волков", "Воробьёв", "Григорьев", "Давыдов",
"Егоров", "Жуков", "Зайцев", "Захаров", "Иванов",
"Калинин", "Ковалёв", "Козлов", "Комаров", "Крамской",
"Кузнецов", "Кузьмин", "Лебедев", "Макаров", "Медведев",
"Михайлов", "Морозов", "Никитин", "Николаев", "Новиков",
"Орлов", "Островский", "Павлов", "Петров", "Покровский",
"Попов", "Раевский", "Романов", "Семёнов", "Сергеев",
"Смирнов", "Соколов", "Соловьёв", "Степанов", "Тарасов",
"Титов", "Толстой", "Трубецкой", "Филиппов", "Фролов",
"Фёдоров", "Чайковский", "Черный", "Яковлев",
}
// convertToFemaleSurname handles Russian suffix rules
func convertToFemaleSurname(surname string) string {
if strings.HasSuffix(surname, "ий") || strings.HasSuffix(surname, "ый") || strings.HasSuffix(surname, "ой") {
return surname[:len(surname)-4] + "ая"
}
if strings.HasSuffix(surname, "ов") || strings.HasSuffix(surname, "ев") ||
strings.HasSuffix(surname, "ин") || strings.HasSuffix(surname, "ын") ||
strings.HasSuffix(surname, "ёв") {
return surname + "а"
}
return surname
}
func generateName() string {
isFemale := rand.Intn(2) == 0
var fn string
if isFemale {
fn = femaleFirstNames[rand.Intn(len(femaleFirstNames))]
} else {
fn = maleFirstNames[rand.Intn(len(maleFirstNames))]
}
// 70% chance to have a last name
if rand.Float32() < 0.3 {
return fn
}
ln := lastNames[rand.Intn(len(lastNames))]
if isFemale {
ln = convertToFemaleSurname(ln)
}
return fmt.Sprintf("%s %s", fn, ln)
}