[FakePersonGenerator] - модуль для создания случайно несуществующей личности

Делитесь модулями
  • @FastSpace Спасибо за модуль! Давно хотел что - то подобное, постоянно приходится брать информацию из сторонних сайтов и бывает что из за них скрипт стопориться. Еще бы адрес и тогда будет вообще шик. На счет тех настроек что уже есть хотел бы сказать пару слов.

    В настройке для юзернейма есть подсказка что не все сайты хорошо воспринимают спецсимволы, но почему - то нет возможности сгенерировать его вообще без спецсимвола.
    В пароле наоборот, нет возможности добавить спецсимвол. Сейчас довольно часто их требуют и было бы отлично добавить поле с ними (опциональное) и так же как с датой указывать куда добавить, в начало, конец, середину или рандом.

  • @spacerange said in [FakePersonGenerator] - модуль для создания случайно несуществующей личности:

    @FastSpace Спасибо за модуль! Давно хотел что - то подобное, постоянно приходится брать информацию из сторонних сайтов и бывает что из за них скрипт стопориться. Еще бы адрес и тогда будет вообще шик. На счет тех настроек что уже есть хотел бы сказать пару слов.

    В настройке для юзернейма есть подсказка что не все сайты хорошо воспринимают спецсимволы, но почему - то нет возможности сгенерировать его вообще без спецсимвола.

    Не все сайты целиком поддерживает это все символы вместе взятые, например тире поддерживают почти все известные мне формы регистрации, но я добавлю эту логику в следующей версии модуля.

    В пароле наоборот, нет возможности добавить спецсимвол. Сейчас довольно часто их требуют и было бы отлично добавить поле с ними (опциональное) и так же как с датой указывать куда добавить, в начало, конец, середину или рандом.

    Тоже сделаю, но тогда пароль будет не читабельный, только если опционально.

  • @FastSpace, простая натуральная генерация случайной даты рождения, age - нужный возраст, randomDate - итоговая дата

    var age = rand(18, 45);
    var dayMilSec = 24 * 60 * 60 * 1000;
    var tempDate = new Date();
    var nowYear = tempDate.getFullYear();
    var maxYear = nowYear - age;
    var minYear = maxYear - 1;
    var minMilSec = tempDate.setFullYear(minYear) + dayMilSec;
    var maxMilSec = tempDate.setFullYear(maxYear) - dayMilSec;
    var randomDate = new Date(rand(minMilSec, maxMilSec));
    

    Не нужно парится с количеством дней в месяце:
    c4007e3a-c2f2-4707-9ec9-ad0596b91f5d-image.png
    И с тем был ли уже день рожденья в этом году:
    97f320b9-e489-4525-8ec6-04631fafe723-image.png

  • @GhostZ Пограничный случай с датой рождения равной minYear даст лишний год, надо день добавить.

  • @UserTrue, исправил

  • Подожду пару билдов и можно качать)

  • Вариант с возможным днем рождения в текущий день и соблюдением возраста, minAge - минимальный возраст, maxAge - максимальный возраст, age - итоговый возраст, birthDate - итоговая дата рождения

    var minAge = 18;
    var maxAge = 45;
    var dayMilSec = 24 * 60 * 60 * 1000;
    var tempDate = new Date();
    var nowYear = tempDate.getFullYear();
    var minYear = nowYear - maxAge - 1;
    var maxYear = nowYear - minAge;
    var minMilSec = tempDate.setFullYear(minYear) + dayMilSec;
    var maxMilSec = tempDate.setFullYear(maxYear) - dayMilSec;
    var birthDate = new Date(rand(minMilSec, maxMilSec));
    var age = nowYear - birthDate.getFullYear();
    var monthDiff = tempDate.getMonth() - birthDate.getMonth();
    if(monthDiff < 0 || (monthDiff === 0 && tempDate.getDate() < birthDate.getDate())){
        age--;
    };
    
  • @GhostZ спасибо, я изучу. Мой вариант тоже работает, хоть с лишними действиями.

    А тем временем....
    Накидали уже в тг хотелок тоже, то ники передачу как основу генерки, то пароль из части ника, то Японию добавь...

  • @FastSpace, тут дело не только в наличии лишних действий, например текущая реализация не позволяет генерировать день рожденья 29 февраля, а такое возможно, так же на максимальный возраст шанс меньше чем на другие, и есть шанс получить возраст меньше указанного

    debf6c79-0403-4535-af08-9af45f8f5eee-image.png
    95d1bec5-1f65-4d5c-be6e-21efc7d34615-image.png

  • @GhostZ said in [FakePersonGenerator] - модуль для создания случайно несуществующей личности:

    @FastSpace, например текущая реализация не позволяет генерировать день рожденья 29 февраля

    Невелика потеря

    @FastSpace, так же на максимальный возраст шанс меньше чем на другие.

    Затачивал в основном на диапазон, поправлю думаю тож

    @FastSpace, есть шанс получить возраст меньше указанного

    Это я поправлю, но так тоже мало кто страдает фигней. Сгенерить только 18, я такое фиксил в нике и пароле, на возраст пофигу.

  • Подъехал патч 1.1:

    • Теперь возраст и дата рождения генерируется по совету @GhostZ. Исправлен баг когда минимальное и максимальное значение могли дать меньше на год возраст. Пришлось доделать его решение, чтоб выдало как задумано в модуле.
    • Теперь можно убирать спец. символы из логина. Внимание! Не рекомендую этого делать, лучше оставить хотя бы 1 такой символ. Логика генерации никнейма хорошо заточена и под такие символы. Например никнеймы TheCrazyMen_92.
    • Новая фича: Передать собственные (кастомные) никнеймы в модуль и на основе их создать никнейм. Взять их можно например из слитой базы данных почт или спарсить даже с этого форума))) Респект за идею человеку из телеграма, я всё не очень хотел грузить миллионы ников в массив. Также это решает проблемы, когда например было сгенерировано имя и фамилия "Виктор Наумов", а никнейм nikita92. У меня нет желания перебирать массив и искать таких "Никит". Поэтому можете сделать теперь это сами в кастомном никнейме.
    • Новая страна для имён и фамилий - Япония.

    Обновил исходник и модуль.

  • Great work. Was long waiting for such a module. Thank you very much @FastSpace

  • Версия 1.2

    • Username с датой рождения уменьшил шанс генерации.
    • Правки текста.
    • Создал тему для буржуев.

    Обновил модуль и исходник. Потом руки дойдут выдерну отсюда https://github.com/faker-js/faker остальные данные.

  • Было бы вообще чудесно, если б в BAS и модули автоматом обновляло, чтоб не перекачивать каждый раз.

  • Спасибо за модуль. Было бы не плохо если добавили возможность назначать тип поля expression

  • @Lamar для себя могли бы подправить модуль сами под свои хотелки.

  • @Lamar в каком действии и какое поле?

  • @tet-vivi Для себя я сделал

  • @FastSpace Во всех действиях. Пример при получении никнейма, по сути есть возможность указать год рождения 1 раз при написании скрипта. Либо юзать доп переменную перед действием
    Screenshot_1.png

  • @Lamar Годная идея, но всех не получится. Сделаю там где это возможно.