Skip to content

Commit

Permalink
Merge edf856d into 23e5c66
Browse files Browse the repository at this point in the history
  • Loading branch information
blairg23 committed Oct 16, 2022
2 parents 23e5c66 + edf856d commit e6680cd
Show file tree
Hide file tree
Showing 10 changed files with 247 additions and 111 deletions.
63 changes: 31 additions & 32 deletions requirements-test.txt
Expand Up @@ -4,61 +4,60 @@
#
# pip-compile --output-file=requirements-test.txt requirements-test.in
#
atomicwrites==1.3.0
attrs==22.1.0
# via pytest
attrs==19.1.0
colorama==0.4.5
# via
# packaging
# pytest
coverage==4.5.4
# tox
coverage[toml]==6.5.0
# via pytest-cov
faker==2.0.1
distlib==0.3.6
# via virtualenv
faker==15.1.1
# via -r requirements-test.in
filelock==3.0.12
# via tox
importlib-metadata==0.19
# via tox
more-itertools==7.2.0
filelock==3.8.0
# via
# tox
# virtualenv
iniconfig==1.1.1
# via pytest
packaging==19.1
packaging==21.3
# via
# pytest
# tox
pluggy==0.13.1
platformdirs==2.5.2
# via virtualenv
pluggy==1.0.0
# via
# pytest
# tox
py==1.10.0
py==1.11.0
# via
# pytest
# tox
pyfakefs==3.6
pyfakefs==5.0.0
# via -r requirements-test.in
pyparsing==2.4.2
pyparsing==3.0.9
# via packaging
pytest==5.1.2
pytest==7.1.3
# via
# -r requirements-test.in
# pytest-cov
pytest-cov==2.7.1
pytest-cov==4.0.0
# via -r requirements-test.in
python-dateutil==2.8.0
python-dateutil==2.8.2
# via faker
six==1.12.0
six==1.16.0
# via
# faker
# packaging
# python-dateutil
# tox
text-unidecode==1.2
# via faker
toml==0.10.0
# via tox
tox==3.13.2
tomli==2.0.1
# via
# coverage
# pytest
# tox
tox==3.26.0
# via -r requirements-test.in
virtualenv==16.7.4
# via tox
wcwidth==0.1.7
# via pytest
zipp==0.6.0
# via importlib-metadata
virtualenv==20.16.5
# via tox
19 changes: 10 additions & 9 deletions requirements.txt
Expand Up @@ -4,24 +4,25 @@
#
# pip-compile --output-file=requirements.txt requirements.in
#
certifi==2021.5.30
certifi==2022.9.24
# via requests
charset-normalizer==2.0.4
charset-normalizer==2.1.1
# via requests
fuzzywuzzy==0.18.0
# via -r requirements.in
idna==3.2
idna==3.4
# via requests
levenshtein==0.20.6
# via python-levenshtein
omdbpy==0.1.14
# via -r requirements.in
python-levenshtein==0.12.2
python-levenshtein==0.20.6
# via -r requirements.in
requests==2.26.0
rapidfuzz==2.11.1
# via levenshtein
requests==2.28.1
# via
# -r requirements.in
# omdbpy
urllib3==1.26.6
urllib3==1.26.12
# via requests

# The following packages are considered to be unsafe in a requirements file:
# setuptools
6 changes: 5 additions & 1 deletion src/movie_file_fixer/file_remover.py
Expand Up @@ -21,10 +21,12 @@ def __init__(
".png",
".exe",
],
dry_run=False,
verbose=False,
):
self._directory = directory
self._file_extensions = file_extensions
self._dry_run = dry_run
self._verbose = verbose
self._action_counter = 0

Expand Down Expand Up @@ -53,7 +55,9 @@ def remove_files(self, directory=None, file_extensions=None):
filename, extension = os.path.splitext(current_file)

if extension in file_extensions:
os.remove(os.path.join(os.getcwd(), root, current_file))
if not self._dry_run:
os.remove(os.path.join(os.getcwd(), root, current_file))

if self._verbose:
print("[RESULT: REMOVED]\n")
else:
Expand Down
20 changes: 15 additions & 5 deletions src/movie_file_fixer/folderizer.py
Expand Up @@ -9,10 +9,13 @@


class Folderizer:
def __init__(self, directory, metadata_filename="metadata.json", verbose=False):
def __init__(
self, directory, metadata_filename="metadata.json", dry_run=False, verbose=False
):
self._directory = directory
self._metadata_filename = metadata_filename
self._verbose = verbose
self._dry_run = dry_run
self._action_counter = 0

if self._verbose:
Expand Down Expand Up @@ -63,7 +66,7 @@ def _move_files_into_folders(
metadata_filename = self._metadata_filename

for filename in filenames:
if filename != self._metadata_filename:
if filename != metadata_filename:
old_filepath = os.path.join(directory, filename)
stripped_filename, file_ext = os.path.splitext(
filename
Expand All @@ -78,7 +81,9 @@ def _move_files_into_folders(
print(f'[{self._action_counter}] [CREATED FOLDER] "{filename}"')
self._action_counter += 1

shutil.move(old_filepath, new_filepath)
if not self._dry_run:
shutil.move(old_filepath, new_filepath)

if self._verbose:
print(
f'[{self._action_counter}] [MOVED FILE] "{filename}" -> [FOLDER] "{filename}"'
Expand Down Expand Up @@ -154,8 +159,13 @@ def unfolderize(self, directory=None, folder_name=None):
f"[{self._action_counter}] [MOVING FILE] {old_filepath} -> [FOLDER] {new_filepath}\n"
)
self._action_counter += 1
shutil.move(old_filepath, new_filepath)
shutil.rmtree(os.path.join(root, folder))

if not self._dry_run:
shutil.move(old_filepath, new_filepath)

if not self._dry_run:
shutil.rmtree(os.path.join(root, folder))

if self._verbose:
print(
f"[{self._action_counter}] [FOLDER] {os.path.join(root, folder)} [REMOVED]\n"
Expand Down
11 changes: 9 additions & 2 deletions src/movie_file_fixer/formatter.py
Expand Up @@ -18,11 +18,13 @@ def __init__(
directory=None,
metadata_filename="metadata.json",
result_type=None,
dry_run=False,
verbose=False,
):
self._directory = directory
self._metadata_filename = metadata_filename
self._result_type = result_type
self._dry_run = dry_run
self._verbose = verbose
self._action_counter = 0

Expand Down Expand Up @@ -304,7 +306,9 @@ def _rename_file(
counter=counter + 1,
)
else:
os.rename(old_filepath, new_filepath)
if not self._dry_run:
os.rename(old_filepath, new_filepath)

if self._verbose:
print(
f'[RENAMING] from [FILEPATH] "{old_filepath}" to [FILEPATH] "{new_filepath}"\n'
Expand All @@ -330,7 +334,10 @@ def rename_folder_and_contents(self, original_name, new_name, directory=None):
# Rename the folder:
original_filepath = os.path.join(directory, original_name)
new_filepath = os.path.join(directory, new_name)
os.rename(src=original_filepath, dst=new_filepath)

if not self._dry_run:
os.rename(src=original_filepath, dst=new_filepath)

if self._verbose:
print(
f'[RENAMED] [FILEPATH] "{original_filepath}" to [FILEPATH] "{new_filepath}"\n'
Expand Down

0 comments on commit e6680cd

Please sign in to comment.