22import json
33import os
44import random
5- import string
65
76import Geohash
87import lorem
9- import names
108from PyMatcha .models .tag import Tag
119from PyMatcha .models .user import get_user
1210from PyMatcha .models .user import User
1311from PyMatcha .utils .errors import ConflictError
12+ from randomuser import RandomUser
1413
1514
1615def gen_datetime (min_year : int = 1900 , max_year : int = datetime .datetime .now ().year ) -> datetime .datetime :
@@ -25,51 +24,38 @@ def populate_users(amount=150, drop_user_table=False):
2524 if drop_user_table :
2625 User .drop_table ()
2726 User .create_table ()
28- for i in range (0 , amount ):
27+ users = RandomUser .generate_users (amount = amount )
28+ for user in users :
2929 gender = random .choice (["male" , "female" , "other" ])
30-
30+ if gender != "other" :
31+ if gender == user .get_gender ():
32+ pass
33+ else :
34+ gender = user .get_gender ()
3135 orientation = random .choice (["heterosexual" , "homosexual" , "bisexual" , "other" ])
3236
33- first_name = names .get_first_name (gender = gender if gender != "other" else None )
34-
35- last_name = names .get_last_name ()
36-
37- password_size = random .randint (6 , 14 )
38- chars = string .printable
39- password = "" .join (random .choice (chars ) for i in range (password_size ))
40-
4137 bio = lorem .paragraph ()
4238
43- birthdate = gen_datetime (min_year = 1960 , max_year = datetime .datetime .now ().year - 18 )
44-
45- lat = random .random () * 2.0
46- lng = random .random () * 2.0
47- geohash = Geohash .encode (lat , lng )
39+ coords = user .get_coordinates ()
40+ geohash = Geohash .encode (float (coords ["latitude" ]), float (coords ["longitude" ]))
4841
4942 date_joined = gen_datetime (min_year = 2017 , max_year = datetime .datetime .now ().year )
5043
5144 date_lastseen = gen_datetime (min_year = 2017 , max_year = datetime .datetime .now ().year )
45+ username = user .get_username ()
5246
53- middle_mail = random .choice (["." , "" , "_" ])
54- number = str (random .randint (0 , 999 ))
55- end_mail = random .choice (["" , number ])
56- email = first_name + middle_mail + last_name + end_mail + "@gmail.com"
57-
58- end_of_username = random .choice (["" , number , last_name ])
59-
60- username = first_name + end_of_username
61-
47+ birthdate = datetime .datetime .strptime (user .get_dob (), "%Y-%m-%dT%H:%M:%S.%fZ" ).date ()
6248 try :
6349 User .create (
64- first_name = first_name ,
65- last_name = last_name ,
66- email = email . lower (),
50+ first_name = user . get_first_name () ,
51+ last_name = user . get_last_name () ,
52+ email = user . get_email (),
6753 username = username ,
68- password = password ,
54+ password = user . get_password () ,
6955 bio = bio ,
7056 gender = gender ,
7157 orientation = orientation ,
72- birthdate = birthdate . date () ,
58+ birthdate = birthdate ,
7359 geohash = geohash ,
7460 heat_score = 0 ,
7561 is_online = random .choice ([True , False ]),
0 commit comments