mirror of
https://github.com/tuna/tunasync.git
synced 2025-04-21 04:42:46 +00:00
status hook fixed
This commit is contained in:
parent
732f27ff8f
commit
3edc83044e
43
tunasync.py
43
tunasync.py
@ -15,27 +15,54 @@ class IndexPageHook(JobHook):
|
||||
self.parent = parent
|
||||
self.dbfile = dbfile
|
||||
|
||||
self.mirrors = {}
|
||||
@property
|
||||
def mirrors(self):
|
||||
mirrors = {}
|
||||
try:
|
||||
with open(self.dbfile) as f:
|
||||
_mirrors = json.load(f)
|
||||
for m in _mirrors:
|
||||
self.mirrors[m["name"]] = m
|
||||
mirrors[m["name"]] = m
|
||||
except:
|
||||
for name, _ in self.parent.mirrors.iteritems():
|
||||
self.mirrors[name] = {
|
||||
mirrors[name] = {
|
||||
'name': name,
|
||||
'last_update': '-',
|
||||
'status': 'unknown',
|
||||
}
|
||||
return mirrors
|
||||
|
||||
def before_job(self, *args, **kwargs):
|
||||
pass
|
||||
def before_job(self, name=None, *args, **kwargs):
|
||||
if name is None:
|
||||
return
|
||||
mirrors = self.mirrors
|
||||
_m = mirrors.get(name, {
|
||||
'name': name,
|
||||
'last_update': '-',
|
||||
'status': '-',
|
||||
})
|
||||
|
||||
mirrors[name] = {
|
||||
'name': name,
|
||||
'last_update': _m['last_update'],
|
||||
'status': 'syncing'
|
||||
}
|
||||
with open(self.dbfile, 'wb') as f:
|
||||
_mirrors = sorted(
|
||||
[m for _, m in mirrors.items()],
|
||||
key=lambda x: x['name']
|
||||
)
|
||||
|
||||
json.dump(_mirrors, f)
|
||||
|
||||
def after_job(self, name=None, status="unknown", *args, **kwargs):
|
||||
if name is None:
|
||||
return
|
||||
|
||||
def after_job(self, name='unknown', status="unknown", *args, **kwargs):
|
||||
print("Updating tunasync.json")
|
||||
now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||
self.mirrors[name] = {
|
||||
mirrors = self.mirrors
|
||||
mirrors[name] = {
|
||||
'name': name,
|
||||
'last_update': now,
|
||||
'status': status
|
||||
@ -43,7 +70,7 @@ class IndexPageHook(JobHook):
|
||||
with open(self.dbfile, 'wb') as f:
|
||||
|
||||
_mirrors = sorted(
|
||||
[m for _, m in self.mirrors.items()],
|
||||
[m for _, m in mirrors.items()],
|
||||
key=lambda x: x['name']
|
||||
)
|
||||
|
||||
|
@ -27,16 +27,15 @@ def run_job(sema, child_q, manager_q, provider):
|
||||
print("start syncing {}".format(provider.name))
|
||||
|
||||
for hook in provider.hooks:
|
||||
hook.before_job()
|
||||
hook.before_job(name=provider.name)
|
||||
|
||||
provider.run()
|
||||
|
||||
status = "success"
|
||||
try:
|
||||
provider.wait()
|
||||
except sh.ErrorReturnCode:
|
||||
status = "fail"
|
||||
else:
|
||||
status = "success"
|
||||
|
||||
for hook in provider.hooks[::-1]:
|
||||
try:
|
||||
|
Loading…
x
Reference in New Issue
Block a user