mirror of
https://github.com/clinton-hall/nzbToMedia.git
synced 2025-08-19 21:03:14 -07:00
Flatten process_dir
This commit is contained in:
parent
8d458f10ac
commit
cb422a0cea
1 changed files with 57 additions and 53 deletions
|
@ -4,7 +4,7 @@ from __future__ import print_function, unicode_literals
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
import beets
|
import beets.mediafile
|
||||||
import guessit
|
import guessit
|
||||||
import requests
|
import requests
|
||||||
from six import text_type
|
from six import text_type
|
||||||
|
@ -79,6 +79,61 @@ def clean_dir(path, section, subsection):
|
||||||
return clean_directory(path, files)
|
return clean_directory(path, files)
|
||||||
|
|
||||||
|
|
||||||
|
def move_file(mediafile, path, link):
|
||||||
|
logger.debug('Found file {0} in root directory {1}.'.format(os.path.split(mediafile)[1], path))
|
||||||
|
new_path = None
|
||||||
|
file_ext = os.path.splitext(mediafile)[1]
|
||||||
|
try:
|
||||||
|
if file_ext in core.AUDIOCONTAINER:
|
||||||
|
f = beets.mediafile.MediaFile(mediafile)
|
||||||
|
|
||||||
|
# get artist and album info
|
||||||
|
artist = f.artist
|
||||||
|
album = f.album
|
||||||
|
|
||||||
|
# create new path
|
||||||
|
new_path = os.path.join(path, '{0} - {1}'.format(sanitize_name(artist), sanitize_name(album)))
|
||||||
|
elif file_ext in core.MEDIACONTAINER:
|
||||||
|
f = guessit.guessit(mediafile)
|
||||||
|
|
||||||
|
# get title
|
||||||
|
title = f.get('series') or f.get('title')
|
||||||
|
|
||||||
|
if not title:
|
||||||
|
title = os.path.splitext(os.path.basename(mediafile))[0]
|
||||||
|
|
||||||
|
new_path = os.path.join(path, sanitize_name(title))
|
||||||
|
except Exception as e:
|
||||||
|
logger.error('Exception parsing name for media file: {0}: {1}'.format(os.path.split(mediafile)[1], e))
|
||||||
|
|
||||||
|
if not new_path:
|
||||||
|
title = os.path.splitext(os.path.basename(mediafile))[0]
|
||||||
|
new_path = os.path.join(path, sanitize_name(title))
|
||||||
|
|
||||||
|
try:
|
||||||
|
new_path = new_path.encode(core.SYS_ENCODING)
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
|
# Just fail-safe incase we already have afile with this clean-name (was actually a bug from earlier code, but let's be safe).
|
||||||
|
if os.path.isfile(new_path):
|
||||||
|
new_path2 = os.path.join(os.path.join(os.path.split(new_path)[0], 'new'), os.path.split(new_path)[1])
|
||||||
|
new_path = new_path2
|
||||||
|
|
||||||
|
# create new path if it does not exist
|
||||||
|
if not os.path.exists(new_path):
|
||||||
|
make_dir(new_path)
|
||||||
|
|
||||||
|
newfile = os.path.join(new_path, sanitize_name(os.path.split(mediafile)[1]))
|
||||||
|
try:
|
||||||
|
newfile = newfile.encode(core.SYS_ENCODING)
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
|
# link file to its new path
|
||||||
|
copy_link(mediafile, newfile, link)
|
||||||
|
|
||||||
|
|
||||||
def process_dir(path, link):
|
def process_dir(path, link):
|
||||||
folders = []
|
folders = []
|
||||||
|
|
||||||
|
@ -92,58 +147,7 @@ def process_dir(path, link):
|
||||||
if os.path.split(mediafile)[1] in ['Thumbs.db', 'thumbs.db']:
|
if os.path.split(mediafile)[1] in ['Thumbs.db', 'thumbs.db']:
|
||||||
continue
|
continue
|
||||||
try:
|
try:
|
||||||
logger.debug('Found file {0} in root directory {1}.'.format(os.path.split(mediafile)[1], path))
|
move_file(mediafile, path, link)
|
||||||
new_path = None
|
|
||||||
file_ext = os.path.splitext(mediafile)[1]
|
|
||||||
try:
|
|
||||||
if file_ext in core.AUDIOCONTAINER:
|
|
||||||
f = beets.mediafile.MediaFile(mediafile)
|
|
||||||
|
|
||||||
# get artist and album info
|
|
||||||
artist = f.artist
|
|
||||||
album = f.album
|
|
||||||
|
|
||||||
# create new path
|
|
||||||
new_path = os.path.join(path, '{0} - {1}'.format(sanitize_name(artist), sanitize_name(album)))
|
|
||||||
elif file_ext in core.MEDIACONTAINER:
|
|
||||||
f = guessit.guessit(mediafile)
|
|
||||||
|
|
||||||
# get title
|
|
||||||
title = f.get('series') or f.get('title')
|
|
||||||
|
|
||||||
if not title:
|
|
||||||
title = os.path.splitext(os.path.basename(mediafile))[0]
|
|
||||||
|
|
||||||
new_path = os.path.join(path, sanitize_name(title))
|
|
||||||
except Exception as e:
|
|
||||||
logger.error('Exception parsing name for media file: {0}: {1}'.format(os.path.split(mediafile)[1], e))
|
|
||||||
|
|
||||||
if not new_path:
|
|
||||||
title = os.path.splitext(os.path.basename(mediafile))[0]
|
|
||||||
new_path = os.path.join(path, sanitize_name(title))
|
|
||||||
|
|
||||||
try:
|
|
||||||
new_path = new_path.encode(core.SYS_ENCODING)
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# Just fail-safe incase we already have afile with this clean-name (was actually a bug from earlier code, but let's be safe).
|
|
||||||
if os.path.isfile(new_path):
|
|
||||||
new_path2 = os.path.join(os.path.join(os.path.split(new_path)[0], 'new'), os.path.split(new_path)[1])
|
|
||||||
new_path = new_path2
|
|
||||||
|
|
||||||
# create new path if it does not exist
|
|
||||||
if not os.path.exists(new_path):
|
|
||||||
make_dir(new_path)
|
|
||||||
|
|
||||||
newfile = os.path.join(new_path, sanitize_name(os.path.split(mediafile)[1]))
|
|
||||||
try:
|
|
||||||
newfile = newfile.encode(core.SYS_ENCODING)
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# link file to its new path
|
|
||||||
copy_link(mediafile, newfile, link)
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error('Failed to move {0} to its own directory: {1}'.format(os.path.split(mediafile)[1], e))
|
logger.error('Failed to move {0} to its own directory: {1}'.format(os.path.split(mediafile)[1], e))
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue