using aeqw89.DataKeys; using Beam.Dynamic; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Beam.Temporary.Cli { internal static class NovelStatics { public static void Define_LightNovelWorld_Novel_TheLegendaryMechanic(SharedDataDictionary sdd) { var lnwAggregator = new DataKey("aeqw89:document:aggregators:light_novel_world"); var lnwAuxiliary = new DataKey("aeqw89:document:auxillaries:light_novel_world"); var novel = new TextResource() { Key = new DataKey("novels:the_legendary_mechanic"), AssociatedSource = lnwAggregator, AssociatedMetaSource = lnwAuxiliary, TemplateInitialData = ["the-legendary-mechanic-245", "1"], MetaTemplateInitialData = ["the-legendary-mechanic"] }; sdd.Novels.TryAdd(novel.Key, novel); sdd.AggregatorNovels.TryAdd(lnwAggregator, [novel.Key]); } public static void Define_LightNovelWorl_Novel_IAloneLevelUp(SharedDataDictionary sdd) { var lnwAggregator = new DataKey("light_novel_world").ToAggregator().As(); var lnwAuxiliary = new DataKey("light_novel_world").ToAuxiliary().As(); var novel = new TextResource() { Key = new DataKey("novels:i_alone_level_up"), AssociatedSource = lnwAggregator, AssociatedMetaSource = lnwAuxiliary, TemplateInitialData = ["i-alone-level-up-236", "1"], MetaTemplateInitialData = ["i-alone-level-up-solo-leveling-05122225"] }; sdd.Novels.TryAdd(novel.Key, novel); sdd.AggregatorNovels.TryAdd(lnwAggregator, [novel.Key]); } public static void Define_NovelFull(SharedDataDictionary sdd) { var docNamespace = "aeqw89:document"; var nfAgg = new DataKey("aggregators:novel_full").WithNamespace(docNamespace); var nfAux = new DataKey("auxillaries:novel_full").WithNamespace(docNamespace); var nfBindings = new DataKey("aeqw89:bindings:light_novel_world"); var aggregator = new WebResource(nfAgg) { Name = "Novel Full", Description = "A novel aggregator site", Domain = "https://novelfull.net", Bindings = nfBindings }; var auxiliary = new WebResource(nfAux) { Name = "Novel Full", Description = "A novel aggregator site", Domain = "https://novelfull.net", Bindings = nfBindings.WithSuffix("_aux") }; sdd.Templates.TryAdd(nfAgg, new() { Template = "" }); } public static void Define_LightNovelWorld(SharedDataDictionary sdd) { var lnwAggregator = new DataKey("aeqw89:document:aggregators:light_novel_world"); var lnwAuxiliary = new DataKey("aeqw89:document:auxillaries:light_novel_world"); const string lnwBindingsA = "aeqw89:bindings:light_novel_world"; var aggregator = new WebResource(lnwAggregator) { Name = "Light Novel World", Description = "A novel aggregator site maintained by NetherClaw", Domain = "https://www.lightnovelworld.co", Bindings = new DataKey(lnwBindingsA) }; const string lnwBindingsB = "aeqw89:bindings:light_novel_world_aux"; var auxiliary = new WebResource(lnwAuxiliary) { Name = "Light Novel World", Description = "A novel aggregator site maintained by NetherClaw", Domain = "https://www.lightnovelworld.co", Bindings = new DataKey(lnwBindingsB) }; sdd.Templates.TryAdd(lnwAuxiliary, new() { Template = "https://www.lightnovelworld.co/novel/{0}", IndexOfChapterIndex = -1 }); sdd.Templates.TryAdd(lnwAggregator, new() { Template = "https://www.lightnovelworld.co/novel/{0}/chapter-{1}", IndexOfChapterIndex = 1 }); sdd.Aggregators.TryAdd(aggregator.Key, aggregator); sdd.Auxillaries.TryAdd(auxiliary.Key, auxiliary); var lnwBindings = new DataKey(lnwBindingsA); var lnwBindingsAux = new DataKey(lnwBindingsB); sdd.Bindings.TryAdd(lnwBindings, new DataBindings() { Title = new Binding("aeqw89:binding:light_novel_world:title") { XPath = "/html/body/main/article/section/div[1]/h1/span[2]", Type = BindingType.Single }, Content = new("aeqw89:binding:light_novel_world:content") { Provider = new ParagraphedContentDataProvider() { Content = new Binding() { XPath = "//*[@id=\"chapter-container\"]" } }, Type = BindingType.UseProvider }, }); sdd.Bindings.TryAdd(lnwBindingsAux, new DataBindings() { Title = new("aeqw89:binding:light_novel_world_aux:title") { XPath = "/html/body/main/article/header/div[2]/div[2]/div[1]/h1", Type = BindingType.Single }, Authors = new("aeqw89:binding:light_novel_world_aux:authors") { XPath = "/html/body/main/article/header/div[2]/div[2]/div[1]/div[1]/a", Type = BindingType.Single }, Description = new("aeqw89:binding:light_novel_world_aux:description") { Provider = new ParagraphedContentDataProvider() { Content = new() { XPath = "/html/body/main/article/div/section/div[1]/div" } }, Type = BindingType.UseProvider }, Tags = new("aeqw89:binding:light_novel_world_aux:tags") { Provider = new ListContentDataProvider() { Content = new() { XPath = "/html/body/main/article/header/div[2]/div[2]/div[3]/ul" } }, Type = BindingType.UseProvider } }); } } }