get servers
This commit is contained in:
@@ -31,5 +31,13 @@ namespace XIVSync.Net.UnitTests
|
||||
Assert.AreEqual(res.Ok, 1);
|
||||
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void DoesGetServersWork()
|
||||
{
|
||||
var res = new LodestoneApi().GetServers();
|
||||
Assert.IsTrue(res.Any());
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
using System.Net;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using CsQuery;
|
||||
using CsQuery.ExtensionMethods;
|
||||
using CsQuery.Web;
|
||||
using Newtonsoft.Json;
|
||||
using RestSharp;
|
||||
|
||||
@@ -6,23 +12,38 @@ namespace XIVSync.Net
|
||||
{
|
||||
public class LodestoneApi
|
||||
{
|
||||
readonly RestClient _client = new RestClient("http://xivsync.com/");
|
||||
public LodestoneSearch SearchCharacter(string character, string server)
|
||||
|
||||
public LodestoneSearch SearchCharacter(string character, string server, int timeout = 90000)
|
||||
{
|
||||
|
||||
var client = new RestClient("http://xivsync.com/") {Timeout = timeout};
|
||||
var req = new RestRequest("search/character", Method.GET);
|
||||
req.AddParameter("name", character);
|
||||
req.AddParameter("server", server);
|
||||
var response = _client.Execute(req);
|
||||
var response = client.Execute(req);
|
||||
return response.StatusCode != HttpStatusCode.OK ? null : JsonConvert.DeserializeObject<LodestoneSearch>(response.Content);
|
||||
}
|
||||
|
||||
public LodestoneCharacter GetCharacter(string characterId)
|
||||
public LodestoneCharacter GetCharacter(string characterId, int timeout = 90000)
|
||||
{
|
||||
var client = new RestClient("http://xivsync.com/") {Timeout = timeout};
|
||||
var req = new RestRequest("character/get");
|
||||
req.AddParameter("lodestone", characterId);
|
||||
var response = _client.Execute(req);
|
||||
var response = client.Execute(req);
|
||||
return response.StatusCode != HttpStatusCode.OK ? null : JsonConvert.DeserializeObject<LodestoneCharacter>(response.Content);
|
||||
}
|
||||
|
||||
public IEnumerable<Server> GetServers(double timeoutSeconds = 90)
|
||||
{
|
||||
var dom = CQ.CreateFromUrl("http://na.finalfantasyxiv.com/lodestone/worldstatus/", new ServerConfig() {TimeoutSeconds = timeoutSeconds});
|
||||
var servers = new List<Server>();
|
||||
foreach (var node in dom[".worldstatus_1"])
|
||||
{
|
||||
var serverName = node.ChildNodes.First(a => a.NodeName == "TD").FirstElementChild.InnerText.Trim();
|
||||
var online = node.ChildNodes.Last(a => a.NodeName == "TD").FirstElementChild.InnerText.Trim();
|
||||
servers.Add(new Server() {World = serverName, Online = online.Contains("Online")});
|
||||
|
||||
}
|
||||
return servers;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
8
src/XIVSync.Net/Server.cs
Normal file
8
src/XIVSync.Net/Server.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace XIVSync.Net
|
||||
{
|
||||
public class Server
|
||||
{
|
||||
public string World { get; set; }
|
||||
public bool Online { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -31,6 +31,10 @@
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="CsQuery, Version=1.3.3.249, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\CsQuery.1.3.4\lib\net40\CsQuery.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
@@ -53,6 +57,7 @@
|
||||
<Compile Include="LodestoneApi.cs" />
|
||||
<Compile Include="LodestoneSearch.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Servers.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="CsQuery" version="1.3.4" targetFramework="net45" userInstalled="true" />
|
||||
<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" userInstalled="true" />
|
||||
<package id="RestSharp" version="105.1.0" targetFramework="net45" userInstalled="true" />
|
||||
</packages>
|
||||
Reference in New Issue
Block a user