- The program now saves files containing the pre-compiled regex objects for the spam lists so they don't have to be compiled on every scan, immensely saving time.
- Will automatically re-compile and save when there are new lists versions
- Now when user enters password, it will show asterisks as they type. This uses third party 'pwinput' module instead of getpass.
- If credential has been refreshed, token needs to be encrypted again, so now there is wording to explain the reason for having to re-enter the password.
Adds new encrypt_token_file option in config, which is True by default. If True, next time the program is run, or whenever the user logs in, the token file will be replaced by an encrypted version. The user will enter the password for this.
If False, it will not have the user enter a password to encrypt the file. But if an encrypted token file already exists, it will still prompt the user for the password.
Changed to use dict.get() function so there wouldn't be a KeyError if no items were returned in the API response.
Also fixed incorrect color code used.
- Moved the code that writes file to disk after fetching into the getRemoteFile function.
- Added automatic retry of download on fail, using alternative download method (stream true/false, depending on previous attempt)
I had failed to add handling for most OSError exceptions when manually checking for updates. This will handle the rest and print the error.
Addresses #993
- User Tools menu now has better warning when an invalid choice is made.
- The video ID validation function now displays more specific error messages depending on whether the entry appears to be a URL or not
- Fixes issue validating URL sometimes if www was in URL
- Improves searches of channels by restricting API results to only channels, not videos. Now if YouTube doesn't return the channel, it should at least return nothing more often instead of the wrong channel altogether.
Addresses #455 , #974 , #854
-Fixed program not checking for filter_variables.py file updates when manually selecting to check for updates in main menu
-Fixed bug where the program would download the filter variables file even when the latest version already exists
Addresses #934
The program was not searching replies for items in the spam threads list because the functionality was commented out. It was only searching top level comments.
### Related Issue/Addition to code
This fixes many typos found throughout the program, along with improving capitalization consistency
#### Type of change
- [x] Bug fix (non-breaking change which fixes an issue)
### Why is this change needed?
Typos visible to the user are never a good thing.
### Additional Info
- functionality of the program itself is unchanged
### Checklist:
- [x] My code follows the style guidelines of this project and I have read [CONTRIBUTING.md](/CONTRIBUTING.md)
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] Any dependent changes have been merged and published in downstream modules
- [x] I have checked my code and corrected any misspellings
Co-authored-by: ThioJoe <12518330+ThioJoe@users.noreply.github.com>
Update custom confusables file to add "modifier letter" characters. Also add check in the confusable string maker script to check if a character was already checked and skip it.
Addresses #810
The parse_comment_list function returns two variables, the comment list and the file name. But they were both being passed into the recoveryList variable by mistake.
Fixed#851
In very rare cases, for an unknown reason, "videoID" for a comment may not have a value, and therefore cause an error when it is passed to check duplicates. Changed it to use scanVideoID instead.
* General Formatting updates,
default_config.ini:
Change default release channel to STABLE instead of ALL (most users probably shouldn't be on development versions)
Fix spacing error in colors_enabled comment
install.sh:
remove usage of `function` for consistency
change confirm to accept y/yes & n/no
change `read` in confirm to not mangle backslashes
README.md:
change HTML styles (eg. width=, align=) to `style=` (align= is deprecated)
Add alt texts to all images for screen readers
Update `How to Download`
Create a header under Linux/MacOS instructions called `Automatic Installation` to make it more clear.
* Cleaned up unused imports, updated requirements to latest
auth.py:
Remove googleapiclient.errors HttpError, unused imports
remove redundant use of 'global' on CURRENTUSER and YOUTUBE
community_downloader.py:
Remove argparse, io, and os, unused imports
files.py:
Remove copy.copy, datetime.(date,timedelta), unused imports
Convert exceptions to strings before adding strings to them
gui.py:
Add default value for returnText, could possibly be undefined
changed hidden -> disabled (not 100% sure this was needed)
operations.py:
Remove scripts.logging import, unused imports
prepare_modes.py:
Remove Scrips.confusablesCustom.normalize, base64, pathlib, unused imports
requirements.txt:
Updated versions of packages to latest, untested though
utils.py:
Added clear_terminal function to use instead of os.system everywhere in YTSpammerPurge.py, more logic behind it
YTSpammerPurge.py:
remove ast and platform, unused imports
add comments describing what S B & F do, one letter variables aren't always the nicest to read
replace clear_command instances with utils.clear_terminal()
remove redundant ast.literal_eval(str(json.load(file))) -> just json.load(file)
remove redundant check for if userChoice == False: validInteger == False (validInteger set to False by default)
remove redundant redeclaration of validConfigSetting, it will be set two lines below anyway
fix bug with dict as default value, set it instead every time function is called (I think)
* style="text-align:center" -> align="center"
apparently text-align:center is not read, only align:
* Align images to center
* Undo changes to README, gui, default_config
* oops forgot one
* Undo change to JSON loading
* Update the formatting of the PR template (#798)
* update formatting
* Add comment underneath "Why is this change needed?"
Co-authored-by: Kendall Pinto <kendalldoescoding@gmail.com>
* Link to CONTRIBUTING.md
Co-authored-by: Kendall Pinto <kendalldoescoding@gmail.com>
* Add <!--issue--no-->
Co-authored-by: Kendall Pinto <kendalldoescoding@gmail.com>
* Add `I` before `have read`.
* Change text