Delete empty folders and leftover .pyc files on restart
This commit is contained in:
@@ -51,6 +51,7 @@ class Core(Plugin):
|
|||||||
addEvent('app.api_url', self.createApiUrl)
|
addEvent('app.api_url', self.createApiUrl)
|
||||||
addEvent('app.version', self.version)
|
addEvent('app.version', self.version)
|
||||||
addEvent('app.load', self.checkDataDir)
|
addEvent('app.load', self.checkDataDir)
|
||||||
|
addEvent('app.load', self.cleanUpFolders)
|
||||||
|
|
||||||
addEvent('setting.save.core.password', self.md5Password)
|
addEvent('setting.save.core.password', self.md5Password)
|
||||||
addEvent('setting.save.core.api_key', self.checkApikey)
|
addEvent('setting.save.core.api_key', self.checkApikey)
|
||||||
@@ -75,6 +76,9 @@ class Core(Plugin):
|
|||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def cleanUpFolders(self):
|
||||||
|
self.deleteEmptyFolder(Env.get('app_dir'), show_error = False)
|
||||||
|
|
||||||
def available(self, **kwargs):
|
def available(self, **kwargs):
|
||||||
return {
|
return {
|
||||||
'success': True
|
'success': True
|
||||||
|
|||||||
@@ -142,6 +142,10 @@ class Updater(Plugin):
|
|||||||
'success': success
|
'success': success
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def doShutdown(self):
|
||||||
|
self.updater.deletePyc(show_logs = False)
|
||||||
|
return super(Updater, self).doShutdown()
|
||||||
|
|
||||||
|
|
||||||
class BaseUpdater(Plugin):
|
class BaseUpdater(Plugin):
|
||||||
|
|
||||||
@@ -176,7 +180,7 @@ class BaseUpdater(Plugin):
|
|||||||
def check(self):
|
def check(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def deletePyc(self, only_excess = True):
|
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(ss(Env.get('app_dir'))):
|
||||||
|
|
||||||
@@ -186,7 +190,7 @@ class BaseUpdater(Plugin):
|
|||||||
|
|
||||||
for excess_pyc_file in excess_pyc_files:
|
for excess_pyc_file in excess_pyc_files:
|
||||||
full_path = os.path.join(root, excess_pyc_file)
|
full_path = os.path.join(root, excess_pyc_file)
|
||||||
log.debug('Removing old PYC file: %s', full_path)
|
if show_logs: log.debug('Removing old PYC file: %s', full_path)
|
||||||
try:
|
try:
|
||||||
os.remove(full_path)
|
os.remove(full_path)
|
||||||
except:
|
except:
|
||||||
@@ -212,9 +216,6 @@ class GitUpdater(BaseUpdater):
|
|||||||
log.info('Updating to latest version')
|
log.info('Updating to latest version')
|
||||||
self.repo.pull()
|
self.repo.pull()
|
||||||
|
|
||||||
# Delete leftover .pyc files
|
|
||||||
self.deletePyc()
|
|
||||||
|
|
||||||
return True
|
return True
|
||||||
except:
|
except:
|
||||||
log.error('Failed updating via GIT: %s', traceback.format_exc())
|
log.error('Failed updating via GIT: %s', traceback.format_exc())
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ from couchpotato.environment import Env
|
|||||||
import requests
|
import requests
|
||||||
from requests.packages.urllib3 import Timeout
|
from requests.packages.urllib3 import Timeout
|
||||||
from requests.packages.urllib3.exceptions import MaxRetryError
|
from requests.packages.urllib3.exceptions import MaxRetryError
|
||||||
|
from scandir import scandir
|
||||||
from tornado import template
|
from tornado import template
|
||||||
from tornado.web import StaticFileHandler
|
from tornado.web import StaticFileHandler
|
||||||
|
|
||||||
@@ -146,6 +147,26 @@ class Plugin(object):
|
|||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def deleteEmptyFolder(self, folder, show_error = True):
|
||||||
|
folder = sp(folder)
|
||||||
|
|
||||||
|
for root, dirs, files in scandir.walk(folder):
|
||||||
|
|
||||||
|
for dir_name in dirs:
|
||||||
|
full_path = os.path.join(root, dir_name)
|
||||||
|
if len(os.listdir(full_path)) == 0:
|
||||||
|
try:
|
||||||
|
os.rmdir(full_path)
|
||||||
|
except:
|
||||||
|
if show_error:
|
||||||
|
log.error('Couldn\'t remove empty directory %s: %s', (full_path, traceback.format_exc()))
|
||||||
|
|
||||||
|
try:
|
||||||
|
os.rmdir(folder)
|
||||||
|
except:
|
||||||
|
if show_error:
|
||||||
|
log.error('Couldn\'t remove empty directory %s: %s', (folder, traceback.format_exc()))
|
||||||
|
|
||||||
# http request
|
# http request
|
||||||
def urlopen(self, url, timeout = 30, data = None, headers = None, files = None, show_error = True):
|
def urlopen(self, url, timeout = 30, data = None, headers = None, files = None, show_error = True):
|
||||||
url = urllib2.quote(ss(url), safe = "%/:=&?~#+!$,;'@()*[]")
|
url = urllib2.quote(ss(url), safe = "%/:=&?~#+!$,;'@()*[]")
|
||||||
|
|||||||
@@ -823,25 +823,6 @@ Remove it if you want it to be renamed (again, or at least let it try again)
|
|||||||
|
|
||||||
return string
|
return string
|
||||||
|
|
||||||
def deleteEmptyFolder(self, folder, show_error = True):
|
|
||||||
folder = sp(folder)
|
|
||||||
|
|
||||||
loge = log.error if show_error else log.debug
|
|
||||||
for root, dirs, files in scandir.walk(folder):
|
|
||||||
|
|
||||||
for dir_name in dirs:
|
|
||||||
full_path = os.path.join(root, dir_name)
|
|
||||||
if len(os.listdir(full_path)) == 0:
|
|
||||||
try:
|
|
||||||
os.rmdir(full_path)
|
|
||||||
except:
|
|
||||||
loge('Couldn\'t remove empty directory %s: %s', (full_path, traceback.format_exc()))
|
|
||||||
|
|
||||||
try:
|
|
||||||
os.rmdir(folder)
|
|
||||||
except:
|
|
||||||
loge('Couldn\'t remove empty directory %s: %s', (folder, traceback.format_exc()))
|
|
||||||
|
|
||||||
def checkSnatched(self, fire_scan = True):
|
def checkSnatched(self, fire_scan = True):
|
||||||
|
|
||||||
if self.checking_snatched:
|
if self.checking_snatched:
|
||||||
|
|||||||
Reference in New Issue
Block a user