From 286aa9b5b54013c24ae9f0441ca83e8634c3a89a Mon Sep 17 00:00:00 2001 From: Grzegorz Koperwas Date: Tue, 21 Apr 2020 20:46:20 +0200 Subject: [PATCH] fuck restSharp --- Assets/Scripts/LeaderBoardHandler.cs | 57 ++++++++++++++++++---------- Leaderboard/app/routes.py | 2 +- 2 files changed, 37 insertions(+), 22 deletions(-) diff --git a/Assets/Scripts/LeaderBoardHandler.cs b/Assets/Scripts/LeaderBoardHandler.cs index c85d20cf..6310a76d 100644 --- a/Assets/Scripts/LeaderBoardHandler.cs +++ b/Assets/Scripts/LeaderBoardHandler.cs @@ -15,8 +15,9 @@ i zwraca miejsce w rankingu (UploadTime_and_get_place(username)) using System.Collections; using System.Collections.Generic; using UnityEngine; +using UnityEngine.Networking; using System.Net; -using RestSharp; +using System.Text; public class LeaderBoardHandler : MonoBehaviour { @@ -25,13 +26,22 @@ public class LeaderBoardHandler : MonoBehaviour public string LevelName; private System.DateTime startTime; private System.DateTime stopTime; - private RestClient client = new RestClient("http://grzegorzkoperwas.site:5000"); + [SerializeField] + private bool debug_server; + private string url; public void Awake() { + if (debug_server) { + url = "http://localhost:5000"; + Debug.LogWarning("Running leaderboard in debug mode"); + } + else { + url = "http://grzegorzkoperwas.site:5000"; + } StartTimer(); } @@ -62,29 +72,34 @@ public string GetCurrentTime() { // Uploads time to server under (username) and returns place in ranking public int UploadTime_and_get_place(string username = "testUsername") { - var request = new RestRequest("/api/postTime", Method.POST); - request.AddParameter("nick", username); - request.AddParameter("time", GetFinalTimeISO()); - request.AddParameter("level", LevelName); - try + var args = new List(); + args.Add(new MultipartFormDataSection("nick", Encoding.UTF8.GetBytes(username))); + args.Add(new MultipartFormDataSection("time", Encoding.UTF8.GetBytes(GetFinalTimeISO()))); + args.Add(new MultipartFormDataSection("level", Encoding.UTF8.GetBytes(LevelName))); + var addres = url + "/api/postTime"; + Debug.Log("Connecting…"); + var response = UnityWebRequest.Post(addres, args); + response.SendWebRequest(); + while (!response.isDone) { - var response = client.Execute(request); - if (response.StatusCode == HttpStatusCode.OK && response.Data.success) { - return response.Data.place; + + } + if (response.isNetworkError || response.isHttpError) { + Debug.LogWarning("http or network error"); + return -1; + } + else { + try + { + var val = response.downloadHandler.text; + return int.Parse(val); } - else { + catch (System.Exception e) + { + Debug.Log("Failed decoding response"); + Debug.Log(e); return -1; } } - catch (System.Exception) - { - throw; - } - } - - // class for RestRequest returns - public class PostResponse { - public bool success { get; set; } - public int place { get; set; } } } diff --git a/Leaderboard/app/routes.py b/Leaderboard/app/routes.py index f46b4437..6291cf07 100644 --- a/Leaderboard/app/routes.py +++ b/Leaderboard/app/routes.py @@ -65,7 +65,7 @@ def addTime(): is_greater = lambda item: timeFromIso(item) < iso_time res = database.count((entry.time.test(is_greater)) & (entry.level == level)) database.insert({'name': nick, 'time': time, 'level': level}) - return {'place': res + 1, 'success': True} + return str(res + 1) @app.route('/api/getTimes/') @app.route('/api/getTimes//')