Add tracker info to loading screen
This commit is contained in:
parent
8dc465f244
commit
435210b73c
1 changed files with 29 additions and 1 deletions
|
@ -19,6 +19,7 @@ class Wrapper
|
|||
@next_cmd_message_id = -1
|
||||
|
||||
@site_info = null # Hold latest site info
|
||||
@server_info = null # Hold latest server info
|
||||
@event_site_info = $.Deferred() # Event when site_info received
|
||||
@inner_loaded = false # If iframe loaded or not
|
||||
@inner_ready = false # Inner frame ready to receive messages
|
||||
|
@ -26,6 +27,7 @@ class Wrapper
|
|||
@site_error = null # Latest failed file download
|
||||
@address = null
|
||||
@opener_tested = false
|
||||
@announcer_line = null
|
||||
|
||||
@allowed_event_constructors = [MouseEvent, KeyboardEvent] # Allowed event constructors
|
||||
|
||||
|
@ -80,6 +82,11 @@ class Wrapper
|
|||
if message.params.address == @address # Current page
|
||||
@setSiteInfo message.params
|
||||
@updateProgress message.params
|
||||
else if cmd == "setAnnouncerInfo"
|
||||
@sendInner message # Pass to inner frame
|
||||
if message.params.address == @address # Current page
|
||||
@setAnnouncerInfo message.params
|
||||
@updateProgress message.params
|
||||
else if cmd == "error"
|
||||
@notifications.add("notification-#{message.id}", "error", message.params, 0)
|
||||
else if cmd == "updating" # Close connection
|
||||
|
@ -392,10 +399,20 @@ class Wrapper
|
|||
|
||||
|
||||
onOpenWebsocket: (e) =>
|
||||
@ws.cmd "channelJoin", {"channels": ["siteChanged", "serverChanged"]} # Get info on modifications
|
||||
if window.show_loadingscreen # Get info on modifications
|
||||
@ws.cmd "channelJoin", {"channels": ["siteChanged", "serverChanged", "announcerChanged"]}
|
||||
else
|
||||
@ws.cmd "channelJoin", {"channels": ["siteChanged", "serverChanged"]}
|
||||
if not @wrapperWsInited and @inner_ready
|
||||
@sendInner {"cmd": "wrapperOpenedWebsocket"} # Send to inner frame
|
||||
@wrapperWsInited = true
|
||||
if window.show_loadingscreen
|
||||
@ws.cmd "serverInfo", [], (server_info) =>
|
||||
@server_info = server_info
|
||||
|
||||
@ws.cmd "announcerInfo", [], (announcer_info) =>
|
||||
@setAnnouncerInfo(announcer_info)
|
||||
|
||||
if @inner_loaded # Update site info
|
||||
@reloadSiteInfo()
|
||||
|
||||
|
@ -520,6 +537,17 @@ class Wrapper
|
|||
@site_info = site_info
|
||||
@event_site_info.resolve()
|
||||
|
||||
setAnnouncerInfo: (announcer_info) ->
|
||||
status_db = {}
|
||||
for key, val of announcer_info.stats
|
||||
status_db[val.status] ?= []
|
||||
status_db[val.status].push(val)
|
||||
status_line = "Trackers announcing: #{status_db.announcing?.length or 0}, error: #{status_db.error?.length or 0}, done: #{status_db.announced?.length or 0}"
|
||||
if @announcer_line
|
||||
@announcer_line.text(status_line)
|
||||
else
|
||||
@announcer_line = @loading.printLine(status_line)
|
||||
|
||||
updateProgress: (site_info) ->
|
||||
if site_info.tasks > 0 and site_info.started_task_num > 0
|
||||
@loading.setProgress 1-(Math.max(site_info.tasks, site_info.bad_files) / site_info.started_task_num)
|
||||
|
|
Loading…
Reference in a new issue