extend the output of '--list-extractors'

It now includes category and subcategory values for
each extractor class.
This commit is contained in:
Mike Fährmann
2017-06-28 18:51:47 +02:00
parent 1dac76fd1c
commit 06c4cae05b
3 changed files with 16 additions and 19 deletions

View File

@@ -117,13 +117,12 @@ Description Amount of time (in seconds) to wait for a successful connection
Extractor Options Extractor Options
================= =================
| Each extractor is identified by its ``category`` and ``subcategory``. Each extractor is identified by its ``category`` and ``subcategory``.
| The ``category`` is the lowercase site name without any spaces or special The ``category`` is the lowercase site name without any spaces or special
characters, which is usually just the module name characters, which is usually just the module name
(``pixiv``, ``batoto``, ...). (``pixiv``, ``batoto``, ...).
The ``subcategory`` is a lowercase word describing the general functionality The ``subcategory`` is a lowercase word describing the general functionality
of that extractor (``user``, ``favorite``, ``manga``, ...). of that extractor (``user``, ``favorite``, ``manga``, ...).
Each one of the following options can be specified on multiple levels of the Each one of the following options can be specified on multiple levels of the
configuration tree: configuration tree:
@@ -140,16 +139,11 @@ you specify a general filename pattern for all the different pixiv extractors.
Using the ``extractor.pixiv.user.filename`` value lets you override this Using the ``extractor.pixiv.user.filename`` value lets you override this
general pattern specifically for ``PixivUserExtractor`` instances. general pattern specifically for ``PixivUserExtractor`` instances.
The ``category`` and ``subcategory`` of an extractor used for a specific URL The ``category`` and ``subcategory`` of all extractors are included in the
can be determined by using the ``--list-keywords`` command-line option output of ``gallery-dl --list-extractors``. For a specific URL these values
can also be determined by using the ``--list-keywords`` command-line option
(see the example below). (see the example below).
If that does not work, the extractor names, which can be obtained from
``gallery-dl --list-extractors``, provide an alternative:
Each extractor name is structured as ``CategorySubcategoryExtractor``.
An extractor called ``PixivUserExtractor`` has therefore the category ``pixiv``
and the subcategory ``user``.
extractor.*.filename extractor.*.filename
-------------------- --------------------
=========== ===== =========== =====

View File

@@ -80,11 +80,14 @@ def main():
print(module_name) print(module_name)
elif args.list_extractors: elif args.list_extractors:
for extr in extractor.extractors(): for extr in extractor.extractors():
if not extr.__doc__:
continue
print(extr.__name__) print(extr.__name__)
if extr.__doc__: print(extr.__doc__)
print(extr.__doc__) print("Category:", extr.category,
"- Subcategory:", extr.subcategory)
if hasattr(extr, "test") and extr.test: if hasattr(extr, "test") and extr.test:
print("Example:", extr.test[0][0]) print("Example :", extr.test[0][0])
print() print()
else: else:
if not args.urls and not args.inputfile: if not args.urls and not args.inputfile:

View File

@@ -152,7 +152,7 @@ def build_parser():
parser.add_argument( parser.add_argument(
"--list-extractors", dest="list_extractors", action="store_true", "--list-extractors", dest="list_extractors", action="store_true",
help=("Print a list of extractor classes " help=("Print a list of extractor classes "
"with description and example URL"), "with description, (sub)category and example URL"),
) )
parser.add_argument( parser.add_argument(
"--list-keywords", dest="list_keywords", action="store_true", "--list-keywords", dest="list_keywords", action="store_true",