automated commit on 2025-01-13 04:29:47

This commit is contained in:
Oliphant 2025-01-13 04:29:47 +00:00
parent d5496d3503
commit ee750e0ed4
14 changed files with 26 additions and 859 deletions

View file

@ -1,73 +0,0 @@
## 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:///opt/fediblockhole/blocklists/pleroma.envs.net.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/union.place.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/sunny.garden.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/toot.wales.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/mastodon.art.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/rage.love.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/artisan.chat.csv', format = 'csv' },
{ url = 'file:///opt/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:///opt/fediblockhole/blocklists/__allowlist.csv', format = 'csv' },
{ url = 'file:///opt/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 = '/opt/fediblockhole/blocklists/'
## File to save the fully merged blocklist into
blocklist_savefile = '/opt/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']

View file

@ -1,76 +0,0 @@
## 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:///opt/fediblockhole/blocklists/pleroma.envs.net.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/union.place.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/sunny.garden.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/toot.wales.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/mastodon.art.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/rage.love.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/artisan.chat.csv', format = 'csv' },
{ url = 'file:///opt/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:///opt/fediblockhole/blocklists/__allowlist.csv', format = 'csv' },
{ url = 'file:///opt/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 = '/opt/fediblockhole/blocklists/'
## File to save the fully merged blocklist into
blocklist_savefile = '/opt/fediblockhole/blocklists/tier0-council.csv'
## save an auditfile
blocklist_auditfile = '/opt/fediblockhole/blocklists/other/domain_audit_file.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']

View file

