garage_project/server/populate_data.py
2023-11-30 16:56:29 -05:00

107 lines
3.0 KiB
Python

import os
import django
from django.db import transaction
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "server.settings")
django.setup()
from server.models import (
Game,
Guild,
Player,
PlayerGameProfile,
WowProfile,
ValorantProfile,
PlayerGuild,
)
def populate_games():
games = ["World of Warcraft", "Valorant"]
for game in games:
g = Game.objects.get_or_create(name=game)[0]
def populate_guilds():
guilds = ["Gamers", "Epic Nerds"]
for guild in guilds:
g = Guild.objects.get_or_create(name=guild)[0]
def populate_players():
players = ["Pixel", "Zman", "Skip"]
for player in players:
p = Player.objects.get_or_create(name=player)[0]
def populate_player_guilds():
player_guilds = [
{"player": "Pixel", "guild": "Gamers"},
{"player": "Zman", "guild": "Gamers"},
{"player": "Skip", "guild": "Epic Nerds"},
]
for profile in player_guilds:
p = PlayerGuild.objects.get_or_create(
player=Player.objects.get(name=profile["player"]),
guild=Guild.objects.get(name=profile["guild"]),
)[0]
def populate_player_game_profiles():
player_game_profiles = [
{"player": "Pixel", "game": "World of Warcraft"},
{"player": "Zman", "game": "World of Warcraft"},
{"player": "Skip", "game": "Valorant"},
{"player": "Skip", "game": "World of Warcraft"},
]
for profile in player_game_profiles:
p = PlayerGameProfile.objects.get_or_create(
player=Player.objects.get(name=profile["player"]),
game=Game.objects.get(name=profile["game"]),
)[0]
def populate_wow_profiles():
wow_profiles = [
{"player": "Pixel", "level": 60, "class_name": "Mage"},
{"player": "Zman", "level": 60, "class_name": "Warrior"},
{"player": "Skip", "level": 60, "class_name": "Rogue"},
]
for profile in wow_profiles:
p = WowProfile.objects.get_or_create(
player_game_profile=PlayerGameProfile.objects.get(
player=Player.objects.get(name=profile["player"]),
game=Game.objects.get(name="World of Warcraft"),
),
level=profile["level"],
class_name=profile["class_name"],
)[0]
def populate_valorant_profiles():
valorant_profiles = [{"player": "Skip", "rank": "Diamond"}]
for profile in valorant_profiles:
p = ValorantProfile.objects.get_or_create(
player_game_profile=PlayerGameProfile.objects.get(
player=Player.objects.get(name=profile["player"]),
game=Game.objects.get(name="Valorant"),
),
rank=profile["rank"],
)[0]
def populate():
with transaction.atomic():
populate_games()
populate_guilds()
populate_players()
populate_player_game_profiles()
populate_wow_profiles()
populate_valorant_profiles()
if __name__ == "__main__":
print("Populating script!")
populate()
print("Population complete!")