Weather updates

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

@ -573,9 +573,9 @@ namespace MediaBrowser.ApiInteraction
{
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,19 +622,27 @@ namespace MediaBrowser.ApiInteraction
/// This is a helper around getting a stream from the server that contains serialized data
/// </summary>
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)
{
url += "?dataformat=" + SerializationFormat.ToString().ToLower();
url += "?dataformat=" + serializationFormat.ToString().ToLower();
}
else
{
url += "&dataformat=" + SerializationFormat.ToString().ToLower();
url += "&dataformat=" + serializationFormat.ToString().ToLower();
}
return GetStreamAsync(url);
}
private T DeserializeFromStream<T>(Stream stream)
{
return DeserializeFromStream<T>(stream, SerializationFormat);

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

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

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

@ -1,17 +1,19 @@

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

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

@ -0,0 +1,9 @@

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