Beispiel #1
0
        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);
        }