Example #1
0
        protected void Init(string DefinitionString)
        {
            var deserializer = new DeserializerBuilder()
                               .WithNamingConvention(new CamelCaseNamingConvention())
                               .IgnoreUnmatchedProperties()
                               .Build();

            Definition = deserializer.Deserialize <IndexerDefinition>(DefinitionString);

            // Add default data if necessary
            if (Definition.Settings == null)
            {
                Definition.Settings = new List <settingsField>();
            }

            if (Definition.Settings.Count == 0)
            {
                Definition.Settings.Add(new settingsField {
                    Name = "username", Label = "Username", Type = "text"
                });
                Definition.Settings.Add(new settingsField {
                    Name = "password", Label = "Password", Type = "password"
                });
            }

            // init missing mandatory attributes
            DisplayName        = Definition.Name;
            DisplayDescription = Definition.Description;
            SiteLink           = Definition.Links[0]; // TODO: implement alternative links
            if (!SiteLink.EndsWith("/"))
            {
                SiteLink += "/";
            }
            TorznabCaps = TorznabUtil.CreateDefaultTorznabTVCaps(); // TODO implement caps

            // init config Data
            configData = new ConfigurationData();
            foreach (var Setting in Definition.Settings)
            {
                configData.AddDynamic(Setting.Name, new StringItem {
                    Name = Setting.Label
                });
            }

            foreach (var Category in Definition.Caps.Categories)
            {
                var cat = TorznabCatType.GetCatByName(Category.Value);
                if (cat == null)
                {
                    logger.Error(string.Format("CardigannIndexer ({0}): Can't find a category for {1}", ID, Category.Value));
                    continue;
                }
                AddCategoryMapping(Category.Key, TorznabCatType.GetCatByName(Category.Value));
            }
        }