---
sidebar_position: 2
---

import { Important, Warning } from '@site/src/components/Admonition';
import { 
  ConfigSection, 
  EnhancedImportant, 
  EnhancedWarning,
  styles 
} from '@site/src/components/documentation';

# Content Blocker

The Content Blocker automatically blocks or removes downloads from your download client based on configurable blocklists. This helps prevent unwanted content from being downloaded and manages content filtering across your *arr applications.

<div className={styles.documentationPage}>

<EnhancedImportant>
These settings need a download client to be configured.
</EnhancedImportant>

<div className={styles.section}>

<ConfigSection
  id="enable-content-blocker"
  title="Enable Content Blocker"
  description="When enabled, the Content Blocker will run according to the configured schedule to automatically block or remove downloads based on the configured blocklists."
  icon="🔄"
>

When enabled, the Content Blocker will run according to the configured schedule to automatically block or remove downloads based on the configured blocklists.

</ConfigSection>

<ConfigSection
  id="scheduling-mode"
  title="Scheduling Mode"
  description="Choose how to configure the Content Blocker schedule"
  icon="📅"
>

Choose how to configure the Content Blocker schedule:
- **Basic**: Simple interval-based scheduling (every X minutes/hours/seconds)
- **Advanced**: Full cron expression control for complex schedules

</ConfigSection>

<ConfigSection
  id="cron-expression"
  title="Cron Expression"
  description="Enter a valid Quartz.NET cron expression to control when the Content Blocker runs"
  icon="⏲️"
>

Enter a valid Quartz.NET cron expression to control when the Content Blocker runs.

**Common Cron Examples:**
- `0 0/5 * ? * * *` - Every 5 minutes
- `0 0 * ? * * *` - Every hour
- `0 0 */6 ? * * *` - Every 6 hours

</ConfigSection>

<ConfigSection
  id="ignore-private"
  title="Ignore Private"
  description="When enabled, private torrents will be skipped from being processed during content blocking"
  icon="🔒"
>

When enabled, private torrents will be skipped from being processed during content blocking.

</ConfigSection>

<ConfigSection
  id="delete-private"
  title="Delete Private"
  description="When enabled, private torrents that match blocklist criteria will be deleted from the download client"
  icon="🗑️"
>

When enabled, private torrents that match blocklist criteria will be deleted from the download client. Use with extreme caution as this permanently removes the download.

<EnhancedWarning>
Setting this to true means private torrents will be permanently deleted, potentially affecting your private tracker account by receiving H&R if the seeding requirements are not met.
</EnhancedWarning>

</ConfigSection>

</div>

<div className={styles.section}>

<h2 className={styles.sectionTitle}>
  <span className={styles.sectionIcon}>📋</span>
  Arr Service Settings
</h2>

<p className={styles.sectionDescription}>
  Configure blocklists for each *arr application. Each service can have its own blocklist configuration.
</p>

<ConfigSection
  id="enable-blocklist"
  title="Enable Blocklist"
  description="When enabled, the Content Blocker will use the configured blocklist to filter content"
  icon="✅"
>

When enabled, the Content Blocker will use the configured blocklist to filter content.

</ConfigSection>

<ConfigSection
  id="blocklist-path"
  title="Blocklist Path"
  description="Path to the blocklist file or URL. This can be a local file path or a remote URL that will be fetched automatically"
  icon="📂"
>

Path to the blocklist file or URL. This can be a local file path or a remote URL that will be fetched automatically.

**Examples:** 
- `/config/sonarr-blocklist.txt`
- `https://example.com/blocklist.txt`

The blocklists support the following types of patters:
```
*example            // file name ends with "example"
example*            // file name starts with "example"
*example*           // file name has "example" in the name
example             // file name is exactly the word "example"
regex:<ANY_REGEX>   // regex that needs to be marked at the start of the line with "regex:"
```

</ConfigSection>

<ConfigSection
  id="blocklist-type"
  title="Blocklist Type"
  description="Controls how the blocklist is interpreted"
  icon="🎭"
>

Controls how the blocklist is interpreted:
- **Blacklist**: Files matching any pattern in the list will be blocked.
- **Whitelist**: Only files matching patterns in the list will be allowed.

:::tip
[This blacklist](https://raw.githubusercontent.com/Cleanuparr/Cleanuparr/refs/heads/main/blacklist), [this permissive blacklist](https://raw.githubusercontent.com/Cleanuparr/Cleanuparr/refs/heads/main/blacklist_permissive) and [this whitelist](https://raw.githubusercontent.com/Cleanuparr/Cleanuparr/refs/heads/main/whitelist) can be used for Sonarr and Radarr.
:::

</ConfigSection>

</div>

</div>