mirror of
https://github.com/FuzzyGrim/Yamtrack.git
synced 2026-06-28 06:45:58 +00:00
fix calendar not showing release dates for games #1263
This commit is contained in:
@@ -759,6 +759,22 @@ def process_other(item, events_bulk):
|
||||
),
|
||||
)
|
||||
|
||||
# Games don't have content number
|
||||
elif (
|
||||
item.media_type == MediaTypes.GAME.value
|
||||
and date_key in metadata["details"]
|
||||
and metadata["details"][date_key]
|
||||
):
|
||||
content_datetime = date_parser(metadata["details"][date_key])
|
||||
|
||||
events_bulk.append(
|
||||
Event(
|
||||
item=item,
|
||||
content_number=None,
|
||||
datetime=content_datetime,
|
||||
),
|
||||
)
|
||||
|
||||
elif item.source == Sources.MANGAUPDATES.value and content_number:
|
||||
# MangaUpdates doesn't have an end date, so use a placeholder
|
||||
content_datetime = datetime.min.replace(tzinfo=ZoneInfo("UTC"))
|
||||
|
||||
@@ -482,6 +482,60 @@ class ReloadCalendarTaskTests(TestCase):
|
||||
expected_end_date = date_parser("2023-12-22")
|
||||
self.assertEqual(events_bulk[0].datetime, expected_end_date)
|
||||
|
||||
@patch("events.calendar.services.get_media_metadata")
|
||||
def test_process_other_mangaupdates(self, mock_get_media_metadata):
|
||||
"""Test process_other for MangaUpdates manga."""
|
||||
mangaupdates_item = Item.objects.create(
|
||||
media_id="123",
|
||||
source=Sources.MANGAUPDATES.value,
|
||||
media_type=MediaTypes.MANGA.value,
|
||||
title="Some Manga",
|
||||
image="http://example.com/manga.jpg",
|
||||
)
|
||||
|
||||
mock_get_media_metadata.return_value = {
|
||||
"max_progress": 100,
|
||||
"details": {},
|
||||
}
|
||||
|
||||
events_bulk = []
|
||||
process_other(mangaupdates_item, events_bulk)
|
||||
self.assertEqual(len(events_bulk), 1)
|
||||
self.assertEqual(events_bulk[0].item, mangaupdates_item)
|
||||
self.assertEqual(events_bulk[0].content_number, 100)
|
||||
|
||||
# Verify placeholder date was used
|
||||
expected_date = datetime.datetime.min.replace(tzinfo=ZoneInfo("UTC"))
|
||||
self.assertEqual(events_bulk[0].datetime, expected_date)
|
||||
|
||||
@patch("events.calendar.services.get_media_metadata")
|
||||
def test_process_other_game(self, mock_get_media_metadata):
|
||||
"""Test process_other for a game."""
|
||||
game_item = Item.objects.create(
|
||||
media_id="52189",
|
||||
source=Sources.IGDB.value,
|
||||
media_type=MediaTypes.GAME.value,
|
||||
title="Grand Theft Auto VI",
|
||||
image="http://example.com/gta6.jpg",
|
||||
)
|
||||
|
||||
mock_get_media_metadata.return_value = {
|
||||
"max_progress": None,
|
||||
"details": {
|
||||
"release_date": "2025-10-15",
|
||||
},
|
||||
}
|
||||
|
||||
events_bulk = []
|
||||
process_other(game_item, events_bulk)
|
||||
|
||||
self.assertEqual(len(events_bulk), 1)
|
||||
self.assertEqual(events_bulk[0].item, game_item)
|
||||
self.assertEqual(events_bulk[0].content_number, None)
|
||||
|
||||
expected_date = date_parser("2025-10-15")
|
||||
self.assertEqual(events_bulk[0].datetime, expected_date)
|
||||
|
||||
@patch("events.calendar.services.api_request")
|
||||
def test_get_anime_schedule_bulk(self, mock_api_request):
|
||||
"""Test get_anime_schedule_bulk function."""
|
||||
|
||||
Reference in New Issue
Block a user