Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
douban-api-proxy
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
captainwong
douban-api-proxy
Commits
c582a704
Commit
c582a704
authored
Nov 03, 2018
by
Ozzieisaacs
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'bbb/617'
parents
baa4e694
ee686b53
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
94 additions
and
48 deletions
+94
-48
helper.py
cps/helper.py
+39
-3
tasks.html
cps/templates/tasks.html
+1
-1
web.py
cps/web.py
+25
-16
worker.py
cps/worker.py
+29
-28
No files found.
cps/helper.py
View file @
c582a704
...
@@ -73,10 +73,10 @@ def convert_book_format(book_id, calibrepath, old_book_format, new_book_format,
...
@@ -73,10 +73,10 @@ def convert_book_format(book_id, calibrepath, old_book_format, new_book_format,
# read settings and append converter task to queue
# read settings and append converter task to queue
if
kindle_mail
:
if
kindle_mail
:
settings
=
ub
.
get_mail_settings
()
settings
=
ub
.
get_mail_settings
()
text
=
_
(
u"
Convert:
%(book)
s"
,
book
=
book
.
title
)
text
=
_
(
u"
%(format)
s:
%(book)
s"
,
format
=
new_book_format
,
book
=
book
.
title
)
else
:
else
:
settings
=
dict
()
settings
=
dict
()
text
=
_
(
u"
Convert to
%(format)
s:
%(book)
s"
,
format
=
new_book_format
,
book
=
book
.
title
)
text
=
_
(
u"
%(format)
s:
%(book)
s"
,
format
=
new_book_format
,
book
=
book
.
title
)
settings
[
'old_book_format'
]
=
old_book_format
settings
[
'old_book_format'
]
=
old_book_format
settings
[
'new_book_format'
]
=
new_book_format
settings
[
'new_book_format'
]
=
new_book_format
global_WorkerThread
.
add_convert
(
file_path
,
book
.
id
,
user_id
,
text
,
settings
,
kindle_mail
)
global_WorkerThread
.
add_convert
(
file_path
,
book
.
id
,
user_id
,
text
,
settings
,
kindle_mail
)
...
@@ -584,3 +584,39 @@ def get_current_version_info():
...
@@ -584,3 +584,39 @@ def get_current_version_info():
if
is_sha1
(
content
[
0
])
and
len
(
content
[
1
])
>
0
:
if
is_sha1
(
content
[
0
])
and
len
(
content
[
1
])
>
0
:
return
{
'hash'
:
content
[
0
],
'datetime'
:
content
[
1
]}
return
{
'hash'
:
content
[
0
],
'datetime'
:
content
[
1
]}
return
False
return
False
def
render_task_status
(
tasklist
):
#helper function to apply localize status information in tasklist entries
renderedtasklist
=
list
()
for
task
in
tasklist
:
# localize the task status
if
isinstance
(
task
[
'status'
],
int
):
if
task
[
'status'
]
==
worker
.
STAT_WAITING
:
task
[
'status'
]
=
_
(
'Waiting'
)
elif
task
[
'status'
]
==
worker
.
STAT_FAIL
:
task
[
'status'
]
=
_
(
'Failed'
)
elif
task
[
'status'
]
==
worker
.
STAT_STARTED
:
task
[
'status'
]
=
_
(
'Started'
)
elif
task
[
'status'
]
==
worker
.
STAT_FINISH_SUCCESS
:
task
[
'status'
]
=
_
(
'Finished'
)
else
:
task
[
'status'
]
=
_
(
'Unknown Status'
)
# localize the task type
if
isinstance
(
task
[
'taskType'
],
int
):
if
task
[
'taskType'
]
==
worker
.
TASK_EMAIL
:
task
[
'taskMessage'
]
=
_
(
'EMAIL: '
)
+
task
[
'taskMessage'
]
elif
task
[
'taskType'
]
==
worker
.
TASK_CONVERT
:
task
[
'taskMessage'
]
=
_
(
'CONVERT: '
)
+
task
[
'taskMessage'
]
elif
task
[
'taskType'
]
==
worker
.
TASK_UPLOAD
:
task
[
'taskMessage'
]
=
_
(
'UPLOAD: '
)
+
task
[
'taskMessage'
]
elif
task
[
'taskType'
]
==
worker
.
TASK_CONVERT_ANY
:
task
[
'taskMessage'
]
=
_
(
'CONVERT: '
)
+
task
[
'taskMessage'
]
else
:
task
[
'taskMessage'
]
=
_
(
'Unknown Task: '
)
+
task
[
'taskMessage'
]
renderedtasklist
.
append
(
task
)
return
renderedtasklist
cps/templates/tasks.html
View file @
c582a704
...
@@ -11,7 +11,7 @@
...
@@ -11,7 +11,7 @@
{% if g.user.role_admin() %}
{% if g.user.role_admin() %}
<th
data-halign=
"right"
data-align=
"right"
data-field=
"user"
data-sortable=
"true"
>
{{_('User')}}
</th>
<th
data-halign=
"right"
data-align=
"right"
data-field=
"user"
data-sortable=
"true"
>
{{_('User')}}
</th>
{% endif %}
{% endif %}
<th
data-halign=
"right"
data-align=
"right"
data-field=
"t
yp
e"
data-sortable=
"true"
>
{{_('Task')}}
</th>
<th
data-halign=
"right"
data-align=
"right"
data-field=
"t
askMessag
e"
data-sortable=
"true"
>
{{_('Task')}}
</th>
<th
data-halign=
"right"
data-align=
"right"
data-field=
"status"
data-sortable=
"true"
>
{{_('Status')}}
</th>
<th
data-halign=
"right"
data-align=
"right"
data-field=
"status"
data-sortable=
"true"
>
{{_('Status')}}
</th>
<th
data-halign=
"right"
data-align=
"right"
data-field=
"progress"
data-sortable=
"true"
data-sorter=
"elementSorter"
>
{{_('Progress')}}
</th>
<th
data-halign=
"right"
data-align=
"right"
data-field=
"progress"
data-sortable=
"true"
data-sorter=
"elementSorter"
>
{{_('Progress')}}
</th>
<th
data-halign=
"right"
data-align=
"right"
data-field=
"runtime"
data-sortable=
"true"
data-sort-name=
"rt"
>
{{_('Runtime')}}
</th>
<th
data-halign=
"right"
data-align=
"right"
data-field=
"runtime"
data-sortable=
"true"
data-sort-name=
"rt"
>
{{_('Runtime')}}
</th>
...
...
cps/web.py
View file @
c582a704
...
@@ -54,6 +54,7 @@ import tempfile
...
@@ -54,6 +54,7 @@ import tempfile
from
redirect
import
redirect_back
from
redirect
import
redirect_back
import
time
import
time
import
server
import
server
import
copy
from
reverseproxy
import
ReverseProxied
from
reverseproxy
import
ReverseProxied
try
:
try
:
from
googleapiclient.errors
import
HttpError
from
googleapiclient.errors
import
HttpError
...
@@ -922,6 +923,7 @@ def get_metadata_calibre_companion(uuid):
...
@@ -922,6 +923,7 @@ def get_metadata_calibre_companion(uuid):
@
login_required
@
login_required
def
get_email_status_json
():
def
get_email_status_json
():
answer
=
list
()
answer
=
list
()
UIanswer
=
list
()
tasks
=
helper
.
global_WorkerThread
.
get_taskstatus
()
tasks
=
helper
.
global_WorkerThread
.
get_taskstatus
()
if
not
current_user
.
role_admin
():
if
not
current_user
.
role_admin
():
for
task
in
tasks
:
for
task
in
tasks
:
...
@@ -942,7 +944,11 @@ def get_email_status_json():
...
@@ -942,7 +944,11 @@ def get_email_status_json():
if
'starttime'
not
in
task
:
if
'starttime'
not
in
task
:
task
[
'starttime'
]
=
""
task
[
'starttime'
]
=
""
answer
=
tasks
answer
=
tasks
js
=
json
.
dumps
(
answer
)
UIanswer
=
copy
.
deepcopy
(
answer
)
UIanswer
=
helper
.
render_task_status
(
UIanswer
)
js
=
json
.
dumps
(
UIanswer
)
response
=
make_response
(
js
)
response
=
make_response
(
js
)
response
.
headers
[
"Content-Type"
]
=
"application/json; charset=utf-8"
response
.
headers
[
"Content-Type"
]
=
"application/json; charset=utf-8"
return
response
return
response
...
@@ -1728,6 +1734,7 @@ def bookmark(book_id, book_format):
...
@@ -1728,6 +1734,7 @@ def bookmark(book_id, book_format):
def
get_tasks_status
():
def
get_tasks_status
():
# if current user admin, show all email, otherwise only own emails
# if current user admin, show all email, otherwise only own emails
answer
=
list
()
answer
=
list
()
UIanswer
=
list
()
tasks
=
helper
.
global_WorkerThread
.
get_taskstatus
()
tasks
=
helper
.
global_WorkerThread
.
get_taskstatus
()
if
not
current_user
.
role_admin
():
if
not
current_user
.
role_admin
():
for
task
in
tasks
:
for
task
in
tasks
:
...
@@ -1749,8 +1756,10 @@ def get_tasks_status():
...
@@ -1749,8 +1756,10 @@ def get_tasks_status():
task
[
'starttime'
]
=
""
task
[
'starttime'
]
=
""
answer
=
tasks
answer
=
tasks
UIanswer
=
copy
.
deepcopy
(
answer
)
UIanswer
=
helper
.
render_task_status
(
UIanswer
)
# foreach row format row
# foreach row format row
return
render_title_template
(
'tasks.html'
,
entries
=
answer
,
title
=
_
(
u"Tasks"
))
return
render_title_template
(
'tasks.html'
,
entries
=
UI
answer
,
title
=
_
(
u"Tasks"
))
@
app
.
route
(
"/admin"
)
@
app
.
route
(
"/admin"
)
...
...
cps/worker.py
View file @
c582a704
...
@@ -33,12 +33,12 @@ from email.utils import formatdate
...
@@ -33,12 +33,12 @@ from email.utils import formatdate
from
email.utils
import
make_msgid
from
email.utils
import
make_msgid
chunksize
=
8192
chunksize
=
8192
# task 'status' consts
STAT_WAITING
=
0
STAT_WAITING
=
0
STAT_FAIL
=
1
STAT_FAIL
=
1
STAT_STARTED
=
2
STAT_STARTED
=
2
STAT_FINISH_SUCCESS
=
3
STAT_FINISH_SUCCESS
=
3
#taskType consts
TASK_EMAIL
=
1
TASK_EMAIL
=
1
TASK_CONVERT
=
2
TASK_CONVERT
=
2
TASK_UPLOAD
=
3
TASK_UPLOAD
=
3
...
@@ -169,11 +169,11 @@ class WorkerThread(threading.Thread):
...
@@ -169,11 +169,11 @@ class WorkerThread(threading.Thread):
doLock
.
acquire
()
doLock
.
acquire
()
if
self
.
current
!=
self
.
last
:
if
self
.
current
!=
self
.
last
:
doLock
.
release
()
doLock
.
release
()
if
self
.
queue
[
self
.
current
][
't
yp
'
]
==
TASK_EMAIL
:
if
self
.
queue
[
self
.
current
][
't
askType
'
]
==
TASK_EMAIL
:
self
.
send_raw_email
()
self
.
send_raw_email
()
if
self
.
queue
[
self
.
current
][
't
yp
'
]
==
TASK_CONVERT
:
if
self
.
queue
[
self
.
current
][
't
askType
'
]
==
TASK_CONVERT
:
self
.
convert_any_format
()
self
.
convert_any_format
()
if
self
.
queue
[
self
.
current
][
't
yp
'
]
==
TASK_CONVERT_ANY
:
if
self
.
queue
[
self
.
current
][
't
askType
'
]
==
TASK_CONVERT_ANY
:
self
.
convert_any_format
()
self
.
convert_any_format
()
# TASK_UPLOAD is handled implicitly
# TASK_UPLOAD is handled implicitly
self
.
current
+=
1
self
.
current
+=
1
...
@@ -203,7 +203,7 @@ class WorkerThread(threading.Thread):
...
@@ -203,7 +203,7 @@ class WorkerThread(threading.Thread):
def
get_taskstatus
(
self
):
def
get_taskstatus
(
self
):
if
self
.
current
<
len
(
self
.
queue
):
if
self
.
current
<
len
(
self
.
queue
):
if
self
.
queue
[
self
.
current
][
'status'
]
==
STAT_STARTED
:
if
self
.
queue
[
self
.
current
][
'status'
]
==
STAT_STARTED
:
if
self
.
queue
[
self
.
current
][
't
yp
'
]
==
TASK_EMAIL
:
if
self
.
queue
[
self
.
current
][
't
askType
'
]
==
TASK_EMAIL
:
self
.
UIqueue
[
self
.
current
][
'progress'
]
=
self
.
get_send_status
()
self
.
UIqueue
[
self
.
current
][
'progress'
]
=
self
.
get_send_status
()
self
.
UIqueue
[
self
.
current
][
'runtime'
]
=
self
.
_formatRuntime
(
self
.
UIqueue
[
self
.
current
][
'runtime'
]
=
self
.
_formatRuntime
(
datetime
.
now
()
-
self
.
queue
[
self
.
current
][
'starttime'
])
datetime
.
now
()
-
self
.
queue
[
self
.
current
][
'starttime'
])
...
@@ -212,10 +212,10 @@ class WorkerThread(threading.Thread):
...
@@ -212,10 +212,10 @@ class WorkerThread(threading.Thread):
def
convert_any_format
(
self
):
def
convert_any_format
(
self
):
# convert book, and upload in case of google drive
# convert book, and upload in case of google drive
self
.
queue
[
self
.
current
][
'status'
]
=
STAT_STARTED
self
.
queue
[
self
.
current
][
'status'
]
=
STAT_STARTED
self
.
UIqueue
[
self
.
current
][
'status'
]
=
_
(
'Started'
)
self
.
UIqueue
[
self
.
current
][
'status'
]
=
STAT_STARTED
self
.
queue
[
self
.
current
][
'starttime'
]
=
datetime
.
now
()
self
.
queue
[
self
.
current
][
'starttime'
]
=
datetime
.
now
()
self
.
UIqueue
[
self
.
current
][
'formStarttime'
]
=
self
.
queue
[
self
.
current
][
'starttime'
]
self
.
UIqueue
[
self
.
current
][
'formStarttime'
]
=
self
.
queue
[
self
.
current
][
'starttime'
]
curr_task
=
self
.
queue
[
self
.
current
][
't
yp
'
]
curr_task
=
self
.
queue
[
self
.
current
][
't
askType
'
]
filename
=
self
.
convert_ebook_format
()
filename
=
self
.
convert_ebook_format
()
if
filename
:
if
filename
:
if
web
.
ub
.
config
.
config_use_google_drive
:
if
web
.
ub
.
config
.
config_use_google_drive
:
...
@@ -223,7 +223,7 @@ class WorkerThread(threading.Thread):
...
@@ -223,7 +223,7 @@ class WorkerThread(threading.Thread):
if
curr_task
==
TASK_CONVERT
:
if
curr_task
==
TASK_CONVERT
:
self
.
add_email
(
_
(
u'Send to Kindle'
),
self
.
queue
[
self
.
current
][
'path'
],
filename
,
self
.
add_email
(
_
(
u'Send to Kindle'
),
self
.
queue
[
self
.
current
][
'path'
],
filename
,
self
.
queue
[
self
.
current
][
'settings'
],
self
.
queue
[
self
.
current
][
'kindle'
],
self
.
queue
[
self
.
current
][
'settings'
],
self
.
queue
[
self
.
current
][
'kindle'
],
self
.
UIqueue
[
self
.
current
][
'user'
],
_
(
u"
E-mail:
%(book)
s"
,
book
=
self
.
queue
[
self
.
current
][
'title'
]))
self
.
UIqueue
[
self
.
current
][
'user'
],
_
(
u"
%(book)
s"
,
book
=
self
.
queue
[
self
.
current
][
'title'
]))
def
convert_ebook_format
(
self
):
def
convert_ebook_format
(
self
):
...
@@ -339,7 +339,7 @@ class WorkerThread(threading.Thread):
...
@@ -339,7 +339,7 @@ class WorkerThread(threading.Thread):
return
return
def
add_convert
(
self
,
file_path
,
bookid
,
user_name
,
t
yp
,
settings
,
kindle_mail
=
None
):
def
add_convert
(
self
,
file_path
,
bookid
,
user_name
,
t
askMessage
,
settings
,
kindle_mail
=
None
):
addLock
=
threading
.
Lock
()
addLock
=
threading
.
Lock
()
addLock
.
acquire
()
addLock
.
acquire
()
if
self
.
last
>=
20
:
if
self
.
last
>=
20
:
...
@@ -350,15 +350,15 @@ class WorkerThread(threading.Thread):
...
@@ -350,15 +350,15 @@ class WorkerThread(threading.Thread):
if
kindle_mail
:
if
kindle_mail
:
task
=
TASK_CONVERT
task
=
TASK_CONVERT
self
.
queue
.
append
({
'file_path'
:
file_path
,
'bookid'
:
bookid
,
'starttime'
:
0
,
'kindle'
:
kindle_mail
,
self
.
queue
.
append
({
'file_path'
:
file_path
,
'bookid'
:
bookid
,
'starttime'
:
0
,
'kindle'
:
kindle_mail
,
'status'
:
STAT_WAITING
,
't
yp
'
:
task
,
'settings'
:
settings
})
'status'
:
STAT_WAITING
,
't
askType
'
:
task
,
'settings'
:
settings
})
self
.
UIqueue
.
append
({
'user'
:
user_name
,
'formStarttime'
:
''
,
'progress'
:
" 0
%
"
,
't
ype'
:
typ
,
self
.
UIqueue
.
append
({
'user'
:
user_name
,
'formStarttime'
:
''
,
'progress'
:
" 0
%
"
,
't
askMessage'
:
taskMessage
,
'runtime'
:
'0 s'
,
'status'
:
_
(
'Waiting'
),
'id'
:
self
.
id
}
)
'runtime'
:
'0 s'
,
'status'
:
STAT_WAITING
,
'id'
:
self
.
id
,
'taskType'
:
task
}
)
self
.
last
=
len
(
self
.
queue
)
self
.
last
=
len
(
self
.
queue
)
addLock
.
release
()
addLock
.
release
()
def
add_email
(
self
,
subject
,
filepath
,
attachment
,
settings
,
recipient
,
user_name
,
t
yp
,
def
add_email
(
self
,
subject
,
filepath
,
attachment
,
settings
,
recipient
,
user_name
,
t
askMessage
,
text
=
_
(
u'This e-mail has been sent via Calibre-Web.'
)):
text
=
_
(
u'This e-mail has been sent via Calibre-Web.'
)):
# if more than 20 entries in the list, clean the list
# if more than 20 entries in the list, clean the list
addLock
=
threading
.
Lock
()
addLock
=
threading
.
Lock
()
...
@@ -369,13 +369,13 @@ class WorkerThread(threading.Thread):
...
@@ -369,13 +369,13 @@ class WorkerThread(threading.Thread):
self
.
id
+=
1
self
.
id
+=
1
self
.
queue
.
append
({
'subject'
:
subject
,
'attachment'
:
attachment
,
'filepath'
:
filepath
,
self
.
queue
.
append
({
'subject'
:
subject
,
'attachment'
:
attachment
,
'filepath'
:
filepath
,
'settings'
:
settings
,
'recipent'
:
recipient
,
'starttime'
:
0
,
'settings'
:
settings
,
'recipent'
:
recipient
,
'starttime'
:
0
,
'status'
:
STAT_WAITING
,
't
yp
'
:
TASK_EMAIL
,
'text'
:
text
})
'status'
:
STAT_WAITING
,
't
askType
'
:
TASK_EMAIL
,
'text'
:
text
})
self
.
UIqueue
.
append
({
'user'
:
user_name
,
'formStarttime'
:
''
,
'progress'
:
" 0
%
"
,
't
ype'
:
typ
,
self
.
UIqueue
.
append
({
'user'
:
user_name
,
'formStarttime'
:
''
,
'progress'
:
" 0
%
"
,
't
askMessage'
:
taskMessage
,
'runtime'
:
'0 s'
,
'status'
:
_
(
'Waiting'
),
'id'
:
self
.
id
})
'runtime'
:
'0 s'
,
'status'
:
STAT_WAITING
,
'id'
:
self
.
id
,
'taskType'
:
TASK_EMAIL
})
self
.
last
=
len
(
self
.
queue
)
self
.
last
=
len
(
self
.
queue
)
addLock
.
release
()
addLock
.
release
()
def
add_upload
(
self
,
user_name
,
t
yp
):
def
add_upload
(
self
,
user_name
,
t
askMessage
):
# if more than 20 entries in the list, clean the list
# if more than 20 entries in the list, clean the list
addLock
=
threading
.
Lock
()
addLock
=
threading
.
Lock
()
addLock
.
acquire
()
addLock
.
acquire
()
...
@@ -383,9 +383,9 @@ class WorkerThread(threading.Thread):
...
@@ -383,9 +383,9 @@ class WorkerThread(threading.Thread):
self
.
delete_completed_tasks
()
self
.
delete_completed_tasks
()
# progress=100%, runtime=0, and status finished
# progress=100%, runtime=0, and status finished
self
.
id
+=
1
self
.
id
+=
1
self
.
queue
.
append
({
'starttime'
:
datetime
.
now
(),
'status'
:
STAT_FINISH_SUCCESS
,
't
yp
'
:
TASK_UPLOAD
})
self
.
queue
.
append
({
'starttime'
:
datetime
.
now
(),
'status'
:
STAT_FINISH_SUCCESS
,
't
askType
'
:
TASK_UPLOAD
})
self
.
UIqueue
.
append
({
'user'
:
user_name
,
'formStarttime'
:
''
,
'progress'
:
"100
%
"
,
't
ype'
:
typ
,
self
.
UIqueue
.
append
({
'user'
:
user_name
,
'formStarttime'
:
''
,
'progress'
:
"100
%
"
,
't
askMessage'
:
taskMessage
,
'runtime'
:
'0 s'
,
'status'
:
_
(
'Finished'
),
'id'
:
self
.
id
})
'runtime'
:
'0 s'
,
'status'
:
_
(
'Finished'
),
'id'
:
self
.
id
,
'taskType'
:
TASK_UPLOAD
})
self
.
UIqueue
[
self
.
current
][
'formStarttime'
]
=
self
.
queue
[
self
.
current
][
'starttime'
]
self
.
UIqueue
[
self
.
current
][
'formStarttime'
]
=
self
.
queue
[
self
.
current
][
'starttime'
]
self
.
last
=
len
(
self
.
queue
)
self
.
last
=
len
(
self
.
queue
)
addLock
.
release
()
addLock
.
release
()
...
@@ -395,7 +395,7 @@ class WorkerThread(threading.Thread):
...
@@ -395,7 +395,7 @@ class WorkerThread(threading.Thread):
self
.
queue
[
self
.
current
][
'starttime'
]
=
datetime
.
now
()
self
.
queue
[
self
.
current
][
'starttime'
]
=
datetime
.
now
()
self
.
UIqueue
[
self
.
current
][
'formStarttime'
]
=
self
.
queue
[
self
.
current
][
'starttime'
]
self
.
UIqueue
[
self
.
current
][
'formStarttime'
]
=
self
.
queue
[
self
.
current
][
'starttime'
]
self
.
queue
[
self
.
current
][
'status'
]
=
STAT_STARTED
self
.
queue
[
self
.
current
][
'status'
]
=
STAT_STARTED
self
.
UIqueue
[
self
.
current
][
'status'
]
=
_
(
'Started'
)
self
.
UIqueue
[
self
.
current
][
'status'
]
=
STAT_STARTED
obj
=
self
.
queue
[
self
.
current
]
obj
=
self
.
queue
[
self
.
current
]
# create MIME message
# create MIME message
msg
=
MIMEMultipart
()
msg
=
MIMEMultipart
()
...
@@ -473,7 +473,7 @@ class WorkerThread(threading.Thread):
...
@@ -473,7 +473,7 @@ class WorkerThread(threading.Thread):
def
_handleError
(
self
,
error_message
):
def
_handleError
(
self
,
error_message
):
web
.
app
.
logger
.
error
(
error_message
)
web
.
app
.
logger
.
error
(
error_message
)
self
.
queue
[
self
.
current
][
'status'
]
=
STAT_FAIL
self
.
queue
[
self
.
current
][
'status'
]
=
STAT_FAIL
self
.
UIqueue
[
self
.
current
][
'status'
]
=
_
(
'Failed'
)
self
.
UIqueue
[
self
.
current
][
'status'
]
=
STAT_FAIL
self
.
UIqueue
[
self
.
current
][
'progress'
]
=
"100
%
"
self
.
UIqueue
[
self
.
current
][
'progress'
]
=
"100
%
"
self
.
UIqueue
[
self
.
current
][
'runtime'
]
=
self
.
_formatRuntime
(
self
.
UIqueue
[
self
.
current
][
'runtime'
]
=
self
.
_formatRuntime
(
datetime
.
now
()
-
self
.
queue
[
self
.
current
][
'starttime'
])
datetime
.
now
()
-
self
.
queue
[
self
.
current
][
'starttime'
])
...
@@ -481,7 +481,7 @@ class WorkerThread(threading.Thread):
...
@@ -481,7 +481,7 @@ class WorkerThread(threading.Thread):
def
_handleSuccess
(
self
):
def
_handleSuccess
(
self
):
self
.
queue
[
self
.
current
][
'status'
]
=
STAT_FINISH_SUCCESS
self
.
queue
[
self
.
current
][
'status'
]
=
STAT_FINISH_SUCCESS
self
.
UIqueue
[
self
.
current
][
'status'
]
=
_
(
'Finished'
)
self
.
UIqueue
[
self
.
current
][
'status'
]
=
STAT_FINISH_SUCCESS
self
.
UIqueue
[
self
.
current
][
'progress'
]
=
"100
%
"
self
.
UIqueue
[
self
.
current
][
'progress'
]
=
"100
%
"
self
.
UIqueue
[
self
.
current
][
'runtime'
]
=
self
.
_formatRuntime
(
self
.
UIqueue
[
self
.
current
][
'runtime'
]
=
self
.
_formatRuntime
(
datetime
.
now
()
-
self
.
queue
[
self
.
current
][
'starttime'
])
datetime
.
now
()
-
self
.
queue
[
self
.
current
][
'starttime'
])
...
@@ -502,3 +502,4 @@ class StderrLogger(object):
...
@@ -502,3 +502,4 @@ class StderrLogger(object):
self
.
buffer
=
''
self
.
buffer
=
''
else
:
else
:
self
.
buffer
+=
message
self
.
buffer
+=
message
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment