5 Commits

Author SHA1 Message Date
shoko
dfad8d3072 chore(polymarket-browse): add version 0.0.2 to SKILL.md frontmatter 2026-03-26 18:43:26 +00:00
c0f008ab8b Merge pull request 'Fix: Event happening exactly now shows LIVE instead of In 0m' (#28) from fix/live-time-display into master 2026-03-26 18:48:23 +01:00
shoko
53c268511a Add test for event happening exactly now shows LIVE
Added test_get_time_data_live_exactly_now to prevent regression.
2026-03-26 17:46:53 +00:00
shoko
7f3b885521 Fix: Event happening exactly now shows 'LIVE' instead of 'In 0m'
Changed condition from total_sec < 0 to total_sec <= 0 to catch the edge case where an event is happening right now.
2026-03-26 17:43:28 +00:00
shoko
e0ae6bbd14 Remove incorrect '100 pages safety cap' claim from SKILL.md
This limit doesn't exist in the code.
2026-03-26 17:37:41 +00:00
3 changed files with 14 additions and 3 deletions

View File

@@ -1,5 +1,6 @@
---
name: polymarket-browse
version: 0.0.2
category: research
description: Browse tradeable Polymarket events by game category. Shows active matches with ML odds (cents format), volume, tournament, and market URLs. Supports Counter Strike, League of Legends, Dota 2, Valorant, NBA, NFL, UFC, Tennis.
---
@@ -120,7 +121,7 @@ Use `--raw` to disable the tradeable filter and see all match markets regardless
## Pagination
The script fetches **ALL pages** until the API runs out of results (up to 100 pages as a safety cap).
The script fetches **ALL pages** until the API runs out of results.
### Parallel Fetching

View File

@@ -470,8 +470,8 @@ def _get_time_data(e: dict[str, Any], tz: timezone | None = None) -> TimeData:
delta = start_dt - now_utc
total_sec = delta.total_seconds()
if total_sec < 0:
# Event is in the past
if total_sec <= 0:
# Event is in the past or happening now
hours_ago = abs(total_sec) / 3600
if hours_ago < 1:
time_status = "LIVE"

View File

@@ -309,6 +309,16 @@ class TestTimeFunctions(unittest.TestCase):
self.assertEqual(td["time_urgency"], 3)
self.assertIn("WIB", td["abs_time"])
def test_get_time_data_live_exactly_now(self):
"""Event starts exactly now -> 'LIVE', urgency 3 (not 'In 0m')."""
frozen = self._frozen_dt(2026, 3, 25, 12, 0, 0)
with patch("browse.datetime", self._mock_datetime(frozen)):
from browse import _get_time_data
td = _get_time_data(self._make_event("2026-03-25T12:00:00Z"))
self.assertEqual(td["time_status"], "LIVE")
self.assertEqual(td["time_urgency"], 3)
def test_get_time_data_started_2h_ago(self):
"""Started 2 hours ago -> 'LIVE 2h', urgency 3."""
frozen = self._frozen_dt(2026, 3, 25, 14, 0, 0)