Changelog

0.8.0 (2026-06-15)

Added

  • Real article URL resolution via Playwright (pip install gnews[playwright])

  • resolve_url() utility function for manual URL resolution

  • Automatic fallback to Google URL when Playwright not installed or resolution fails

  • playwright>=1.40 optional extra

Fixed

  • Google News redirect URLs no longer returned as-is when Playwright is available

0.7.0 (2026-06-15)

Added

  • Async methods: get_news_async(), get_top_news_async(), get_news_by_topic_async(), get_news_by_location_async(), get_news_by_site_async()

  • Works with both RSS and SearchApi backends

  • No new dependencies — uses stdlib asyncio

0.6.0 (2026-06-15)

Added

  • save_to_json() and save_to_csv() export methods

  • gnews CLI with search, top, topic, site, location commands

  • SearchApi backend — opt-in via searchapi_key parameter

  • get_full_article() now uses trafilatura via pip install gnews[fulltext]

  • Full type hints on all public methods

  • Python 3.12, 3.13, 3.14 support

  • CI matrix across Python 3.10–3.13

Fixed

  • Removed logging.basicConfig from module level — no longer pollutes user logging config

  • Removed dynamic pip install anti-pattern from get_full_article()

Changed

  • get_full_article() returns dict with text and url keys instead of newspaper.Article object

  • Dropped Python 3.8 and 3.9 support (both EOL)

0.5.1 (2026-06-15)

  • Fix Python 3.8 type hint compatibility (from __future__ import annotations)

0.5.0 (2026-06-11)

  • Initial SearchApi backend integration

0.4.3 and earlier

See GitHub releases.