aboutsummaryrefslogtreecommitdiff
path: root/web/ytlist
diff options
context:
space:
mode:
authoriceyrazor <iceyrazor@mailfence.com>2025-08-02 13:28:37 -0500
committericeyrazor <iceyrazor@mailfence.com>2025-08-02 13:28:37 -0500
commitdd4b54e3c47696319173c8e836fe7eed9defd82f (patch)
tree04098c5e9d0474adec11710034179895f9d81b97 /web/ytlist
parentd92ff749a04c8d5d664aeca1b7a76638a7fa0c52 (diff)
- multi db files for web
- still load db item if no thumbnail
Diffstat (limited to 'web/ytlist')
-rw-r--r--web/ytlist/ytlist.js29
1 files changed, 25 insertions, 4 deletions
diff --git a/web/ytlist/ytlist.js b/web/ytlist/ytlist.js
index d4ab060..2f13a79 100644
--- a/web/ytlist/ytlist.js
+++ b/web/ytlist/ytlist.js
@@ -1,3 +1,5 @@
+let db_file="youtube_stuffs.db"
+
function insert_item(item,imgurl){
the_box.innerHTML+=`<div>
<a href="https://youtube.com/watch?v=${item[2]}" target="_BLANK">
@@ -22,7 +24,7 @@ function get_item(item){
if (res.ok) {
insert_item(item,res.url);
} else {
- console.log("no");
+ insert_item(item,null);
}
});
}
@@ -33,7 +35,7 @@ async function search(){
const sqlPromise = initSqlJs({
locateFile: file => `/ytlist/${file}`
});
- const dataPromise = fetch("/ytlist/youtube_stuffs.db").then(res => res.arrayBuffer());
+ const dataPromise = fetch("/ytlist/"+db_file).then(res => res.arrayBuffer());
const [SQL, buf] = await Promise.all([sqlPromise, dataPromise])
const db = new SQL.Database(new Uint8Array(buf));
//search_box.style.display="none";
@@ -55,18 +57,19 @@ async function search(){
res[0].values.forEach(item=>{get_item(item)});
}
-
+let first=false
async function init(){
const sqlPromise = initSqlJs({
locateFile: file => `/ytlist/${file}`
});
- const dataPromise = fetch("/ytlist/youtube_stuffs.db").then(res => res.arrayBuffer());
+ const dataPromise = fetch("/ytlist/"+db_file).then(res => res.arrayBuffer());
const [SQL, buf] = await Promise.all([sqlPromise, dataPromise])
const db = new SQL.Database(new Uint8Array(buf));
const res = db.exec("SELECT category FROM ytlist");
let categories=[]
+ category_box.innerHTML=`<input type="radio" name="category_choice" value="ALL" checked> ALL<br>`
res[0].values.forEach(item=>{
if (categories.indexOf(item[0]) < 0) {
categories.push(item[0]);
@@ -75,5 +78,23 @@ async function init(){
}
})
+ if(first==false){
+ db_box.innerHTML=`<input type="radio" name="db_choice" value="youtube_stuffs.db" checked> youtube_stuffs.db<br>`
+ fetch(`/ytlist/youtube_stuffs_2.db`,
+ { method: "HEAD" }
+ ).then((res) => {
+ if (res.ok) {
+ db_box.innerHTML+=`<input type="radio" name="db_choice" value="youtube_stuffs_2.db"> youtube_stuffs_2.db<br>`
+ }
+ });
+ }
+ first=true
}
init()
+
+document.body.addEventListener('change', function(event){
+ if(event.target.name=="db_choice"){
+ db_file=event.target.value
+ init()
+ }
+})