steam-group-crawler/main.py

67 lines
2.4 KiB
Python

from models.group import Group
from models.player import Player
import group_info, player_info
import datetime
# Set the starting group
starting_group = "ilovebloop"
# Get the members of the starting group
print("[*] Getting members of starting group...")
starting_group_details = group_info.get_group_details(starting_group)
starting_group_members = starting_group_details["members"]
# Check if the starting group already exists in the database
if not Group.objects(id64=starting_group_details["id64"]).first():
# If not, create it
Group(
id64=starting_group_details["id64"],
name=starting_group_details["name"],
tag=starting_group_details["tag"],
members=starting_group_members,
link=starting_group,
last_updated=datetime.datetime.now()
).save()
# Get the groups of the starting group members
groups_of_starting_group_members = []
for member in starting_group_members:
print(f"[*] Getting groups for member {member}...")
member_group_links = player_info.get_group_links(member)
# Check if the member already exists in the database
if not Player.objects(id64=member).first():
# If not, create it
Player(
id64=member,
groups=member_group_links,
link=f"https://steamcommunity.com/profiles/{member}",
last_updated=datetime.datetime.now()
).save()
groups_of_starting_group_members.extend(member_group_links)
# Remove duplicates
groups_of_starting_group_members = list(set(groups_of_starting_group_members))
print(groups_of_starting_group_members)
# Update or create each group in the database
for group_link in groups_of_starting_group_members:
print(f"[*] Getting group details for group {group_link}...")
# Check if the group already exists in the database
if not Group.objects(link=group_link).first():
# If not, create it
group_details = group_info.get_group_details(group_link)
Group(
id64=group_details["id64"],
name=group_details["name"],
tag=group_details["tag"],
members=group_details["members"],
link=group_link,
last_updated=datetime.datetime.now()
).save()
print(f"[*] Got group details for group {group_details['name']}")
else:
print(f"[*] Group {group_link} already exists in the database. Skipping...")