Merge pull request #11 from KevinMidboe/rename_and_move

Rename and move
This commit is contained in:
2017-06-28 00:03:13 +02:00
committed by GitHub

View File

@@ -3,9 +3,10 @@
# @Author: KevinMidboe
# @Date: 2017-04-12 23:27:51
# @Last Modified by: KevinMidboe
# @Last Modified time: 2017-06-12 20:28:03
# @Last Modified time: 2017-06-27 15:58:09
import sys, sqlite3, json, os
import sys, sqlite3, json, os.path
import logging
import env_variables as env
class episode(object):
@@ -44,24 +45,53 @@ class episode(object):
def fix_ownership(path):
uid = int(os.environ.get('SUDO_UID'))
gid = int(os.environ.get('SUDO_GID'))
os.chown(path, '1000', '113')
# TODO find this from username from config
uid = 1000
gid = 113
os.chown(path, uid, gid)
def moveStray(strayId):
ep = episode(strayId)
for item in ep.video_files:
os.rename(ep.typeDir('parent', mergeItem=item[0]), ep.typeDir('episode', mergeItem=item[1], create=True))
try:
old_dir = ep.typeDir('parent', mergeItem=item[0])
new_dir = ep.typeDir('episode', mergeItem=item[1], create=True)
os.rename(old_dir, new_dir)
except FileNotFoundError:
logging.warning(old_dir + ' does not exits, cannot be moved.')
for item in ep.subtitles:
os.rename(ep.typeDir('parent', mergeItem=item[0]), ep.typeDir('episode', mergeItem=item[1], create=True))
try:
old_dir = ep.typeDir('parent', mergeItem=item[0])
new_dir = ep.typeDir('episode', mergeItem=item[1], create=True)
os.rename(old_dir, new_dir)
except FileNotFoundError:
logging.warning(old_dir + ' does not exits, cannot be moved.')
for item in ep.trash:
os.remove(ep.typeDir('parent', mergeItem=item))
try:
os.remove(ep.typeDir('parent', mergeItem=item))
except FileNotFoundError:
logging.warning(ep.typeDir('parent', mergeItem=item) + 'does not exist, cannot be removed.')
fix_ownership(ep.typeDir('parent'))
os.rmdir(ep.typeDir('parent'))
fix_ownership(ep.typeDir('episode'))
for root, dirs, files in os.walk(ep.typeDir('episode')):
for item in files:
fix_ownership(os.path.join(ep.typeDir('episode'), item))
# TODO because we might jump over same files, the dir might no longer
# be empty and cannot remove dir like this.
try:
os.rmdir(ep.typeDir('parent'))
except FileNotFoundError:
logging.warning('Cannot remove ' + ep.typeDir('parent') + ', file no longer exists.')
if __name__ == '__main__':
if (os.path.exists(env.logfile)):
logging.basicConfig(filename=env.logfile, level=logging.INFO)
else:
print('Logfile could not be found at ' + env.logfile + '. Verifiy presence or disable logging in config.')
moveStray(sys.argv[-1])