aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sisudoc/io_out/sqlite.d
diff options
context:
space:
mode:
Diffstat (limited to 'src/sisudoc/io_out/sqlite.d')
-rw-r--r--src/sisudoc/io_out/sqlite.d161
1 files changed, 71 insertions, 90 deletions
diff --git a/src/sisudoc/io_out/sqlite.d b/src/sisudoc/io_out/sqlite.d
index 4075bba..8776c9f 100644
--- a/src/sisudoc/io_out/sqlite.d
+++ b/src/sisudoc/io_out/sqlite.d
@@ -66,11 +66,8 @@ static auto rgx_xhtml = RgxXHTML();
static auto mkup = InlineMarkup();
long _metadata_tid_lastrowid;
template SQLiteHubBuildTablesAndPopulate() {
- void SQLiteHubBuildTablesAndPopulate(D,M)(
- const D doc_abstraction,
- M doc_matters,
- ) {
- auto pth_sqlite = spinePathsSQLite!()(doc_matters.sqlite.filename, doc_matters.sqlite.path);
+ void SQLiteHubBuildTablesAndPopulate(D)(D doc) {
+ auto pth_sqlite = spinePathsSQLite!()(doc.matters.sqlite.filename, doc.matters.sqlite.path);
if ((isValidPath(pth_sqlite.base) && exists(pth_sqlite.base) != 0 && pth_sqlite.base.isDir)) {
} else {
try {
@@ -78,14 +75,13 @@ template SQLiteHubBuildTablesAndPopulate() {
} catch (FileException ex) { }
}
template SQLiteDbStatementComposite() {
- void SQLiteDbStatementComposite(Db,D,M)(
- Db db,
- const D doc_abstraction,
- M doc_matters,
+ void SQLiteDbStatementComposite(Db,D)(
+ Db db,
+ D doc
) {
string _db_statement;
- if ((doc_matters.opt.action.sqlite_db_create)) {
- auto pth_sqlite = spinePathsSQLite!()(doc_matters.sqlite.filename, doc_matters.sqlite.path);
+ if ((doc.matters.opt.action.sqlite_db_create)) {
+ auto pth_sqlite = spinePathsSQLite!()(doc.matters.sqlite.filename, doc.matters.sqlite.path);
if ((isValidPath(pth_sqlite.base) && exists(pth_sqlite.base) != 0 && pth_sqlite.base.isDir)) {
} else {
try {
@@ -93,38 +89,38 @@ template SQLiteHubBuildTablesAndPopulate() {
} catch (FileException ex) { }
}
_db_statement ~= SQLiteTablesReCreate!()();
- SQLiteDbRun!()(db, _db_statement, doc_matters.opt.action, "TABLE RE-CREATE");
+ SQLiteDbRun!()(db, _db_statement, doc.matters.opt.action, "TABLE RE-CREATE");
_db_statement = [];
}
- if (doc_matters.opt.action.sqlite_delete) {
- _db_statement ~= SQLiteDeleteDocument!()(doc_matters);
- SQLiteDbRun!()(db, _db_statement, doc_matters.opt.action, "DELETE Document");
+ if (doc.matters.opt.action.sqlite_delete) {
+ _db_statement ~= SQLiteDeleteDocument!()(doc.matters);
+ SQLiteDbRun!()(db, _db_statement, doc.matters.opt.action, "DELETE Document");
_db_statement = [];
}
- if (doc_matters.opt.action.sqlite_update) {
- _db_statement ~= SQLiteDeleteDocument!()(doc_matters);
- SQLiteDbRun!()(db, _db_statement, doc_matters.opt.action, "DELETE Document");
+ if (doc.matters.opt.action.sqlite_update) {
+ _db_statement ~= SQLiteDeleteDocument!()(doc.matters);
+ SQLiteDbRun!()(db, _db_statement, doc.matters.opt.action, "DELETE Document");
_db_statement = [];
- _db_statement ~= SQLiteInsertMetadata!()(doc_matters);
- SQLiteDbRun!()(db, _db_statement, doc_matters.opt.action, "INSERT MetaData");
+ _db_statement ~= SQLiteInsertMetadata!()(doc.matters);
+ SQLiteDbRun!()(db, _db_statement, doc.matters.opt.action, "INSERT MetaData");
_db_statement = [];
- /+ get tid (lastrowid or max) for use in doc_objects table +/
- _db_statement ~= doc_abstraction.SQLiteInsertDocObjectsLoop!()(doc_matters);
- SQLiteDbRun!()(db, _db_statement, doc_matters.opt.action, "INSERT DocObjects");
+ /+ get tid (lastrowid or max) for use in doc.objects table +/
+ _db_statement ~= doc.SQLiteInsertDocObjectsLoop!();
+ SQLiteDbRun!()(db, _db_statement, doc.matters.opt.action, "INSERT DocObjects");
_db_statement = [];
- _db_statement ~= SQLiteInsertMetadataTopics!()(doc_matters);
- SQLiteDbRun!()(db, _db_statement, doc_matters.opt.action, "INSERT MetaDataTopics");
+ _db_statement ~= SQLiteInsertMetadataTopics!()(doc.matters);
+ SQLiteDbRun!()(db, _db_statement, doc.matters.opt.action, "INSERT MetaDataTopics");
_db_statement = [];
}
db.close;
- if (doc_matters.opt.action.vox_gt0) {
+ if (doc.matters.opt.action.vox_gt0) {
writeln(" ", pth_sqlite.sqlite_file);
}
}
}
try {
auto db = Database(pth_sqlite.sqlite_file);
- SQLiteDbStatementComposite!()(db, doc_abstraction, doc_matters);
+ SQLiteDbStatementComposite!()(db, doc);
}
catch (FileException e) {
writeln("Failed (FileException): ", e.msg, " ", pth_sqlite.sqlite_file);
@@ -152,33 +148,29 @@ template SQLiteHubBuildTablesAndPopulate() {
}
}
template SQLiteHubDiscreteBuildTablesAndPopulate() {
- void SQLiteHubDiscreteBuildTablesAndPopulate(D,M)(
- const D doc_abstraction,
- M doc_matters,
- ) {
- auto url_html = spineUrlsHTML!()(doc_matters.conf_make_meta.conf.w_srv_data_root_url_html, doc_matters.src.language);
- auto pth_sqlite = spinePathsSQLiteDiscrete!()(doc_matters.output_path, doc_matters.src.language); // doc_matters.db_path
+ void SQLiteHubDiscreteBuildTablesAndPopulate(D)(D doc) {
+ auto url_html = spineUrlsHTML!()(doc.matters.conf_make_meta.conf.w_srv_data_root_url_html, doc.matters.src.language);
+ auto pth_sqlite = spinePathsSQLiteDiscrete!()(doc.matters.output_path, doc.matters.src.language); // doc.matters.db_path
if ((isValidPath(pth_sqlite.base) && exists(pth_sqlite.base) != 0 && pth_sqlite.base.isDir)) {
} else {
try {
pth_sqlite.base.mkdirRecurse;
} catch (FileException ex) { }
}
- auto db = Database(pth_sqlite.sqlite_file(doc_matters.src.filename));
+ auto db = Database(pth_sqlite.sqlite_file(doc.matters.src.filename));
template SQLiteDiscreteDbStatementComposite() {
- void SQLiteDiscreteDbStatementComposite(Db,D,M)(
- Db db,
- const D doc_abstraction,
- M doc_matters,
+ void SQLiteDiscreteDbStatementComposite(Db,D)(
+ Db db,
+ D doc
) {
try {
{
string _db_statement;
_db_statement ~= SQLiteTablesReCreate!()();
- _db_statement ~= SQLiteInsertMetadata!()(doc_matters);
- _db_statement ~= SQLiteInsertMetadataTopics!()(doc_matters);
- _db_statement ~= doc_abstraction.SQLiteInsertDocObjectsLoop!()(doc_matters);
- SQLiteDbRun!()(db, _db_statement, doc_matters.opt.action, "table CREATE Tables, INSERT DocObjects");
+ _db_statement ~= SQLiteInsertMetadata!()(doc.matters);
+ _db_statement ~= SQLiteInsertMetadataTopics!()(doc.matters);
+ _db_statement ~= doc.SQLiteInsertDocObjectsLoop!();
+ SQLiteDbRun!()(db, _db_statement, doc.matters.opt.action, "table CREATE Tables, INSERT DocObjects");
}
db.close;
}
@@ -204,12 +196,12 @@ template SQLiteHubDiscreteBuildTablesAndPopulate() {
import core.runtime;
core.runtime.Runtime.terminate();
}
- if (doc_matters.opt.action.vox_gt0) {
- writeln(" ", pth_sqlite.sqlite_file(doc_matters.src.filename));
+ if (doc.matters.opt.action.vox_gt0) {
+ writeln(" ", pth_sqlite.sqlite_file(doc.matters.src.filename));
}
}
}
- SQLiteDiscreteDbStatementComposite!()(db, doc_abstraction, doc_matters);
+ SQLiteDiscreteDbStatementComposite!()(db, doc);
}
}
template SQLiteDbRun() {
@@ -251,9 +243,7 @@ template SQLinsertDelimiter() {
}
}
template SQLiteFormatAndLoadObject() {
- auto SQLiteFormatAndLoadObject(M)(
- M doc_matters,
- ) {
+ auto SQLiteFormatAndLoadObject(M)(M doc_matters) {
mixin spineRgxOut;
mixin spineRgxXHTML;
struct sqlite_format_and_load_objects {
@@ -1143,9 +1133,7 @@ template SQLiteTablesReCreate() {
}
}
template SQLiteDeleteDocument() {
- string SQLiteDeleteDocument(M)(
- M doc_matters,
- ) {
+ string SQLiteDeleteDocument(M)(M doc_matters) {
string _uid = doc_matters.src.doc_uid;
string _delete_uid = format(q"┃
DELETE FROM metadata_and_text
@@ -1160,9 +1148,7 @@ template SQLiteDeleteDocument() {
}
}
template SQLiteInsertMetadata() {
- string SQLiteInsertMetadata(M)(
- M doc_matters,
- ) {
+ string SQLiteInsertMetadata(M)(M doc_matters) {
string _uid = SQLinsertDelimiter!()(doc_matters.src.doc_uid);
string _insert_metadata = format(q"┃
INSERT INTO metadata_and_text (
@@ -1276,9 +1262,7 @@ template SQLiteInsertMetadata() {
}
}
template SQLiteInsertMetadataTopics() {
- string SQLiteInsertMetadataTopics(M)(
- M doc_matters,
- ) {
+ string SQLiteInsertMetadataTopics(M)(M doc_matters) {
string _uid = SQLinsertDelimiter!()(doc_matters.src.doc_uid);
string[] _insert_topics;
foreach (topic_line; doc_matters.conf_make_meta.meta.classify_topic_register_expanded_arr) {
@@ -1301,12 +1285,9 @@ template SQLiteInsertMetadataTopics() {
}
}
template SQLiteInsertDocObjectsLoop() {
- string SQLiteInsertDocObjectsLoop(D,M)(
- const D doc_abstraction,
- M doc_matters,
- ) {
- string _uid = SQLinsertDelimiter!()(doc_matters.src.doc_uid);
- auto url_html = spineUrlsHTML!()(doc_matters.conf_make_meta.conf.w_srv_data_root_url_html, doc_matters.src.language);
+ string SQLiteInsertDocObjectsLoop(D)(D doc) {
+ string _uid = SQLinsertDelimiter!()(doc.matters.src.doc_uid);
+ auto url_html = spineUrlsHTML!()(doc.matters.conf_make_meta.conf.w_srv_data_root_url_html, doc.matters.src.language);
string insertDocObjectsRow(O)(O obj) {
string _insert_doc_objects_row = format(q"┃
INSERT INTO doc_objects (
@@ -1336,23 +1317,23 @@ template SQLiteInsertDocObjectsLoop() {
);
return _insert_doc_objects_row;
}
- auto format_and_sqlite_load = SQLiteFormatAndLoadObject!()(doc_matters);
+ auto format_and_sqlite_load = SQLiteFormatAndLoadObject!()(doc.matters);
string[string] obj_txt;
string doc_text;
string[] _insert_doc_objects;
- foreach (part; doc_matters.has.keys_seq.sql) {
- foreach (obj; doc_abstraction[part]) {
+ foreach (part; doc.matters.has.keys_seq.sql) {
+ foreach (obj; doc.abstraction[part]) {
switch (obj.metainfo.is_of_part) {
case "frontmatter": assert(part == "head", part);
switch (obj.metainfo.is_of_type) {
case "para":
switch (obj.metainfo.is_a) {
case "heading":
- obj_txt = format_and_sqlite_load.heading(doc_matters, obj);
+ obj_txt = format_and_sqlite_load.heading(doc.matters, obj);
break;
default:
{ /+ debug +/
- if (doc_matters.opt.action.debug_do_sqlite) {
+ if (doc.matters.opt.action.debug_do_sqlite) {
writeln(__FILE__, ":", __LINE__, ": ", obj.metainfo.is_a);
}
}
@@ -1361,7 +1342,7 @@ template SQLiteInsertDocObjectsLoop() {
break;
default:
{ /+ debug +/
- if (doc_matters.opt.action.debug_do_sqlite) {
+ if (doc.matters.opt.action.debug_do_sqlite) {
writeln(__FILE__, ":", __LINE__, ": ", obj.metainfo.is_of_type);
}
}
@@ -1378,14 +1359,14 @@ template SQLiteInsertDocObjectsLoop() {
writeln(__LINE__, ": ", obj.text);
}
}
- obj_txt = format_and_sqlite_load.heading(doc_matters, obj);
+ obj_txt = format_and_sqlite_load.heading(doc.matters, obj);
break;
case "para":
- obj_txt = format_and_sqlite_load.para(doc_matters, obj);
+ obj_txt = format_and_sqlite_load.para(doc.matters, obj);
break;
default:
{ /+ debug +/
- if (doc_matters.opt.action.debug_do_sqlite) {
+ if (doc.matters.opt.action.debug_do_sqlite) {
writeln(__FILE__, ":", __LINE__, ": ", obj.metainfo.is_a);
}
}
@@ -1395,28 +1376,28 @@ template SQLiteInsertDocObjectsLoop() {
case "block":
switch (obj.metainfo.is_a) {
case "quote":
- obj_txt = format_and_sqlite_load.quote(doc_matters, obj);
+ obj_txt = format_and_sqlite_load.quote(doc.matters, obj);
break;
case "group":
- obj_txt = format_and_sqlite_load.group(doc_matters, obj);
+ obj_txt = format_and_sqlite_load.group(doc.matters, obj);
break;
case "block":
- obj_txt = format_and_sqlite_load.block(doc_matters, obj);
+ obj_txt = format_and_sqlite_load.block(doc.matters, obj);
break;
case "poem": // double check on keeping both poem & verse
break;
case "verse":
- obj_txt = format_and_sqlite_load.verse(doc_matters, obj);
+ obj_txt = format_and_sqlite_load.verse(doc.matters, obj);
break;
case "code":
- obj_txt = format_and_sqlite_load.code(doc_matters, obj);
+ obj_txt = format_and_sqlite_load.code(doc.matters, obj);
break;
case "table":
- obj_txt = format_and_sqlite_load.table(doc_matters, obj);
+ obj_txt = format_and_sqlite_load.table(doc.matters, obj);
break;
default:
{ /+ debug +/
- if (doc_matters.opt.action.debug_do_sqlite) {
+ if (doc.matters.opt.action.debug_do_sqlite) {
writeln(__FILE__, ":", __LINE__, ": ", obj.metainfo.is_a);
}
}
@@ -1425,7 +1406,7 @@ template SQLiteInsertDocObjectsLoop() {
break;
default:
{ /+ debug +/
- if (doc_matters.opt.action.debug_do_sqlite) {
+ if (doc.matters.opt.action.debug_do_sqlite) {
writeln(__FILE__, ":", __LINE__, ": ", obj.metainfo.is_of_type);
}
}
@@ -1438,23 +1419,23 @@ template SQLiteInsertDocObjectsLoop() {
case "para":
switch (obj.metainfo.is_a) {
case "heading":
- obj_txt = format_and_sqlite_load.heading(doc_matters, obj);
+ obj_txt = format_and_sqlite_load.heading(doc.matters, obj);
break;
case "glossary": assert(part == "glossary", part);
- obj_txt = format_and_sqlite_load.para(doc_matters, obj);
+ obj_txt = format_and_sqlite_load.para(doc.matters, obj);
break;
case "bibliography": assert(part == "bibliography", part);
- obj_txt = format_and_sqlite_load.para(doc_matters, obj);
+ obj_txt = format_and_sqlite_load.para(doc.matters, obj);
break;
case "bookindex": assert(part == "bookindex", part);
- obj_txt = format_and_sqlite_load.para(doc_matters, obj);
+ obj_txt = format_and_sqlite_load.para(doc.matters, obj);
break;
case "blurb": assert(part == "blurb", part);
- obj_txt = format_and_sqlite_load.para(doc_matters, obj);
+ obj_txt = format_and_sqlite_load.para(doc.matters, obj);
break;
default:
{ /+ debug +/
- if (doc_matters.opt.action.debug_do_sqlite) {
+ if (doc.matters.opt.action.debug_do_sqlite) {
writeln(__FILE__, ":", __LINE__, ": ", obj.metainfo.is_a);
}
}
@@ -1463,7 +1444,7 @@ template SQLiteInsertDocObjectsLoop() {
break;
default:
{ /+ debug +/
- if (doc_matters.opt.action.debug_do_sqlite) {
+ if (doc.matters.opt.action.debug_do_sqlite) {
writeln(__FILE__, ":", __LINE__, ": ", obj.metainfo.is_of_type);
}
}
@@ -1474,7 +1455,7 @@ template SQLiteInsertDocObjectsLoop() {
break;
default:
{ /+ debug +/
- if (doc_matters.opt.action.debug_do_sqlite) {
+ if (doc.matters.opt.action.debug_do_sqlite) {
writeln(__FILE__, ":", __LINE__, ": ", obj.metainfo.is_of_part); // check where empty value could come from
writeln(__FILE__, ":", __LINE__, ": ", obj.metainfo.is_a);
writeln(__FILE__, ":", __LINE__, ": ", obj.text); // check where empty value could come from
@@ -1483,9 +1464,9 @@ template SQLiteInsertDocObjectsLoop() {
break;
}
if (obj.metainfo.is_a == "heading") {
- if (doc_matters.opt.action.show_sqlite) {
+ if (doc.matters.opt.action.show_sqlite) {
if (obj.metainfo.heading_lev_markup == 0) {
- writeln(doc_matters.src.filename);
+ writeln(doc.matters.src.filename);
}
writeln(
"markup: ", obj.metainfo.heading_lev_markup,