912 lines
29 KiB
JSON
912 lines
29 KiB
JSON
{
|
|
"_meta": {
|
|
"description": "This file contains a serialized version of schema entities for drift.",
|
|
"version": "1.3.0"
|
|
},
|
|
"options": {
|
|
"store_date_time_values_as_text": false
|
|
},
|
|
"entities": [
|
|
{
|
|
"id": 0,
|
|
"references": [],
|
|
"type": "table",
|
|
"data": {
|
|
"name": "bang",
|
|
"was_declared_in_moor": true,
|
|
"columns": [
|
|
{
|
|
"name": "trigger",
|
|
"getter_name": "trigger",
|
|
"moor_type": "string",
|
|
"nullable": false,
|
|
"customConstraints": "NOT NULL",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
},
|
|
{
|
|
"name": "group",
|
|
"getter_name": "group",
|
|
"moor_type": "int",
|
|
"nullable": false,
|
|
"customConstraints": "NOT NULL",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": [],
|
|
"type_converter": {
|
|
"dart_expr": "const EnumIndexConverter<BangGroup>(BangGroup.values)",
|
|
"dart_type_name": "BangGroup"
|
|
}
|
|
},
|
|
{
|
|
"name": "website_name",
|
|
"getter_name": "websiteName",
|
|
"moor_type": "string",
|
|
"nullable": false,
|
|
"customConstraints": "NOT NULL",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
},
|
|
{
|
|
"name": "domain",
|
|
"getter_name": "domain",
|
|
"moor_type": "string",
|
|
"nullable": false,
|
|
"customConstraints": "NOT NULL",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
},
|
|
{
|
|
"name": "url_template",
|
|
"getter_name": "urlTemplate",
|
|
"moor_type": "string",
|
|
"nullable": false,
|
|
"customConstraints": "NOT NULL",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
},
|
|
{
|
|
"name": "category",
|
|
"getter_name": "category",
|
|
"moor_type": "string",
|
|
"nullable": true,
|
|
"customConstraints": "",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
},
|
|
{
|
|
"name": "sub_category",
|
|
"getter_name": "subCategory",
|
|
"moor_type": "string",
|
|
"nullable": true,
|
|
"customConstraints": "",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
},
|
|
{
|
|
"name": "format",
|
|
"getter_name": "format",
|
|
"moor_type": "string",
|
|
"nullable": true,
|
|
"customConstraints": "",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": [],
|
|
"type_converter": {
|
|
"dart_expr": "const BangFormatConverter()",
|
|
"dart_type_name": "Set<BangFormat>?"
|
|
}
|
|
},
|
|
{
|
|
"name": "additional_triggers",
|
|
"getter_name": "additionalTriggers",
|
|
"moor_type": "string",
|
|
"nullable": true,
|
|
"customConstraints": "",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": [],
|
|
"type_converter": {
|
|
"dart_expr": "const TriggerListConverter()",
|
|
"dart_type_name": "Set<String>?"
|
|
}
|
|
},
|
|
{
|
|
"name": "searxng_api",
|
|
"getter_name": "searxngApi",
|
|
"moor_type": "bool",
|
|
"nullable": false,
|
|
"customConstraints": "NOT NULL DEFAULT FALSE",
|
|
"default_dart": "const CustomExpression('FALSE')",
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
},
|
|
{
|
|
"name": "snap_domain",
|
|
"getter_name": "snapDomain",
|
|
"moor_type": "string",
|
|
"nullable": true,
|
|
"customConstraints": "",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
}
|
|
],
|
|
"is_virtual": false,
|
|
"without_rowid": false,
|
|
"constraints": [
|
|
"PRIMARY KEY(\"trigger\", \"group\")"
|
|
],
|
|
"explicit_pk": [
|
|
"trigger",
|
|
"group"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": 1,
|
|
"references": [
|
|
0
|
|
],
|
|
"type": "table",
|
|
"data": {
|
|
"name": "bang_triggers",
|
|
"was_declared_in_moor": true,
|
|
"columns": [
|
|
{
|
|
"name": "trigger",
|
|
"getter_name": "trigger",
|
|
"moor_type": "string",
|
|
"nullable": false,
|
|
"customConstraints": "NOT NULL",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
},
|
|
{
|
|
"name": "group",
|
|
"getter_name": "group",
|
|
"moor_type": "int",
|
|
"nullable": false,
|
|
"customConstraints": "NOT NULL",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": [],
|
|
"type_converter": {
|
|
"dart_expr": "const EnumIndexConverter<BangGroup>(BangGroup.values)",
|
|
"dart_type_name": "BangGroup"
|
|
}
|
|
},
|
|
{
|
|
"name": "additional_trigger",
|
|
"getter_name": "additionalTrigger",
|
|
"moor_type": "string",
|
|
"nullable": false,
|
|
"customConstraints": "NOT NULL",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
}
|
|
],
|
|
"is_virtual": false,
|
|
"without_rowid": false,
|
|
"constraints": [
|
|
"PRIMARY KEY(\"trigger\", \"group\", additional_trigger)",
|
|
"FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE"
|
|
],
|
|
"explicit_pk": [
|
|
"trigger",
|
|
"group",
|
|
"additional_trigger"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": 2,
|
|
"references": [
|
|
1
|
|
],
|
|
"type": "index",
|
|
"data": {
|
|
"on": 1,
|
|
"name": "idx_bang_triggers_lookup",
|
|
"sql": "CREATE INDEX idx_bang_triggers_lookup ON bang_triggers (additional_trigger, \"group\");",
|
|
"unique": false,
|
|
"columns": []
|
|
}
|
|
},
|
|
{
|
|
"id": 3,
|
|
"references": [
|
|
0,
|
|
1
|
|
],
|
|
"type": "trigger",
|
|
"data": {
|
|
"on": 0,
|
|
"references_in_body": [
|
|
0,
|
|
1
|
|
],
|
|
"name": "bang_triggers_after_insert",
|
|
"sql": "CREATE TRIGGER bang_triggers_after_insert AFTER INSERT ON bang \nWHEN new.additional_triggers IS NOT NULL\nBEGIN\n INSERT INTO bang_triggers(\"trigger\", \"group\", additional_trigger)\n SELECT \n new.\"trigger\",\n new.\"group\",\n json_each.value\n FROM json_each(new.additional_triggers);\nEND;"
|
|
}
|
|
},
|
|
{
|
|
"id": 4,
|
|
"references": [
|
|
0,
|
|
1
|
|
],
|
|
"type": "trigger",
|
|
"data": {
|
|
"on": 0,
|
|
"references_in_body": [
|
|
0,
|
|
1
|
|
],
|
|
"name": "bang_triggers_after_update",
|
|
"sql": "CREATE TRIGGER bang_triggers_after_update AFTER UPDATE ON bang BEGIN\n -- Delete old additional triggers\n DELETE FROM bang_triggers \n WHERE \"trigger\" = old.\"trigger\" AND \"group\" = old.\"group\";\n\n -- Insert new additional triggers if they exist\n INSERT INTO bang_triggers(\"trigger\", \"group\", additional_trigger)\n SELECT \n new.\"trigger\",\n new.\"group\",\n json_each.value\n FROM json_each(new.additional_triggers)\n WHERE new.additional_triggers IS NOT NULL;\nEND;"
|
|
}
|
|
},
|
|
{
|
|
"id": 5,
|
|
"references": [],
|
|
"type": "table",
|
|
"data": {
|
|
"name": "bang_sync",
|
|
"was_declared_in_moor": true,
|
|
"columns": [
|
|
{
|
|
"name": "group",
|
|
"getter_name": "group",
|
|
"moor_type": "int",
|
|
"nullable": false,
|
|
"customConstraints": "PRIMARY KEY NOT NULL",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": [
|
|
"primary-key"
|
|
],
|
|
"type_converter": {
|
|
"dart_expr": "const EnumIndexConverter<BangGroup>(BangGroup.values)",
|
|
"dart_type_name": "BangGroup"
|
|
}
|
|
},
|
|
{
|
|
"name": "last_sync",
|
|
"getter_name": "lastSync",
|
|
"moor_type": "dateTime",
|
|
"nullable": false,
|
|
"customConstraints": "NOT NULL",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
}
|
|
],
|
|
"is_virtual": false,
|
|
"without_rowid": false,
|
|
"constraints": []
|
|
}
|
|
},
|
|
{
|
|
"id": 6,
|
|
"references": [
|
|
0
|
|
],
|
|
"type": "table",
|
|
"data": {
|
|
"name": "bang_frequency",
|
|
"was_declared_in_moor": true,
|
|
"columns": [
|
|
{
|
|
"name": "trigger",
|
|
"getter_name": "trigger",
|
|
"moor_type": "string",
|
|
"nullable": false,
|
|
"customConstraints": "NOT NULL",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
},
|
|
{
|
|
"name": "group",
|
|
"getter_name": "group",
|
|
"moor_type": "int",
|
|
"nullable": false,
|
|
"customConstraints": "NOT NULL",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": [],
|
|
"type_converter": {
|
|
"dart_expr": "const EnumIndexConverter<BangGroup>(BangGroup.values)",
|
|
"dart_type_name": "BangGroup"
|
|
}
|
|
},
|
|
{
|
|
"name": "frequency",
|
|
"getter_name": "frequency",
|
|
"moor_type": "int",
|
|
"nullable": false,
|
|
"customConstraints": "NOT NULL",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
},
|
|
{
|
|
"name": "last_used",
|
|
"getter_name": "lastUsed",
|
|
"moor_type": "dateTime",
|
|
"nullable": false,
|
|
"customConstraints": "NOT NULL",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
}
|
|
],
|
|
"is_virtual": false,
|
|
"without_rowid": false,
|
|
"constraints": [
|
|
"PRIMARY KEY(\"trigger\", \"group\")",
|
|
"FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE"
|
|
],
|
|
"explicit_pk": [
|
|
"trigger",
|
|
"group"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": 7,
|
|
"references": [
|
|
0
|
|
],
|
|
"type": "table",
|
|
"data": {
|
|
"name": "bang_history",
|
|
"was_declared_in_moor": true,
|
|
"columns": [
|
|
{
|
|
"name": "search_query",
|
|
"getter_name": "searchQuery",
|
|
"moor_type": "string",
|
|
"nullable": false,
|
|
"customConstraints": "UNIQUE NOT NULL",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": [
|
|
"unique"
|
|
]
|
|
},
|
|
{
|
|
"name": "trigger",
|
|
"getter_name": "trigger",
|
|
"moor_type": "string",
|
|
"nullable": false,
|
|
"customConstraints": "NOT NULL",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
},
|
|
{
|
|
"name": "group",
|
|
"getter_name": "group",
|
|
"moor_type": "int",
|
|
"nullable": false,
|
|
"customConstraints": "NOT NULL",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": [],
|
|
"type_converter": {
|
|
"dart_expr": "const EnumIndexConverter<BangGroup>(BangGroup.values)",
|
|
"dart_type_name": "BangGroup"
|
|
}
|
|
},
|
|
{
|
|
"name": "search_date",
|
|
"getter_name": "searchDate",
|
|
"moor_type": "dateTime",
|
|
"nullable": false,
|
|
"customConstraints": "NOT NULL",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
}
|
|
],
|
|
"is_virtual": false,
|
|
"without_rowid": false,
|
|
"constraints": [
|
|
"FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": 8,
|
|
"references": [
|
|
0
|
|
],
|
|
"type": "table",
|
|
"data": {
|
|
"name": "bang_fts",
|
|
"was_declared_in_moor": true,
|
|
"columns": [
|
|
{
|
|
"name": "trigger",
|
|
"getter_name": "trigger",
|
|
"moor_type": "string",
|
|
"nullable": false,
|
|
"customConstraints": "",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
},
|
|
{
|
|
"name": "website_name",
|
|
"getter_name": "websiteName",
|
|
"moor_type": "string",
|
|
"nullable": false,
|
|
"customConstraints": "",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
}
|
|
],
|
|
"is_virtual": true,
|
|
"create_virtual_stmt": "CREATE VIRTUAL TABLE \"bang_fts\" USING fts5(trigger, website_name, content=bang, prefix='2 3')",
|
|
"without_rowid": false,
|
|
"constraints": []
|
|
}
|
|
},
|
|
{
|
|
"id": 9,
|
|
"references": [
|
|
1
|
|
],
|
|
"type": "table",
|
|
"data": {
|
|
"name": "bang_triggers_fts",
|
|
"was_declared_in_moor": true,
|
|
"columns": [
|
|
{
|
|
"name": "additional_trigger",
|
|
"getter_name": "additionalTrigger",
|
|
"moor_type": "string",
|
|
"nullable": false,
|
|
"customConstraints": "",
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
}
|
|
],
|
|
"is_virtual": true,
|
|
"create_virtual_stmt": "CREATE VIRTUAL TABLE \"bang_triggers_fts\" USING fts5(additional_trigger, content=bang_triggers, prefix='2 3')",
|
|
"without_rowid": false,
|
|
"constraints": []
|
|
}
|
|
},
|
|
{
|
|
"id": 10,
|
|
"references": [
|
|
0,
|
|
6
|
|
],
|
|
"type": "view",
|
|
"data": {
|
|
"name": "bang_data_view",
|
|
"sql": "CREATE VIEW bang_data_view AS SELECT b.*, bf.frequency, bf.last_used FROM bang AS b LEFT JOIN bang_frequency AS bf ON b.\"trigger\" = bf.\"trigger\" AND b.\"group\" = bf.\"group\"",
|
|
"dart_info_name": "BangDataView",
|
|
"columns": [
|
|
{
|
|
"name": "trigger",
|
|
"getter_name": "trigger",
|
|
"moor_type": "string",
|
|
"nullable": false,
|
|
"customConstraints": null,
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
},
|
|
{
|
|
"name": "group",
|
|
"getter_name": "group",
|
|
"moor_type": "int",
|
|
"nullable": false,
|
|
"customConstraints": null,
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": [],
|
|
"type_converter": {
|
|
"dart_expr": "const EnumIndexConverter<BangGroup>(BangGroup.values)",
|
|
"dart_type_name": "BangGroup"
|
|
}
|
|
},
|
|
{
|
|
"name": "website_name",
|
|
"getter_name": "websiteName",
|
|
"moor_type": "string",
|
|
"nullable": false,
|
|
"customConstraints": null,
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
},
|
|
{
|
|
"name": "domain",
|
|
"getter_name": "domain",
|
|
"moor_type": "string",
|
|
"nullable": false,
|
|
"customConstraints": null,
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
},
|
|
{
|
|
"name": "url_template",
|
|
"getter_name": "urlTemplate",
|
|
"moor_type": "string",
|
|
"nullable": false,
|
|
"customConstraints": null,
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
},
|
|
{
|
|
"name": "category",
|
|
"getter_name": "category",
|
|
"moor_type": "string",
|
|
"nullable": true,
|
|
"customConstraints": null,
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
},
|
|
{
|
|
"name": "sub_category",
|
|
"getter_name": "subCategory",
|
|
"moor_type": "string",
|
|
"nullable": true,
|
|
"customConstraints": null,
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
},
|
|
{
|
|
"name": "format",
|
|
"getter_name": "format",
|
|
"moor_type": "string",
|
|
"nullable": true,
|
|
"customConstraints": null,
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": [],
|
|
"type_converter": {
|
|
"dart_expr": "const BangFormatConverter()",
|
|
"dart_type_name": "Set<BangFormat>?"
|
|
}
|
|
},
|
|
{
|
|
"name": "additional_triggers",
|
|
"getter_name": "additionalTriggers",
|
|
"moor_type": "string",
|
|
"nullable": true,
|
|
"customConstraints": null,
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": [],
|
|
"type_converter": {
|
|
"dart_expr": "const TriggerListConverter()",
|
|
"dart_type_name": "Set<String>?"
|
|
}
|
|
},
|
|
{
|
|
"name": "searxng_api",
|
|
"getter_name": "searxngApi",
|
|
"moor_type": "bool",
|
|
"nullable": false,
|
|
"customConstraints": null,
|
|
"defaultConstraints": "CHECK (\"searxng_api\" IN (0, 1))",
|
|
"dialectAwareDefaultConstraints": {
|
|
"sqlite": "CHECK (\"searxng_api\" IN (0, 1))"
|
|
},
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
},
|
|
{
|
|
"name": "snap_domain",
|
|
"getter_name": "snapDomain",
|
|
"moor_type": "string",
|
|
"nullable": true,
|
|
"customConstraints": null,
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
},
|
|
{
|
|
"name": "frequency",
|
|
"getter_name": "frequency",
|
|
"moor_type": "int",
|
|
"nullable": true,
|
|
"customConstraints": null,
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
},
|
|
{
|
|
"name": "last_used",
|
|
"getter_name": "lastUsed",
|
|
"moor_type": "dateTime",
|
|
"nullable": true,
|
|
"customConstraints": null,
|
|
"default_dart": null,
|
|
"default_client_dart": null,
|
|
"dsl_features": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": 11,
|
|
"references": [
|
|
0,
|
|
8
|
|
],
|
|
"type": "trigger",
|
|
"data": {
|
|
"on": 0,
|
|
"references_in_body": [
|
|
0,
|
|
8
|
|
],
|
|
"name": "bang_after_insert",
|
|
"sql": "CREATE TRIGGER bang_after_insert AFTER INSERT ON bang BEGIN\n INSERT INTO \n bang_fts(rowid, \"trigger\", website_name) \n VALUES (new.rowid, new.\"trigger\", new.website_name);\nEND;"
|
|
}
|
|
},
|
|
{
|
|
"id": 12,
|
|
"references": [
|
|
0,
|
|
8
|
|
],
|
|
"type": "trigger",
|
|
"data": {
|
|
"on": 0,
|
|
"references_in_body": [
|
|
0,
|
|
8
|
|
],
|
|
"name": "bang_after_delete",
|
|
"sql": "CREATE TRIGGER bang_after_delete AFTER DELETE ON bang BEGIN\n INSERT INTO \n bang_fts(bang_fts, rowid, \"trigger\", website_name) \n VALUES('delete', old.rowid, old.\"trigger\", old.website_name);\nEND;"
|
|
}
|
|
},
|
|
{
|
|
"id": 13,
|
|
"references": [
|
|
0,
|
|
8
|
|
],
|
|
"type": "trigger",
|
|
"data": {
|
|
"on": 0,
|
|
"references_in_body": [
|
|
0,
|
|
8
|
|
],
|
|
"name": "bang_after_update",
|
|
"sql": "CREATE TRIGGER bang_after_update AFTER UPDATE ON bang BEGIN\n INSERT INTO \n bang_fts(bang_fts, rowid, \"trigger\", website_name) \n VALUES('delete', old.rowid, old.\"trigger\", old.website_name);\n INSERT INTO \n bang_fts(rowid, \"trigger\", website_name) \n VALUES (new.rowid, new.\"trigger\", new.website_name);\nEND;"
|
|
}
|
|
},
|
|
{
|
|
"id": 14,
|
|
"references": [
|
|
1,
|
|
9
|
|
],
|
|
"type": "trigger",
|
|
"data": {
|
|
"on": 1,
|
|
"references_in_body": [
|
|
1,
|
|
9
|
|
],
|
|
"name": "bang_triggers_after_insert_fts",
|
|
"sql": "CREATE TRIGGER bang_triggers_after_insert_fts AFTER INSERT ON bang_triggers BEGIN\n INSERT INTO \n bang_triggers_fts(rowid, additional_trigger) \n VALUES (new.rowid, new.additional_trigger);\nEND;"
|
|
}
|
|
},
|
|
{
|
|
"id": 15,
|
|
"references": [
|
|
1,
|
|
9
|
|
],
|
|
"type": "trigger",
|
|
"data": {
|
|
"on": 1,
|
|
"references_in_body": [
|
|
1,
|
|
9
|
|
],
|
|
"name": "bang_triggers_after_delete_fts",
|
|
"sql": "CREATE TRIGGER bang_triggers_after_delete_fts AFTER DELETE ON bang_triggers BEGIN\n INSERT INTO \n bang_triggers_fts(bang_triggers_fts, rowid, additional_trigger) \n VALUES('delete', old.rowid, old.additional_trigger);\nEND;"
|
|
}
|
|
},
|
|
{
|
|
"id": 16,
|
|
"references": [
|
|
1,
|
|
9
|
|
],
|
|
"type": "trigger",
|
|
"data": {
|
|
"on": 1,
|
|
"references_in_body": [
|
|
1,
|
|
9
|
|
],
|
|
"name": "bang_triggers_after_update_fts",
|
|
"sql": "CREATE TRIGGER bang_triggers_after_update_fts AFTER UPDATE ON bang_triggers BEGIN\n INSERT INTO \n bang_triggers_fts(bang_triggers_fts, rowid, additional_trigger) \n VALUES('delete', old.rowid, old.additional_trigger);\n INSERT INTO \n bang_triggers_fts(rowid, additional_trigger) \n VALUES (new.rowid, new.additional_trigger);\nEND;"
|
|
}
|
|
}
|
|
],
|
|
"fixed_sql": [
|
|
{
|
|
"name": "bang",
|
|
"sql": [
|
|
{
|
|
"dialect": "sqlite",
|
|
"sql": "CREATE TABLE IF NOT EXISTS \"bang\" (\"trigger\" TEXT NOT NULL, \"group\" INTEGER NOT NULL, \"website_name\" TEXT NOT NULL, \"domain\" TEXT NOT NULL, \"url_template\" TEXT NOT NULL, \"category\" TEXT, \"sub_category\" TEXT, \"format\" TEXT, \"additional_triggers\" TEXT, \"searxng_api\" INTEGER NOT NULL DEFAULT FALSE, \"snap_domain\" TEXT, PRIMARY KEY(\"trigger\", \"group\"));"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "bang_triggers",
|
|
"sql": [
|
|
{
|
|
"dialect": "sqlite",
|
|
"sql": "CREATE TABLE IF NOT EXISTS \"bang_triggers\" (\"trigger\" TEXT NOT NULL, \"group\" INTEGER NOT NULL, \"additional_trigger\" TEXT NOT NULL, PRIMARY KEY(\"trigger\", \"group\", additional_trigger), FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE);"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "idx_bang_triggers_lookup",
|
|
"sql": [
|
|
{
|
|
"dialect": "sqlite",
|
|
"sql": "CREATE INDEX idx_bang_triggers_lookup ON bang_triggers (additional_trigger, \"group\")"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "bang_triggers_after_insert",
|
|
"sql": [
|
|
{
|
|
"dialect": "sqlite",
|
|
"sql": "CREATE TRIGGER bang_triggers_after_insert AFTER INSERT ON bang WHEN new.additional_triggers IS NOT NULL BEGIN INSERT INTO bang_triggers (\"trigger\", \"group\", additional_trigger) SELECT new.\"trigger\", new.\"group\", json_each.value FROM json_each(new.additional_triggers);END"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "bang_triggers_after_update",
|
|
"sql": [
|
|
{
|
|
"dialect": "sqlite",
|
|
"sql": "CREATE TRIGGER bang_triggers_after_update AFTER UPDATE ON bang BEGIN DELETE FROM bang_triggers WHERE \"trigger\" = old.\"trigger\" AND \"group\" = old.\"group\";INSERT INTO bang_triggers (\"trigger\", \"group\", additional_trigger) SELECT new.\"trigger\", new.\"group\", json_each.value FROM json_each(new.additional_triggers)WHERE new.additional_triggers IS NOT NULL;END"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "bang_sync",
|
|
"sql": [
|
|
{
|
|
"dialect": "sqlite",
|
|
"sql": "CREATE TABLE IF NOT EXISTS \"bang_sync\" (\"group\" INTEGER PRIMARY KEY NOT NULL, \"last_sync\" INTEGER NOT NULL);"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "bang_frequency",
|
|
"sql": [
|
|
{
|
|
"dialect": "sqlite",
|
|
"sql": "CREATE TABLE IF NOT EXISTS \"bang_frequency\" (\"trigger\" TEXT NOT NULL, \"group\" INTEGER NOT NULL, \"frequency\" INTEGER NOT NULL, \"last_used\" INTEGER NOT NULL, PRIMARY KEY(\"trigger\", \"group\"), FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE);"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "bang_history",
|
|
"sql": [
|
|
{
|
|
"dialect": "sqlite",
|
|
"sql": "CREATE TABLE IF NOT EXISTS \"bang_history\" (\"search_query\" TEXT UNIQUE NOT NULL, \"trigger\" TEXT NOT NULL, \"group\" INTEGER NOT NULL, \"search_date\" INTEGER NOT NULL, FOREIGN KEY(\"trigger\", \"group\")REFERENCES bang(\"trigger\", \"group\")ON DELETE CASCADE);"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "bang_fts",
|
|
"sql": [
|
|
{
|
|
"dialect": "sqlite",
|
|
"sql": "CREATE VIRTUAL TABLE IF NOT EXISTS \"bang_fts\" USING fts5(trigger, website_name, content=bang, prefix='2 3');"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "bang_triggers_fts",
|
|
"sql": [
|
|
{
|
|
"dialect": "sqlite",
|
|
"sql": "CREATE VIRTUAL TABLE IF NOT EXISTS \"bang_triggers_fts\" USING fts5(additional_trigger, content=bang_triggers, prefix='2 3');"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "bang_data_view",
|
|
"sql": [
|
|
{
|
|
"dialect": "sqlite",
|
|
"sql": "CREATE VIEW bang_data_view AS SELECT b.*, bf.frequency, bf.last_used FROM bang AS b LEFT JOIN bang_frequency AS bf ON b.\"trigger\" = bf.\"trigger\" AND b.\"group\" = bf.\"group\""
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "bang_after_insert",
|
|
"sql": [
|
|
{
|
|
"dialect": "sqlite",
|
|
"sql": "CREATE TRIGGER bang_after_insert AFTER INSERT ON bang BEGIN INSERT INTO bang_fts (\"rowid\", \"trigger\", website_name) VALUES (new.\"rowid\", new.\"trigger\", new.website_name);END"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "bang_after_delete",
|
|
"sql": [
|
|
{
|
|
"dialect": "sqlite",
|
|
"sql": "CREATE TRIGGER bang_after_delete AFTER DELETE ON bang BEGIN INSERT INTO bang_fts (bang_fts, \"rowid\", \"trigger\", website_name) VALUES ('delete', old.\"rowid\", old.\"trigger\", old.website_name);END"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "bang_after_update",
|
|
"sql": [
|
|
{
|
|
"dialect": "sqlite",
|
|
"sql": "CREATE TRIGGER bang_after_update AFTER UPDATE ON bang BEGIN INSERT INTO bang_fts (bang_fts, \"rowid\", \"trigger\", website_name) VALUES ('delete', old.\"rowid\", old.\"trigger\", old.website_name);INSERT INTO bang_fts (\"rowid\", \"trigger\", website_name) VALUES (new.\"rowid\", new.\"trigger\", new.website_name);END"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "bang_triggers_after_insert_fts",
|
|
"sql": [
|
|
{
|
|
"dialect": "sqlite",
|
|
"sql": "CREATE TRIGGER bang_triggers_after_insert_fts AFTER INSERT ON bang_triggers BEGIN INSERT INTO bang_triggers_fts (\"rowid\", additional_trigger) VALUES (new.\"rowid\", new.additional_trigger);END"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "bang_triggers_after_delete_fts",
|
|
"sql": [
|
|
{
|
|
"dialect": "sqlite",
|
|
"sql": "CREATE TRIGGER bang_triggers_after_delete_fts AFTER DELETE ON bang_triggers BEGIN INSERT INTO bang_triggers_fts (bang_triggers_fts, \"rowid\", additional_trigger) VALUES ('delete', old.\"rowid\", old.additional_trigger);END"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "bang_triggers_after_update_fts",
|
|
"sql": [
|
|
{
|
|
"dialect": "sqlite",
|
|
"sql": "CREATE TRIGGER bang_triggers_after_update_fts AFTER UPDATE ON bang_triggers BEGIN INSERT INTO bang_triggers_fts (bang_triggers_fts, \"rowid\", additional_trigger) VALUES ('delete', old.\"rowid\", old.additional_trigger);INSERT INTO bang_triggers_fts (\"rowid\", additional_trigger) VALUES (new.\"rowid\", new.additional_trigger);END"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
} |