202 Commits

Author SHA1 Message Date
ThioJoe
889a7868fc Update filter_variables.py 2025-08-25 15:08:11 -07:00
ThioJoe
90f8ec48e4 Update filter_variables.py 2025-07-25 15:06:55 -07:00
ThioJoe
2888c14e85 Fix community post scanning
Update version number to 2.18.0
Fix fetching recent community posts
Fix community post comments
2025-05-26 17:09:27 -07:00
ThioJoe
48d5419289 Fix importing updated filter file when running as exe 2025-05-26 16:12:55 -07:00
ThioJoe
b774de2f2d Fixed excessive blank lines during scanning
This should fix all the extra blank lines that appear between videos when there are multiple being scanned.
2024-01-01 17:40:55 -07:00
ThioJoe
0229f37ec6 Better highlighting matched samples
-Also now shows message explaining red highlights.
2024-01-01 15:40:39 -07:00
ThioJoe
b22d56e824 Colorize Index in List-Matched Samples
Now matches index number in sample list too
2024-01-01 14:33:40 -07:00
ThioJoe
31525966e5 Add list-matched text colorization in samples
If a match was made from a known spam list, it will be highlighted in red in the samples list.
2024-01-01 14:22:19 -07:00
ThioJoe
2bab72d608 Add tip about widening window after scan 2024-01-01 11:24:16 -07:00
ThioJoe
aebbb62452 Dynamically adjust samples length from window size
- Gets size of the console window and adjusts the length of the  samples displayed accordingly
2024-01-01 11:06:44 -07:00
ThioJoe
db31e757ea Disable googleapiclient discovery cache
Greatly reduces extracted program size by not including unnecessary discovery cache files
2023-12-30 12:40:41 -07:00
ThioJoe
ea76816e54 Disable false positive check
It wasn't reliable at all
2023-12-29 16:50:16 -07:00
ThioJoe
b20c3fad35 Fix possible 'None' returns, fix version number
It's actually Beta2
2023-12-29 16:32:53 -07:00
ThioJoe
b649ac6d02 Filter list version variable gets updated on check
Might be useful in the future, but right now it doesn't make a difference.
2023-12-29 15:43:24 -07:00
ThioJoe
2394215194 Add Spam List Regex Pre-Compiling
- 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
2023-12-29 14:44:34 -07:00
ThioJoe
fd01087592 Fix unescaped special characters
- Should fix places where unescaped HTML codes of special characters appear in video titles
Addresses #791
2023-12-29 12:40:30 -07:00
ThioJoe
bc94324863 auth.py - Improve password entry flow
- 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.
2023-12-29 12:20:11 -07:00
ThioJoe
d6e388f894 Merge branch 'main' into 2.18-Beta 2023-12-23 22:36:12 -05:00
ThioJoe
43ad684a87 Fix expired token refresh error
- Now removes both non-encrypted and encrypted token files only if they exist.
Addresses #1040
2023-12-23 22:32:05 -05:00
ThioJoe
b11d65c982 Fix Community Comment Scanning
- YouTube updated the web page layout source code at some point, so this fixes the references to the location of the posts

Addresses #1082
2023-12-23 20:34:48 -05:00
ThioJoe
ee86c5918e Fix KeyError loading config
If config was out of date was throwing keyerror
2023-03-25 22:55:41 -07:00
ThioJoe
9af19a6602 Update auth.py - Improve password messaging
Added colors and better wording for creating and entering encryption password
2023-03-19 15:45:45 -07:00
ThioJoe
3dc0e07628 Add encryption of token file by default
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.
2023-03-19 15:34:53 -07:00
ThioJoe
e0106da898 Fix KeyError when invalid channel ID entered
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.
2023-03-14 14:57:11 -07:00
ThioJoe
4c2fd85767 Update filter_variables.py
Update Filters
2023-03-09 15:09:20 -07:00
ThioJoe
58cc116f59 files.py - Change linux update download method
Uses updated getRemoteFile function to download update tar file. Will retry using alternative method (stream = False) if fail.

