public PluginApi.Plugins.Playlist PlayListPlugPar(System.Collections.Generic.List <Item> items, IPluginContext context) { PluginApi.Plugins.Playlist PlayList = new PluginApi.Plugins.Playlist(); PlayList.Items = items.ToArray(); foreach (Item Item in PlayList.Items) { if (ItemType.DIRECTORY == Item.Type) { var pluginParams = new NameValueCollection(); pluginParams[PLUGIN_PATH] = Item.Link; Item.Link = context.CreatePluginUrl(pluginParams); } } return(PlayList); }
// Item представляет собой класс, содержащащий следующие поля: //// Name - навзание //// Link - ссылка (если директория, то ссылка передается на обработку плагину, если файл, то ссылка открывается в проигрывателе) //// ImageLink - иконка //// Description - описание, поддерживает HTML формат //// Type - тип сущности: ItemType.FILE или ItemType.DIRECTORY (по умолчанию) // Главный метод для обработки запросов public Playlist GetList(IPluginContext context) { var path = context.GetRequestParams().Get(PLUGIN_PATH); path = path == null ? "plugin" : "plugin;" + path; context.ConsoleLog("path=" + path); // SEPARATOR служит для разделения команд при парсинге (char) var arg = path.Split(SEPARATOR); List <Item> items = new List <Item>(); switch (arg.Length) { case 0: break; case 1: items.AddRange(GetRootListRequest()); break; default: string lang = arg[1]; string sort = string.Empty; string page = string.Empty; switch (arg[1]) { case "eng": { if (arg.Length > 2) { sort = arg[2]; } if (arg.Length > 3) { page = arg[3]; } items.AddRange(GetFilteringListRequest(context, lang, sort, page)); } break; case "rus": { if (arg.Length > 2) { sort = arg[2]; } if (arg.Length > 3) { page = arg[3]; } items.AddRange(GetFilteringListRequest(context, lang, sort, page)); } break; case "series": items.AddRange(GetSeriesListRequest(context, arg[2])); break; case "list": items.AddRange(GetSerialListRequest(context, arg[2])); break; case "voise": items.AddRange(GetVoiseListRequest(context, arg[2])); break; case "update": ClearList(); break; case "search": items.AddRange(SearchItem(context, context.GetRequestParams()["search"])); break; } break; } var playlist = new Playlist(); foreach (var item in items) { if (ItemType.DIRECTORY == item.Type) { var pluginParams = new NameValueCollection(); pluginParams[PLUGIN_PATH] = item.Link; item.Link = context.CreatePluginUrl(pluginParams); } } playlist.Items = items.ToArray(); return(playlist); }