mirror of
https://github.com/thegatesbrowser/thegates.git
synced 2025-08-23 08:17:34 -04:00
search request
This commit is contained in:
parent
2cf1eb61df
commit
323b9d3fbb
7 changed files with 61 additions and 23 deletions
|
@ -26,6 +26,7 @@ DataSaver="*res://scripts/data_saver.gd"
|
|||
FileDownloader="*res://scripts/loading/file_downloader.gd"
|
||||
Debug="*res://scripts/debug-log/debug.gd"
|
||||
AnalyticsEvents="*res://scripts/analytics/analytics_events.gd"
|
||||
Backend="*res://scripts/backend.gd"
|
||||
|
||||
[debug]
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
[gd_resource type="Resource" script_class="BackendSettings" load_steps=2 format=3 uid="uid://cjcdum6fm4ta0"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/resources/backend.gd" id="1_6ck4k"]
|
||||
[ext_resource type="Script" path="res://scripts/resources/backend_settings.gd" id="1_oiju7"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_6ck4k")
|
||||
script = ExtResource("1_oiju7")
|
||||
local_url = "http://127.0.0.1:8000"
|
||||
remote_url = "http://95.163.241.188:8000"
|
||||
host_type = 1
|
||||
host_type = 0
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://dh3owgirapji5"]
|
||||
[gd_scene load_steps=4 format=3 uid="uid://dh3owgirapji5"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/ui/search/search_results.gd" id="1_bycb5"]
|
||||
[ext_resource type="Resource" uid="uid://b1xvdym0qh6td" path="res://resources/gate_events.res" id="2_2plpa"]
|
||||
[ext_resource type="Resource" uid="uid://cjcdum6fm4ta0" path="res://resources/backend.tres" id="3_263ma"]
|
||||
|
||||
[node name="search_results" type="Control"]
|
||||
layout_mode = 3
|
||||
|
@ -28,6 +29,7 @@ layout_mode = 2
|
|||
size_flags_horizontal = 3
|
||||
script = ExtResource("1_bycb5")
|
||||
gate_events = ExtResource("2_2plpa")
|
||||
backend = ExtResource("3_263ma")
|
||||
|
||||
[node name="Label" type="Label" parent="HBoxContainer/VBoxContainer"]
|
||||
self_modulate = Color(1, 1, 1, 0.6)
|
||||
|
|
|
@ -15,7 +15,7 @@ func send_event(body: Dictionary = {}) -> void:
|
|||
var callback = func(_result, code, _headers, _body):
|
||||
if code != 200: Debug.logclr("Request send_event failed. Code " + str(code), Color.RED)
|
||||
|
||||
var err = await request(url, callback, body, HTTPClient.METHOD_POST)
|
||||
var err = await Backend.request(url, callback, body, HTTPClient.METHOD_POST)
|
||||
if err != HTTPRequest.RESULT_SUCCESS: Debug.logclr("Cannot send request send_event", Color.RED)
|
||||
|
||||
|
||||
|
@ -26,22 +26,5 @@ func get_user_id() -> void:
|
|||
AnalyticsEvents.user_id = body.get_string_from_utf8()
|
||||
else: Debug.logclr("Request get_user_id failed. Code " + str(code), Color.RED)
|
||||
|
||||
var err = await request(url, callback)
|
||||
var err = await Backend.request(url, callback)
|
||||
if err != HTTPRequest.RESULT_SUCCESS: Debug.logclr("Cannot send request get_user_id", Color.RED)
|
||||
|
||||
|
||||
func request(url: String, callback: Callable,
|
||||
body: Dictionary = {}, method: int = HTTPClient.METHOD_GET) -> Error:
|
||||
var data = JSON.stringify(body)
|
||||
var headers = []
|
||||
|
||||
var http = HTTPRequest.new()
|
||||
http.use_threads = true
|
||||
add_child(http)
|
||||
|
||||
var err = http.request(url, headers, method, data)
|
||||
var res = await http.request_completed
|
||||
callback.call(res[0], res[1], res[2], res[3])
|
||||
remove_child(http)
|
||||
|
||||
return err
|
||||
|
|
19
project/scripts/backend.gd
Normal file
19
project/scripts/backend.gd
Normal file
|
@ -0,0 +1,19 @@
|
|||
extends Node
|
||||
#class_name Backend
|
||||
|
||||
|
||||
func request(url: String, callback: Callable,
|
||||
body: Dictionary = {}, method: int = HTTPClient.METHOD_GET) -> Error:
|
||||
var data = JSON.stringify(body)
|
||||
var headers = []
|
||||
|
||||
var http = HTTPRequest.new()
|
||||
http.use_threads = true
|
||||
add_child(http)
|
||||
|
||||
var err = http.request(url, headers, method, data)
|
||||
var res = await http.request_completed
|
||||
callback.call(res[0], res[1], res[2], res[3])
|
||||
remove_child(http)
|
||||
|
||||
return err
|
|
@ -18,3 +18,6 @@ var analytics_event: String :
|
|||
|
||||
var get_user_id: String :
|
||||
get: return url + "/api/get_user_id?device_id="
|
||||
|
||||
var search: String :
|
||||
get: return url + "/api/search?query="
|
|
@ -1,6 +1,9 @@
|
|||
extends VBoxContainer
|
||||
|
||||
@export var gate_events: GateEvents
|
||||
@export var backend: BackendSettings
|
||||
|
||||
var result: String
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
|
@ -9,3 +12,30 @@ func _ready() -> void:
|
|||
|
||||
func search(query: String) -> void:
|
||||
Debug.logclr("======== " + query + " ========", Color.LIGHT_SEA_GREEN)
|
||||
await search_request(query)
|
||||
|
||||
var gates = JSON.parse_string(result)
|
||||
if gates == null or gates.is_empty():
|
||||
Debug.logclr("No gates found", Color.YELLOW)
|
||||
return
|
||||
|
||||
for gate in gates:
|
||||
var url = gate["url"]
|
||||
var title = gate["title"]
|
||||
var image = gate["image"]
|
||||
var description = gate["description"]
|
||||
Debug.logr(gate)
|
||||
|
||||
|
||||
#func add_result()
|
||||
|
||||
|
||||
func search_request(query: String):
|
||||
var url = backend.search + query
|
||||
var callback = func(_result, code, _headers, body):
|
||||
if code == 200:
|
||||
result = body.get_string_from_utf8()
|
||||
else: Debug.logclr("Request search failed. Code " + str(code), Color.RED)
|
||||
|
||||
var err = await Backend.request(url, callback)
|
||||
if err != HTTPRequest.RESULT_SUCCESS: Debug.logclr("Cannot send request search", Color.RED)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue