Add project files.
This commit is contained in:
@@ -0,0 +1,144 @@
|
||||
|
||||
|
||||
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
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user