Browse Source

Path encode

pull/3252/head
Ruud 11 years ago
parent
commit
675bee83ca
  1. 2
      CouchPotato.py
  2. 5
      couchpotato/core/_base/updater/main.py
  3. 2
      couchpotato/core/downloaders/rtorrent_.py
  4. 19
      couchpotato/core/plugins/renamer.py
  5. 24
      couchpotato/runner.py

2
CouchPotato.py

@ -29,7 +29,7 @@ class Loader(object):
# Get options via arg
from couchpotato.runner import getOptions
self.options = getOptions(base_path, sys.argv[1:])
self.options = getOptions(sys.argv[1:])
# Load settings
settings = Env.get('settings')

5
couchpotato/core/_base/updater/main.py

@ -10,7 +10,7 @@ from threading import RLock
from couchpotato.api import addApiView
from couchpotato.core.event import addEvent, fireEvent, fireEventAsync
from couchpotato.core.helpers.encoding import ss
from couchpotato.core.helpers.encoding import ss, sp
from couchpotato.core.logger import CPLog
from couchpotato.core.plugins.base import Plugin
from couchpotato.environment import Env
@ -182,7 +182,7 @@ class BaseUpdater(Plugin):
def deletePyc(self, only_excess = True, show_logs = True):
for root, dirs, files in scandir.walk(ss(Env.get('app_dir'))):
for root, dirs, files in scandir.walk(Env.get('app_dir')):
pyc_files = filter(lambda filename: filename.endswith('.pyc'), files)
py_files = set(filter(lambda filename: filename.endswith('.py'), files))
@ -322,6 +322,7 @@ class SourceUpdater(BaseUpdater):
return False
def replaceWith(self, path):
path = sp(path)
app_dir = ss(Env.get('app_dir'))
data_dir = ss(Env.get('data_dir'))

2
couchpotato/core/downloaders/rtorrent_.py

@ -238,7 +238,7 @@ class rTorrent(DownloaderBase):
if torrent.is_multi_file() and torrent.directory.endswith(torrent.name):
# Remove empty directories bottom up
try:
for path, _, _ in scandir.walk(torrent.directory, topdown = False):
for path, _, _ in scandir.walk(sp(torrent.directory), topdown = False):
os.rmdir(path)
except OSError:
log.info('Directory "%s" contains extra files, unable to remove', torrent.directory)

19
couchpotato/core/plugins/renamer.py

@ -118,10 +118,7 @@ class Renamer(Plugin):
to_folder = sp(self.conf('to'))
# Get media folder to process
media_folder = release_download.get('folder')
# Quality order for calculation quality priority
quality_order = fireEvent('quality.order', single = True)
media_folder = sp(release_download.get('folder'))
# Get all folders that should not be processed
no_process = [to_folder]
@ -149,9 +146,9 @@ class Renamer(Plugin):
# Update to the from folder
if len(release_download.get('files', [])) == 1:
new_media_folder = from_folder
new_media_folder = sp(from_folder)
else:
new_media_folder = os.path.join(from_folder, os.path.basename(media_folder))
new_media_folder = sp(os.path.join(from_folder, os.path.basename(media_folder)))
if not os.path.isdir(new_media_folder):
log.error('The provided media folder %s does not exist and could also not be found in the \'from\' folder.', media_folder)
@ -319,7 +316,7 @@ class Renamer(Plugin):
'3d': '3D' if group['meta_data']['quality'].get('is_3d', 0) else '',
'3d_type': group['meta_data'].get('3d_type'),
}
if replacements['mpaa_only'] not in ('G', 'PG', 'PG-13', 'R', 'NC-17'):
replacements['mpaa_only'] = 'Not Rated'
@ -667,7 +664,7 @@ Remove it if you want it to be renamed (again, or at least let it try again)
# Tag all files in release folder
elif release_download['folder']:
for root, folders, names in scandir.walk(release_download['folder']):
for root, folders, names in scandir.walk(sp(release_download['folder'])):
tag_files.extend([os.path.join(root, name) for name in names])
for filename in tag_files:
@ -691,13 +688,13 @@ Remove it if you want it to be renamed (again, or at least let it try again)
if isinstance(group, dict):
tag_files = [sorted(list(group['files']['movie']))[0]]
folder = group['parentdir']
folder = sp(group['parentdir'])
if not group.get('dirname') or not os.path.isdir(folder):
return False
elif isinstance(release_download, dict):
folder = release_download['folder']
folder = sp(release_download['folder'])
if not os.path.isdir(folder):
return False
@ -731,7 +728,7 @@ Remove it if you want it to be renamed (again, or at least let it try again)
if not release_download:
return False
folder = release_download['folder']
folder = sp(release_download['folder'])
if not os.path.isdir(folder):
return False

