1+ import os
2+ import random
3+ from databunkerpro import DatabunkerproAPI
4+
5+ # Get credentials from environment
6+ api_url = os .getenv ("DATABUNKER_API_URL" , "https://pro.databunker.org" )
7+ api_token = os .getenv ("DATABUNKER_API_TOKEN" , "" )
8+ tenant_name = os .getenv ("DATABUNKER_TENANT_NAME" , "" )
9+
10+ def generate_random_user_data ():
11+ """Generate random user data with 120 fields."""
12+ # Base fields that are always present
13+ base_fields = {
14+ "email" : f"user{ random .randint (1000 , 999999 )} @example.com" ,
15+ "name" : f"User { random .randint (1000 , 999999 )} " ,
16+ "phone" : f"+1{ random .randint (1000000000 , 9999999999 )} " ,
17+ }
18+
19+ # Additional fields to reach 120 fields
20+ additional_fields = {
21+ f"field_{ i } " : f"value_{ random .randint (1000 , 999999 )} " for i in range (117 )
22+ }
23+
24+ return {** base_fields , ** additional_fields }
25+
26+ def create_bulk_users (api , num_batches = 100 , users_per_batch = 100 ):
27+ """Create multiple batches of users and save tokens to results file."""
28+ all_tokens = []
29+
30+ for batch in range (num_batches ):
31+ print (f"Processing batch { batch + 1 } /{ num_batches } " )
32+
33+ # Generate user data for this batch
34+ users_data = [
35+ {"profile" : generate_random_user_data ()}
36+ for _ in range (users_per_batch )
37+ ]
38+
39+ # Create users in bulk
40+ result = api .create_users_bulk (users_data )
41+
42+ if result .get ("status" ) == "ok" :
43+ # Extract 10 random tokens from this batch
44+ created_users = result .get ("created" , [])
45+ if created_users :
46+ batch_tokens = random .sample (
47+ [user ["token" ] for user in created_users ],
48+ min (10 , len (created_users ))
49+ )
50+ all_tokens .extend (batch_tokens )
51+
52+ # Save tokens to file after each batch, one token per line
53+ with open ("user_tokens.txt" , "w" ) as f :
54+ f .write ("\n " .join (all_tokens ))
55+
56+ print (f"Successfully created { len (created_users )} users in batch { batch + 1 } " )
57+ print (f"Saved { len (batch_tokens )} tokens to user_tokens.txt" )
58+ else :
59+ print (f"Error in batch { batch + 1 } : { result .get ('message' , 'Unknown error' )} " )
60+
61+ return all_tokens
62+
63+ def main ():
64+
65+ if not all ([api_token , tenant_name ]):
66+ print ("Error: DATABUNKER_API_TOKEN and DATABUNKER_TENANT_NAME environment variables must be set" )
67+ return
68+
69+ # Initialize API client
70+ api = DatabunkerproAPI (api_url , api_token , tenant_name )
71+
72+ # Create users in bulk
73+ tokens = create_bulk_users (api )
74+ print (f"\n Total tokens saved: { len (tokens )} " )
75+
76+ if __name__ == "__main__" :
77+ main ()
0 commit comments