From 54421f8fa3d556001a6ebc5b68540fbc5ccb9da8 Mon Sep 17 00:00:00 2001 From: extreme4all <> Date: Tue, 2 Jan 2024 21:46:10 +0100 Subject: [PATCH] initial setup --- kafka_setup/generate_example_data.py | 26 +- kafka_setup/kafka_data/kafka_data.zip | Bin 91545 -> 0 bytes .../kafka_data/kafka_data/kafka_data.json | 877 ++++++++++++++++++ .../kafka_data/kafka_data/kafka_data.zip | Bin 91681 -> 0 bytes kafka_setup/setup_kafka.py | 4 +- src/app/kafka.py | 102 ++ src/app/schemas/report.py | 31 + src/database/models/highscores.py | 107 --- src/main.py | 134 +-- tests/test_data.py | 62 ++ 10 files changed, 1102 insertions(+), 241 deletions(-) delete mode 100644 kafka_setup/kafka_data/kafka_data.zip create mode 100644 kafka_setup/kafka_data/kafka_data/kafka_data.json delete mode 100644 kafka_setup/kafka_data/kafka_data/kafka_data.zip create mode 100644 src/app/kafka.py create mode 100644 src/app/schemas/report.py delete mode 100644 src/database/models/highscores.py create mode 100644 tests/test_data.py diff --git a/kafka_setup/generate_example_data.py b/kafka_setup/generate_example_data.py index 1977ff7..539aa50 100644 --- a/kafka_setup/generate_example_data.py +++ b/kafka_setup/generate_example_data.py @@ -1,5 +1,6 @@ import asyncio import json +import uuid from asyncio import Queue from aiokafka import AIOKafkaConsumer @@ -39,26 +40,22 @@ def save(data, file_name): # Asynchronous function to generate example data from the queue and save it as a JSON file async def generate_example_data(queue: Queue): MAX_LEN = 1000 - count = 0 + count, empty_count = 0, 0 data = [] while True: + if queue.empty(): + await asyncio.sleep(1) + empty_count += 1 + if empty_count > 10: + break + continue + item: dict = await queue.get() + print(item) if item is None or count >= MAX_LEN: break - player = item.get("player") - highscore = item.get("hiscores") - - if player: - # Add an 'id' to the player dictionary - item["player"]["id"] = count - item["player"]["name"] = f"Player{count}" - - if highscore: - # Add 'Player_id' to the hiscores dictionary - item["hiscores"]["Player_id"] = count - data.append(item) if count % 100 == 0: @@ -73,7 +70,8 @@ async def generate_example_data(queue: Queue): # Asynchronous main function coordinating the whole process async def main(): receive_queue = Queue(maxsize=100) - consumer = await kafka_consumer(topic="scraper", group="test") + print("group", f"test-{uuid.uuid4()}") + consumer = await kafka_consumer(topic="report", group=f"test-{uuid.uuid4()}") asyncio.create_task( receive_messages(consumer=consumer, receive_queue=receive_queue) diff --git a/kafka_setup/kafka_data/kafka_data.zip b/kafka_setup/kafka_data/kafka_data.zip deleted file mode 100644 index 7f9dac762c9de7d796e6968e5a82508f5a19b455..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91545 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 mw&M% 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�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 z000000096X000000001MVPQOZ*EXa1qJ{B000310RTM!002g10RR91 D*ntY_ diff --git a/kafka_setup/kafka_data/kafka_data/kafka_data.json b/kafka_setup/kafka_data/kafka_data/kafka_data.json new file mode 100644 index 0000000..c9d763b --- /dev/null +++ b/kafka_setup/kafka_data/kafka_data/kafka_data.json @@ -0,0 +1,877 @@ +[ + { + "reporter": "Cyborger1", + "reported": "Shpinki", + "region_id": 14652, + "x_coord": 3682, + "y_coord": 3851, + "z_coord": 0, + "ts": 1704223737, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 13592, + "equip_amulet_id": null, + "equip_torso_id": 13596, + "equip_legs_id": 13598, + "equip_boots_id": 13602, + "equip_cape_id": 13594, + "equip_hands_id": 13600, + "equip_weapon_id": 1381, + "equip_shield_id": null + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "Loveskippy", + "region_id": 14652, + "x_coord": 3685, + "y_coord": 3870, + "z_coord": 0, + "ts": 1704223743, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 27446, + "equip_amulet_id": 10132, + "equip_torso_id": 27452, + "equip_legs_id": 27455, + "equip_boots_id": 27461, + "equip_cape_id": 27449, + "equip_hands_id": 27458, + "equip_weapon_id": 7409, + "equip_shield_id": 13660 + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "Loveskippy", + "region_id": 14652, + "x_coord": 3666, + "y_coord": 3866, + "z_coord": 0, + "ts": 1704223777, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 27446, + "equip_amulet_id": 10132, + "equip_torso_id": 27452, + "equip_legs_id": 27455, + "equip_boots_id": 27461, + "equip_cape_id": 27449, + "equip_hands_id": 27458, + "equip_weapon_id": 7409, + "equip_shield_id": 13660 + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "Spooned Tuna", + "region_id": 4922, + "x_coord": 1253, + "y_coord": 3741, + "z_coord": 0, + "ts": 1704224138, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": null, + "equip_amulet_id": null, + "equip_torso_id": null, + "equip_legs_id": null, + "equip_boots_id": null, + "equip_cape_id": null, + "equip_hands_id": null, + "equip_weapon_id": null, + "equip_shield_id": null + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "IM Hale", + "region_id": 4922, + "x_coord": 1249, + "y_coord": 3758, + "z_coord": 0, + "ts": 1704224088, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": null, + "equip_amulet_id": null, + "equip_torso_id": null, + "equip_legs_id": null, + "equip_boots_id": null, + "equip_cape_id": 9810, + "equip_hands_id": null, + "equip_weapon_id": null, + "equip_shield_id": null + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "NewdogsNtown", + "region_id": 12850, + "x_coord": 3232, + "y_coord": 3211, + "z_coord": 0, + "ts": 1704224293, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": null, + "equip_amulet_id": 1710, + "equip_torso_id": null, + "equip_legs_id": null, + "equip_boots_id": null, + "equip_cape_id": null, + "equip_hands_id": null, + "equip_weapon_id": null, + "equip_shield_id": null + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "Smooth Biggs", + "region_id": 12851, + "x_coord": 3214, + "y_coord": 3274, + "z_coord": 0, + "ts": 1704224470, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 1167, + "equip_amulet_id": 1725, + "equip_torso_id": 1135, + "equip_legs_id": 1099, + "equip_boots_id": 4097, + "equip_cape_id": 10498, + "equip_hands_id": 1065, + "equip_weapon_id": 8880, + "equip_shield_id": 4156 + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "SimpinShrimp", + "region_id": 12595, + "x_coord": 3180, + "y_coord": 3288, + "z_coord": 0, + "ts": 1704225257, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 1147, + "equip_amulet_id": 552, + "equip_torso_id": 1135, + "equip_legs_id": 1099, + "equip_boots_id": 1061, + "equip_cape_id": 10499, + "equip_hands_id": 1065, + "equip_weapon_id": 853, + "equip_shield_id": null + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "Shpinki", + "region_id": 14651, + "x_coord": 3682, + "y_coord": 3837, + "z_coord": 0, + "ts": 1704223741, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 13592, + "equip_amulet_id": null, + "equip_torso_id": 13596, + "equip_legs_id": 13598, + "equip_boots_id": 13602, + "equip_cape_id": 13594, + "equip_hands_id": 13600, + "equip_weapon_id": 1381, + "equip_shield_id": null + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "Enkanooda", + "region_id": 14652, + "x_coord": 3687, + "y_coord": 3861, + "z_coord": 0, + "ts": 1704223741, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 25071, + "equip_amulet_id": null, + "equip_torso_id": 25077, + "equip_legs_id": 25080, + "equip_boots_id": 25086, + "equip_cape_id": 13123, + "equip_hands_id": 25083, + "equip_weapon_id": 7409, + "equip_shield_id": null + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "GIM Merkthon", + "region_id": 4922, + "x_coord": 1253, + "y_coord": 3741, + "z_coord": 0, + "ts": 1704223832, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 13592, + "equip_amulet_id": 1704, + "equip_torso_id": 13596, + "equip_legs_id": 13598, + "equip_boots_id": 13602, + "equip_cape_id": 13594, + "equip_hands_id": 13600, + "equip_weapon_id": 772, + "equip_shield_id": 12954 + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "Spooned Tuna", + "region_id": 4922, + "x_coord": 1249, + "y_coord": 3739, + "z_coord": 0, + "ts": 1704224027, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": null, + "equip_amulet_id": null, + "equip_torso_id": null, + "equip_legs_id": null, + "equip_boots_id": null, + "equip_cape_id": null, + "equip_hands_id": null, + "equip_weapon_id": null, + "equip_shield_id": null + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "GIM Ribet", + "region_id": 4922, + "x_coord": 1248, + "y_coord": 3728, + "z_coord": 0, + "ts": 1704224027, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 11851, + "equip_amulet_id": null, + "equip_torso_id": 11855, + "equip_legs_id": 11857, + "equip_boots_id": 11861, + "equip_cape_id": 9810, + "equip_hands_id": 11859, + "equip_weapon_id": null, + "equip_shield_id": null + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "Shpinki", + "region_id": 4922, + "x_coord": 1247, + "y_coord": 3727, + "z_coord": 0, + "ts": 1704224027, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 13592, + "equip_amulet_id": null, + "equip_torso_id": 13596, + "equip_legs_id": 13598, + "equip_boots_id": 13602, + "equip_cape_id": 13594, + "equip_hands_id": 13600, + "equip_weapon_id": 1381, + "equip_shield_id": null + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "TittyJugs", + "region_id": 4922, + "x_coord": 1253, + "y_coord": 3741, + "z_coord": 0, + "ts": 1704224064, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 11851, + "equip_amulet_id": 11968, + "equip_torso_id": 11855, + "equip_legs_id": 11857, + "equip_boots_id": 11861, + "equip_cape_id": 11853, + "equip_hands_id": 11859, + "equip_weapon_id": 7409, + "equip_shield_id": 13660 + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "Enkanooda", + "region_id": 4922, + "x_coord": 1253, + "y_coord": 3741, + "z_coord": 0, + "ts": 1704224138, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 25071, + "equip_amulet_id": null, + "equip_torso_id": 25077, + "equip_legs_id": 25080, + "equip_boots_id": 25086, + "equip_cape_id": 13123, + "equip_hands_id": 25083, + "equip_weapon_id": 7409, + "equip_shield_id": null + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "V1BER", + "region_id": 4922, + "x_coord": 1249, + "y_coord": 3758, + "z_coord": 0, + "ts": 1704224088, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 11865, + "equip_amulet_id": 19547, + "equip_torso_id": 27238, + "equip_legs_id": 27241, + "equip_boots_id": 13237, + "equip_cape_id": 22109, + "equip_hands_id": 7462, + "equip_weapon_id": 20997, + "equip_shield_id": null + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "TheTavar", + "region_id": 4922, + "x_coord": 1253, + "y_coord": 3741, + "z_coord": 0, + "ts": 1704224138, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 13580, + "equip_amulet_id": null, + "equip_torso_id": 13584, + "equip_legs_id": 13586, + "equip_boots_id": 13590, + "equip_cape_id": 13582, + "equip_hands_id": 13588, + "equip_weapon_id": 20730, + "equip_shield_id": null + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "ToxicDigiRat", + "region_id": 12850, + "x_coord": 3225, + "y_coord": 3215, + "z_coord": 0, + "ts": 1704224293, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": null, + "equip_amulet_id": null, + "equip_torso_id": null, + "equip_legs_id": null, + "equip_boots_id": null, + "equip_cape_id": null, + "equip_hands_id": null, + "equip_weapon_id": null, + "equip_shield_id": null + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "NineBoots", + "region_id": 12850, + "x_coord": 3222, + "y_coord": 3219, + "z_coord": 0, + "ts": 1704224293, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 1017, + "equip_amulet_id": 1478, + "equip_torso_id": 581, + "equip_legs_id": 428, + "equip_boots_id": 89, + "equip_cape_id": 11853, + "equip_hands_id": 1059, + "equip_weapon_id": 1387, + "equip_shield_id": null + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "Kendra Thoma", + "region_id": 12850, + "x_coord": 3220, + "y_coord": 3262, + "z_coord": 0, + "ts": 1704224310, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": null, + "equip_amulet_id": null, + "equip_torso_id": null, + "equip_legs_id": null, + "equip_boots_id": null, + "equip_cape_id": null, + "equip_hands_id": null, + "equip_weapon_id": null, + "equip_shield_id": null + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "Theboss12237", + "region_id": 12595, + "x_coord": 3180, + "y_coord": 3296, + "z_coord": 0, + "ts": 1704224432, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": null, + "equip_amulet_id": 1706, + "equip_torso_id": null, + "equip_legs_id": null, + "equip_boots_id": null, + "equip_cape_id": null, + "equip_hands_id": 11972, + "equip_weapon_id": 6317, + "equip_shield_id": null + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "Proper Bot", + "region_id": 4922, + "x_coord": 1253, + "y_coord": 3741, + "z_coord": 0, + "ts": 1704223832, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 13647, + "equip_amulet_id": 11111, + "equip_torso_id": 13643, + "equip_legs_id": 13641, + "equip_boots_id": 13645, + "equip_cape_id": 9799, + "equip_hands_id": 11859, + "equip_weapon_id": 9084, + "equip_shield_id": 13660 + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "DonaldDegen", + "region_id": 4922, + "x_coord": 1253, + "y_coord": 3741, + "z_coord": 0, + "ts": 1704224027, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 10828, + "equip_amulet_id": 1725, + "equip_torso_id": 1127, + "equip_legs_id": 1079, + "equip_boots_id": 3105, + "equip_cape_id": 13121, + "equip_hands_id": 7462, + "equip_weapon_id": 4587, + "equip_shield_id": 12954 + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "GIM Waifu", + "region_id": 4922, + "x_coord": 1253, + "y_coord": 3741, + "z_coord": 0, + "ts": 1704224138, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 10828, + "equip_amulet_id": 1704, + "equip_torso_id": 2503, + "equip_legs_id": 2497, + "equip_boots_id": 3105, + "equip_cape_id": 6570, + "equip_hands_id": 7462, + "equip_weapon_id": 4587, + "equip_shield_id": 12954 + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "GIM Ribet", + "region_id": 4922, + "x_coord": 1247, + "y_coord": 3737, + "z_coord": 0, + "ts": 1704224146, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 11851, + "equip_amulet_id": null, + "equip_torso_id": 11855, + "equip_legs_id": 11857, + "equip_boots_id": 11861, + "equip_cape_id": 9810, + "equip_hands_id": 11859, + "equip_weapon_id": null, + "equip_shield_id": null + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "Goated12722", + "region_id": 12595, + "x_coord": 3183, + "y_coord": 3296, + "z_coord": 0, + "ts": 1704224519, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": null, + "equip_amulet_id": 1706, + "equip_torso_id": null, + "equip_legs_id": null, + "equip_boots_id": null, + "equip_cape_id": null, + "equip_hands_id": 11972, + "equip_weapon_id": 6317, + "equip_shield_id": null + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "Theboss12237", + "region_id": 12595, + "x_coord": 3183, + "y_coord": 3292, + "z_coord": 0, + "ts": 1704224746, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": null, + "equip_amulet_id": 1706, + "equip_torso_id": null, + "equip_legs_id": null, + "equip_boots_id": null, + "equip_cape_id": null, + "equip_hands_id": 11972, + "equip_weapon_id": 6317, + "equip_shield_id": null + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "SnowGrind", + "region_id": 12851, + "x_coord": 3209, + "y_coord": 3278, + "z_coord": 0, + "ts": 1704224770, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 11865, + "equip_amulet_id": 1725, + "equip_torso_id": 544, + "equip_legs_id": 542, + "equip_boots_id": 11840, + "equip_cape_id": 22114, + "equip_hands_id": 22981, + "equip_weapon_id": 27660, + "equip_shield_id": 12954 + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "GIM Waifu", + "region_id": 4922, + "x_coord": 1253, + "y_coord": 3741, + "z_coord": 0, + "ts": 1704224027, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 10828, + "equip_amulet_id": 1704, + "equip_torso_id": 2503, + "equip_legs_id": 2497, + "equip_boots_id": 3105, + "equip_cape_id": 6570, + "equip_hands_id": 7462, + "equip_weapon_id": 4587, + "equip_shield_id": 12954 + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "GIM Quark", + "region_id": 11571, + "x_coord": 2936, + "y_coord": 3281, + "z_coord": 0, + "ts": 1704224003, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": null, + "equip_amulet_id": null, + "equip_torso_id": null, + "equip_legs_id": null, + "equip_boots_id": null, + "equip_cape_id": null, + "equip_hands_id": null, + "equip_weapon_id": null, + "equip_shield_id": null + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "bearpoof", + "region_id": 11571, + "x_coord": 2931, + "y_coord": 3286, + "z_coord": 0, + "ts": 1704224024, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 24872, + "equip_amulet_id": 13393, + "equip_torso_id": 24874, + "equip_legs_id": 24876, + "equip_boots_id": 24878, + "equip_cape_id": 9781, + "equip_hands_id": 13676, + "equip_weapon_id": 24880, + "equip_shield_id": null + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "bigd4cilly", + "region_id": 12595, + "x_coord": 3190, + "y_coord": 3274, + "z_coord": 0, + "ts": 1704224319, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 1155, + "equip_amulet_id": null, + "equip_torso_id": 1103, + "equip_legs_id": null, + "equip_boots_id": 1061, + "equip_cape_id": null, + "equip_hands_id": null, + "equip_weapon_id": 1265, + "equip_shield_id": 1189 + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "Goated12722", + "region_id": 12595, + "x_coord": 3183, + "y_coord": 3300, + "z_coord": 0, + "ts": 1704224751, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": null, + "equip_amulet_id": 1706, + "equip_torso_id": null, + "equip_legs_id": null, + "equip_boots_id": null, + "equip_cape_id": null, + "equip_hands_id": 11972, + "equip_weapon_id": 6317, + "equip_shield_id": null + }, + "equip_ge_value": 0 + }, + { + "reporter": "Cyborger1", + "reported": "Theboss12237", + "region_id": 12595, + "x_coord": 3174, + "y_coord": 3293, + "z_coord": 0, + "ts": 1704225178, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": null, + "equip_amulet_id": 1706, + "equip_torso_id": null, + "equip_legs_id": null, + "equip_boots_id": null, + "equip_cape_id": null, + "equip_hands_id": 11972, + "equip_weapon_id": 6317, + "equip_shield_id": null + }, + "equip_ge_value": 0 + } +] \ No newline at end of file diff --git a/kafka_setup/kafka_data/kafka_data/kafka_data.zip b/kafka_setup/kafka_data/kafka_data/kafka_data.zip deleted file mode 100644 index 59074185bdef3241f36c66885622baf107ca7e05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91681 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 z 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μ<^_Fc4^(#5k7BezyJ3=b&8Q0KJ$5Oo~;R6>(V=v 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 tuple[float, int]: + # Calculate the time elapsed since the function started + delta_time = time.time() - start_time + + # Check if the specified interval has not elapsed yet + if delta_time < interval: + # Return the original start time and the current counter value + return start_time, counter + + # Calculate the processing speed (messages per second) + speed = counter / delta_time + + # Log the processing speed and relevant information + log_message = ( + f"{topic=}, qsize={_queue.qsize()}, " + f"processed {counter} in {delta_time:.2f} seconds, {speed:.2f} msg/sec" + ) + logger.info(log_message) + + # Return the current time and reset the counter to zero + return time.time(), 0 + + +async def kafka_consumer(topic: str, group: str, bootstrap_servers: list[str]): + consumer = AIOKafkaConsumer( + topic, + bootstrap_servers=bootstrap_servers, + group_id=group, + value_deserializer=lambda x: json.loads(x.decode("utf-8")), + auto_offset_reset="earliest", + ) + await consumer.start() + return consumer + + +async def kafka_producer(bootstrap_servers: list[str]): + producer = AIOKafkaProducer( + bootstrap_servers=bootstrap_servers, + value_serializer=lambda v: json.dumps(v).encode(), + acks="all", + ) + await producer.start() + return producer + + +async def receive_messages( + consumer: AIOKafkaConsumer, + receive_queue: Queue, + shutdown_event: Event, + batch_size: int = 200, +): + while not shutdown_event.is_set(): + batch = await consumer.getmany(timeout_ms=1000, max_records=batch_size) + for tp, messages in batch.items(): + logger.info(f"Partition {tp}: {len(messages)} messages") + await asyncio.gather(*[receive_queue.put(m.value) for m in messages]) + logger.info("done") + await consumer.commit() + + logger.info("shutdown") + + +async def send_messages( + topic: str, + producer: AIOKafkaProducer, + send_queue: Queue, + shutdown_event: Event, +): + start_time = time.time() + messages_sent = 0 + + while not shutdown_event.is_set(): + start_time, messages_sent = log_speed( + counter=messages_sent, + start_time=start_time, + _queue=send_queue, + topic=topic, + ) + if send_queue.empty(): + await asyncio.sleep(1) + continue + + message = await send_queue.get() + await producer.send(topic, value=message) + send_queue.task_done() + + messages_sent += 1 + + logger.info("shutdown") diff --git a/src/app/schemas/report.py b/src/app/schemas/report.py new file mode 100644 index 0000000..a48ed2f --- /dev/null +++ b/src/app/schemas/report.py @@ -0,0 +1,31 @@ +from typing import Optional + +from pydantic import BaseModel + + +class Equipment(BaseModel): + equip_head_id: Optional[int] + equip_amulet_id: Optional[int] + equip_torso_id: Optional[int] + equip_legs_id: Optional[int] + equip_boots_id: Optional[int] + equip_cape_id: Optional[int] + equip_hands_id: Optional[int] + equip_weapon_id: Optional[int] + equip_shield_id: Optional[int] + + +class Report(BaseModel): + reporter: str + reported: str + region_id: int + x_coord: int + y_coord: int + z_coord: int + ts: int + manual_detect: int + on_members_world: int + on_pvp_world: int + world_number: int + equipment: Equipment + equip_ge_value: int diff --git a/src/database/models/highscores.py b/src/database/models/highscores.py deleted file mode 100644 index ea30503..0000000 --- a/src/database/models/highscores.py +++ /dev/null @@ -1,107 +0,0 @@ -from sqlalchemy import BigInteger, Column, Date, DateTime, Integer, func - -from database.database import Base - - -class PlayerHiscoreData(Base): - __tablename__ = "playerHiscoreData" - - id = Column(Integer, primary_key=True, autoincrement=True) - timestamp = Column(DateTime, nullable=False, server_default=func.now()) - ts_date = Column(Date, nullable=True) - Player_id = Column(Integer, nullable=False) - total = Column(BigInteger, default=0) - attack = Column(Integer, default=0) - defence = Column(Integer, default=0) - strength = Column(Integer, default=0) - hitpoints = Column(Integer, default=0) - ranged = Column(Integer, default=0) - prayer = Column(Integer, default=0) - magic = Column(Integer, default=0) - cooking = Column(Integer, default=0) - woodcutting = Column(Integer, default=0) - fletching = Column(Integer, default=0) - fishing = Column(Integer, default=0) - firemaking = Column(Integer, default=0) - crafting = Column(Integer, default=0) - smithing = Column(Integer, default=0) - mining = Column(Integer, default=0) - herblore = Column(Integer, default=0) - agility = Column(Integer, default=0) - thieving = Column(Integer, default=0) - slayer = Column(Integer, default=0) - farming = Column(Integer, default=0) - runecraft = Column(Integer, default=0) - hunter = Column(Integer, default=0) - construction = Column(Integer, default=0) - league = Column(Integer, default=0) - bounty_hunter_hunter = Column(Integer, default=0) - bounty_hunter_rogue = Column(Integer, default=0) - cs_all = Column(Integer, default=0) - cs_beginner = Column(Integer, default=0) - cs_easy = Column(Integer, default=0) - cs_medium = Column(Integer, default=0) - cs_hard = Column(Integer, default=0) - cs_elite = Column(Integer, default=0) - cs_master = Column(Integer, default=0) - lms_rank = Column(Integer, default=0) - soul_wars_zeal = Column(Integer, default=0) - abyssal_sire = Column(Integer, default=0) - alchemical_hydra = Column(Integer, default=0) - barrows_chests = Column(Integer, default=0) - bryophyta = Column(Integer, default=0) - callisto = Column(Integer, default=0) - cerberus = Column(Integer, default=0) - chambers_of_xeric = Column(Integer, default=0) - chambers_of_xeric_challenge_mode = Column(Integer, default=0) - chaos_elemental = Column(Integer, default=0) - chaos_fanatic = Column(Integer, default=0) - commander_zilyana = Column(Integer, default=0) - corporeal_beast = Column(Integer, default=0) - crazy_archaeologist = Column(Integer, default=0) - dagannoth_prime = Column(Integer, default=0) - dagannoth_rex = Column(Integer, default=0) - dagannoth_supreme = Column(Integer, default=0) - deranged_archaeologist = Column(Integer, default=0) - general_graardor = Column(Integer, default=0) - giant_mole = Column(Integer, default=0) - grotesque_guardians = Column(Integer, default=0) - hespori = Column(Integer, default=0) - kalphite_queen = Column(Integer, default=0) - king_black_dragon = Column(Integer, default=0) - kraken = Column(Integer, default=0) - kreearra = Column(Integer, default=0) - kril_tsutsaroth = Column(Integer, default=0) - mimic = Column(Integer, default=0) - nex = Column(Integer, default=0) - nightmare = Column(Integer, default=0) - phosanis_nightmare = Column(Integer, default=0) - obor = Column(Integer, default=0) - phantom_muspah = Column(Integer, default=0) - sarachnis = Column(Integer, default=0) - scorpia = Column(Integer, default=0) - skotizo = Column(Integer, default=0) - tempoross = Column(Integer, default=0) - the_gauntlet = Column(Integer, default=0) - the_corrupted_gauntlet = Column(Integer, default=0) - theatre_of_blood = Column(Integer, default=0) - theatre_of_blood_hard = Column(Integer, default=0) - thermonuclear_smoke_devil = Column(Integer, default=0) - tombs_of_amascut = Column(Integer, default=0) - tombs_of_amascut_expert = Column(Integer, default=0) - tzkal_zuk = Column(Integer, default=0) - tztok_jad = Column(Integer, default=0) - venenatis = Column(Integer, default=0) - vetion = Column(Integer, default=0) - vorkath = Column(Integer, default=0) - wintertodt = Column(Integer, default=0) - zalcano = Column(Integer, default=0) - zulrah = Column(Integer, default=0) - rifts_closed = Column(Integer, default=0) - artio = Column(Integer, default=0) - calvarion = Column(Integer, default=0) - duke_sucellus = Column(Integer, default=0) - spindel = Column(Integer, default=0) - the_leviathan = Column(Integer, default=0) - the_whisperer = Column(Integer, default=0) - vardorvis = Column(Integer, default=0) diff --git a/src/main.py b/src/main.py index 3d54194..5fb1c0a 100644 --- a/src/main.py +++ b/src/main.py @@ -13,92 +13,16 @@ from sqlalchemy.sql.expression import Insert, Select, Update import core.logging # for log formatting -from app.schemas.highscores import playerHiscoreData as playerHiscoreDataSchema +from app import kafka from core.config import settings from database.database import get_session -from database.models.highscores import PlayerHiscoreData -from database.models.player import Player logger = logging.getLogger(__name__) -async def kafka_consumer(topic: str, group: str): - consumer = AIOKafkaConsumer( - topic, - bootstrap_servers=[settings.KAFKA_HOST], - group_id=group, - value_deserializer=lambda x: json.loads(x.decode("utf-8")), - auto_offset_reset="earliest", - ) - await consumer.start() - return consumer - - -async def kafka_producer(): - producer = AIOKafkaProducer( - bootstrap_servers=[settings.KAFKA_HOST], - value_serializer=lambda v: json.dumps(v).encode(), - acks="all", - ) - await producer.start() - return producer - - -async def receive_messages( - consumer: AIOKafkaConsumer, receive_queue: Queue, error_queue: Queue -): - async for message in consumer: - if error_queue.qsize() > 100: - await asyncio.sleep(1) - continue - value = message.value - await receive_queue.put(value) - - -async def send_messages(topic: str, producer: AIOKafkaProducer, send_queue: Queue): - while True: - if send_queue.empty(): - await asyncio.sleep(1) - continue - message = await send_queue.get() - await producer.send(topic, value=message) - send_queue.task_done() - - # TODO: pydantic data -async def insert_highscore(session: AsyncSession, data: dict): - player_id = data.get("Player_id") - timestamp = data.get("timestamp") - - # Convert the timestamp to a date format - ts_date = datetime.strptime(timestamp, "%Y-%m-%dT%H:%M:%S").date() - - table = PlayerHiscoreData - - select_query: Select = select(table).where( - (table.Player_id == player_id) & (table.ts_date == ts_date) - ) - - # Check if the record exists - existing_record = await session.execute(select_query) - existing_record = existing_record.scalars().first() - - if not existing_record: - data = playerHiscoreDataSchema(**data) - data = data.model_dump(mode="json") - insert_query: Insert = insert(table).values(data).prefix_with("ignore") - await session.execute(insert_query) - - -# TODO: pydantic data -async def update_player(session: AsyncSession, data: dict): - player_id = data.get("id") - - table = Player - query: Update = update(table=table) - query = query.where(Player.id == player_id) - query = query.values(data) - await session.execute(query) +async def insert_report(session: AsyncSession, data: dict): + ... def log_speed( @@ -121,87 +45,61 @@ async def process_data(receive_queue: Queue, error_queue: Queue): # Run indefinitely while True: + start_time, counter = kafka.log_speed( + counter=counter, start_time=start_time, receive_queue=receive_queue + ) # Check if both queues are empty if receive_queue.empty(): - # If there were previous iterations with data, log processing speed - if counter > 0: - start_time, counter = log_speed( - counter=counter, start_time=start_time, receive_queue=receive_queue - ) - # Sleep for 1 second and then continue to the next iteration await asyncio.sleep(1) continue # Get a message from the chosen queue message: dict = await receive_queue.get() - # Extract 'hiscores' and 'player' dictionaries from the message - highscore: dict = message.get("hiscores") - player: dict = message.get("player") - - # Check the environment and filter out certain player IDs if not in production - if settings.ENV != "PRD": - player_id = player.get("id") - MIN_PLAYER_ID = 0 - MAX_PLAYER_ID = 300 - if not (MIN_PLAYER_ID < player_id <= MAX_PLAYER_ID): - continue - try: # Acquire an asynchronous database session session: AsyncSession = await get_session() async with session.begin(): - # If 'highscore' dictionary is present, insert it into the database - if highscore: - await insert_highscore(session=session, data=highscore) - # Update the player information in the database - await update_player(session=session, data=player) - # Commit the changes to the database + await insert_report(session=session, data=message) + # do the insertion await session.commit() # Mark the message as processed in the queue receive_queue.task_done() + # Handle exceptions, log the error, and put the message in the error queue + # Mark the message as processed in the queue and continue to the next iteration except OperationalError as e: await error_queue.put(message) - # Handle exceptions, log the error, and put the message in the error queue logger.error({"error": e}) logger.info(f"error_qsize={error_queue.qsize()}, {message=}") - # Mark the message as processed in the queue and continue to the next iteration receive_queue.task_done() continue except Exception as e: await error_queue.put(message) - # Handle exceptions, log the error, and put the message in the error queue logger.error({"error": e}) logger.debug(f"Traceback: \n{traceback.format_exc()}") logger.info(f"error_qsize={error_queue.qsize()}, {message=}") - # Mark the message as processed in the queue and continue to the next iteration receive_queue.task_done() continue - - # Log processing speed every 100 iterations - if counter % 100 == 0 and counter > 0: - start_time, counter = log_speed( - counter=counter, start_time=start_time, receive_queue=receive_queue - ) - # Increment the counter counter += 1 async def main(): # get kafka engine - consumer = await kafka_consumer(topic="scraper", group="highscore-worker") - producer = await kafka_producer() + consumer = await kafka.kafka_consumer( + topic="report", group="report-worker", bootstrap_servers=[settings.KAFKA_HOST] + ) + producer = await kafka.kafka_producer(bootstrap_servers=[settings.KAFKA_HOST]) receive_queue = Queue(maxsize=100) send_queue = Queue(maxsize=100) asyncio.create_task( - receive_messages( + kafka.receive_messages( consumer=consumer, receive_queue=receive_queue, error_queue=send_queue ) ) asyncio.create_task( - send_messages(topic="scraper", producer=producer, send_queue=send_queue) + kafka.send_messages(topic="scraper", producer=producer, send_queue=send_queue) ) asyncio.create_task( process_data(receive_queue=receive_queue, error_queue=send_queue) diff --git a/tests/test_data.py b/tests/test_data.py new file mode 100644 index 0000000..6739d7d --- /dev/null +++ b/tests/test_data.py @@ -0,0 +1,62 @@ +from typing import Optional + +from pydantic import BaseModel + + +class Equipment(BaseModel): + equip_head_id: int + equip_amulet_id: Optional[int] + equip_torso_id: int + equip_legs_id: int + equip_boots_id: int + equip_cape_id: int + equip_hands_id: int + equip_weapon_id: int + equip_shield_id: Optional[int] + + +class Report(BaseModel): + reporter: str + reported: str + region_id: int + x_coord: int + y_coord: int + z_coord: int + ts: int + manual_detect: int + on_members_world: int + on_pvp_world: int + world_number: int + equipment: Equipment + equip_ge_value: int + + +# Example usage: +json_data = { + "reporter": "Cyborger1", + "reported": "Shpinki", + "region_id": 14651, + "x_coord": 3682, + "y_coord": 3837, + "z_coord": 0, + "ts": 1704223741, + "manual_detect": 0, + "on_members_world": 1, + "on_pvp_world": 0, + "world_number": 324, + "equipment": { + "equip_head_id": 13592, + "equip_amulet_id": None, + "equip_torso_id": 13596, + "equip_legs_id": 13598, + "equip_boots_id": 13602, + "equip_cape_id": 13594, + "equip_hands_id": 13600, + "equip_weapon_id": 1381, + "equip_shield_id": None, + }, + "equip_ge_value": 0, +} + +report_instance = Report(**json_data) +print(report_instance)