24
couchpotato/runner.py

@ -16,14 +16,14 @@ from cache import FileSystemCache
from couchpotato import KeyHandler, LoginHandler, LogoutHandler
from couchpotato.api import NonBlockHandler, ApiHandler
from couchpotato.core.event import fireEventAsync, fireEvent
from couchpotato.core.helpers.encoding import toUnicode
from couchpotato.core.helpers.encoding import sp
from couchpotato.core.helpers.variable import getDataDir, tryInt
from scandir import scandir
from tornado.httpserver import HTTPServer
from tornado.web import Application, StaticFileHandler, RedirectHandler
def getOptions(base_path, args):
def getOptions(args):
# Options
parser = ArgumentParser(prog = 'CouchPotato.py')
@ -86,7 +86,7 @@ def runCouchPotato(options, base_path, args, data_dir = None, log_dir = None, En
Env.set('encoding', encoding)
# Do db stuff
db_path = toUnicode(os.path.join(data_dir, 'database'))
db_path = sp(os.path.join(data_dir, 'database'))
# Check if database exists
db = SuperThreadSafeDatabase(db_path)
@ -94,7 +94,7 @@ def runCouchPotato(options, base_path, args, data_dir = None, log_dir = None, En
if db_exists:
# Backup before start and cleanup old backups
backup_path = toUnicode(os.path.join(data_dir, 'db_backup'))
backup_path = sp(os.path.join(data_dir, 'db_backup'))
backup_count = 5
existing_backups = []
if not os.path.isdir(backup_path): os.makedirs(backup_path)
@ -114,7 +114,7 @@ def runCouchPotato(options, base_path, args, data_dir = None, log_dir = None, En
os.remove(os.path.join(backup_path, eb[1]))
# Create new backup
new_backup = toUnicode(os.path.join(backup_path, '%s.tar.gz' % int(time.time())))
new_backup = sp(os.path.join(backup_path, '%s.tar.gz' % int(time.time())))
zipf = tarfile.open(new_backup, 'w:gz')
for root, dirs, files in scandir.walk(db_path):
for zfilename in files:
@ -128,12 +128,12 @@ def runCouchPotato(options, base_path, args, data_dir = None, log_dir = None, En
db.create()
# Register environment settings
Env.set('app_dir', toUnicode(base_path))
Env.set('data_dir', toUnicode(data_dir))
Env.set('log_path', toUnicode(os.path.join(log_dir, 'CouchPotato.log')))
Env.set('app_dir', sp(base_path))
Env.set('data_dir', sp(data_dir))
Env.set('log_path', sp(os.path.join(log_dir, 'CouchPotato.log')))
Env.set('db', db)
Env.set('cache_dir', toUnicode(os.path.join(data_dir, 'cache')))
Env.set('cache', FileSystemCache(toUnicode(os.path.join(Env.get('cache_dir'), 'python'))))
Env.set('cache_dir', sp(os.path.join(data_dir, 'cache')))
Env.set('cache', FileSystemCache(sp(os.path.join(Env.get('cache_dir'), 'python'))))
Env.set('console_log', options.console_log)
Env.set('quiet', options.quiet)
Env.set('desktop', desktop)
@ -245,13 +245,13 @@ def runCouchPotato(options, base_path, args, data_dir = None, log_dir = None, En
static_path = '%sstatic/' % web_base
for dir_name in ['fonts', 'images', 'scripts', 'style']:
application.add_handlers(".*$", [
('%s%s/(.*)' % (static_path, dir_name), StaticFileHandler, {'path': toUnicode(os.path.join(base_path, 'couchpotato', 'static', dir_name))})
('%s%s/(.*)' % (static_path, dir_name), StaticFileHandler, {'path': sp(os.path.join(base_path, 'couchpotato', 'static', dir_name))})
])
Env.set('static_path', static_path)
# Load configs & plugins
loader = Env.get('loader')
loader.preload(root = toUnicode(base_path))
loader.preload(root = sp(base_path))
loader.run()
# Fill database with needed stuff

Loading…
Cancel
Save