Plugins for “filter” feed phase, and non-modifying download filters.
Bases: flexget.plugins.filter.series.FilterSeriesBase
Grabs all entries that appear to be series episodes in a feed.
This plugin just configures the series plugin dynamically with all series from the feed. It can take any of the options of the series plugin. Example: all_series: yes
Bases: object
Perform action based on item on current feed and other inputs.
Example:
crossmatch:
from:
- rss: http://example.com/
fields:
- title
action: reject
| Parameters: |
|
|---|---|
| Returns: | List of field names in common |
Bases: sqlalchemy.ext.declarative.Base
Bases: object
Add delay to a feed. This is useful for de-prioritizing expensive / bad-quality feeds.
Format: n [minutes|hours|days|weeks]
Example:
delay: 2 hours
Captures the current input then replaces it with entries that have passed the delay.
Bases: object
Can run actions on entries that satisfy a given condition.
Actions include accept, reject, and fail, as well as the ability to run other filter plugins on the entries.
Checks if a given entry passes condition
Divide the config into parts based on which phase they need to run on.
A safer eval function. Does not allow __ or try statements, only includes certain ‘safe’ builtins.
Bases: object
This plugin allows filtering based on IMDB score, votes and genres etc.
Configuration:
Note: All parameters are optional. Some are mutually exclusive.
min_score: <num> min_votes: <num> min_year: <num> max_year: <num>
# reject if genre contains any of these reject_genres:
- genre1
- genre2
# reject if language contain any of these reject_languages:
- language1
# accept only these primary languages accept_languages:
- language1
# accept movies with any of these actors accept_actors:
- nm0004695
- nm0004754
# reject movie if it has any of these actors reject_actors:
- nm0001191
- nm0002071
# accept all movies by these directors accept_directors:
- nm0000318
# reject movies by these directors reject_directors:
- nm0093051
# reject movies/TV shows with any of these ratings reject_mpaa_ratings:
- PG_13
- R
- X
# accept movies/TV shows with only these ratings accept_mpaa_ratings:
- PG
- G
- TV_Y
Validate given configuration
Bases: object
Reject already voted entries based on user imdb vote history.
Example:
imdb_rated: http://www.imdb.com/mymovies/list?l=<YOUR USER ID>
Reverse, reject unvoted:
Example:
Note: in theory this should work with any other page containing imdb urls.
Update my movies list
Bases: object
Limit number of new items.
Example:
limit_new: 1
This would allow only one new item to pass trough per execution. Useful for passing torrents slowly into download.
Note that since this is per execution, actual rate depends how often FlexGet is executed.
Bases: flexget.plugins.filter.queue_base.FilterQueueBase
Bases: exceptions.Exception
Exception raised if there is an error with a queue operation
Bases: flexget.plugins.filter.queue_base.QueuedItem
If imdb_queue table is found, migrate the data to movie_queue
Bases: object
Causes input plugins to only emit entries that haven’t been seen on previous runs.
Reject all entries so remember_rejected will reject them next time
Make sure the remember_rejected plugin is available
Bases: object
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 interviened.
Bases: object
Automatically download proper movies.
Configuration:
proper_movies: n <minutes|hours|days|weeks>
or permanently:
proper_movies: yes
Value no will disable plugin.
Add downloaded movies to the database
Bases: object
Base class to handle general tasks of keeping a queue of wanted items.
This should return the QueueItem object for the match, if this entry is in the queue.
Default validator just accepts a boolean, can be overridden by subclasses
Bases: object
All possible forms.
[regexp] # simple regexp
[regexp]: <path> # override path
[path]: <path> # override path [not]: <regexp> # not match [from]: <field> # search from given entry field
[path]: <path> # override path [not]: # list of not match regexps
- <regexp>
[rest]: <operation> # non matching entries are [from]: # search only from these fields for all regexps
- <field>
Possible operations: accept, reject, accept_excluding, reject_excluding
| Parameters: |
|
|---|---|
| Returns: | Return list of entries that didn’t match regexps |
Check if :entry: has any string fields or strings in a list field that match :regexp:
| Parameters: |
|
|---|---|
| Returns: |
Returns the config in standard format.
All regexps are turned into dictionaries in the form of {compiled regexp: options}
| Parameters: | config – Dict that can optionally contain the following keys path: will be attached to entries that match set: a dict of values to be attached to entries that match via set plugin from: a list of fields in entry for the regexps to match against not: a list of compiled regexps that if matching, will disqualify the main match |
|---|---|
| Returns: | New config dictionary |
Bases: sqlalchemy.ext.declarative.Base
Bases: object
Rejects entries that have failed X or more times in the past.
Bases: object
Provides tracking for failures and related commandline utilities.
Adds entry to internal failed list, displayed with –failed
Clears list of failed entries
Parameter –failed
Bases: object
Internal. Rejects entries which have been rejected in the past.
This is enabled when item is rejected with remember=True flag.
Reject any remembered entries from previous runs
Purge remembered entries if the config has changed.
Bases: sqlalchemy.ext.declarative.Base
Bases: sqlalchemy.ext.declarative.Base
Listens events:
forget (string)
Given string can be feed name, remembered field (url, imdb_url) or a title. If given value is a feed name then everything in that feed will be forgotten. With title all learned fields from it and the title will be forgotten. With field value only that particular field is forgotten.
Bases: object
Remembers previously downloaded content and rejects them in subsequent executions. Without this plugin FlexGet would download all matching content on every execution.
This plugin is enabled on all feeds by default. See wiki for more information.
Forget SeenEntry with :title:. Return True if forgotten.
Marks entry as seen
Remember succeeded entries
Filter seen entries
Bases: sqlalchemy.ext.declarative.Base
Bases: sqlalchemy.ext.declarative.Base
See module docstring :param string value: Can be feed name, entry title or field value :return: count, field_count where count is number of entries removed and field_count number of fields
Bases: flexget.plugins.filter.seen.FilterSeen
Prevents the same torrent from being downloaded twice by remembering the infohash of all downloaded torrents.
Bases: flexget.plugins.filter.seen.FilterSeen
Prevents movies being downloaded twice. Works only on entries which have imdb url available.
How duplicate movie detection works: 1) Remember all imdb urls from downloaded entries. 2) If stored imdb url appears again, entry is rejected.
Bases: sqlalchemy.ext.declarative.Base
| Returns: | Pretty string representing age of episode. eg “23d 12h” or “No releases seen” |
|---|
Bases: flexget.plugins.filter.series.SeriesDatabase, flexget.plugins.filter.series.FilterSeriesBase
Intelligent filter for tv-series.
http://flexget.com/wiki/Plugins/series
Automatically enable exact naming option for series that look like a problem
Learn succeeded episodes
Filter series
Search for series_name and populate all series_* fields in entries when successfully parsed
| Parameters: |
|
|---|
Rejects all episodes (regardless of quality) if this episode has been downloaded.
| Returns: | True when episode has already been downloaded |
|---|
Rejects all episodes that are too old or new (advancement), return True when this happens.
Filters eps that do not fall between min_quality and max_quality.
| Returns: | A list of eps that are in the acceptable range |
|---|
Accepts needed propers. Nukes episodes from which there exists proper.
| Returns: | A list of episodes to continue processing. |
|---|
Handles all modes that can accept more than one quality per episode. (qualities, upgrade)
| Returns: | True - if at least one wanted quality has been downloaded or accepted. False - if no wanted qualities have been accepted |
|---|
Accepts first episode matching the quality configured for the series.
| Returns: | True if accepted something |
|---|
Accept or Reject episode from available releases, or postpone choosing.
| Parameters: |
|
|---|
Runs the timeframe logic to determine if we should wait for a better quality. Saves current best to backlog if timeframe has not expired.
| Returns: | True - if we should keep the quality (or qualities) restriction False - if the quality restriction should be released, due to timeframe expiring |
|---|
Rejects all episodes older than defined in watched.
| Returns: | True when rejected because of watched |
|---|
Bases: object
Class that contains helper methods for both filter.series as well as plugins that configure it, such as all_series, series_premiere and import_series.
Applies group settings to each item in series group and removes settings dict.
Combines the series from multiple lists, making sure there are no doubles.
If keyword argument log_once is set to True, an error message will be printed if a series is listed more than once, otherwise log_once will be used.
Turns a simple series list into grouped format with a empty settings dict
Merges another series config dict in with the current one.
Generate a list of unique series from configuration. This way we don’t need to handle two different configuration formats in the logic. Applies group settings with advanced form.
Bases: sqlalchemy.ext.hybrid.Comparator
Bases: sqlalchemy.ext.declarative.Base
Bases: sqlalchemy.ext.declarative.Base
Name is handled case insensitively transparently
Bases: object
Provides API to series database
Determine if series name should be considered identified by episode or id format
Returns ‘ep’, ‘sequence’, ‘date’ or ‘id’ if enough history is present to identify the series’ id type. Returns ‘auto’ if there is not enough history to determine the format yet
Return list of downloaded releases for this episode
Return datetime when this episode of series was first seen
Return latest downloaded episode for series name
Return latest known identifier in dict (season, episode, name) for series name
Push series information into database. Returns added/existing release.
Remove a whole series name from database.
Remove all episodes by identifier from series name from database.
Perform database repairing and upgrading at startup.
Bases: flexget.plugins.filter.series.FilterSeriesBase
Accept an entry that appears to be the first episode of any series.
Can be configured with any of the options of series plugin Examples:
series_premiere: yes
NOTE: this plugin only looks in the entry title and expects the title format to start with the series name followed by the episode info. Use the manipulate plugin to modify the entry title to match this format, if necessary.
Bases: object
This plugin allows filtering based on thetvdb series rating, episode rating, status, genres, runtime, content-rating, languages, directors, writers, network, guest stars, episode rating, and actors
series_rating series_status (Continuing or Ended) series_runtime (show runtime in minutes) series_content_rating series_genres series_network series_actors series_language (en, fr, etc.)
Configuration:
Note: All parameters are optional. Some are mutually exclusive.
min_series_rating: <num> min_episode_rating: <num> min_episode_air_year: <num> max_episode_air_year: <num> min_episode_runtime: <num> max_episode_runtime: <num>
# reject if genre contains any of these reject_content_rating:
- TV-MA
# accept only this content rating accept_content_rating:
- TV-PG
# accept only these networks accept_network:
- NBC
# reject if this network reject_network:
- ABC
# reject if genre contains any of these reject_genres:
- drama
- romance
# reject if status contains any of these reject_status:
- Ended
# reject if language contain any of these reject_languages:
- fr
# accept only this language accept_languages:
- en
# Actors below take into account series actors, and guest stars # accept episode with any of these actors accept_actors:
- Heidi Klum
- Bruce Willis
# reject episode if it has any of these actors reject_actors:
- Cher
- Tamala Jones
# accept all episodes by these writers accept_writers:
- Andrew W. Marlowe
# reject episodes by these writers reject_writers:
- Barry Schindel
# accept all episodes by these directors accept_directors:
- Rob Bowman
# reject movies by these directors reject_directors:
- John Terlesky
this takes the config object, config key (to a list), and entry item so it can return True if the object matches, (be that a subset of the list, or if the entry item is contained within the config object list) or false if it does not.
Validate given configuration
Bases: object
Bases: threading.Thread