Commit Graph

935 Commits

Author SHA1 Message Date
bastimeyer d237a69620 docs: fix anchor on install page 2024-04-01 01:14:33 +02:00
bastimeyer 75805add3f docs: rephrase exceptiongroup description 2024-03-18 17:42:35 +01:00
bastimeyer af4c69188a build: add exceptiongroup dependency
Add the `exceptiongroup` dependency directly to Streamlink, so we
can write `ExceptionGroup` handling code on all supported versions
of Python without having to rely on `trio`'s conditional dependency.
2024-03-18 00:04:35 +01:00
bastimeyer 21dc431fb6 docs: move up removal badges on deprecations page 2024-03-09 13:22:55 +01:00
bastimeyer 70d5d4a108 cli: add --plugin-dir, deprecate --plugin-dirs 2024-03-08 17:25:58 +01:00
bastimeyer 61cec0e88e build: bump setuptools to >=65.6 2024-02-19 18:29:57 +01:00
bastimeyer f39eb13b8c docs: skip groups with only suppressed actions 2024-02-17 15:28:46 +01:00
bastimeyer 6cb3c023ab docs: fix scrollbars in sidebars 2024-02-12 14:03:18 +01:00
bastimeyer 0acbca3af1 docs: fix custom ext_argparse Sphinx extension
- Move the `parser_helper()` function from `streamlink_cli.main`
  into the `streamlink_cli._parser` module
- Refactor `ext_argparse` and set default import paths
- Update import path in `build-shell-completions.sh`

Unfortunately, the `streamlink_cli._parser` module can't be excluded
from the sdist/wheel distributions, as packagers might build
shell completions from the installed `streamlink_cli` package
instead of using the pre-built shell completions included in the sdist
or building them from an editable install.
2024-02-09 01:38:39 +01:00
bastimeyer f2b16ede21 docs: Streamlink.{get,load}_plugins() deprecation 2024-02-09 00:47:07 +01:00
bastimeyer e9760e8423 docs: HTTPSession and HTTPAdapters deprecation 2024-02-09 00:47:07 +01:00
bastimeyer c2f0626100 session: move plugin load/resolve logic
- Move plugin load/resolve logic into the `streamlink.session.plugins`
  module with the `StreamlinkPlugins` class
- Make `Streamlink.plugins` an instance of this class
- Add the `plugins_builtin` keyword argument to the `Streamlink` class
  and set its default value to `True`
- Deprecate the `Streamlink.{{get,load}_plugins,load_builtin_plugins}()`
  methods, which are now wrappers for the respective `StreamlinkPlugins`
  implementations
- Update `streamlink_cli.main` and all other `Streamlink` session
  usages accordingly (in scripts and tests)
- Update session docs
- Move and update plugin load/resolve tests
2024-02-08 09:28:22 +01:00
bastimeyer b82adee59a session: move StreamlinkOptions
- Move `StreamlinkOptions` from `streamlink.session`
  to `streamlink.session.options`
- Move docstring containing options list from `Streamlink.set_option()`
  to `StreamlinkOptions` and add this class to the docs
- Move default options from `Streamlink` constructor
  to `StreamlinkOptions._DEFAULTS`, so all options data is defined
  in the `streamlink.session.options` module
- Move session options tests to `tests.session.test_options`
  and change order of tests
2024-02-03 01:20:40 +01:00
bastimeyer e24374b07b plugin: add str to pluginargument type argument
- Make built-in plugins use pluginargument type functions referenced
  via name, so the pluginargument data can be fully JSON-serialized
- Add the `type_args`/`type_kwargs` arguments to `@pluginargument()`
  which allow the parametrization of the name-referenced type function
- Add a pluginargument type registry to the `streamlink.plugin.plugin`
  module and add all functions of the `streamlink.utils.args` module,
  as well as the `hours_minutes_seconds{,_float}` functions of
  the `streamlink.utils.times` module
- Update docs
- Add tests
2024-01-16 14:50:51 +01:00
bastimeyer 27087e0b6d docs: unlist Void Linux package 2024-01-07 14:36:54 +01:00
bastimeyer 4b77a0f7bb docs: unlist NetBSD package 2024-01-07 14:36:54 +01:00
bastimeyer c7d6b16520 2024 2024-01-01 14:07:02 +01:00
bastimeyer e88a84e2a1 docs: add cache API docs and add Plugin.cache ref 2023-11-27 00:06:20 +01:00
bastimeyer e9788f8030 docs: clean up applications and thirdparty pages 2023-11-25 16:26:41 +01:00
bastimeyer 3cfd7a6958 docs: clean up developing page 2023-11-25 16:26:41 +01:00
bastimeyer a541921afd docs: remove common issues page 2023-11-20 22:31:41 +01:00
bastimeyer 4664d25bad docs: clean up players page
- Remove unmaintained/obsolete and proprietary players
  - Daum PotPlayer
  - MPC-HC
  - OMXPlayer
  - QuickTime
- Add new players
  - IINA
