Files
Beam/Beam.Temporary.Cli/NovelStatics.cs
T
2025-04-19 20:47:58 +03:00

145 lines
6.6 KiB
C#

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<WebResource>("aeqw89:document:aggregators:light_novel_world");
var lnwAuxiliary = new DataKey<WebResource>("aeqw89:document:auxillaries:light_novel_world");
var novel = new TextResource() {
Key = new DataKey<TextResource>("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<WebResource>();
var lnwAuxiliary = new DataKey("light_novel_world").ToAuxiliary().As<WebResource>();
var novel = new TextResource() {
Key = new DataKey<TextResource>("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<WebResource>("aggregators:novel_full").WithNamespace(docNamespace);
var nfAux = new DataKey<WebResource>("auxillaries:novel_full").WithNamespace(docNamespace);
var nfBindings = new DataKey<DataBindings>("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<WebResource>("aeqw89:document:aggregators:light_novel_world");
var lnwAuxiliary = new DataKey<WebResource>("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<DataBindings>(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<DataBindings>(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<DataBindings>(lnwBindingsA);
var lnwBindingsAux = new DataKey<DataBindings>(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
}
});
}
}
}