@ -1,63 +0,0 @@
## 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:///opt/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:///opt/fediblockhole/blocklists/__allowlist.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/birdsite.csv', format = 'csv' },
{ url = 'file:///opt/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 = '/opt/fediblockhole/blocklists/'
## File to save the fully merged blocklist into
blocklist_savefile = '/opt/fediblockhole/blocklists/other/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 = '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']

View file

@ -1,62 +0,0 @@
## All the T0 stuff m.s. blocks that we don't at T0
# 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:///opt/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:///opt/fediblockhole/blocklists/birdsite.csv', format = 'csv' },
{ url = 'file:///opt/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 = '/opt/fediblockhole/blocklists/'
## File to save the fully merged blocklist into
blocklist_savefile = '/opt/fediblockhole/blocklists/other/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 = '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']

View file

@ -1,76 +0,0 @@
## Pull Trusted Sources - With public_description
# 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' },
]
# assumes a git pull will proceed this check and bring down the most recent allowlist
allowlist_url_sources = [
{ url = 'file:///opt/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 = '/opt/fediblockhole/blocklists/'
## File to save the fully merged blocklist into
blocklist_savefile = '/opt/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']

View file

@ -1,37 +1,14 @@
## 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://raw.githubusercontent.com/gardenfence/blocklist/main/gardenfence-fediblocksync.csv', format = 'c>
]
# assumes a git pull will proceed this check and bring down the most recent allowlist
allowlist_url_sources = [
{ url = 'file:///opt/fediblockhole/blocklists/__allowlist.csv', format = 'csv' },
]
@ -64,13 +41,16 @@ no_push_instance = true
# 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']
#import_fields = ['obfuscate']
import_fields = ['public_comment', 'obfuscate']
## Set which fields we export
## 'domain' and 'severity' are always exported, these are additional
##
export_fields = ['reject_media', 'reject_reports', 'public_comment', 'obfuscate']

View file

@ -1,23 +1,12 @@
## 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:///opt/fediblockhole/blocklists/tier0.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/seirdy-tier0.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/gardenfence.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/tier0-council.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/dni.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/dni.csv', format = 'mastodon_csv' },
]
# List of instances to write blocklist to
@ -27,7 +16,7 @@ blocklist_instance_destinations = [
allowlist_url_sources = [
{ url = 'file:///opt/fediblockhole/blocklists/__allowlist.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/birdsite.csv', format = 'csv' },
# { url = 'file:///opt/fediblockhole/blocklists/birdsite.csv', format = 'csv' },
]
## Store a local copy of the remote blocklists after we fetch them
@ -36,6 +25,7 @@ save_intermediate = false
## Directory to store the local blocklist copies
savedir = '/opt/fediblockhole/blocklists/'
## File to save the fully merged blocklist into
blocklist_savefile = '/opt/fediblockhole/blocklists/_unified_tier0_blocklist.csv'

View file

@ -1,87 +0,0 @@
## 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:///opt/fediblockhole/blocklists/union.place.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/sunny.garden.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/mastodon.art.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/artisan.chat.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/toot.wales.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/rage.love.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/pleroma.envs.net.csv', format = 'csv' },
{ url = 'file:///opt/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:///opt/fediblockhole/blocklists/__allowlist.csv', format = 'csv' },
{ url = 'file:///opt/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 = '/opt/fediblockhole/blocklists/'
## File to save the fully merged blocklist into
blocklist_savefile = '/opt/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']

View file

@ -1,65 +0,0 @@
## 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:///opt/fediblockhole/blocklists/_unified_tier0_blocklist.csv', format = 'csv' },
# tier 1
{ url = 'file:///opt/fediblockhole/blocklists/_working_tier1.csv', format = 'csv' },
]
allowlist_url_sources = [
{ url = 'file:///opt/fediblockhole/blocklists/__allowlist.csv', format = 'csv' },
{ url = 'file:///opt/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 = '/opt/fediblockhole/blocklists/'
## File to save the fully merged blocklist into
blocklist_savefile = '/opt/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']

View file

@ -1,87 +0,0 @@
## 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:///opt/fediblockhole/blocklists/union.place.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/sunny.garden.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/mastodon.art.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/artisan.chat.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/toot.wales.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/rage.love.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/pleroma.envs.net.csv', format = 'csv' },
{ url = 'file:///opt/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:///opt/fediblockhole/blocklists/__allowlist.csv', format = 'csv' },
{ url = 'file:///opt/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 = '/opt/fediblockhole/blocklists/'
## File to save the fully merged blocklist into
blocklist_savefile = '/opt/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']

View file

@ -1,65 +0,0 @@
## 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:///opt/fediblockhole/blocklists/_unified_tier0_blocklist.csv', format = 'csv' },
# tier 2
{ url = 'file:///opt/fediblockhole/blocklists/_working_tier2.csv', format = 'csv' },
]
allowlist_url_sources = [
{ url = 'file:///opt/fediblockhole/blocklists/__allowlist.csv', format = 'csv' },
{ url = 'file:///opt/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 = '/opt/fediblockhole/blocklists/'
## File to save the fully merged blocklist into
blocklist_savefile = '/opt/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']

View file

@ -1,87 +0,0 @@
## 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:///opt/fediblockhole/blocklists/union.place.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/sunny.garden.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/mastodon.art.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/artisan.chat.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/toot.wales.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/rage.love.csv', format = 'csv' },
{ url = 'file:///opt/fediblockhole/blocklists/pleroma.envs.net.csv', format = 'csv' },
{ url = 'file:///opt/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:///opt/fediblockhole/blocklists/__allowlist.csv', format = 'csv' },
{ url = 'file:///opt/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 = '/opt/fediblockhole/blocklists/'
## File to save the fully merged blocklist into
blocklist_savefile = '/opt/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']

View file

@ -1,65 +0,0 @@
## 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:///opt/fediblockhole/blocklists/_unified_tier0_blocklist.csv', format = 'csv' },
# tier 0
{ url = 'file:///opt/fediblockhole/blocklists/_working_tier3.csv', format = 'csv' },
]
allowlist_url_sources = [
{ url = 'file:///opt/fediblockhole/blocklists/__allowlist.csv', format = 'csv' },
{ url = 'file:///opt/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 = '/opt/fediblockhole/blocklists/'
## File to save the fully merged blocklist into
blocklist_savefile = '/opt/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']

View file

@ -5,34 +5,37 @@ set -e
exec 2> >(tee /opt/fediblockhole/logs/fedisync.log)
echo "Pulling down all blocklist sources..."
curl https://connect.iftas.org/wp-content/uploads/2024/04/dni.csv > /opt/fediblockhole/blocklists/dni.csv
cd /opt/fediblockhole
GIT=`which git`
${GIT} fetchall
PULLCONFIG="/opt/fediblockhole/secretconfig/pull.conf.toml" # default, pull sources WITHOUT public_description
#PULLCONFIG="/opt/fediblockhole/secretconfig/pull.all.conf.toml" # pull down all sources WITH public_description
PULLCONFIG="/opt/fediblockhole/config/pull.conf.toml" # default, pull sources WITHOUT public_description
#PULLCONFIG="/opt/fediblockhole/config/pull.all.conf.toml" # pull down all sources WITH public_description
SYNC=`which fediblock-sync`
${SYNC} -c $PULLCONFIG # pull down all files, create max list
# rename and remove intermediate files
rm -f /opt/fediblockhole/blocklists/file:---opt-fediblockhole-blocklists-__allowlist.csv.csv
mv /opt/fediblockhole/blocklists/https:--seirdy.one-pb-tier0.csv.csv /opt/fediblockhole/blocklists/tier0.csv
mv /opt/fediblockhole/blocklists/https:--raw.githubusercontent.com-gardenfence-blocklist-main-gardenfence-fediblocksync.csv.csv /opt/fediblockhole/blocklists/gardenfence.csv
mv /opt/fediblockhole/blocklists/https:--mastodon.online-api-v1-instance-domain_blocks.csv /opt/fediblockhole/blocklists/mastodon.online.csv
mv /opt/fediblockhole/blocklists/https:--mastodon.social-api-v1-instance-domain_blocks.csv /opt/fediblockhole/blocklists/mastodon.social.csv
mv /opt/fediblockhole/blocklists/https:--raw.githubusercontent.com-iftas-org-resources-main-DNI-dni.csv.csv /opt/fediblockhole/blocklists/dni.csv
mv /opt/fediblockhole/blocklists/https:--seirdy.one-pb-tier0.csv.csv /opt/fediblockhole/blocklists/seirdy-tier0.csv
mv /opt/fediblockhole/blocklists/https:--raw.githubusercontent.com-gardenfence-blocklist-main-gardenfence-fedibloc>
mv /opt/fediblockhole/blocklists/https:--mastodon.online-api-v1-instance-domain_blocks.csv /opt/fediblockhole/bloc>
mv /opt/fediblockhole/blocklists/https:--mastodon.social-api-v1-instance-domain_blocks.csv /opt/fediblockhole/bloc>
#mv /opt/fediblockhole/blocklists/https:--raw.githubusercontent.com-iftas-org-resources-main-DNI-dni.csv.csv /opt/>
#mv /opt/fediblockhole/blocklists/https:--connect.iftas.org-wp-content-uploads-2024-04-dni.csv /opt/fediblockhole/>
#pull down DNI file directly to blocklist directory
#curl https://connect.iftas.org/wp-content/uploads/2024/04/dni.csv > /opt/fediblockhole/blocklists/dni.csv
# destroy the 'max' list
rm -f /opt/fediblockhole/blocklists/_unified_max_blocklist.csv
# create unified tier0 file
${SYNC} -c /opt/fediblockhole/secretconfig/tier0.conf.toml
# create missing from mastodon.social blocklist file, and the inverse file
${SYNC} -c /opt/fediblockhole/config/ms-noblock.conf.toml
cp /opt/fediblockhole/blocklists/_unified_tier0_blocklist.csv /opt/fediblockhole/blocklists/_unified_min_blocklist.csv
${SYNC} -c /opt/fediblockhole/config/tier0.conf.toml
echo "Creating mastodon versions of files..."