- Change player order
- Add OS and license columns
- Add colored icons for supported transport methods
- Add note about --player-passthrough
- Fix footnotes and known issues section
2023-11-20 22:15:28 +01:00
bastimeyer 003debed0c docs: add plugin.api.validate API guide 2023-11-08 15:37:09 +01:00
bastimeyer 2eedf8a26e docs: move API guide pages into second layer 2023-11-06 19:24:02 +01:00
bastimeyer 7f4c86cfe9 plugin.api.validate: fix order of module members 2023-11-06 19:22:20 +01:00
bastimeyer d3ae06f91a docs: add plugin.api.validate API documentation 2023-11-06 19:22:20 +01:00
bastimeyer c398096e08 docs: update virtual-env sections on install page 2023-10-23 20:35:52 +02:00
bastimeyer 149f3cd10c docs: add sdist section to install page 2023-10-23 20:35:52 +02:00
bastimeyer 13762836c2 build: remove versioningit build-req from sdist
- Replace `tool.versioningit.onbuild` hook with a custom implementation
  which replaces the entire `streamlink._version` module (similar to
  before) and which additionally removes `versioningit` from the
  `build-system.requires` field in `pyproject.toml` and which sets
  a static version string in `setup.py`
- Rewrite `streamlink._version` module
- Add and update comments
- Update docs
- Add tests
2023-10-22 19:45:31 +02:00
bastimeyer 07619f518e docs: upd Debian stable from bullseye to bookworm 2023-10-09 13:19:00 +02:00
bastimeyer 22f191705e docs: add Alpine Linux to install docs 2023-09-20 22:00:22 +02:00
bastimeyer aa9172db82 docs: add FreeBSD to install docs 2023-09-19 21:33:35 +02:00
bastimeyer d03e51183c docs: fix Arch Linux AUR wiki page URL 2023-09-19 21:33:35 +02:00
bastimeyer 3ef1349113 docs: update Debian package URLs 2023-09-19 21:33:35 +02:00
bastimeyer c676432ab4 docs: update Solus package URL again 2023-09-18 14:08:33 +02:00
bastimeyer 561f7ef854 docs: rewrite metadata page 2023-08-27 13:02:30 +02:00
bastimeyer 1b57d51435 cli.argparser: metadata availability in plugins 2023-08-26 14:14:54 +02:00
bastimeyer b547fe41b5 docs: add support for $metadata plugin metadata
This allows plugins to optionally define which stream metadata variables
are available, with an optional comment for each variable.

`$metadata` can be repeated multiple times, once for each supported
variable, and it must be set immediately after the mandatory `$type`.

The supported variables must be defined in the following order:
- id
- author
- category
- title

The optional comment is separated by a simple space character, but it
is rendered differently in the docs.
2023-08-26 14:14:54 +02:00
bastimeyer 5a69669013 docs: update Solus package URL 2023-08-21 15:57:29 +02:00
bastimeyer 5c7cf4cdc4 docs: improve migration of {g,s}et_plugin_option()
- Add code examples
- Reword paragraphs
- Fix missing parenthesis
2023-08-14 20:48:36 +02:00
bastimeyer 5beda9470a docs: add icons to packages and install methods 2023-08-08 09:47:36 -07:00
bastimeyer bb906ab426 docs: replace simple/grid-tables with list-tables 2023-08-08 18:11:21 +02:00
bastimeyer 2af18840a7 docs: add more links to index page 2023-08-07 19:54:10 +02:00
bastimeyer 1676295b19 docs: add {g,s}et_plugin_option to migrations 2023-08-01 09:04:13 -07:00
bastimeyer 28fa0ca249 docs: update Arch Linux package link 2023-07-19 22:36:01 +02:00
bastimeyer d70fe487db docs: add client-integrity to Twitch plugin docs 2023-07-19 22:21:16 +02:00
bastimeyer d1759665be docs: add docs page for Options class
- Add `api/options` page and document `Options` class
- Move `Argument` and `Arguments` from plugin page to options page
- Add docstrings for `Streamlink.options` and `Plugin.options`
2023-07-18 20:33:18 +02:00
bastimeyer 3d477cd530 build: project metadata in pyproject.toml PEP621
Move Streamlink's project metadata from setuptools's own `setup.cfg`
to the standardized `pyproject.toml` format (PEP621)

- Bump setuptools to `>=64.0.0`
- Bump pip dev-requirement to `>=21.0.0`
- Set two `author` entries, to keep the same `Author` and `Author-email`
  core metadata in the resulting sdist and bdist packages
- Set `license.text` field instead of `license.file` and add the
  setuptools-specific `license-files` config attribute, so that
  the `License` and `License-File` core metadata doesn't change.
  License data will receive another change in the future once PEP639
  comes into effect
- By switching to PEP621 metadata, implicitly move the `Home-page`
  core metadata to `Project-URL: Homepage, ...`
- Remove upper version constraint from `requires-python`
- Reformat some version strings of the `dependencies` field
2023-07-17 02:39:23 +02:00
bastimeyer 07d627fbef docs: improve config-file + plugin sideloading 2023-07-15 16:25:46 +02:00
bastimeyer d89c796740 docs: update Streamlink Twitch GUI image 2023-07-13 21:31:40 +02:00