automated commit on 2023-04-30 21:27:42
This commit is contained in:
parent
a60cc84440
commit
b7465e5052
|
@ -0,0 +1,6 @@
|
|||
exports/**
|
||||
logs/**
|
||||
|
||||
# used for local secrets and modifications to scripts
|
||||
secretconfig/**
|
||||
local/**
|
|
@ -0,0 +1,24 @@
|
|||
# Running the Blocklists
|
||||
|
||||
1. Setup Fediblockhole
|
||||
```bash
|
||||
python3 -m pip install fediblockhole
|
||||
```
|
||||
|
||||
2. Clone this Repo
|
||||
```bash
|
||||
mkdir /fediblockhole
|
||||
cd /fediblockhole
|
||||
git clone git@codeberg.org:oliphant/blocklists.git .
|
||||
```
|
||||
|
||||
3. Execute
|
||||
`./fedisync.sh`
|
||||
|
||||
That's it. Blocklists will be written to the
|
||||
|
||||
You can use `local` and `secretconfig` as subfolders that aren't tracked by git to create your own versions of these scripts and config.
|
||||
|
||||
4. Optional
|
||||
`./fedisync-push.sh`
|
||||
This will sync up a specified blocklist (any blocklist you want) to a specified destination. This is not required to generate blocklists.
|
|
@ -0,0 +1,74 @@
|
|||
## Fedi Council 100% file
|
||||
|
||||
# List of instances to read blocklists from.
|
||||
# If the instance makes its blocklist public, no authorization token is needed.
|
||||
# Otherwise, `token` is a Bearer token authorised to read domain_blocks.
|
||||
# If `admin` = True, use the more detailed admin API, which requires a token with a
|
||||
# higher level of authorization.
|
||||
# If `import_fields` are provided, only import these fields from the instance.
|
||||
# Overrides the global `import_fields` setting.
|
||||
blocklist_instance_sources = []
|
||||
|
||||
# List of URLs to read csv blocklists from
|
||||
# Format tells the parser which format to use when parsing the blocklist
|
||||
# max_severity tells the parser to override any severities that are higher than this value
|
||||
# import_fields tells the parser to only import that set of fields from a specific source
|
||||
blocklist_url_sources = [
|
||||
{ url = 'file:///fediblockhole/blocklists/pleroma.envs.net.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/turtle.garden.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/union.place.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/sunny.garden.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/toot.wales.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/mastodon.art.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/rage.love.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/artisan.chat.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/solarpunk.moe.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
# assumes a git pull will proceed this check and bring down the most recent allowlist
|
||||
allowlist_url_sources = [
|
||||
{ url = 'file:///fediblockhole/blocklists/__allowlist.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/birdsite.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
# List of instances to write blocklist to
|
||||
blocklist_instance_destinations = [
|
||||
# { domain = 'eigenmagic.net', token = '<read_write_token>', max_followed_severity = 'silence'},
|
||||
]
|
||||
|
||||
## Store a local copy of the remote blocklists after we fetch them
|
||||
save_intermediate = false
|
||||
|
||||
## Directory to store the local blocklist copies
|
||||
savedir = '/fediblockhole/blocklists/'
|
||||
|
||||
## File to save the fully merged blocklist into
|
||||
blocklist_savefile = '/fediblockhole/blocklists/100.percent.csv'
|
||||
|
||||
## Don't push blocklist to instances, even if they're defined above
|
||||
no_push_instance = true
|
||||
|
||||
## Don't fetch blocklists from URLs, even if they're defined above
|
||||
# no_fetch_url = false
|
||||
|
||||
## Don't fetch blocklists from instances, even if they're defined above
|
||||
# no_fetch_instance = false
|
||||
|
||||
## Set the mergeplan to use when dealing with overlaps between blocklists
|
||||
# The default 'max' mergeplan will use the harshest severity block found for a domain.
|
||||
# The 'min' mergeplan will use the lightest severity block found for a domain.
|
||||
mergeplan = 'min'
|
||||
|
||||
merge_threshold_type = 'pct'
|
||||
merge_threshold = 100
|
||||
|
||||
## Set which fields we import
|
||||
## 'domain' and 'severity' are always imported, these are additional
|
||||
##
|
||||
import_fields = ['reject_media', 'reject_reports', 'obfuscate']
|
||||
#import_fields = ['public_comment', 'reject_media', 'reject_reports', 'obfuscate']
|
||||
|
||||
## Set which fields we export
|
||||
## 'domain' and 'severity' are always exported, these are additional
|
||||
##
|
||||
export_fields = ['reject_media', 'reject_reports', 'public_comment', 'obfuscate']
|
|
@ -0,0 +1,74 @@
|
|||
## Fedi Council Tier 0 File
|
||||
|
||||
# List of instances to read blocklists from.
|
||||
# If the instance makes its blocklist public, no authorization token is needed.
|
||||
# Otherwise, `token` is a Bearer token authorised to read domain_blocks.
|
||||
# If `admin` = True, use the more detailed admin API, which requires a token with a
|
||||
# higher level of authorization.
|
||||
# If `import_fields` are provided, only import these fields from the instance.
|
||||
# Overrides the global `import_fields` setting.
|
||||
blocklist_instance_sources = []
|
||||
|
||||
# List of URLs to read csv blocklists from
|
||||
# Format tells the parser which format to use when parsing the blocklist
|
||||
# max_severity tells the parser to override any severities that are higher than this value
|
||||
# import_fields tells the parser to only import that set of fields from a specific source
|
||||
blocklist_url_sources = [
|
||||
{ url = 'file:///fediblockhole/blocklists/pleroma.envs.net.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/turtle.garden.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/union.place.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/sunny.garden.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/toot.wales.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/mastodon.art.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/rage.love.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/artisan.chat.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/solarpunk.moe.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
# assumes a git pull will proceed this check and bring down the most recent allowlist
|
||||
allowlist_url_sources = [
|
||||
{ url = 'file:///fediblockhole/blocklists/__allowlist.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/birdsite.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
# List of instances to write blocklist to
|
||||
blocklist_instance_destinations = [
|
||||
# { domain = 'eigenmagic.net', token = '<read_write_token>', max_followed_severity = 'silence'},
|
||||
]
|
||||
|
||||
## Store a local copy of the remote blocklists after we fetch them
|
||||
save_intermediate = false
|
||||
|
||||
## Directory to store the local blocklist copies
|
||||
savedir = '/fediblockhole/blocklists/'
|
||||
|
||||
## File to save the fully merged blocklist into
|
||||
blocklist_savefile = '/fediblockhole/blocklists/tier0-council.csv'
|
||||
|
||||
## Don't push blocklist to instances, even if they're defined above
|
||||
no_push_instance = true
|
||||
|
||||
## Don't fetch blocklists from URLs, even if they're defined above
|
||||
# no_fetch_url = false
|
||||
|
||||
## Don't fetch blocklists from instances, even if they're defined above
|
||||
# no_fetch_instance = false
|
||||
|
||||
## Set the mergeplan to use when dealing with overlaps between blocklists
|
||||
# The default 'max' mergeplan will use the harshest severity block found for a domain.
|
||||
# The 'min' mergeplan will use the lightest severity block found for a domain.
|
||||
mergeplan = 'min'
|
||||
|
||||
merge_threshold_type = 'pct'
|
||||
merge_threshold = 80
|
||||
|
||||
## Set which fields we import
|
||||
## 'domain' and 'severity' are always imported, these are additional
|
||||
##
|
||||
import_fields = ['reject_media', 'reject_reports', 'obfuscate']
|
||||
#import_fields = ['public_comment', 'reject_media', 'reject_reports', 'obfuscate']
|
||||
|
||||
## Set which fields we export
|
||||
## 'domain' and 'severity' are always exported, these are additional
|
||||
##
|
||||
export_fields = ['reject_media', 'reject_reports', 'public_comment', 'obfuscate']
|
|
@ -0,0 +1,61 @@
|
|||
## Example Server Export File
|
||||
|
||||
# List of instances to read blocklists from.
|
||||
# If the instance makes its blocklist public, no authorization token is needed.
|
||||
# Otherwise, `token` is a Bearer token authorised to read domain_blocks.
|
||||
# If `admin` = True, use the more detailed admin API, which requires a token with a
|
||||
# higher level of authorization.
|
||||
# If `import_fields` are provided, only import these fields from the instance.
|
||||
# Overrides the global `import_fields` setting.
|
||||
blocklist_instance_sources = []
|
||||
|
||||
# List of URLs to read csv blocklists from
|
||||
# Format tells the parser which format to use when parsing the blocklist
|
||||
# max_severity tells the parser to override any severities that are higher than this value
|
||||
# import_fields tells the parser to only import that set of fields from a specific source
|
||||
blocklist_url_sources = [
|
||||
{ url = 'file:///fediblockhole/blocklists/_unified_tier0_blocklist.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
# List of instances to write blocklist to
|
||||
blocklist_instance_destinations = [
|
||||
{ domain = 'server.example.com', token = '<your server token>', max_followed_severity = 'silence'},
|
||||
]
|
||||
|
||||
allowlist_url_sources = [
|
||||
{ url = 'file:///fediblockhole/blocklists/__allowlist.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
## Store a local copy of the remote blocklists after we fetch them
|
||||
save_intermediate = false
|
||||
|
||||
## Directory to store the local blocklist copies
|
||||
savedir = '/fediblockhole/blocklists/'
|
||||
|
||||
## File to save the fully merged blocklist into
|
||||
blocklist_savefile = '/fediblockhole/exports/example_server_blocklist.csv'
|
||||
|
||||
## Don't push blocklist to instances, even if they're defined above
|
||||
no_push_instance = false
|
||||
|
||||
## Don't fetch blocklists from URLs, even if they're defined above
|
||||
# no_fetch_url = false
|
||||
|
||||
## Don't fetch blocklists from instances, even if they're defined above
|
||||
# no_fetch_instance = false
|
||||
|
||||
## Set the mergeplan to use when dealing with overlaps between blocklists
|
||||
# The default 'max' mergeplan will use the harshest severity block found for a domain.
|
||||
# The 'min' mergeplan will use the lightest severity block found for a domain.
|
||||
mergeplan = 'min'
|
||||
|
||||
## Set which fields we import
|
||||
## 'domain' and 'severity' are always imported, these are additional
|
||||
##
|
||||
#import_fields = ['reject_media', 'reject_reports', 'obfuscate']
|
||||
import_fields = ['public_comment', 'reject_media', 'reject_reports', 'obfuscate']
|
||||
|
||||
## Set which fields we export
|
||||
## 'domain' and 'severity' are always exported, these are additional
|
||||
##
|
||||
export_fields = ['reject_media', 'reject_reports', 'obfuscate']
|
|
@ -0,0 +1,63 @@
|
|||
## All the T0 stuff m.s. doesn't block
|
||||
|
||||
# List of instances to read blocklists from.
|
||||
# If the instance makes its blocklist public, no authorization token is needed.
|
||||
# Otherwise, `token` is a Bearer token authorised to read domain_blocks.
|
||||
# If `admin` = True, use the more detailed admin API, which requires a token with a
|
||||
# higher level of authorization.
|
||||
# If `import_fields` are provided, only import these fields from the instance.
|
||||
# Overrides the global `import_fields` setting.
|
||||
blocklist_instance_sources = []
|
||||
|
||||
# List of URLs to read csv blocklists from
|
||||
# Format tells the parser which format to use when parsing the blocklist
|
||||
# max_severity tells the parser to override any severities that are higher than this value
|
||||
# import_fields tells the parser to only import that set of fields from a specific source
|
||||
blocklist_url_sources = [
|
||||
{ url = 'file:///fediblockhole/blocklists/_unified_tier0_blocklist.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
# List of instances to write blocklist to
|
||||
blocklist_instance_destinations = [
|
||||
# { domain = 'eigenmagic.net', token = '<read_write_token>', max_followed_severity = 'silence'},
|
||||
]
|
||||
|
||||
allowlist_url_sources = [
|
||||
{ url = 'file:///fediblockhole/blocklists/__allowlist.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/birdsite.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/mastodon.social.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
## Store a local copy of the remote blocklists after we fetch them
|
||||
save_intermediate = false
|
||||
|
||||
## Directory to store the local blocklist copies
|
||||
savedir = '/fediblockhole/blocklists/'
|
||||
|
||||
## File to save the fully merged blocklist into
|
||||
blocklist_savefile = '/fediblockhole/blocklists/missing-tier0-mastodon.social.csv'
|
||||
|
||||
## Don't push blocklist to instances, even if they're defined above
|
||||
no_push_instance = true
|
||||
|
||||
## Don't fetch blocklists from URLs, even if they're defined above
|
||||
# no_fetch_url = false
|
||||
|
||||
## Don't fetch blocklists from instances, even if they're defined above
|
||||
# no_fetch_instance = false
|
||||
|
||||
## Set the mergeplan to use when dealing with overlaps between blocklists
|
||||
# The default 'max' mergeplan will use the harshest severity block found for a domain.
|
||||
# The 'min' mergeplan will use the lightest severity block found for a domain.
|
||||
mergeplan = 'max'
|
||||
|
||||
## Set which fields we import
|
||||
## 'domain' and 'severity' are always imported, these are additional
|
||||
##
|
||||
import_fields = ['reject_media', 'reject_reports', 'obfuscate']
|
||||
#import_fields = ['public_comment', 'reject_media', 'reject_reports', 'obfuscate']
|
||||
|
||||
## Set which fields we export
|
||||
## 'domain' and 'severity' are always exported, these are additional
|
||||
##
|
||||
export_fields = ['reject_media', 'reject_reports', 'public_comment', 'obfuscate']
|
|
@ -0,0 +1,62 @@
|
|||
## All the T0 stuff m.s. doesn't block
|
||||
|
||||
# List of instances to read blocklists from.
|
||||
# If the instance makes its blocklist public, no authorization token is needed.
|
||||
# Otherwise, `token` is a Bearer token authorised to read domain_blocks.
|
||||
# If `admin` = True, use the more detailed admin API, which requires a token with a
|
||||
# higher level of authorization.
|
||||
# If `import_fields` are provided, only import these fields from the instance.
|
||||
# Overrides the global `import_fields` setting.
|
||||
blocklist_instance_sources = []
|
||||
|
||||
# List of URLs to read csv blocklists from
|
||||
# Format tells the parser which format to use when parsing the blocklist
|
||||
# max_severity tells the parser to override any severities that are higher than this value
|
||||
# import_fields tells the parser to only import that set of fields from a specific source
|
||||
blocklist_url_sources = [
|
||||
{ url = 'file:///fediblockhole/blocklists/mastodon.social.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
# List of instances to write blocklist to
|
||||
blocklist_instance_destinations = [
|
||||
# { domain = 'eigenmagic.net', token = '<read_write_token>', max_followed_severity = 'silence'},
|
||||
]
|
||||
|
||||
allowlist_url_sources = [
|
||||
{ url = 'file:///fediblockhole/blocklists/birdsite.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/_unified_tier0_blocklist.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
## Store a local copy of the remote blocklists after we fetch them
|
||||
save_intermediate = false
|
||||
|
||||
## Directory to store the local blocklist copies
|
||||
savedir = '/fediblockhole/blocklists/'
|
||||
|
||||
## File to save the fully merged blocklist into
|
||||
blocklist_savefile = '/fediblockhole/blocklists/council-missing-mastodon.social.csv'
|
||||
|
||||
## Don't push blocklist to instances, even if they're defined above
|
||||
no_push_instance = true
|
||||
|
||||
## Don't fetch blocklists from URLs, even if they're defined above
|
||||
# no_fetch_url = false
|
||||
|
||||
## Don't fetch blocklists from instances, even if they're defined above
|
||||
# no_fetch_instance = false
|
||||
|
||||
## Set the mergeplan to use when dealing with overlaps between blocklists
|
||||
# The default 'max' mergeplan will use the harshest severity block found for a domain.
|
||||
# The 'min' mergeplan will use the lightest severity block found for a domain.
|
||||
mergeplan = 'max'
|
||||
|
||||
## Set which fields we import
|
||||
## 'domain' and 'severity' are always imported, these are additional
|
||||
##
|
||||
import_fields = ['reject_media', 'reject_reports', 'obfuscate']
|
||||
#import_fields = ['public_comment', 'reject_media', 'reject_reports', 'obfuscate']
|
||||
|
||||
## Set which fields we export
|
||||
## 'domain' and 'severity' are always exported, these are additional
|
||||
##
|
||||
export_fields = ['reject_media', 'reject_reports', 'public_comment', 'obfuscate']
|
|
@ -0,0 +1,77 @@
|
|||
## Pull Trusted Sources - Retrieve all sources and write MAX merge file
|
||||
|
||||
# List of instances to read blocklists from.
|
||||
# If the instance makes its blocklist public, no authorization token is needed.
|
||||
# Otherwise, `token` is a Bearer token authorised to read domain_blocks.
|
||||
# If `admin` = True, use the more detailed admin API, which requires a token with a
|
||||
# higher level of authorization.
|
||||
# If `import_fields` are provided, only import these fields from the instance.
|
||||
# Overrides the global `import_fields` setting.
|
||||
blocklist_instance_sources = [
|
||||
{ domain = 'mastodon.social' },
|
||||
{ domain = 'mastodon.online' },
|
||||
{ domain = 'union.place' },
|
||||
{ domain = 'sunny.garden' },
|
||||
{ domain = 'toot.wales' },
|
||||
{ domain = 'mastodon.art'},
|
||||
{ domain = 'rage.love' },
|
||||
{ domain = 'artisan.chat'},
|
||||
{ domain = 'solarpunk.moe'},
|
||||
]
|
||||
|
||||
# List of URLs to read csv blocklists from
|
||||
# Format tells the parser which format to use when parsing the blocklist
|
||||
# max_severity tells the parser to override any severities that are higher than this value
|
||||
# import_fields tells the parser to only import that set of fields from a specific source
|
||||
blocklist_url_sources = [
|
||||
# tier 0
|
||||
{ url = 'https://seirdy.one/pb/tier0.csv', format = 'csv'},
|
||||
{ url = 'https://raw.githubusercontent.com/gardenfence/blocklist/main/gardenfence-fediblocksync.csv', format = 'csv'},
|
||||
# other sources
|
||||
{ url = 'https://seirdy.one/pb/pleroma.envs.net.csv', format = 'csv' },
|
||||
{ url = 'https://turtle.garden/blocklist.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
# assumes a git pull will proceed this check and bring down the most recent allowlist
|
||||
allowlist_url_sources = [
|
||||
{ url = 'file:///fediblockhole/blocklists/__allowlist.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
# List of instances to write blocklist to
|
||||
blocklist_instance_destinations = [
|
||||
# { domain = 'eigenmagic.net', token = '<read_write_token>', max_followed_severity = 'silence'},
|
||||
]
|
||||
|
||||
## Store a local copy of the remote blocklists after we fetch them
|
||||
save_intermediate = true
|
||||
|
||||
## Directory to store the local blocklist copies
|
||||
savedir = '/fediblockhole/blocklists/'
|
||||
|
||||
## File to save the fully merged blocklist into
|
||||
blocklist_savefile = '/fediblockhole/blocklists/_unified_max_blocklist.csv'
|
||||
|
||||
## Don't push blocklist to instances, even if they're defined above
|
||||
no_push_instance = true
|
||||
|
||||
## Don't fetch blocklists from URLs, even if they're defined above
|
||||
# no_fetch_url = false
|
||||
|
||||
## Don't fetch blocklists from instances, even if they're defined above
|
||||
# no_fetch_instance = false
|
||||
|
||||
## Set the mergeplan to use when dealing with overlaps between blocklists
|
||||
# The default 'max' mergeplan will use the harshest severity block found for a domain.
|
||||
# The 'min' mergeplan will use the lightest severity block found for a domain.
|
||||
mergeplan = 'max'
|
||||
|
||||
## Set which fields we import
|
||||
## 'domain' and 'severity' are always imported, these are additional
|
||||
##
|
||||
import_fields = ['reject_media', 'reject_reports', 'obfuscate']
|
||||
#import_fields = ['public_comment', 'reject_media', 'reject_reports', 'obfuscate']
|
||||
|
||||
## Set which fields we export
|
||||
## 'domain' and 'severity' are always exported, these are additional
|
||||
##
|
||||
export_fields = ['reject_media', 'reject_reports', 'public_comment', 'obfuscate']
|
|
@ -0,0 +1,64 @@
|
|||
## TIER0 File
|
||||
|
||||
# List of instances to read blocklists from.
|
||||
# If the instance makes its blocklist public, no authorization token is needed.
|
||||
# Otherwise, `token` is a Bearer token authorised to read domain_blocks.
|
||||
# If `admin` = True, use the more detailed admin API, which requires a token with a
|
||||
# higher level of authorization.
|
||||
# If `import_fields` are provided, only import these fields from the instance.
|
||||
# Overrides the global `import_fields` setting.
|
||||
blocklist_instance_sources = []
|
||||
|
||||
# List of URLs to read csv blocklists from
|
||||
# Format tells the parser which format to use when parsing the blocklist
|
||||
# max_severity tells the parser to override any severities that are higher than this value
|
||||
# import_fields tells the parser to only import that set of fields from a specific source
|
||||
blocklist_url_sources = [
|
||||
{ url = 'file:///fediblockhole/blocklists/tier0.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/gardenfence.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/tier0-council.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
# List of instances to write blocklist to
|
||||
blocklist_instance_destinations = [
|
||||
# { domain = 'eigenmagic.net', token = '<read_write_token>', max_followed_severity = 'silence'},
|
||||
]
|
||||
|
||||
allowlist_url_sources = [
|
||||
{ url = 'file:///fediblockhole/blocklists/__allowlist.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/birdsite.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
## Store a local copy of the remote blocklists after we fetch them
|
||||
save_intermediate = false
|
||||
|
||||
## Directory to store the local blocklist copies
|
||||
savedir = '/fediblockhole/blocklists/'
|
||||
|
||||
## File to save the fully merged blocklist into
|
||||
blocklist_savefile = '/fediblockhole/blocklists/_unified_tier0_blocklist.csv'
|
||||
|
||||
## Don't push blocklist to instances, even if they're defined above
|
||||
no_push_instance = true
|
||||
|
||||
## Don't fetch blocklists from URLs, even if they're defined above
|
||||
# no_fetch_url = false
|
||||
|
||||
## Don't fetch blocklists from instances, even if they're defined above
|
||||
# no_fetch_instance = false
|
||||
|
||||
## Set the mergeplan to use when dealing with overlaps between blocklists
|
||||
# The default 'max' mergeplan will use the harshest severity block found for a domain.
|
||||
# The 'min' mergeplan will use the lightest severity block found for a domain.
|
||||
mergeplan = 'max'
|
||||
|
||||
## Set which fields we import
|
||||
## 'domain' and 'severity' are always imported, these are additional
|
||||
##
|
||||
import_fields = ['reject_media', 'reject_reports', 'obfuscate']
|
||||
#import_fields = ['public_comment', 'reject_media', 'reject_reports', 'obfuscate']
|
||||
|
||||
## Set which fields we export
|
||||
## 'domain' and 'severity' are always exported, these are additional
|
||||
##
|
||||
export_fields = ['reject_media', 'reject_reports', 'public_comment', 'obfuscate']
|
|
@ -0,0 +1,88 @@
|
|||
## MAX Unified File
|
||||
|
||||
# List of instances to read blocklists from.
|
||||
# If the instance makes its blocklist public, no authorization token is needed.
|
||||
# Otherwise, `token` is a Bearer token authorised to read domain_blocks.
|
||||
# If `admin` = True, use the more detailed admin API, which requires a token with a
|
||||
# higher level of authorization.
|
||||
# If `import_fields` are provided, only import these fields from the instance.
|
||||
# Overrides the global `import_fields` setting.
|
||||
blocklist_instance_sources = []
|
||||
|
||||
# List of URLs to read csv blocklists from
|
||||
# Format tells the parser which format to use when parsing the blocklist
|
||||
# max_severity tells the parser to override any severities that are higher than this value
|
||||
# import_fields tells the parser to only import that set of fields from a specific source
|
||||
blocklist_url_sources = [
|
||||
{ url = 'file:///fediblockhole/blocklists/union.place.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/sunny.garden.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/mastodon.art.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/artisan.chat.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/toot.wales.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/rage.love.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/pleroma.envs.net.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/turtle.garden.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/solarpunk.moe.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
# List of instances to write blocklist to
|
||||
blocklist_instance_destinations = [
|
||||
# { domain = 'eigenmagic.net', token = '<read_write_token>', max_followed_severity = 'silence'},
|
||||
]
|
||||
|
||||
allowlist_url_sources = [
|
||||
{ url = 'file:///fediblockhole/blocklists/__allowlist.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/birdsite.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
## Store a local copy of the remote blocklists after we fetch them
|
||||
save_intermediate = false
|
||||
|
||||
## Directory to store the local blocklist copies
|
||||
savedir = '/fediblockhole/blocklists/'
|
||||
|
||||
## File to save the fully merged blocklist into
|
||||
blocklist_savefile = '/fediblockhole/blocklists/_working_tier1.csv'
|
||||
|
||||
## Don't push blocklist to instances, even if they're defined above
|
||||
no_push_instance = true
|
||||
|
||||
## Don't fetch blocklists from URLs, even if they're defined above
|
||||
# no_fetch_url = false
|
||||
|
||||
## Don't fetch blocklists from instances, even if they're defined above
|
||||
# no_fetch_instance = false
|
||||
|
||||
## Set the mergeplan to use when dealing with overlaps between blocklists
|
||||
# The default 'max' mergeplan will use the harshest severity block found for a domain.
|
||||
# The 'min' mergeplan will use the lightest severity block found for a domain.
|
||||
mergeplan = 'min'
|
||||
|
||||
## Optional threshold-based merging.
|
||||
# Only merge in domain blocks if the domain is mentioned in
|
||||
# at least `threshold` blocklists.
|
||||
# `merge_thresold` is an integer, with a default value of 0.
|
||||
# The `merge_threshold_type` can be `count` or `pct`.
|
||||
# If `count` type is selected, the threshold is reached when the domain
|
||||
# is mentioned in at least `merge_threshold` blocklists. The default value
|
||||
# of 0 means that every block in every list will be merged in.
|
||||
# If `pct` type is selected, `merge_threshold` is interpreted as a percentage,
|
||||
# i.e. if `merge_threshold` = 20, blocks will only be merged in if the domain
|
||||
# is present in at least 20% of blocklists.
|
||||
# Percentage calculated as number_of_mentions / total_number_of_blocklists.
|
||||
# The percentage method is more flexibile, but also more complicated, so take care
|
||||
# when using it.
|
||||
#
|
||||
merge_threshold_type = 'pct'
|
||||
merge_threshold = 50
|
||||
|
||||
## Set which fields we import
|
||||
## 'domain' and 'severity' are always imported, these are additional
|
||||
##
|
||||
import_fields = ['reject_media', 'reject_reports', 'obfuscate']
|
||||
#import_fields = ['public_comment', 'reject_media', 'reject_reports', 'obfuscate']
|
||||
|
||||
## Set which fields we export
|
||||
## 'domain' and 'severity' are always exported, these are additional
|
||||
##
|
||||
export_fields = ['reject_media', 'reject_reports', 'public_comment', 'obfuscate']
|
|
@ -0,0 +1,65 @@
|
|||
## Tier1
|
||||
|
||||
# List of instances to read blocklists from.
|
||||
# If the instance makes its blocklist public, no authorization token is needed.
|
||||
# Otherwise, `token` is a Bearer token authorised to read domain_blocks.
|
||||
# If `admin` = True, use the more detailed admin API, which requires a token with a
|
||||
# higher level of authorization.
|
||||
# If `import_fields` are provided, only import these fields from the instance.
|
||||
# Overrides the global `import_fields` setting.
|
||||
blocklist_instance_sources = []
|
||||
|
||||
# List of URLs to read csv blocklists from
|
||||
# Format tells the parser which format to use when parsing the blocklist
|
||||
# max_severity tells the parser to override any severities that are higher than this value
|
||||
# import_fields tells the parser to only import that set of fields from a specific source
|
||||
blocklist_url_sources = [
|
||||
# bring in tier0
|
||||
{ url = 'file:///fediblockhole/blocklists/_unified_tier0_blocklist.csv', format = 'csv' },
|
||||
# tier 1
|
||||
{ url = 'file:///fediblockhole/blocklists/_working_tier1.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
allowlist_url_sources = [
|
||||
{ url = 'file:///fediblockhole/blocklists/__allowlist.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/birdsite.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
# List of instances to write blocklist to
|
||||
blocklist_instance_destinations = [
|
||||
# { domain = 'eigenmagic.net', token = '<read_write_token>', max_followed_severity = 'silence'},
|
||||
]
|
||||
|
||||
## Store a local copy of the remote blocklists after we fetch them
|
||||
save_intermediate = false
|
||||
|
||||
## Directory to store the local blocklist copies
|
||||
savedir = '/fediblockhole/blocklists/'
|
||||
|
||||
## File to save the fully merged blocklist into
|
||||
blocklist_savefile = '/fediblockhole/blocklists/_unified_tier1_blocklist.csv'
|
||||
|
||||
## Don't push blocklist to instances, even if they're defined above
|
||||
no_push_instance = true
|
||||
|
||||
## Don't fetch blocklists from URLs, even if they're defined above
|
||||
# no_fetch_url = false
|
||||
|
||||
## Don't fetch blocklists from instances, even if they're defined above
|
||||
# no_fetch_instance = false
|
||||
|
||||
## Set the mergeplan to use when dealing with overlaps between blocklists
|
||||
# The default 'max' mergeplan will use the harshest severity block found for a domain.
|
||||
# The 'min' mergeplan will use the lightest severity block found for a domain.
|
||||
mergeplan = 'min'
|
||||
|
||||
## Set which fields we import
|
||||
## 'domain' and 'severity' are always imported, these are additional
|
||||
##
|
||||
import_fields = ['reject_media', 'reject_reports', 'obfuscate']
|
||||
#import_fields = ['public_comment', 'reject_media', 'reject_reports', 'obfuscate']
|
||||
|
||||
## Set which fields we export
|
||||
## 'domain' and 'severity' are always exported, these are additional
|
||||
##
|
||||
export_fields = ['reject_media', 'reject_reports', 'public_comment', 'obfuscate']
|
|
@ -0,0 +1,88 @@
|
|||
## Tier 2 threshold file
|
||||
|
||||
# List of instances to read blocklists from.
|
||||
# If the instance makes its blocklist public, no authorization token is needed.
|
||||
# Otherwise, `token` is a Bearer token authorised to read domain_blocks.
|
||||
# If `admin` = True, use the more detailed admin API, which requires a token with a
|
||||
# higher level of authorization.
|
||||
# If `import_fields` are provided, only import these fields from the instance.
|
||||
# Overrides the global `import_fields` setting.
|
||||
blocklist_instance_sources = []
|
||||
|
||||
# List of URLs to read csv blocklists from
|
||||
# Format tells the parser which format to use when parsing the blocklist
|
||||
# max_severity tells the parser to override any severities that are higher than this value
|
||||
# import_fields tells the parser to only import that set of fields from a specific source
|
||||
blocklist_url_sources = [
|
||||
{ url = 'file:///fediblockhole/blocklists/union.place.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/sunny.garden.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/mastodon.art.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/artisan.chat.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/toot.wales.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/rage.love.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/pleroma.envs.net.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/turtle.garden.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/solarpunk.moe.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
# List of instances to write blocklist to
|
||||
blocklist_instance_destinations = [
|
||||
# { domain = 'eigenmagic.net', token = '<read_write_token>', max_followed_severity = 'silence'},
|
||||
]
|
||||
|
||||
allowlist_url_sources = [
|
||||
{ url = 'file:///fediblockhole/blocklists/__allowlist.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/birdsite.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
## Store a local copy of the remote blocklists after we fetch them
|
||||
save_intermediate = false
|
||||
|
||||
## Directory to store the local blocklist copies
|
||||
savedir = '/fediblockhole/blocklists/'
|
||||
|
||||
## File to save the fully merged blocklist into
|
||||
blocklist_savefile = '/fediblockhole/blocklists/_working_tier2.csv'
|
||||
|
||||
## Don't push blocklist to instances, even if they're defined above
|
||||
no_push_instance = true
|
||||
|
||||
## Don't fetch blocklists from URLs, even if they're defined above
|
||||
# no_fetch_url = false
|
||||
|
||||
## Don't fetch blocklists from instances, even if they're defined above
|
||||
# no_fetch_instance = false
|
||||
|
||||
## Set the mergeplan to use when dealing with overlaps between blocklists
|
||||
# The default 'max' mergeplan will use the harshest severity block found for a domain.
|
||||
# The 'min' mergeplan will use the lightest severity block found for a domain.
|
||||
mergeplan = 'min'
|
||||
|
||||
## Optional threshold-based merging.
|
||||
# Only merge in domain blocks if the domain is mentioned in
|
||||
# at least `threshold` blocklists.
|
||||
# `merge_thresold` is an integer, with a default value of 0.
|
||||
# The `merge_threshold_type` can be `count` or `pct`.
|
||||
# If `count` type is selected, the threshold is reached when the domain
|
||||
# is mentioned in at least `merge_threshold` blocklists. The default value
|
||||
# of 0 means that every block in every list will be merged in.
|
||||
# If `pct` type is selected, `merge_threshold` is interpreted as a percentage,
|
||||
# i.e. if `merge_threshold` = 20, blocks will only be merged in if the domain
|
||||
# is present in at least 20% of blocklists.
|
||||
# Percentage calculated as number_of_mentions / total_number_of_blocklists.
|
||||
# The percentage method is more flexibile, but also more complicated, so take care
|
||||
# when using it.
|
||||
#
|
||||
merge_threshold_type = 'pct'
|
||||
merge_threshold = 33
|
||||
|
||||
## Set which fields we import
|
||||
## 'domain' and 'severity' are always imported, these are additional
|
||||
##
|
||||
import_fields = ['reject_media', 'reject_reports', 'obfuscate']
|
||||
#import_fields = ['public_comment', 'reject_media', 'reject_reports', 'obfuscate']
|
||||
|
||||
## Set which fields we export
|
||||
## 'domain' and 'severity' are always exported, these are additional
|
||||
##
|
||||
export_fields = ['reject_media', 'reject_reports', 'public_comment', 'obfuscate']
|
|
@ -0,0 +1,65 @@
|
|||
## Tier2
|
||||
|
||||
# List of instances to read blocklists from.
|
||||
# If the instance makes its blocklist public, no authorization token is needed.
|
||||
# Otherwise, `token` is a Bearer token authorised to read domain_blocks.
|
||||
# If `admin` = True, use the more detailed admin API, which requires a token with a
|
||||
# higher level of authorization.
|
||||
# If `import_fields` are provided, only import these fields from the instance.
|
||||
# Overrides the global `import_fields` setting.
|
||||
blocklist_instance_sources = []
|
||||
|
||||
# List of URLs to read csv blocklists from
|
||||
# Format tells the parser which format to use when parsing the blocklist
|
||||
# max_severity tells the parser to override any severities that are higher than this value
|
||||
# import_fields tells the parser to only import that set of fields from a specific source
|
||||
blocklist_url_sources = [
|
||||
# bring in tier0
|
||||
{ url = 'file:///fediblockhole/blocklists/_unified_tier0_blocklist.csv', format = 'csv' },
|
||||
# tier 2
|
||||
{ url = 'file:///fediblockhole/blocklists/_working_tier2.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
allowlist_url_sources = [
|
||||
{ url = 'file:///fediblockhole/blocklists/__allowlist.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/birdsite.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
# List of instances to write blocklist to
|
||||
blocklist_instance_destinations = [
|
||||
# { domain = 'eigenmagic.net', token = '<read_write_token>', max_followed_severity = 'silence'},
|
||||
]
|
||||
|
||||
## Store a local copy of the remote blocklists after we fetch them
|
||||
save_intermediate = false
|
||||
|
||||
## Directory to store the local blocklist copies
|
||||
savedir = '/fediblockhole/blocklists/'
|
||||
|
||||
## File to save the fully merged blocklist into
|
||||
blocklist_savefile = '/fediblockhole/blocklists/_unified_tier2_blocklist.csv'
|
||||
|
||||
## Don't push blocklist to instances, even if they're defined above
|
||||
no_push_instance = true
|
||||
|
||||
## Don't fetch blocklists from URLs, even if they're defined above
|
||||
# no_fetch_url = false
|
||||
|
||||
## Don't fetch blocklists from instances, even if they're defined above
|
||||
# no_fetch_instance = false
|
||||
|
||||
## Set the mergeplan to use when dealing with overlaps between blocklists
|
||||
# The default 'max' mergeplan will use the harshest severity block found for a domain.
|
||||
# The 'min' mergeplan will use the lightest severity block found for a domain.
|
||||
mergeplan = 'min'
|
||||
|
||||
## Set which fields we import
|
||||
## 'domain' and 'severity' are always imported, these are additional
|
||||
##
|
||||
import_fields = ['reject_media', 'reject_reports', 'obfuscate']
|
||||
#import_fields = ['public_comment', 'reject_media', 'reject_reports', 'obfuscate']
|
||||
|
||||
## Set which fields we export
|
||||
## 'domain' and 'severity' are always exported, these are additional
|
||||
##
|
||||
export_fields = ['reject_media', 'reject_reports', 'public_comment', 'obfuscate']
|
|
@ -0,0 +1,88 @@
|
|||
## Tier 3 Threshold file
|
||||
|
||||
# List of instances to read blocklists from.
|
||||
# If the instance makes its blocklist public, no authorization token is needed.
|
||||
# Otherwise, `token` is a Bearer token authorised to read domain_blocks.
|
||||
# If `admin` = True, use the more detailed admin API, which requires a token with a
|
||||
# higher level of authorization.
|
||||
# If `import_fields` are provided, only import these fields from the instance.
|
||||
# Overrides the global `import_fields` setting.
|
||||
blocklist_instance_sources = []
|
||||
|
||||
# List of URLs to read csv blocklists from
|
||||
# Format tells the parser which format to use when parsing the blocklist
|
||||
# max_severity tells the parser to override any severities that are higher than this value
|
||||
# import_fields tells the parser to only import that set of fields from a specific source
|
||||
blocklist_url_sources = [
|
||||
{ url = 'file:///fediblockhole/blocklists/union.place.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/sunny.garden.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/mastodon.art.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/artisan.chat.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/toot.wales.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/rage.love.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/pleroma.envs.net.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/turtle.garden.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/solarpunk.moe.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
# List of instances to write blocklist to
|
||||
blocklist_instance_destinations = [
|
||||
# { domain = 'eigenmagic.net', token = '<read_write_token>', max_followed_severity = 'silence'},
|
||||
]
|
||||
|
||||
allowlist_url_sources = [
|
||||
{ url = 'file:///fediblockhole/blocklists/__allowlist.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/birdsite.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
## Store a local copy of the remote blocklists after we fetch them
|
||||
save_intermediate = false
|
||||
|
||||
## Directory to store the local blocklist copies
|
||||
savedir = '/fediblockhole/blocklists/'
|
||||
|
||||
## File to save the fully merged blocklist into
|
||||
blocklist_savefile = '/fediblockhole/blocklists/_working_tier3.csv'
|
||||
|
||||
## Don't push blocklist to instances, even if they're defined above
|
||||
no_push_instance = true
|
||||
|
||||
## Don't fetch blocklists from URLs, even if they're defined above
|
||||
# no_fetch_url = false
|
||||
|
||||
## Don't fetch blocklists from instances, even if they're defined above
|
||||
# no_fetch_instance = false
|
||||
|
||||
## Set the mergeplan to use when dealing with overlaps between blocklists
|
||||
# The default 'max' mergeplan will use the harshest severity block found for a domain.
|
||||
# The 'min' mergeplan will use the lightest severity block found for a domain.
|
||||
mergeplan = 'min'
|
||||
|
||||
## Optional threshold-based merging.
|
||||
# Only merge in domain blocks if the domain is mentioned in
|
||||
# at least `threshold` blocklists.
|
||||
# `merge_thresold` is an integer, with a default value of 0.
|
||||
# The `merge_threshold_type` can be `count` or `pct`.
|
||||
# If `count` type is selected, the threshold is reached when the domain
|
||||
# is mentioned in at least `merge_threshold` blocklists. The default value
|
||||
# of 0 means that every block in every list will be merged in.
|
||||
# If `pct` type is selected, `merge_threshold` is interpreted as a percentage,
|
||||
# i.e. if `merge_threshold` = 20, blocks will only be merged in if the domain
|
||||
# is present in at least 20% of blocklists.
|
||||
# Percentage calculated as number_of_mentions / total_number_of_blocklists.
|
||||
# The percentage method is more flexibile, but also more complicated, so take care
|
||||
# when using it.
|
||||
#
|
||||
merge_threshold_type = 'count'
|
||||
merge_threshold = 2
|
||||
|
||||
## Set which fields we import
|
||||
## 'domain' and 'severity' are always imported, these are additional
|
||||
##
|
||||
import_fields = ['reject_media', 'reject_reports', 'obfuscate']
|
||||
#import_fields = ['public_comment', 'reject_media', 'reject_reports', 'obfuscate']
|
||||
|
||||
## Set which fields we export
|
||||
## 'domain' and 'severity' are always exported, these are additional
|
||||
##
|
||||
export_fields = ['reject_media', 'reject_reports', 'public_comment', 'obfuscate']
|
|
@ -0,0 +1,65 @@
|
|||
## Tier3
|
||||
|
||||
# List of instances to read blocklists from.
|
||||
# If the instance makes its blocklist public, no authorization token is needed.
|
||||
# Otherwise, `token` is a Bearer token authorised to read domain_blocks.
|
||||
# If `admin` = True, use the more detailed admin API, which requires a token with a
|
||||
# higher level of authorization.
|
||||
# If `import_fields` are provided, only import these fields from the instance.
|
||||
# Overrides the global `import_fields` setting.
|
||||
blocklist_instance_sources = []
|
||||
|
||||
# List of URLs to read csv blocklists from
|
||||
# Format tells the parser which format to use when parsing the blocklist
|
||||
# max_severity tells the parser to override any severities that are higher than this value
|
||||
# import_fields tells the parser to only import that set of fields from a specific source
|
||||
blocklist_url_sources = [
|
||||
# bring in tier0
|
||||
{ url = 'file:///fediblockhole/blocklists/_unified_tier0_blocklist.csv', format = 'csv' },
|
||||
# tier 0
|
||||
{ url = 'file:///fediblockhole/blocklists/_working_tier3.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
allowlist_url_sources = [
|
||||
{ url = 'file:///fediblockhole/blocklists/__allowlist.csv', format = 'csv' },
|
||||
{ url = 'file:///fediblockhole/blocklists/birdsite.csv', format = 'csv' },
|
||||
]
|
||||
|
||||
# List of instances to write blocklist to
|
||||
blocklist_instance_destinations = [
|
||||
# { domain = 'eigenmagic.net', token = '<read_write_token>', max_followed_severity = 'silence'},
|
||||
]
|
||||
|
||||
## Store a local copy of the remote blocklists after we fetch them
|
||||
save_intermediate = false
|
||||
|
||||
## Directory to store the local blocklist copies
|
||||
savedir = '/fediblockhole/blocklists/'
|
||||
|
||||
## File to save the fully merged blocklist into
|
||||
blocklist_savefile = '/fediblockhole/blocklists/_unified_tier3_blocklist.csv'
|
||||
|
||||
## Don't push blocklist to instances, even if they're defined above
|
||||
no_push_instance = true
|
||||
|
||||
## Don't fetch blocklists from URLs, even if they're defined above
|
||||
# no_fetch_url = false
|
||||
|
||||
## Don't fetch blocklists from instances, even if they're defined above
|
||||
# no_fetch_instance = false
|
||||
|
||||
## Set the mergeplan to use when dealing with overlaps between blocklists
|
||||
# The default 'max' mergeplan will use the harshest severity block found for a domain.
|
||||
# The 'min' mergeplan will use the lightest severity block found for a domain.
|
||||
mergeplan = 'min'
|
||||
|
||||
## Set which fields we import
|
||||
## 'domain' and 'severity' are always imported, these are additional
|
||||
##
|
||||
import_fields = ['reject_media', 'reject_reports', 'obfuscate']
|
||||
#import_fields = ['public_comment', 'reject_media', 'reject_reports', 'obfuscate']
|
||||
|
||||
## Set which fields we export
|
||||
## 'domain' and 'severity' are always exported, these are additional
|
||||
##
|
||||
export_fields = ['reject_media', 'reject_reports', 'public_comment', 'obfuscate']
|
|
@ -0,0 +1,9 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
# export to production servers
|
||||
|
||||
SYNC=`which fediblock-sync`
|
||||
|
||||
# use secretconfig subfolder
|
||||
${SYNC} -c /fediblockhole/config/example-server-export.conf.toml
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
# generate files
|
||||
#exec > >(tee /fediblockhole/logs/fedisync.log) 2>&1
|
||||
exec 2> >(tee /fediblockhole/logs/fedisync-git.log)
|
||||
echo "Pushing up git changes..."
|
||||
|
||||
cd /fediblockhole
|
||||
|
||||
date=$(date '+%Y-%m-%d %H:%M:%S')
|
||||
|
||||
GIT=`which git`
|
||||
${GIT} add --all
|
||||
${GIT} commit -m "automated commit on $date"
|
||||
${GIT} push
|
||||
#${GIT} pushall
|
||||
|
||||
echo "Push complete."
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
# generate files
|
||||
exec > >(tee /fediblockhole/logs/fedisync-production.log) 2>&1
|
||||
|
||||
# push to github and codeberg
|
||||
# note: copy your own version to /fediblockhole/local
|
||||
/fediblockhole/fedisync-git.sh
|
||||
|
||||
# push to remote servers
|
||||
/fediblockhole/fedisync-example-server.sh
|
|
@ -0,0 +1,62 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# generate files
|
||||
#exec > >(tee /fediblockhole/logs/fedisync.log) 2>&1
|
||||
exec 2> >(tee /fediblockhole/logs/fedisync.log)
|
||||
echo "Pulling down all blocklist sources..."
|
||||
|
||||
cd /fediblockhole
|
||||
|
||||
GIT=`which git`
|
||||
${GIT} fetch
|
||||
#${GIT} fetchall
|
||||
|
||||
SYNC=`which fediblock-sync`
|
||||
${SYNC} -c /fediblockhole/config/pull.conf.toml # pull down all files, create max list
|
||||
|
||||
# rename and remove intermediate files
|
||||
rm -f /fediblockhole/blocklists/file:---fediblockhole-blocklists-__allowlist.csv.csv
|
||||
mv /fediblockhole/blocklists/https:--seirdy.one-pb-tier0.csv.csv /fediblockhole/blocklists/tier0.csv
|
||||
mv /fediblockhole/blocklists/https:--seirdy.one-pb-pleroma.envs.net.csv.csv /fediblockhole/blocklists/pleroma.envs.net.csv
|
||||
mv /fediblockhole/blocklists/https:--turtle.garden-blocklist.csv.csv /fediblockhole/blocklists/turtle.garden.csv
|
||||
mv /fediblockhole/blocklists/https:--raw.githubusercontent.com-gardenfence-blocklist-main-gardenfence-fediblocksync.csv.csv /fediblockhole/blocklists/gardenfence.csv
|
||||
mv /fediblockhole/blocklists/https:--artisan.chat-api-v1-instance-domain_blocks.csv /fediblockhole/blocklists/artisan.chat.csv
|
||||
mv /fediblockhole/blocklists/https:--mastodon.art-api-v1-instance-domain_blocks.csv /fediblockhole/blocklists/mastodon.art.csv
|
||||
mv /fediblockhole/blocklists/https:--mastodon.online-api-v1-instance-domain_blocks.csv /fediblockhole/blocklists/mastodon.online.csv
|
||||
mv /fediblockhole/blocklists/https:--mastodon.social-api-v1-instance-domain_blocks.csv /fediblockhole/blocklists/mastodon.social.csv
|
||||
mv /fediblockhole/blocklists/https:--rage.love-api-v1-instance-domain_blocks.csv /fediblockhole/blocklists/rage.love.csv
|
||||
mv /fediblockhole/blocklists/https:--sunny.garden-api-v1-instance-domain_blocks.csv /fediblockhole/blocklists/sunny.garden.csv
|
||||
mv /fediblockhole/blocklists/https:--toot.wales-api-v1-instance-domain_blocks.csv /fediblockhole/blocklists/toot.wales.csv
|
||||
mv /fediblockhole/blocklists/https:--union.place-api-v1-instance-domain_blocks.csv /fediblockhole/blocklists/union.place.csv
|
||||
mv /fediblockhole/blocklists/https:--solarpunk.moe-api-v1-instance-domain_blocks.csv /fediblockhole/blocklists/solarpunk.moe.csv
|
||||
|
||||
# destroy the 'max' list
|
||||
rm -f /fediblockhole/blocklists/_unified_max_blocklist.csv
|
||||
|
||||
# create fedi council tier0 file and 100% file
|
||||
${SYNC} -c /fediblockhole/config/council.tier0.conf.toml && \
|
||||
${SYNC} -c /fediblockhole/config/100.percent.conf.toml
|
||||
|
||||
# create unified tier0 file
|
||||
${SYNC} -c /fediblockhole/config/tier0.conf.toml
|
||||
|
||||
# create missing from mastodon.social blocklist file, and the inverse file
|
||||
${SYNC} -c /fediblockhole/config/ms-noblock.conf.toml && \
|
||||
${SYNC} -c /fediblockhole/config/ms-we-block.conf.toml
|
||||
|
||||
# create intermediate working tier files
|
||||
${SYNC} -c /fediblockhole/config/tier1-threshold.conf.toml -m min && \
|
||||
${SYNC} -c /fediblockhole/config/tier2-threshold.conf.toml -m min && \
|
||||
${SYNC} -c /fediblockhole/config/tier3-threshold.conf.toml -m min
|
||||
|
||||
# merge in associated tier file with tier0 blocks
|
||||
${SYNC} -c /fediblockhole/config/tier1.conf.toml -m min && \
|
||||
${SYNC} -c /fediblockhole/config/tier2.conf.toml -m min && \
|
||||
${SYNC} -c /fediblockhole/config/tier3.conf.toml -m min && \
|
||||
cp /fediblockhole/blocklists/_unified_tier0_blocklist.csv /fediblockhole/blocklists/_unified_min_blocklist.csv
|
||||
|
||||
# cleanup working tier files
|
||||
rm -f /fediblockhole/blocklists/_working_*.csv
|
||||
|
||||
echo "Pull complete."
|
Loading…
Reference in New Issue