mirror of
https://github.com/evilhero/mylar
synced 2025-02-01 12:07:50 +00:00
IMP: Added '-fs' (fixslashes) to maintenance mode to correct double-slashes incorrectly appearing within db Comic Location paths
This commit is contained in:
parent
97d4fbbf47
commit
ef6e7d67a4
2 changed files with 35 additions and 2 deletions
10
Mylar.py
10
Mylar.py
|
@ -89,12 +89,13 @@ def main():
|
|||
parser_maintenance.add_argument('-ij', '--importjson', action='store', help='Import a specified json file containing just {"ComicID": "XXXXX"} into current db')
|
||||
parser_maintenance.add_argument('-st', '--importstatus', action='store_true', help='Provide current maintenance status')
|
||||
parser_maintenance.add_argument('-u', '--update', action='store_true', help='force mylar to perform an update as if in GUI')
|
||||
parser_maintenance.add_argument('-fs', '--fixslashes', action='store_true', help='remove double-slashes from within paths in db')
|
||||
#parser_maintenance.add_argument('-it', '--importtext', action='store', help='Import a specified text file into current db')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.maintenance:
|
||||
if all([args.exportjson is None, args.importdatabase is None, args.importjson is None, args.importstatus is False, args.update is False]):
|
||||
if all([args.exportjson is None, args.importdatabase is None, args.importjson is None, args.importstatus is False, args.update is False, args.fixslashes is False]):
|
||||
print 'Expecting subcommand with the maintenance positional argumeent'
|
||||
sys.exit()
|
||||
mylar.MAINTENANCE = True
|
||||
|
@ -221,7 +222,7 @@ def main():
|
|||
if mylar.DAEMON:
|
||||
mylar.daemonize()
|
||||
|
||||
if mylar.MAINTENANCE is True and any([args.exportjson, args.importjson, args.update is True, args.importstatus is True]):
|
||||
if mylar.MAINTENANCE is True and any([args.exportjson, args.importjson, args.update is True, args.importstatus is True, args.fixslashes is True]):
|
||||
loggermode = '[MAINTENANCE-MODE]'
|
||||
if args.importstatus: #mylar.MAINTENANCE is True:
|
||||
cs = maintenance.Maintenance('status')
|
||||
|
@ -260,6 +261,11 @@ def main():
|
|||
logger.info('%s file indicated as being written to json format - destination accepted as %s' % (loggermode, maintenance_path))
|
||||
ej = maintenance.Maintenance('json-export', output=maintenance_path)
|
||||
j = ej.json_export()
|
||||
elif args.fixslashes:
|
||||
#for running the fix slashes on the db manually
|
||||
logger.info('%s method indicated as fix slashes' % loggermode)
|
||||
fs = maintenance.Maintenance('fixslashes')
|
||||
j = fs.fix_slashes()
|
||||
else:
|
||||
logger.info('%s Not a valid command: %s' % (loggermode, maintenance_info))
|
||||
sys.exit()
|
||||
|
|
|
@ -84,6 +84,33 @@ class Maintenance(object):
|
|||
|
||||
logger.info('[MAINTENANCE-MODE][%s] Successfully exported %s ComicID\'s to json file: %s' % (self.mode.upper(), len(self.comiclist), self.outputfile))
|
||||
|
||||
def fix_slashes(self):
|
||||
self.sql_attachmylar()
|
||||
|
||||
for ct in self.dbmylar.execute("SELECT ComicID, ComicLocation FROM comics WHERE ComicLocation like ?", ['%' + os.sep.encode('unicode-escape') + os.sep.encode('unicode-escape') + '%']):
|
||||
st = ct[1].find(os.sep.encode('unicode-escape')+os.sep.encode('unicode-escape'))
|
||||
if st != -1:
|
||||
clocation = ct[1][st+2:]
|
||||
if clocation[0] != os.sep.encode('unicode-escape'):
|
||||
new_path = os.path.join(mylar.CONFIG.DESTINATION_DIR, clocation)
|
||||
logger.info('[Incorrect slashes in path detected for OS] %s' % os.path.join(mylar.CONFIG.DESTINATION_DIR, ct[1]))
|
||||
logger.info('[PATH CORRECTION] %s' % new_path)
|
||||
self.comiclist.append({'ComicLocation': new_path,
|
||||
'ComicID': ct[0]})
|
||||
|
||||
for cm in self.comiclist:
|
||||
try:
|
||||
self.dbmylar.execute("UPDATE comics SET ComicLocation=? WHERE ComicID=?", (cm['ComicLocation'], cm['ComicID']))
|
||||
except Exception as e:
|
||||
logger.warn('Unable to correct entry: [ComicID:%s] %s [%e]' % (cm['ComicLocation'], cm['ComicID'],e))
|
||||
|
||||
self.sql_closemylar()
|
||||
|
||||
if len(self.comiclist) >0:
|
||||
logger.info('[MAINTENANCE-MODE][%s] Successfully fixed the path slashes for %s series' % (self.mode.upper(), len(self.comiclist)))
|
||||
else:
|
||||
logger.info('[MAINTENANCE-MODE][%s] No series found with incorrect slashes in the path' % self.mode.upper())
|
||||
|
||||
def check_status(self):
|
||||
try:
|
||||
found = False
|
||||
|
|
Loading…
Reference in a new issue