Oscr

Latest version: v2.1.0

Safety actively analyzes 701583 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 3

1.0.0

Announcement!

This project is now a PyPi package!

Find it here: https://pypi.org/project/cdremover/1.0.0/
Install using `pip3 install cdremover` and update with `pip3 install --update cdremover`

Next stop, GUI! (probably during the Christmas holidays, unfortunately; uni is busy)

Functionality:

- Restructured program in preperation for pip package;
- Log and statistics are now found in home/.cdremover/data.
- Config file is now found in home/.cdremover.
- libcdr module is now named cdrmodules, and includes main.py.
- Program is now run through cdremover script (can be used a console command if installed through pip).
- Program now creates praw.ini if it cannot be found (fix for 23s, see note 1 for limitations).
- Optimisation improvements for both increased speed and reduced file size (see note 2 for details).
- Added new cutoffUnit config variable, which is the unit of time the cutoff is measured in in seconds (see note 3 for details).
- Program now resets any search limit value greater than or equal to 1000 to "None", rather than allowing values greater than 1000 to go unchanged, which could have potentially caused issues with Reddit's API.
- Made home, log and version variables global throughout all files and functions (see note 4 for details).

Bug Fixes:

- 23: Crash if praw.ini is missing or exists without "cdrcredentials" section.
- 24: Crash due to getTime() being declared after the import of a function that attempts to import it.

Dependencies:

- Removed requirements.txt, as dependencies are now stated in the new setup.py file and should be auto-installed by pip.
- configparser finally added to requirement list after being a dependency since the config file was changed to .json format.

Documentation:

- Changed/added some log messages;
- Some ambiguities have been clarified.
- Program now logs every time it intentionally exits.
- Now logs output related to praw.ini handling.
- Now logs a check for each 25 comments successfully checked (see note 5 for use).
- misc.py functions now log console output.
- Re-wrote README.md to faciliate new installation instructions and other information..
- Began recording release candidate versions during development (only relevant for contributors or users following development).
- Added/clarified some commenting.

Notes:

1. This functionality currently has limitations due to limitations within PRAW itself. Currently, a restart is required to take into effect any changes to the praw.ini file, and additionally, if your praw.ini "cdrcredentials" section becomes corrupted, or if you enter the wrong information, you will need to fix the issue manually. I'm working on a script to try and fix the second issue, but the first will persist until more flexibility in this area can be added to PRAW.
2. This includes improvements such as doing some one-time calculations on program start rather than performing them each cycle as was previously being done, as well as replacing "if [variable] == True" with simply "if [variable]" and so on.
3. This allows for the user to use their preferred unit of time for the cutoff, rather than being forced to use hours. It is the value of 1 of the unit converted into seconds (e.g. hours would be 3600), and, if left blank or given as a non-numerical variable, will be defaulted to 3600 by the program.
4. This removes the need for function calls with large numbers of variables being passed/returned, which improves the program readibility. The global variables are declared in gvars.py and imported into all the files that make use them.
5. This could be very helpful for diagnosing at what point during the checking an error may have occurred.
6. Technically the current version is 1.0.1 (as can be seen in the files), becuase I uploaded the wrong README.md to PyPi. If there is another patch for 1.0, it will be labelled 1.0.2 to keep version numbers synchronised.

0.4.5

Changes:

- Added handling for JSONDecodeError, allowing to give meaningful log on failure to decode config.json
- Moved updateLog() from main.py to log.py
- Moved getDate() from main.py to misc.py
- Program now logs what version it is being run with.

Notes

- I'm still planning to get a GUI done for this, although it's obviously taken a lot longer than I'd like. I'm hoping the Christmas holiday, whcih in university is about twice as long as I'm used to from school, will give me ample time to get that working. For now, this patch just tidies up a couple of very small things.

0.4.4

Changes:

- Changed to .json config file.
- Program now creates a config file using default settings if one is not present. (fixes 18)
- Now passes logUpdates variable through every attempt to update the log. (fixes 20)
- Changed default cutoff to 1 hour.

Bug Fixes:

- 18: New version downloads may overwrite config files.
- 20: Failing to update the log results in a crash.

Notes

- People updating from an older version should keep their config.py so they can copy over their custom settings once the config.json is initialised.
- I now have a [board on GitKraken](https://app.gitkraken.com/glo/board/X05OED2bBQARubxL) if anyone wants to see my progress in "real time", meaning I will possibly remember to update it slightly more often than GitHub.

0.4.3

Additions:

- Added "torOnly" configuration, to give the user the option to limit the bot to only detect comments from r/transcribersofreddit. Set to True by default.
- Added "claiming" to the default blacklist.

Changes:

- Program now logs upon finding a blacklisted comment that is not past the cutoff (i.e. "Waiting for 'x comment'.").
- Program is no longer case sensitive (i.e. dones and claims containing uppercase letters will still be deleted).

0.4.2

Additions

- Added automated "unclaim" to the default blacklist.

0.4.1

Bug Fixes

- 17: TypeError on attempting to delete comment.

Notes

- 16 possibly still persisting.

Page 2 of 3

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.