mirror of
https://github.com/cyberarm/w3d_hub_linux_launcher.git
synced 2025-12-16 01:02:34 +00:00
Server list is now pre-fetched during 'bootup'
This commit is contained in:
@@ -2,7 +2,6 @@ class W3DHub
|
|||||||
class Pages
|
class Pages
|
||||||
class ServerBrowser < Page
|
class ServerBrowser < Page
|
||||||
def setup
|
def setup
|
||||||
@server_list ||= []
|
|
||||||
@selected_server ||= nil
|
@selected_server ||= nil
|
||||||
@selected_color = 0xff_666655
|
@selected_color = 0xff_666655
|
||||||
@filters = {}
|
@filters = {}
|
||||||
@@ -102,7 +101,11 @@ class W3DHub
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
fetch_server_list
|
if Store.server_list.empty?
|
||||||
|
fetch_server_list
|
||||||
|
else
|
||||||
|
populate_server_list
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def populate_server_list
|
def populate_server_list
|
||||||
@@ -111,7 +114,7 @@ class W3DHub
|
|||||||
@server_list_container.clear do
|
@server_list_container.clear do
|
||||||
i = -1
|
i = -1
|
||||||
|
|
||||||
@server_list.each do |server|
|
Store.server_list.each do |server|
|
||||||
next unless @filters[server.game]
|
next unless @filters[server.game]
|
||||||
next unless server.region == @filter_region || @filter_region == "Any"
|
next unless server.region == @filter_region || @filter_region == "Any"
|
||||||
|
|
||||||
@@ -297,7 +300,7 @@ class W3DHub
|
|||||||
list = Api.server_list(2)
|
list = Api.server_list(2)
|
||||||
|
|
||||||
if list
|
if list
|
||||||
@server_list = list.sort_by! { |s| s&.status&.players&.size }.reverse
|
Store.server_list = list.sort_by! { |s| s&.status&.players&.size }.reverse
|
||||||
|
|
||||||
|
|
||||||
main_thread_queue << proc { populate_server_list }
|
main_thread_queue << proc { populate_server_list }
|
||||||
@@ -305,7 +308,7 @@ class W3DHub
|
|||||||
rescue => e
|
rescue => e
|
||||||
# Something went wrong!
|
# Something went wrong!
|
||||||
pp e
|
pp e
|
||||||
@server_list = []
|
Store.server_list = []
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -11,7 +11,8 @@ class W3DHub
|
|||||||
@tasks = {
|
@tasks = {
|
||||||
refresh_user_token: { started: false, complete: false },
|
refresh_user_token: { started: false, complete: false },
|
||||||
service_status: { started: false, complete: false },
|
service_status: { started: false, complete: false },
|
||||||
applications: { started: false, complete: false }
|
applications: { started: false, complete: false },
|
||||||
|
server_list: { started: false, complete: false }
|
||||||
}
|
}
|
||||||
|
|
||||||
@task_index = 0
|
@task_index = 0
|
||||||
@@ -111,6 +112,23 @@ class W3DHub
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def server_list
|
||||||
|
@status_label.value = "Getting server list..."
|
||||||
|
|
||||||
|
Thread.new do
|
||||||
|
begin
|
||||||
|
list = Api.server_list(2)
|
||||||
|
|
||||||
|
Store.server_list = list.sort_by! { |s| s&.status&.players&.size }.reverse if list
|
||||||
|
@tasks[:server_list][:complete] = true
|
||||||
|
rescue => e
|
||||||
|
# Something went wrong!
|
||||||
|
pp e
|
||||||
|
Store.server_list = []
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ class W3DHub
|
|||||||
def setup
|
def setup
|
||||||
self.caption = I18n.t(:app_name)
|
self.caption = I18n.t(:app_name)
|
||||||
|
|
||||||
|
Store[:server_list] = []
|
||||||
Store[:settings] = Settings.new
|
Store[:settings] = Settings.new
|
||||||
Store[:application_manager] = ApplicationManager.new
|
Store[:application_manager] = ApplicationManager.new
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user