Source code for flexget.components.bittorrent.private_torrents
from loguru import logger
from flexget import plugin
from flexget.event import event
logger = logger.bind(name='priv_torrents')
[docs]
class FilterPrivateTorrents:
"""How to handle private torrents.
private_torrents: yes|no
Example::
private_torrents: no
This would reject all torrent entries with private flag.
Example::
private_torrents: yes
This would reject all public torrents.
Non-torrent content is not intervened.
"""
schema = {'type': 'boolean'}
[docs]
@plugin.priority(127)
def on_task_modify(self, task, config):
private_torrents = config
for entry in task.accepted:
if 'torrent' not in entry:
logger.debug('`{}` is not a torrent', entry['title'])
continue
private = entry['torrent'].private
if not private_torrents and private:
entry.reject('torrent is marked as private', remember=True)
elif private_torrents and not private:
entry.reject('public torrent', remember=True)
[docs]
@event('plugin.register')
def register_plugin():
plugin.register(FilterPrivateTorrents, 'private_torrents', api_ver=2)