Weather updates

pull/702/head
LukePulverenti Luke Pulverenti luke pulverenti 13 years ago
parent b6bc22ae63
commit 3c47375229

@ -573,9 +573,9 @@ namespace MediaBrowser.ApiInteraction
{ {
string url = ApiUrl + "/ServerConfiguration"; string url = ApiUrl + "/ServerConfiguration";
using (Stream stream = await GetSerializedStreamAsync(url).ConfigureAwait(false)) using (Stream stream = await GetSerializedStreamAsync(url, ApiInteraction.SerializationFormat.Json).ConfigureAwait(false))
{ {
return DeserializeFromStream<ServerConfiguration>(stream); return DeserializeFromStream<ServerConfiguration>(stream, ApiInteraction.SerializationFormat.Json);
} }
} }
@ -622,14 +622,22 @@ namespace MediaBrowser.ApiInteraction
/// This is a helper around getting a stream from the server that contains serialized data /// This is a helper around getting a stream from the server that contains serialized data
/// </summary> /// </summary>
private Task<Stream> GetSerializedStreamAsync(string url) private Task<Stream> GetSerializedStreamAsync(string url)
{
return GetSerializedStreamAsync(url, SerializationFormat);
}
/// <summary>
/// This is a helper around getting a stream from the server that contains serialized data
/// </summary>
private Task<Stream> GetSerializedStreamAsync(string url, SerializationFormat serializationFormat)
{ {
if (url.IndexOf('?') == -1) if (url.IndexOf('?') == -1)
{ {
url += "?dataformat=" + SerializationFormat.ToString().ToLower(); url += "?dataformat=" + serializationFormat.ToString().ToLower();
} }
else else
{ {
url += "&dataformat=" + SerializationFormat.ToString().ToLower(); url += "&dataformat=" + serializationFormat.ToString().ToLower();
} }
return GetStreamAsync(url); return GetStreamAsync(url);

@ -41,6 +41,14 @@ namespace MediaBrowser.Common.Kernel
/// </summary> /// </summary>
public HttpServer HttpServer { get; private set; } public HttpServer HttpServer { get; private set; }
protected virtual string HttpServerUrlPrefix
{
get
{
return "http://+:" + Configuration.HttpServerPortNumber + "/mediabrowser/";
}
}
/// <summary> /// <summary>
/// Gets the kernel context. The UI kernel will have to override this. /// Gets the kernel context. The UI kernel will have to override this.
/// </summary> /// </summary>
@ -181,7 +189,7 @@ namespace MediaBrowser.Common.Kernel
{ {
DisposeHttpServer(); DisposeHttpServer();
HttpServer = new HttpServer("http://+:" + Configuration.HttpServerPortNumber + "/mediabrowser/"); HttpServer = new HttpServer(HttpServerUrlPrefix);
} }
/// <summary> /// <summary>

@ -62,7 +62,7 @@ namespace MediaBrowser.Common.Net.Handlers
protected async override Task WriteResponseToOutputStream(Stream stream) protected async override Task WriteResponseToOutputStream(Stream stream)
{ {
await EnsureObjectToSerialize(); await EnsureObjectToSerialize().ConfigureAwait(false);
switch (SerializationFormat) switch (SerializationFormat)
{ {

@ -53,12 +53,18 @@ namespace MediaBrowser.Controller.Weather
{ {
WeatherInfo info = new WeatherInfo(); WeatherInfo info = new WeatherInfo();
if (data.current_condition != null)
{
if (data.current_condition.Any()) if (data.current_condition.Any())
{ {
info.CurrentWeather = data.current_condition.First().ToWeatherStatus(); info.CurrentWeather = data.current_condition.First().ToWeatherStatus();
} }
}
if (data.weather != null)
{
info.Forecasts = data.weather.Select(w => w.ToWeatherForecast()).ToArray(); info.Forecasts = data.weather.Select(w => w.ToWeatherForecast()).ToArray();
}
return info; return info;
} }

@ -1,17 +1,19 @@
 using MediaBrowser.Model.Weather;
namespace MediaBrowser.Model.Configuration namespace MediaBrowser.Model.Configuration
{ {
public class ServerConfiguration : BaseApplicationConfiguration public class ServerConfiguration : BaseApplicationConfiguration
{ {
public bool EnableInternetProviders { get; set; } public bool EnableInternetProviders { get; set; }
public string WeatherZipCode { get; set; }
public bool EnableUserProfiles { get; set; } public bool EnableUserProfiles { get; set; }
public string WeatherZipCode { get; set; }
public WeatherUnits WeatherUnit { get; set; }
public ServerConfiguration() public ServerConfiguration()
: base() : base()
{ {
EnableUserProfiles = true; EnableUserProfiles = true;
WeatherZipCode = "02116";
} }
} }
} }

@ -61,6 +61,7 @@
<Compile Include="Weather\WeatherForecast.cs" /> <Compile Include="Weather\WeatherForecast.cs" />
<Compile Include="Weather\WeatherInfo.cs" /> <Compile Include="Weather\WeatherInfo.cs" />
<Compile Include="Weather\WeatherStatus.cs" /> <Compile Include="Weather\WeatherStatus.cs" />
<Compile Include="Weather\WeatherUnits.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Reference Include="protobuf-net"> <Reference Include="protobuf-net">

@ -0,0 +1,9 @@

namespace MediaBrowser.Model.Weather
{
public enum WeatherUnits
{
Fahrenheit,
Celsius
}
}
Loading…
Cancel
Save