TaskNinja / insertUsersIntoDB.py
vanand49d48x's picture
Upload folder using huggingface_hub
5b01a63 verified
import psycopg2
import json
from faker import Faker
import os
from dotenv import load_dotenv
# Load environment variables from .env file
load_dotenv()
# Set up Faker for generating fake user data
fake = Faker()
# Get database connection
def get_database_connection():
database_url = os.getenv("DATABASE_URL")
if not database_url:
raise ValueError("DATABASE_URL is not set in environment variables.")
return psycopg2.connect(database_url)
# Function to insert a single user into the database
def insert_user(name, profile_name, about, skills, rating, trust_score, ninja_level, task_experience, online_status, profile_pic, is_pro):
skills_json = json.dumps(skills)
conn = get_database_connection()
try:
with conn.cursor() as curs:
curs.execute("""
INSERT INTO users (name, profile_name, about, skills, rating, trust_score, ninja_level, task_experience, online_status, profile_pic, is_pro)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
RETURNING user_id
""", (name, profile_name, about, skills_json, rating, trust_score, ninja_level, task_experience, online_status, profile_pic, is_pro))
user_id = curs.fetchone()[0]
conn.commit()
print(f"User added with ID: {user_id}")
except Exception as e:
conn.rollback()
print(f"Error adding user: {e}")
finally:
conn.close()
# Function to generate and insert 5 unique users
def insert_unique_users():
for _ in range(5):
name = fake.name()
profile_name = fake.user_name()
about = fake.text()
skills = [fake.job() for _ in range(5)]
rating = round(min(fake.random.uniform(0, 5.00), 5.00), 2) # Ensure rating is within 0.00 to 5.00
trust_score = round(min(fake.random.uniform(0, 5.00), 5.00), 2) # Ensure trust_score is within 0.00 to 5.00
ninja_level = fake.random.randint(1, 10)
task_experience = fake.random.randint(0, 1000)
online_status = fake.boolean()
profile_pic = fake.image_url()
is_pro = fake.boolean()
insert_user(name, profile_name, about, skills, rating, trust_score, ninja_level, task_experience, online_status, profile_pic, is_pro)
if __name__ == "__main__":
insert_unique_users()