123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- using MediaBrowser.Model.Extensions;
- using System;
- namespace MediaBrowser.Model.Dlna
- {
- public class SearchCriteria
- {
- public SearchType SearchType { get; set; }
- public SearchCriteria(string search)
- {
- if (string.IsNullOrEmpty(search))
- {
- throw new ArgumentNullException("search");
- }
- SearchType = SearchType.Unknown;
- String[] factors = StringHelper.RegexSplit(search, "(and|or)");
- foreach (String factor in factors)
- {
- String[] subFactors = StringHelper.RegexSplit(factor.Trim().Trim('(').Trim(')').Trim(), "\\s", 3);
- if (subFactors.Length == 3)
- {
- if (StringHelper.EqualsIgnoreCase("upnp:class", subFactors[0]) &&
- (StringHelper.EqualsIgnoreCase("=", subFactors[1]) || StringHelper.EqualsIgnoreCase("derivedfrom", subFactors[1])))
- {
- if (StringHelper.EqualsIgnoreCase("\"object.item.imageItem\"", subFactors[2]) || StringHelper.EqualsIgnoreCase("\"object.item.imageItem.photo\"", subFactors[2]))
- {
- SearchType = SearchType.Image;
- }
- else if (StringHelper.EqualsIgnoreCase("\"object.item.videoItem\"", subFactors[2]))
- {
- SearchType = SearchType.Video;
- }
- else if (StringHelper.EqualsIgnoreCase("\"object.container.playlistContainer\"", subFactors[2]))
- {
- SearchType = SearchType.Playlist;
- }
- else if (StringHelper.EqualsIgnoreCase("\"object.container.album.musicAlbum\"", subFactors[2]))
- {
- SearchType = SearchType.MusicAlbum;
- }
- }
- }
- }
- }
- }
- }
|