Browse Source

Make sure that "complete" and "incomplete" paths are different.

If needed, make "incomplete" a sub folder of "complete".
This is to avoid name clashes between complete and incomplete jobs.
pull/7/merge
ShyPike 14 years ago
parent
commit
0229335c15
  1. 13
      sabnzbd/__init__.py
  2. 1
      sabnzbd/interface.py
  3. 7
      sabnzbd/misc.py

13
sabnzbd/__init__.py

@ -240,6 +240,8 @@ def initialize(pause_downloader = False, clean_up = False, evalSched=False, repa
### Set cache limit
ArticleCache.do.new_limit(cfg.cache_limit.get_int())
check_incomplete_vs_complete()
### Handle language upgrade from 0.5.x to 0.6.x
cfg.language.set(LANG_MAP.get(cfg.language(), cfg.language()))
@ -1022,6 +1024,17 @@ def pid_file(pid_path=None, port=0):
logging.warning('Cannot access PID file %s', DIR_PID)
def check_incomplete_vs_complete():
""" Make sure "incomplete" and "complete" are not identical
"""
complete = cfg.complete_dir.get_path()
if misc.same_file(cfg.download_dir.get_path(), complete):
if misc.real_path('X', cfg.download_dir()) == cfg.download_dir():
# Abs path, so set an abs path too
cfg.download_dir.set(os.path.join(complete, 'incomplete'))
else:
cfg.download_dir.set('incomplete')
# Required wrapper because nzbstuff.py cannot import downloader.py
def active_primaries():

1
sabnzbd/interface.py

@ -1120,6 +1120,7 @@ class ConfigFolders(object):
if msg:
return badParameterResponse(msg)
sabnzbd.check_incomplete_vs_complete()
config.save_config()
raise dcRaiser(self.__root, kwargs)

7
sabnzbd/misc.py

@ -634,8 +634,11 @@ def same_file(a, b):
return False
else:
try:
a = os.path.normpath(os.path.abspath(a)).lower()
b = os.path.normpath(os.path.abspath(b)).lower()
a = os.path.normpath(os.path.abspath(a))
b = os.path.normpath(os.path.abspath(b))
if sabnzbd.WIN32 or sabnzbd.DARWIN:
a = a.lower()
b = b.lower()
return a == b
except:
return False

Loading…
Cancel
Save