public Playlist GetList(IPluginContext context) { IPAdress = context.GetRequestParams()["host"].Split(':')[0]; var path = context.GetRequestParams().Get(PLUGIN_PATH); path = ((((path == null)) ? "plugin" : "plugin;" + path)); if (context.GetRequestParams()["search"] != null) { switch (path) { //case "plugin;Search_NNM": case "plugin;Search_rutracker": return(SearchListRuTr(context, context.GetRequestParams()["search"])); } } switch (path) { case "plugin": return(GetTopListRuTr(context)); } string[] PathSpliter = path.Split(';'); switch (PathSpliter[PathSpliter.Length - 1]) { //Case "PAGERUTR" // Return GetPAGERUTR(context, PathSpliter(PathSpliter.Length - 2)) case "PAGEFILMRUTR": return(GetTorrentPageRuTr(context, PathSpliter[PathSpliter.Length - 2])); } return(GetTopListRuTr(context)); }
// 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); }