mirror of
https://github.com/Xevion/sharex-quickzoom.git
synced 2025-12-06 05:16:26 -06:00
60 lines
2.1 KiB
Python
60 lines
2.1 KiB
Python
import os, sys, send2trash
|
|
|
|
blacklist = [
|
|
# files
|
|
'clean.py',
|
|
'main.py',
|
|
'LICENSE.md',
|
|
'screenshot.png',
|
|
'README.md',
|
|
'.git',
|
|
# folders
|
|
'.gitignore',
|
|
'resources'
|
|
]
|
|
|
|
def run(recycle=True, print_ignores=False):
|
|
"""Main driver function for recycling unneeded files from the folder.
|
|
|
|
Keyword Arguments:
|
|
recycle {bool} -- True to recycle and send to recycle bin instead of permanently delete a file. (default: {True})
|
|
print_ignores {bool} -- True to print what files have been ignored (default: {False})
|
|
"""
|
|
|
|
# ternary raise support function, shouldn't ever be raised
|
|
def raiseMe(filePath):
|
|
raise('Invalid file or folder ; \'{}\''.format(filePath))
|
|
|
|
# Constants
|
|
basepath = sys.path[0]
|
|
_logFiles = []
|
|
_logFolders = []
|
|
getName = lambda someList : 'folder' if someList is _logFolders else 'file' if someList is _logFiles else '???'
|
|
|
|
print('Deletion sequence started')
|
|
for file in os.listdir(basepath):
|
|
filepath = os.path.join(basepath, file)
|
|
# Take action on the offending file
|
|
if file not in blacklist:
|
|
# Send to recycle bin vs straightup permanently delete
|
|
curType = _logFiles if os.path.isfile(filepath) else _logFolders if os.path.isdir(filepath) else raiseMe(filepath)
|
|
# We want to recycle the file
|
|
if recycle:
|
|
send2trash.send2trash(filepath)
|
|
curType.append('Recycled {}: \'{}\''.format(getName(curType), filepath))
|
|
# We want to permanently delete the file
|
|
else:
|
|
os.remove(filepath)
|
|
curType.append('Deleted {}: \'{}\''.format(getName(curType), filepath))
|
|
else:
|
|
if print_ignores:
|
|
curType.append('Ignored {}: \'{}\''.format(getName(curType), filepath))
|
|
|
|
# Clean up
|
|
ending = '\n' if (_logFiles or _logFolders) else ''
|
|
print('\n'.join(_logFiles), end=ending)
|
|
print('\n'.join(_logFolders), end=ending)
|
|
print(f'Finished deleting {len(_logFiles)} files and {len(_logFolders)} folders.')
|
|
|
|
if __name__ == "__main__":
|
|
run() |