mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-04-24 05:57:20 -04:00
Weather updates
This commit is contained in:
parent
b6bc22ae63
commit
3c47375229
7 changed files with 47 additions and 13 deletions
|
@ -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">
|
||||
|
|
9
MediaBrowser.Model/Weather/WeatherUnits.cs
Normal file
9
MediaBrowser.Model/Weather/WeatherUnits.cs
Normal file
|
@ -0,0 +1,9 @@
|
|||
|
||||
namespace MediaBrowser.Model.Weather
|
||||
{
|
||||
public enum WeatherUnits
|
||||
{
|
||||
Fahrenheit,
|
||||
Celsius
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue