blob: fdac03c9a8d94efdd8d06ccd7505e541c2967094 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
using System.Threading;
using MediaBrowser.Controller.Configuration;
using System.Collections.Generic;
using MediaBrowser.Controller.Entities;
using System;
using MediaBrowser.Model.Logging;
namespace MediaBrowser.Controller.Providers
{
class FanArtProviderException : ApplicationException
{
public FanArtProviderException(string msg)
: base(msg)
{
}
}
/// <summary>
/// Class FanartBaseProvider
/// </summary>
public abstract class FanartBaseProvider : BaseMetadataProvider
{
protected static readonly SemaphoreSlim FanArtResourcePool = new SemaphoreSlim(5,5);
/// <summary>
/// The LOG o_ FILE
/// </summary>
protected const string LOGO_FILE = "logo.png";
/// <summary>
/// The AR t_ FILE
/// </summary>
protected const string ART_FILE = "clearart.png";
/// <summary>
/// The THUM b_ FILE
/// </summary>
protected const string THUMB_FILE = "thumb.jpg";
/// <summary>
/// The DIS c_ FILE
/// </summary>
protected const string DISC_FILE = "disc.png";
/// <summary>
/// The BANNE r_ FILE
/// </summary>
protected const string BANNER_FILE = "banner.png";
/// <summary>
/// The Backdrop
/// </summary>
protected const string BACKDROP_FILE = "backdrop.jpg";
/// <summary>
/// The Primary image
/// </summary>
protected const string PRIMARY_FILE = "folder.jpg";
/// <summary>
/// The API key
/// </summary>
protected const string APIKey = "5c6b04c68e904cfed1e6cbc9a9e683d4";
protected FanartBaseProvider(ILogManager logManager, IServerConfigurationManager configurationManager) : base(logManager, configurationManager)
{
}
/// <summary>
/// Needses the refresh internal.
/// </summary>
/// <param name="item">The item.</param>
/// <param name="providerInfo">The provider info.</param>
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
protected override bool NeedsRefreshInternal(BaseItem item, BaseProviderInfo providerInfo)
{
if (item.DontFetchMeta) return false;
return DateTime.UtcNow > (providerInfo.LastRefreshed.AddDays(ConfigurationManager.Configuration.MetadataRefreshDays))
&& ShouldFetch(item, providerInfo);
}
/// <summary>
/// Gets a value indicating whether [requires internet].
/// </summary>
/// <value><c>true</c> if [requires internet]; otherwise, <c>false</c>.</value>
public override bool RequiresInternet
{
get { return true; }
}
/// <summary>
/// Gets the priority.
/// </summary>
/// <value>The priority.</value>
public override MetadataProviderPriority Priority
{
get { return MetadataProviderPriority.Third; }
}
/// <summary>
/// Shoulds the fetch.
/// </summary>
/// <param name="item">The item.</param>
/// <param name="providerInfo">The provider info.</param>
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
protected virtual bool ShouldFetch(BaseItem item, BaseProviderInfo providerInfo)
{
return false;
}
#region Result Objects
protected class FanArtImageInfo
{
public string id { get; set; }
public string url { get; set; }
public string likes { get; set; }
}
protected class FanArtMusicInfo
{
public string mbid_id { get; set; }
public List<FanArtImageInfo> musiclogo { get; set; }
public List<FanArtImageInfo> artistbackground { get; set; }
public List<FanArtImageInfo> artistthumb { get; set; }
public List<FanArtImageInfo> hdmusiclogo { get; set; }
public List<FanArtImageInfo> musicbanner { get; set; }
}
protected class FanArtMusicResult
{
public FanArtMusicInfo result { get; set; }
}
#endregion
}
}
|