upsies.trackers.base.rules

Classes for checking if a release violates the tracker’s rules

Classes

class upsies.trackers.base.rules.BannedGroup(tracker_jobs)[source]

Bases: TrackerRuleBase

Check if release group is not allowed

banned_groups = {}

set of banned group names

Groups specified here are always banned. To ban groups conditionally (e.g. ban only encodes from a certain group), override _check_custom().

is_group(group_name)[source]

Return whether group_name is equal to the group of release_name

class upsies.trackers.base.rules.FhdOnly(tracker_jobs)[source]

Bases: TrackerRuleBase

Check if release is Full HD

message = 'Not a Full HD release'

Error message if release is not Full HD

class upsies.trackers.base.rules.HdOnly(tracker_jobs)[source]

Bases: TrackerRuleBase

Check if release is HD

allow_sd_disc = False

Whether SD Blu-rays and DVDs are allowed

allow_sd_remux = False

Whether SD remuxes are allowed

allow_sd_webdl = False

Whether SD WEB-DLs are allowed

property message

Error message if release is not HD

class upsies.trackers.base.rules.TrackerRuleBase(tracker_jobs)[source]

Bases: ABC

Abstract base class that checks a release against one rule

Parameters:

tracker_jobs – Instance of a TrackerJobsBase subclass

required_jobs = ()

Sequence of TrackerJobsBase attribute names that resolve to JobBase instances

All required jobs must finish before check() is called.

property tracker_jobs

TrackerJobsBase instance

property release_name

ReleaseName instance

property tracker

TrackerBase instance

async check()[source]

Wait for required_jobs and check if rule is broken

The actual checking is done in _check(), which must be implemented by the subclass and raise RuleBroken if the rule is broken.