Initial v1.1.8 Commits
This commit is contained in:
@@ -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)
|
||||
}
|
||||
Reference in New Issue
Block a user