Пример #1
0
 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);
 }
Пример #2
0
        // 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);
        }