145 lines
6.6 KiB
C#
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
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
}
|
|
}
|