Skip to content

v3.0.0

Choose a tag to compare

@Ravencentric Ravencentric released this 13 Sep 19:52
· 54 commits to main since this release

3.0.0 - 2025-09-13

✨ Highlights ✨

  • Torrent details moved to TorrentFile
    What used to be NyaaTorrentPage is now NyaaRelease.
    Fields like size, infohash, torrent_url, and magnet have been moved into a new TorrentFile object (with torrent_url now just .url).
    TorrentFile also adds two new fields: data and name.
    Access everything through NyaaRelease.torrent.

  • Library-specific errors
    The library now provides its own exceptions for easier handling:
    ParsingError for HTML issues and ReleaseNotFoundError when a release isn’t found.
    Both inherit from PyNyaaError, so tracebacks are simpler and more consistent.

  • More precise categories
    The old Category enum tried to cover both real release categories and top-level search groups.
    It’s now split into Category (for actual releases) and ParentCategory (for search queries only), so a release can’t have an invalid category.

  • Search with pagination
    search() now follows all result pages automatically, instead of stopping after the first.
    The API also replaces the old reverse: bool with a clearer order: Order option.

Changelog

🚀 Features

  • bab8716 Add size and infohash fields to NyaaTorrentPage
  • 6fcb0ee Rework enums

🐛 Bug Fixes

  • bd6e76d Bump bs4
  • f78948d Rename TorrentNotFoundError to ReleaseNotFoundError
  • 74a2b83 Broken link
  • 6ac140f Update lockfile
  • c09876a Add tests for typing
  • 55464c1 Conftest typing
  • 0656b18 Update the catchphrase
  • 21e7567 Rename NyaaTorrentPage to NyaaRelease
  • 5ace9b6 Add TorrentFile to NyaaTorrentPage
  • 53e6530 De-nest clients
  • e335c72 Exclude seeders/leechers/completed from eq
  • 67c87ae Add __str__ back to Submitter and NyaaTorrentPage
  • d2d5c43 Use relative imports
  • 504edb1 Write a safer wrapper around bs4
  • 77083e6 Don't show internal module in tracebacks
  • 5552c50 Test coverage
  • 883483e Run ruff over the codebase
  • 2deb8ef Get rid of 3.13t for now
  • 613d070 Only install test deps in tests
  • e208e0b Use new type internally to distinguish torrent ID
  • 246d923 Refactor search parser
  • db7e3b1 Make panel a property
  • 0529b62 Replace reverse: bool with order: Order in search API
  • 2398b22 Parse Bytes as a valid unit
  • 1f68269 Return integer IDs from parse_nyaa_search_results
  • cfe73ea Update default user agent
  • 7af2d3c More docstrings
  • 43e4d3b Update docstrings
  • 811416e A bit more runtime type checking
  • 72c3d36 Get rid of cli
  • 31cd584 Handle pagination in search()
  • be30121 Make the parser class slotted
  • 7a46c4e Add proper errors
  • d05008b More tests
  • 3b33e23 More tests
  • 55818da Switch to dataclass
  • 58ad0c2 TorrentCategory -> Category in docstrings
  • 1bad15c Rename TorrentCategory back to Category
  • 701e7d5 Strenum in <3.11
  • af0961d Remove dead module
  • 72cdca5 Auto-generate sync client from async client
  • 4d4a64e Update tests to not require internet

👷 CI/CD

🚜 Refactor

📚 Documentation

⚙️ Chores

New Contributors