Set Beta version 7
2022-12-19 15:58:35 -07:00
ThioJoe
f6c500803d Files.py - Improve file downloading function
- 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)
2022-12-19 15:32:29 -07:00
ThioJoe
71548dd66e files.py - Add additional OSError exception handling
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
2022-12-19 13:41:27 -07:00
ThioJoe
2aae168413 Add better warnings for invalid choices
- 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
2022-12-12 08:24:40 -07:00
ThioJoe
968e0cb9d0 Add Channel ID retrieval tool
Create new user_tools.py script and "helpful tools" main menu option. Allows one to look up the Channel ID of a channel based on a video URL.
2022-12-11 16:22:41 -07:00
ThioJoe
91276e6048 Improve handle support and custom URL support
- 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
2022-12-11 15:21:24 -07:00
ThioJoe
2d0999f850 Add Handles Support, Increase Releases Check
Adds check for handles format and does a search to return channel ID.

Also increases number of releases checked when checking for updates.
2022-12-11 14:23:49 -07:00
ThioJoe
585d925104 Update filter_variables.py 2022-12-07 13:10:29 -07:00
ThioJoe
50b3d1da51 Fix check for invalid video ID when using config file
Fix infinite loop if config file videos_to_scan setting contains an unavailable video ID
2022-10-26 10:19:52 -07:00
ThioJoe
c4b4f6a572 Fix spam thread checking behavior
The program's false-positive check was interfering with the ability to catch many spam bot threads. This should remedy that.
2022-10-26 09:34:26 -07:00
ThioJoe
0d8a037ea6 Fix filter update checking behavior
-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
2022-10-26 09:17:46 -07:00
ThioJoe
0d8e38ed9a Update filter_variables.py 2022-10-26 08:55:06 -07:00
ThioJoe
b1ca68bc74 Fix Spam Threads List Not Searching
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.
2022-10-10 15:49:34 -07:00
ThioJoe
d3a9269cbd Fix if "None" returned as number of comments on video
Addresses #924

Program did not have a way to handle if the returned comment count was "none" instead of zero.
2022-09-25 16:00:04 -07:00
Talkashie
00fa992036 Fix many typos, improve capitalization consistency (#907)
### 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>
2022-09-15 15:33:28 -07:00
ThioJoe
3568ad0504 Update Custom Confusables, Add Duplicate Check
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.
2022-09-15 14:48:17 -07:00
ThioJoe
59cee52ba7 Fix Issue Preventing Comment Recovery
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.
2022-09-15 12:01:24 -07:00
ThioJoe
c9bd6b4b58 Fix UnboundLocalError VideoID
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.
2022-09-15 11:26:35 -07:00
ThioJoe
400ac2e83a Update Confusables to Unicode 15.0
Updates to latest Unicode confusables document version
2022-09-15 10:32:27 -07:00
ThioJoe
e49acfc688 Update filter_variables.py 2022-09-15 08:49:44 -07:00
ThioJoe
afa4a95754 Update Filter Variables and Confusable Mappings 2022-09-15 08:39:21 -07:00
ThioJoe
8d61194911 Add New Filtering Methods - 2.17 Beta 1
Adds new functions that can do multi-variable filtering to better detect more types of spam
2022-09-14 19:15:59 -07:00
ThioJoe
814d656163 Implement Remote Filter Update Fetching
Adds the ability for the program to fetch new versions of filter_variables.py without the need to update the entire program.
2022-09-14 14:59:40 -07:00
Ethan Hindmarsh
cbb672f2a6 General Fixes (#747)
* 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
2022-04-19 10:43:05 -07:00
ThioJoe
4400affdb5 Merge branch 'main' into 2.17-Dev 2022-04-11 14:23:40 -07:00