Files
YT-Spammer-Purge/assets/default_config.ini
ThioJoe 4c3943296d 2.15.0-Beta3 - Many Bug Fixes
- Fixed log file path not being recognized with quotes around it #571
- Fixed crash when unable to encode certain unicode characters #568
- Fixed crash when writing JSON log #563
- Improve Filters #556
- Update default included spam lists
- Change default log format from rtf to plaintext
2022-02-05 14:45:29 -07:00

267 lines
14 KiB
INI

# ---------- Config file for YT Spammer Purge program ----------
# INSTRUCTIONS:
# • Lines with a hashtag are just comments / instructions
# • If you set a setting in here, the program will not Ask you to enter/confirm when your run it
# • If you leave the value as 'Ask', the program will Ask you for it as usual
# • Some settings might not be necessary depending on which modes you select
#
# • For 100% automatic usage of program, enter all values (or at least all for your scanning/filtering modes)
# • NOTE: Human confirmation is required for most settings to actually remove comments
# - If comment removal is automated, comments are marked as "held for review" and hidden
#
# MORE NOTES:
# • Current filter modes that support automated comment removal:
# - Scanning for exact channel ID(s)
# - Auto Smart-Mode
# • If scanning someone elses channel, you can report spammers, but while in Auto-Smart Mode only
#
# USING MULTIPLE CONFIG FILES:
# • You can create additional config files through the same menu used to create the initial config file
# - Then you can choose which config to use when starting the program
# • You can also make another config by just copying one and renaming it, adding a number such as: "SpamPurgeConfig2.ini"
[config-meta]
#---------------------------------------------------------------
# If 'True', program starts with all config settings immediately
# If 'False', program starts with default settings immediately, ignoring any config settings
# If 'Ask', program Asks to use config settings at start. And if you have multiple configs, will ask which to use
# NOTE: This setting only applies to the primary config file ("SpamPurgeConfig.ini"), not any other configs you make
# Default = Ask -- Possible Values: True | False | Ask
use_this_config = Ask
# A short description to show for this config file when asking which config file to choose
# > Examples: "Scan last 3 videos with auto smart", "Scan last video for [some phrase]"
# This ONLY matters if you have multiple config files (such as "SpamPurgeConfig2.ini", "SpamPurgeConfig3.ini", etc)
# Possible Values: Anything
this_config_description = My Custom Config
[general]
#---------------------------------------------------------------
# Enter your channel ID, to bypass initial user confirmation - Example: 'UCK8sQmJBp8GCxrOtXWBpyEA'
# Default = Ask -- Possible Values: Ask | UCx123-BlahBlahExampleID
your_channel_id = Ask
# Enables or disables silent checking of newer version when program runs. Only displays message if update is available
# This will not display errors if it cannot get version. To see any issues, use program's manual update check
# NOTE: This DOES NOT download the updates automatically, it is only for auto-CHECKING for updates
# Default = True -- Possible Values: True | False
auto_check_update = True
# Choose whether to be notified only of stable releases, or all new releases (including pre-release / beta versions)
# Only matters when auto_check_update is enabled
# Default = All -- Possible Values: All | Stable
release_channel = All
# Skips asking for user confirmation yes/no that the entered video link/ID is correct
# Setting is ignored if video_to_scan is set, which will make it skip anyway
# Default = False -- Possible Values: True | False
skip_confirm_video = False
# Overrides 'Not Your Channel' mode to allow holding comments for review in both Smart filter modes, even if you are not the video uploader
# Only set to True if you have moderator permissions on the channel you're scanning, or you'll just get errors
# Default = False -- Possible Values: True | False
moderator_mode = False
# When a full scanning & removal run completes, sets whether to automatically close the program after short delay, rather than prompting to return to main menu
# Useful if intending to run the program fully autonomously. This setting only applies after a scanning run, not necessarily for every single "return to main menu" prompt
# Default = False -- Possible Values: True | False
auto_close = False
[scanning]
#--------------------------------------------------------------------------------
# Scan Mode: Scan either a single video or your whole channel
# Default = Ask -- Possible Values: Ask | ChosenVideos | RecentVideos | EntireChannel | CommunityPost | RecentCommunityPosts
scan_mode = Ask
# Only necessary if scanning entire channel or a community post. Must be either 'Ask' or a number.
# Default = Ask -- Possible Values: Ask | [number]
max_comments = Ask
# Video link(s) or video ID(s) to scan, in the specific videos scanning mode
# If scanning multiple videos, they must be comma separated
# Default = Ask -- Possible Values: Ask | xyzVidIDExample
videos_to_scan = Ask
# The channel ID or channel link to scan in 'Recent Videos' mode. For your own channel, enter 'Mine'
# Default = Ask -- Posible Values: Ask | Mine | UCx123-BlahBlahExampleID
channel_to_scan = Ask
# For Recent Video (and Recent Community Post) scanning modes, how many recent videos/posts to scan.
# For videos, up to 500 (the YouTube API Limit). For community posts, it varies by channel, but usually ~5-10 tops
# Default = Ask -- Possible Values: Ask | 1 - 500
recent_videos_amount = Ask
[filtering]
#--------------------------------------------------------------------------------
# Mode that determines what to scan
# Default = Ask -- Possible Values: Ask | ID | Username | Text | NameAndText | AutoASCII | AutoSmart | SensitiveSmart
filter_mode = Ask
# Used for modes 'Username', 'Text' or 'NameAndText' - Determines what criteria to actually scan for
# Default = Ask -- Possible Values: Ask | characters | strings | regex
filter_subMode = Ask
#---- Filter Mode Specific Settings ----
# For Filter Mode 'ID' - Enter comma separated list of IDs or channel links
# Default = Ask -- Possible Values: Ask | UCx123-BlahBlahExampleID
channel_ids_to_filter = Ask
# For Filter Mode 'AutoASCII' - Choose sensitivity
# 1 = Allow Standard + Extended ASCII, 2 = Standard ASCII Only, 3 = NUKE Mode (only letters/numbers/spaces)
# Default = Ask -- Possible Values: Ask | 1 | 2 | 3
autoASCII_sensitivity = Ask
#---- Filter Sub-Mode Specific Settings ----
# Put individual characters to scan for, with no spaces or commas or anything - Example: 👆☑➡
# Default = Ask -- Possible Values: Ask | [characters]
characters_to_filter = Ask
# Comma separated list of strings - Example: whatsapp, something else, investment
# Default = Ask -- Possible Values: Ask | [strings]
strings_to_filter = Ask
# A regex expression to filter - Example: [^\x00-\xFF]
# Default = Ask -- Possible Values: Ask | [regex]
regex_to_filter = Ask
[autosmart-customization]
#--------------------------------------------------------------------------------
# In Auto-Smart and Sensitive-Smart modes, sets whether it will flag comments that contain nothing but a youtube video/channel link
# I consider this spam but some have disagreed, so I've made it optional
# Default = False -- Possible Values: True | False
detect_link_spam = False
# In Auto-Smart and Sensitive-Smart modes, sets whether to flag comments by users with usernames such as "100k subs without any videos"
# These accounts usually just spam and are typically against YouTube's guidelines, but some apparently don't consider it spam
# Default = False -- Possible: True | False
detect_sub_challenge_spam = False
# In Auto-Smart and Sensitive-Smart modes, whether to check for 'spam threads' where many fake bots reply to eachother to promote scams
# Default = True -- Possible: True | False
detect_spam_threads = True
[advanced-filtering]
#--------------------------------------------------------------------------------
# The filtering modes where it will also check for non-matched users that posted several duplicate comments
# If a commenter has already been marked as a match, their comments will not be shown as duplicates anyway
# For multiple, must be comma separated list. To disable duplicate scanning altogether, enter only 'None'
# NOTE: Currently does not work for Community Posts and Entire Channel Mode
# Default = AutoSmart, SensitiveSmart -- Possible Values: None | ID | Username | Text | NameAndText | AutoASCII | AutoSmart | SensitiveSmart
duplicate_check_modes = AutoSmart, SensitiveSmart
# Determines at least how similar two comments must be to be considered a duplicate
# 1.0 is 100% the same, 0.5 is 50% similar, and so on. Read more here: https://en.wikipedia.org/wiki/Levenshtein_distance
# If you enter 0.0, it will simply flag all comments from users who left more comments than the minimum_duplicate threshold
# Default = 0.9 | Possible Values: 0.00 to 1.00
levenshtein_distance = 0.9
# The minimum number of duplicate/similar comments a single user must leave before they are flagged / counted as a match
# The threshold is 'greater than or equal to' the number entered.
# NOTE 1: At this time, if the threshold is reached for a user, all of their comments will be flagged, even if all of them aren't necessarily similar
# NOTE 2: Duplicates are measured per-video. Comments on different videos are not compared
# Default = 4 -- Possible Values: [Any integer above 2]
minimum_duplicates = 4
[removal]
#--------------------------------------------------------------------------------
# If 'False', behaves as normal. If 'True', simply skips deletion altogether and exits program, Good if you just want to collect logs.
# See 'delete_without_reviewing' option for actual deletion behavior
# Default = False -- Possible Values: True | False
skip_deletion = False
# If True, program will NOT require approval before deleting comments, and will just do so immediately (effective only for certain settings, see instructions at top)
# If 'skip_deletion' setting is 'True', this setting makes no difference and no comments will be deleted
# Default = False -- Possible Values: True | False
delete_without_reviewing = False
# NOTE: Only other possible option is 'False' - Only change this if going fully automated, or you never want to ban users
# > The YouTube API doesn't allow banning when using "held for review" option, which currently is the only automated deletion option for this program
# Leaving as 'Ask' asks to ban like normal. Setting it to 'True' will make NO DIFFERENCE and may only produce errors
# Default = Ask -- Possible Values: Ask | False
enable_ban = Ask
# Whether to remove all comments by a user, not just the exact comments that were matched
# Will remove any comments by the author across all videos scanned
# Note: Also does not work when reporting
# Default = Ask -- Possible Values: Ask | True | False
remove_all_author_comments = Ask
# Choose the default method of comment removal the program will use. 'rejected' means normal removal/deletion. 'heldForReview' moves comment to Held For Review section. 'reportSpam' means just report for spam.
# Note 1: If delete_without_renewing is true, this removal_type must be either reportSpam or heldForReview
# Note 2: You can only ban users while removing their comment using 'rejected'
# Note 3: If in 'Not Your Channel' mode, this setting has no effect, and you will always only report spam
# Default = rejected -- Possible Values: rejected | heldForReview | reportSpam
removal_type = rejected
# Whether to whitelist any authors that were excluded from deletion (using 'exclude' or 'only' options)
# Default = Ask -- Possible Values: Ask | True | False
whitelist_excluded = Ask
# Allows you to skip the process of checking that each comment is deleted. Good to reduce API quota usage, and time spent using the app.
# Because checking each comment individually costs 1 API unit, and there is a daily API quota of 10,000, if you're deleting thousands of comments, checking for success can quickly eat up your entire quota
# Default = True -- Possible Values: True | False
check_deletion_success = True
[logging]
#--------------------------------------------------------------------------------
# Enable log file generation: 'True' or 'False'
# Default = Ask -- Possible Values: Ask | True | False
enable_logging = Ask
# Set the full OR relative folder path where log files will go (not including file name itself). Ensure write permissions to path.
# Note for windows users: Do NOT begin the path with a slash, or the location will be relative to the root of the disk!
# Default = logs -- Example Values: any/relative/path/ | C:\Users\wherever\ | /home/user/logfiles
log_path = logs
# Set whether to create log files as plain text, or Rich Text Format with colors
# Default = plaintext | Possible Values: rtf | plaintext
log_mode = plaintext
# Allows you to ALSO create a json version of the logged match data (in addition to normal log file)
# Note: If enable_logging is False, that also disables json logging regardless of this setting
# Default = False -- Possible Values: True | False
json_log = False
# Sets the encoding method to be used in the json file, if you want to change it for some reason
# Just be sure to pick one that supports all unicode characters
# Default = utf-8 -- Possible Values: Theoretically any python supported encoding found here: https://docs.python.org/3/library/codecs.html#standard-encodings
json_encoding = utf-8
# Whether to add extra information about each comment to the json log file. Currently: Video Uploader's Name, Video Title
# Default = True -- Possible Values: True | False
json_extra_data = True
# Whether to also fetch profile pictures for matched commeters when in json logging mode, and the video uploader's too
# Images will be stored in the log_path, then in a folder with the same naming scheme (date/time) as the log accompanying log file
# Each profile picture file will be named as the channel ID of the respective user + .jpg
# To enable, set the resolution of the image ('default' = 88x88, 'medium' = 240x240, 'high' = 800x800)
# Default = False -- Possible Values: False | default | medium | high
json_profile_picture = False
[api]
#--------------------------------------------------------------------------------
# DO NOT change this unless Google has granted you an increased API quota
# You would have to specifically request this. Read more here: TJoe.io/api-limit-info
quota_limit = 10000
# Don't change anything below here!
#--------------------------------------------------------------------------------
[info]
config_version = 26