diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-admin/admin.js b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/admin.js index 599547c2..4df04c97 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-admin/admin.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/admin.js @@ -67,7 +67,7 @@ if (auth === true) { - +Restore Favs for User diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-admin/regenfavs.js b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/regenfavs.js new file mode 100644 index 00000000..d361efe9 --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/regenfavs.js @@ -0,0 +1,98 @@ +var minisrv_service_file = true; + +var WTVAdmin = require("./WTVAdmin.js"); +var wtva = new WTVAdmin(minisrv_config, ssid_sessions[socket.ssid], service_name); +var auth = wtva.isAuthorized(); +if (auth === true) { + var password = null; + if (request_headers.Authorization) { + var authheader = request_headers.Authorization.split(' '); + if (authheader[0] == "Basic") { + password = Buffer.from(authheader[1], 'base64').toString(); + if (password) password = password.split(':')[1]; + } + } + if (wtva.checkPassword(password)) { + if (request_headers.query.username) { + var user_info = wtva.getAccountInfo(request_headers.query.username.toLowerCase()); // username search + if (user_info) { + var userAccount = wtva.getAccountBySSID(user_info.ssid); + userAccount.switchUserID(user_info.user_id, false, false); + if (request_headers.query.folder) { + if (userAccount.favstore.favstoreExists()) { + if (userAccount.favstore.folderExists(request_headers.query.folder)) { + userAccount.favstore.deleteFolder(request_headers.query.folder); + } + userAccount.favstore.createTemplateFolder(request_headers.query.folder); + } + } + } + } + headers = `200 OK +Content-Type: text/html +wtv-expire-all: wtv-admin:/regenfavs +wtv-noback-all: wtv-admin:/regenfavs`; + data = ` + + +${minisrv_config.config.service_name} Admin Tricks + + + + +
+
+

${minisrv_config.config.service_name} Admin Tricks

+
+ + + + +` + data += `
+

Restore a default favorites folder for a User

+
+   +


` + if (request_headers.query.username) { + if (user_info && !request_headers.query.folder) { + if (userAccount.favstore.favstoreExists()) { + data += `
+ + +
+
`; + } else { + data += `${user_info.username} has not initialized their favorites.

`; + } + } else { + data += `Successfully regenerated folder ${request_headers.query.folder} for user "${user_info.username}"

`; + } + } + data += ` +
+
+ + +

+Go Back +

+ + +`; + } else { + var errpage = wtvshared.doErrorPage(401, "Please enter the administration password, you can leave the username blank."); + headers = errpage[0]; + data = errpage[1]; + } +} else { + var errpage = wtvshared.doErrorPage(403, auth); + headers = errpage[0]; + data = errpage[1]; +} \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/FarRightTop.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/FarRightTop.gif new file mode 100644 index 00000000..c0b028dc Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/FarRightTop.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/FarRightTopWithNextTab.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/FarRightTopWithNextTab.gif new file mode 100644 index 00000000..2f216513 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/FarRightTopWithNextTab.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/FavoritesBanner.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/FavoritesBanner.gif new file mode 100644 index 00000000..ba0e4f81 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/FavoritesBanner.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/FoldersCoverBorder.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/FoldersCoverBorder.gif new file mode 100644 index 00000000..b43d9b09 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/FoldersCoverBorder.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/LeftBottom.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/LeftBottom.gif new file mode 100644 index 00000000..10d41b58 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/LeftBottom.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/LeftMiddle.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/LeftMiddle.gif new file mode 100644 index 00000000..2de8a99b Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/LeftMiddle.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/LeftMiddleTabOnly.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/LeftMiddleTabOnly.gif new file mode 100644 index 00000000..77a09d19 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/LeftMiddleTabOnly.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/LeftTop.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/LeftTop.gif new file mode 100644 index 00000000..5689eed9 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/LeftTop.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/LeftTopWithPreviousTab.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/LeftTopWithPreviousTab.gif new file mode 100644 index 00000000..f0bb48d1 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/LeftTopWithPreviousTab.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/MiddleTop.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/MiddleTop.gif new file mode 100644 index 00000000..9afd24d4 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/MiddleTop.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/RightBottom.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/RightBottom.gif new file mode 100644 index 00000000..0d13a92e Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/RightBottom.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/RightMiddle.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/RightMiddle.gif new file mode 100644 index 00000000..e185e1d7 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/RightMiddle.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/RightMiddleEdgeOnly.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/RightMiddleEdgeOnly.gif new file mode 100644 index 00000000..9c8e57b9 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/RightMiddleEdgeOnly.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/RightTop.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/RightTop.gif new file mode 100644 index 00000000..71fa0feb Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/RightTop.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/RightTopEdgeOnly.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/RightTopEdgeOnly.gif new file mode 100644 index 00000000..c71f2113 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/RightTopEdgeOnly.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/RightTopMost.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/RightTopMost.gif new file mode 100644 index 00000000..21e8db42 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/RightTopMost.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/WebTVLogoJewel.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/WebTVLogoJewel.gif new file mode 100644 index 00000000..ec3e51dd Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/WebTVLogoJewel.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/fkey.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/fkey.gif new file mode 100644 index 00000000..8a1c5656 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/ROMCache/fkey.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/add.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/add.js new file mode 100644 index 00000000..6b0f9555 --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/add.js @@ -0,0 +1,45 @@ +var minisrv_service_file = true; + +function hex_to_ascii(POST) + { + var hex = POST.toString(); + var str = ''; + for (var n = 0; n < hex.length; n += 2) { + str += String.fromCharCode(parseInt(hex.substr(n, 2), 16)); + } + return str; + } + +var POST = request_headers.post_data; +var image = hex_to_ascii(POST); + +var url = request_headers.request; + +var title = url.split('favorite-title=')[1] +title = title.split('&')[0] + +var folder = url.split('favorite-category=')[1] +folder = folder.split('&')[0] +folder = folder.replaceAll("+", " ") + +var imagetype = url.split('favorite-thumbnail-type=')[1] +imagetype = imagetype.split('&')[0] + +var favurl = url.split('favorite-url=')[1] +favurl = favurl.split('&')[0] + +var favoritenum = 0; +var favstore_exists = ssid_sessions[socket.ssid].favstore.favstoreExists(); +var favarray = ssid_sessions[socket.ssid].favstore.listFavorites(folder); +favoritenum = Object.keys(favarray).length; + +if (favoritenum == minisrv_config.services[service_name].max_favorites_per_folder) +{ + headers = `400 You can only have ${minisrv_config.services[service_name].max_favorites_per_folder} favorites in a folder. Discard some favorites or choose a different folder, then try again.` +} else { + +var createresult = ssid_sessions[socket.ssid].favstore.createFavorite(title, favurl, folder, image, imagetype); + +headers = `200 OK +wtv-expire: wtv-favorite:/serve-browser?favorite_folder_name=${folder}` +} \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/90s.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/90s.gif new file mode 100644 index 00000000..fbb4ac23 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/90s.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/Music.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/Music.gif new file mode 100644 index 00000000..cf284b8c Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/Music.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/RetroSite.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/RetroSite.gif new file mode 100644 index 00000000..2676b135 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/RetroSite.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/Thumbs.db b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/Thumbs.db new file mode 100644 index 00000000..0ed66e9e Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/Thumbs.db differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/funlover.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/funlover.gif new file mode 100644 index 00000000..a53e5a64 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/funlover.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/halen.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/halen.gif new file mode 100644 index 00000000..140342fa Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/halen.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/amazon.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/amazon.gif new file mode 100644 index 00000000..696ad5f5 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/amazon.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/barnesandnoble.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/barnesandnoble.gif new file mode 100644 index 00000000..d5d0ade9 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/barnesandnoble.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/chicago_tribune.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/chicago_tribune.gif new file mode 100644 index 00000000..1fe4d446 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/chicago_tribune.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/ctt-wtv.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/ctt-wtv.gif new file mode 100644 index 00000000..4c1a4abc Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/ctt-wtv.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/discovery.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/discovery.gif new file mode 100644 index 00000000..86f80d5c Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/discovery.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/e_online.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/e_online.gif new file mode 100644 index 00000000..e746c3ab Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/e_online.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/la_times.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/la_times.gif new file mode 100644 index 00000000..67eba7d6 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/la_times.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/msnbc.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/msnbc.gif new file mode 100644 index 00000000..f7882a39 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/msnbc.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/ny_times.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/ny_times.gif new file mode 100644 index 00000000..0b19eec3 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/ny_times.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/pbs_online.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/pbs_online.gif new file mode 100644 index 00000000..aae0e163 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/pbs_online.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/premiere.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/premiere.gif new file mode 100644 index 00000000..fd829717 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/premiere.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/roget.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/roget.gif new file mode 100644 index 00000000..de63abf9 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/roget.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/soap-wtv.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/soap-wtv.gif new file mode 100644 index 00000000..8b330361 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/soap-wtv.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/trivialpursuit.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/trivialpursuit.gif new file mode 100644 index 00000000..b8c7541e Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/trivialpursuit.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/webster.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/webster.gif new file mode 100644 index 00000000..809bdaa0 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/images/webster.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/magnavox.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/magnavox.gif new file mode 100644 index 00000000..c40b10e5 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/magnavox.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/mattman69.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/mattman69.gif new file mode 100644 index 00000000..f594e93e Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/mattman69.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/midnightchannel.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/midnightchannel.gif new file mode 100644 index 00000000..8cc2a059 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/midnightchannel.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/mitsubishi.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/mitsubishi.gif new file mode 100644 index 00000000..3e8c36e3 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/mitsubishi.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/news.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/news.gif new file mode 100644 index 00000000..ce795609 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/news.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/oldavista.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/oldavista.gif new file mode 100644 index 00000000..2d5ae069 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/oldavista.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/oldnet.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/oldnet.gif new file mode 100644 index 00000000..a0d8e257 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/oldnet.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/samsung.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/samsung.gif new file mode 100644 index 00000000..f0835e93 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/samsung.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/simulator.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/simulator.gif new file mode 100644 index 00000000..7ab6db54 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/simulator.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/sony.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/sony.gif new file mode 100644 index 00000000..1710d55e Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/sony.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/sony_pictures.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/sony_pictures.gif new file mode 100644 index 00000000..6b7d9638 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/sony_pictures.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/sony_pictures_store.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/sony_pictures_store.gif new file mode 100644 index 00000000..0ced8f07 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/canned/sony_pictures_store.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-add-folder.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-add-folder.js new file mode 100644 index 00000000..81f45ac6 --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-add-folder.js @@ -0,0 +1,36 @@ +var minisrv_service_file = true; + +var foldername = request_headers.query.new_folder_name; +var favstore_exists = ssid_sessions[socket.ssid].favstore.favstoreExists(); +var folder_exists = ssid_sessions[socket.ssid].favstore.folderExists(foldername); +var folder_array = ssid_sessions[socket.ssid].favstore.getFolders(); + +if (foldername) +{ + if (favstore_exists != true) + ssid_sessions[socket.ssid].favstore.createFavstore(); + + if (folder_exists != true) + { + if (folder_array.length < minisrv_config.services[service_name].max_folders) + { + //if (ssid_sessions[socket.ssid].favstore.checkFolderName(foldername) == true) + //{ + ssid_sessions[socket.ssid].favstore.createFolder(foldername); + headers = `300 OK +Connection: Keep-Alive +Content-Type: text/html +Location: wtv-favorite:/favorite +wtv-expire-all: wtv-favorite:` + //} else { + // headers = `400 That folder name is not valid. Choose a different name and try again.` + //} + } else { + headers = `400 You can only have ${minisrv_config.services[service_name].max_folders} folders at one time. Delete some folders and try again.` + } + } else { + headers = `400 That folder already exists. Choose a different name and try again.` + } +} else { + headers = `400 Please type a folder name.` +} diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-arrange-favorites.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-arrange-favorites.js new file mode 100644 index 00000000..351c5580 --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-arrange-favorites.js @@ -0,0 +1,14 @@ +var minisrv_service_file = true; + +var with_pictures = request_headers.query.with_pictures + +if (with_pictures = "on") +{ + ssid_sessions[socket.ssid].setSessionData("subscriber_fav_images", true) +} else { + ssid_sessions[socket.ssid].setSessionData("subscriber_fav_images", false) +} +ssid_sessions[socket.ssid].saveSessionData(); + +headers = `300 OK +Location: wtv-favorite:/favorite` \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-discard-favorites.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-discard-favorites.js new file mode 100644 index 00000000..b4701981 --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-discard-favorites.js @@ -0,0 +1,84 @@ +var minisrv_service_file = true; +var errpage; + +var query = request_headers.query + +var discardAll = request_headers.query.DiscardAll + +if (discardAll != "Discard All") +{ +var strName, strValue ; + +for(strName in query) +{ + if (strName != "favorite_folder_name") + break; +} + +strName = strName.replaceAll("+", " "); +} +var folder = request_headers.query.favorite_folder_name; +if (request_headers.query.ForwardToBrowser) +{ + headers = `300 OK +Connection: Keep-Alive +Content-Type: text/html +Location: wtv-favorite:/serve-browser?favorite_folder_name=${folder}` +} else if (strName != "getCaseInsensitiveKey") { +var favorite = ssid_sessions[socket.ssid].favstore.getFavorite(folder, strName); + +if (errpage) { + headers = errpage[0]; + data = errpage[1]; +} else { + if (!request_headers.query.confirm_remove) { + if (discardAll == "Discard All") + { + var message = `Are you sure you want to discard all favorites in this folder?`; + var removeurl = request_headers.request_url; + removeurl += "&confirm_remove=true&DiscardAll=Discard All"; + } else { + var message = `Are you sure you want to discard ${favorite.title}?`; + var removeurl = request_headers.request_url; + removeurl += "&confirm_remove=true"; + } + + + var confirmAlert = new clientShowAlert({ + 'message': message, + 'buttonlabel1': "Don't Remove", + 'buttonaction1': "client:donothing", + 'buttonlabel2': "Remove", + 'buttonaction2': removeurl, + 'noback': true, + }).getURL(); + headers = `300 OK +Connection: Keep-Alive +Content-Type: text/html +wtv-expire-all: wtv-favorite: +wtv-visit: ${confirmAlert} +Location: ${confirmAlert}` + } else { + + var gourl = `wtv-favorite:/serve-discard-favorites?favorite_folder_name=${folder}`; + if (discardAll == "Discard All") + { + ssid_sessions[socket.ssid].favstore.clearFolder(folder); + } else { + ssid_sessions[socket.ssid].favstore.deleteFavorite(strName, folder); + } + + headers = `300 OK +Connection: Keep-Alive +Content-Type: text/html +wtv-expire-all: wtv-favorite: +wtv-visit: ${gourl} +Location: ${gourl}` + } +} +} else { + headers = `300 OK +Connection: Keep-Alive +Content-Type: text/html +Location: wtv-favorite:/serve-browser?favorite_folder_name=${folder}` +} \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-discard-folders.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-discard-folders.js new file mode 100644 index 00000000..64198e59 --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-discard-folders.js @@ -0,0 +1,76 @@ +var minisrv_service_file = true; +var errpage; + +var query = request_headers.query +var folder_array = ssid_sessions[socket.ssid].favstore.getFolders(); +var totalfavorites = folder_array.length; + +var strName, strValue ; + +for(strName in query) +{ + break; +} + +strName = strName.replaceAll("+", " "); + +if (request_headers.query.ForwardToFolders) +{ + headers = `300 OK +Connection: Keep-Alive +Content-Type: text/html +Location: wtv-favorite:/favorite` +} else if (strName != "getCaseInsensitiveKey") { +var folder = ssid_sessions[socket.ssid].favstore.getFolders(); +var folderdata = ssid_sessions[socket.ssid].favstore.listFavorites(strName); +var numoffavorites = Object.keys(folderdata).length; + +if (totalfavorites == 1) { + errpage = wtvshared.doErrorPage(400, "You cannot remove your last folder."); +} + +if (errpage) { + headers = errpage[0]; + data = errpage[1]; +} else { + if (!request_headers.query.confirm_remove) { + var message = ''; + if (numoffavorites == 0) { + message = `Are you sure you want to remove ${strName}?`; + } else { + message = `Removing ${strName} will also remove the ${numoffavorites} favorites it contains.`; + } + var removeurl = request_headers.request_url; + removeurl += "&confirm_remove=true"; + + var confirmAlert = new clientShowAlert({ + 'message': message, + 'buttonlabel1': "Don't Remove", + 'buttonaction1': "client:donothing", + 'buttonlabel2': "Remove", + 'buttonaction2': removeurl, + 'noback': true, + }).getURL(); + headers = `300 OK +Connection: Keep-Alive +Content-Type: text/html +wtv-expire-all: wtv-favorite: +Location: ${confirmAlert}` + } else { + + var gourl = "wtv-favorite:/serve-discard-folders"; + ssid_sessions[socket.ssid].favstore.deleteFolder(strName); + + headers = `300 OK +Connection: Keep-Alive +Content-Type: text/html +wtv-expire-all: wtv-favorite: +Location: ${gourl}` + } +} +} else { + headers = `300 OK +Connection: Keep-Alive +Content-Type: text/html +Location: wtv-favorite:/serve-discard-folders` +} \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-move-favorites.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-move-favorites.js new file mode 100644 index 00000000..9617bb8b --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-move-favorites.js @@ -0,0 +1,43 @@ +var minisrv_service_file = true; + +var favoritenum = 0; +var folder = request_headers.query.favorite_folder_name || null; +var favarray = ssid_sessions[socket.ssid].favstore.listFavorites(folder); +var error_occured = false; +if (!folder) error_occured = true; +else { + favoritenum = Object.keys(favarray).length; + + if (typeof request_headers.query.favoriteid === 'string') { + // one favorite + var favid = request_headers.query.favoriteid; + var favfolder = request_headers.query.favoritefolder; + if (folder != favfolder) ssid_sessions[socket.ssid].favstore.moveFavorite(folder, favfolder, favid); + } else { + if (request_headers.query.favoriteid.length == request_headers.query.favoritefolder.length) { + // both queries should have the same number of entries + Object.keys(request_headers.query.favoriteid).forEach(function (k) { + var favid = request_headers.query.favoriteid[k]; + var favfolder = request_headers.query.favoritefolder[k]; + if (folder != favfolder) ssid_sessions[socket.ssid].favstore.moveFavorite(folder, favfolder, favid); + }) + } else { + error_occured = true; + } + } + + if (!error_occured) { + var gourl = `wtv-favorite:/serve-browser?favorite_folder_name=${folder}`; + + headers = `300 OK +Connection: Keep-Alive +Content-Type: text/html +wtv-expire-all: wtv-favorite: +wtv-visit: ${gourl} +Location: ${gourl}` + } else { + var err = doErrorPage(500); + headers = err[0]; + data = err[1]; + } +} \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-rename-favorites.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-rename-favorites.js new file mode 100644 index 00000000..4337bd56 --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-rename-favorites.js @@ -0,0 +1,94 @@ +var minisrv_service_file = true; + +var favoritenum = 0; +var folder = request_headers.query.favorite_folder_name; +var favarray = ssid_sessions[socket.ssid].favstore.listFavorites(folder); + +favoritenum = Object.keys(favarray).length; + +for (let i = 0; i < favoritenum; i++) { + switch(i) { + case 0: + var favid = request_headers.query.favorite0id; + var favname = request_headers.query.favorite0name; + break; + case 1: + var favid = request_headers.query.favorite1id; + var favname = request_headers.query.favorite1name; + break; + case 2: + var favid = request_headers.query.favorite2id; + var favname = request_headers.query.favorite2name; + break; + case 3: + var favid = request_headers.query.favorite3id; + var favname = request_headers.query.favorite3name; + break; + case 4: + var favid = request_headers.query.favorite4id; + var favname = request_headers.query.favorite4name; + break; + case 5: + var favid = request_headers.query.favorite5id; + var favname = request_headers.query.favorite5name; + break; + case 6: + var favid = request_headers.query.favorite6id; + var favname = request_headers.query.favorite6name; + break; + case 7: + var favid = request_headers.query.favorite7id; + var favname = request_headers.query.favorite7name; + break; + case 8: + var favid = request_headers.query.favorite8id; + var favname = request_headers.query.favorite8name; + break; + case 9: + var favid = request_headers.query.favorite9id; + var favname = request_headers.query.favorite9name; + break; + case 10: + var favid = request_headers.query.favorite10id; + var favname = request_headers.query.favorite10name; + break; + case 11: + var favid = request_headers.query.favorite11id; + var favname = request_headers.query.favorite11name; + break; + case 12: + var favid = request_headers.query.favorite12id; + var favname = request_headers.query.favorite12name; + break; + case 13: + var favid = request_headers.query.favorite13id; + var favname = request_headers.query.favorite13name; + break; + case 14: + var favid = request_headers.query.favorite14id; + var favname = request_headers.query.favorite14name; + break; + case 15: + var favid = request_headers.query.favorite15id; + var favname = request_headers.query.favorite15name; + break; + case 16: + var favid = request_headers.query.favorite16id; + var favname = request_headers.query.favorite16name; + break; + case 17: + var favid = request_headers.query.favorite17id; + var favname = request_headers.query.favorite17name; + break; + } + ssid_sessions[socket.ssid].favstore.changeFavoriteName(favid, folder, favname); +} + +var gourl = `wtv-favorite:/serve-browser?favorite_folder_name=${folder}`; + +headers = `300 OK +Connection: Keep-Alive +Content-Type: text/html +wtv-expire-all: wtv-favorite: +wtv-visit: ${gourl} +Location: ${gourl}` diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-samples-page.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-samples-page.js new file mode 100644 index 00000000..c743330f --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-samples-page.js @@ -0,0 +1,42 @@ +var minisrv_service_file = true; + +var totalfavorites = 0; + +var createFun = request_headers.query.Fun; +var createMoney = request_headers.query.Money; +var createMovies = request_headers.query.Movies; +var createNews = request_headers.query.News; +var createRecommended = request_headers.query.Recommended; +var createReference = request_headers.query.Reference; +var folder_array = ssid_sessions[socket.ssid].favstore.getFolders(); +totalfavorites = folder_array.length; + +if (totalfavorites < 14) +{ + if (createFun == "true") + ssid_sessions[socket.ssid].favstore.createTemplateFolder("Fun"); + + if (createMoney == "true") + ssid_sessions[socket.ssid].favstore.createTemplateFolder("Money"); + + if (createMovies == "true") + ssid_sessions[socket.ssid].favstore.createTemplateFolder("Movies"); + + if (createNews == "true") + ssid_sessions[socket.ssid].favstore.createTemplateFolder("News"); + + if (createRecommended == "true") + ssid_sessions[socket.ssid].favstore.createTemplateFolder("Recommended"); + console.log("FUGHFVJSGHJFDGIJUFDSHGFJDSKHJKLGFHJKHDJKHJKLGF " + createRecommended) + + if (createReference == "true") + ssid_sessions[socket.ssid].favstore.createTemplateFolder("Reference"); + + headers = `300 OK +Connection: Keep-Alive +Content-Type: text/html +Location: wtv-favorite:/favorite +wtv-expire-all: wtv-favorite:` +} else { + headers = `400 You can only have 14 folders at one time. Delete some folders and try again.` +} \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-shortcuts-favorites.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-shortcuts-favorites.js new file mode 100644 index 00000000..4a34088c --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/commit-shortcuts-favorites.js @@ -0,0 +1,9 @@ +var minisrv_service_file = true; + +var folder = request_headers.query.favorite_folder_name; +var key = request_headers.query.Choose; +var id = request_headers.query.favoriteid; + +ssid_sessions[socket.ssid].favstore.createShortcutKey(); +ssid_sessions[socket.ssid].favstore.updateShortcutKey("none", key, folder, id); + diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/favorite-index.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/favorite-index.js new file mode 100644 index 00000000..8947febc --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/favorite-index.js @@ -0,0 +1,18 @@ +var minisrv_service_file = true; + +var favstore_exists = ssid_sessions[socket.ssid].favstore.favstoreExists(); + +if (favstore_exists != true) +{ + ssid_sessions[socket.ssid].favstore.createFavstore(); + headers = `300 OK +Location: wtv-favorite:/favorite` +} else { + +var folder_array = ssid_sessions[socket.ssid].favstore.getFolders(); +var url = request_headers.request; +var key = url.split('?')[1] + +headers = `400 You have not assigned a favorite to ${key}` + +} \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/favorite.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/favorite.js new file mode 100644 index 00000000..bdfcb0bb --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/favorite.js @@ -0,0 +1,619 @@ +var minisrv_service_file = true; + +var favstore_exists = ssid_sessions[socket.ssid].favstore.favstoreExists(); + +if (favstore_exists != true) +{ + ssid_sessions[socket.ssid].favstore.createFavstore(); + headers = `300 OK +Location: wtv-favorite:/favorite` +} else { + +var folder_array = ssid_sessions[socket.ssid].favstore.getFolders(); +var totalfavorites = folder_array.length; +var stopdrawing = false; + +headers = `200 OK +Connection: Keep-Alive +Content-Type: text/html +wtv-expire-all: wtv-favorite:/serve-browser +wtv-expire-all: wtv-favorite:/favorite +` + + +data = ` + + +Favorite folders + + + + + + + + + + +
+ + +
+ + + +
+
+ + + +
+ +
+
+
+ +
+
+
+ +
+ + +
+ +
+ Add folder   +
+
+
+
+ +
+
+ +
+
+ +
+ + +
+ +
+ Remove      +
+
+
+
+ +
+
+ +
+
+ +
+ + +
+ +
+ Help            +
+
+
+
+ +
+
+ +
+
+
+
+
+ +
+ +
+
+
+
+ + + + +
+
+ +
+ +Favorite folders +for ${ssid_sessions[socket.ssid].getSessionData("subscriber_username") || "You"} + +
+
+
+ + +
+ +
+ +
+ + + + + + +
` + var kval = 0; + // process evens + Object.keys(folder_array).forEach(function (k) { + if (k == 0) return; // skip 0 since it was processed above + if (parseInt(k) % 2 == 0) { + // even + // Left Middle + data += `
+ +
+ + + + + + +
`; + kval = k; + } + }); + + // process end if total is even + if (folder_array.length > 1) { + if (folder_array.length % 2 == 0) { + data += `
+ +
+ + +
`; + } + } + + // process middle (folder 2 (id 1)) + if (folder_array.length == 1) { + // no folder 2 + data += `
+
+ +
+
+
+ +
+
+ +
+ + + +
` + } else { + // process folder 2 (id 1) + data += `
+
+ +
+
+
+ +
+
+ +
+ + + + + + +
`; + } + + // process odds + Object.keys(folder_array).forEach(function (k) { + if (k == 1) return; // skip 1 since it was processed above + if (parseInt(k) % 2 != 0) { + // odd + // Right Middle + data += `
+ +
+ + + + + + +
`; + } + }); + + // process end if total is odd + if (folder_array.length > 1) { + if (folder_array.length % 2 != 0) { + data += `
+ +
+ + +
`; + } + } + + /* +if (totalfavorites > 2) +{ + data += ` +
+ +
+ + + + + + +
` +} else if (totalfavorites == 2) { + data += ` +
+ +
+ + +
` + +stopdrawing = true; + +} +if (totalfavorites > 4) +{ + data += ` +
+ +
+ + + + + + +
` +} else if (totalfavorites == 4) { + data += ` +
+ +
+ + +
` + +stopdrawing = true; + +} +if (totalfavorites > 6) +{ + data += ` +
+ +
+ + + + + + +
` +} else if (totalfavorites == 6) { + data += ` +
+ +
+ + +
` + +stopdrawing = true; + +} +if (totalfavorites > 8) +{ + data += ` +
+ +
+ + + + + + +
` +} else if (totalfavorites == 8) { + data += ` +
+ +
+ + +
` + +stopdrawing = true; + +} +if (totalfavorites > 10) +{ + data += ` +
+ +
+ + + + + + +
` +} else if (totalfavorites == 10) { + data += ` +
+ +
+ + +
` + +stopdrawing = true; + +} +if (totalfavorites > 12) +{ + data += ` +
+ +
+ + + + + + +
` +} else if (totalfavorites == 12) { + data += ` +
+ +
+ + +
` +} + +if (totalfavorites == 14) { + data += ` +
+ +
+ + +
` + +stopdrawing = true; + +} +if (totalfavorites > 1) +{ + data += `
+
+ +
+
+
+ +
+
+ +
+ + + + + + +
` +} else if (totalfavorites == 1) { + data += `
+
+ +
+
+
+ +
+
+ +
+ + + +
` + +stopdrawing = true; + +} +if (totalfavorites > 3) +{ + data += ` +
+ +
+ + + + + + +
` +} else if (totalfavorites == 3) { + data += ` +
+ +
+ + +
` + +stopdrawing = true; + +} +if (totalfavorites > 5) +{ + data += ` +
+ +
+ + + + + + +
` +} else if (totalfavorites == 5) { + data += ` +
+ +
+ + +
` + +stopdrawing = true; + +} +if (totalfavorites > 7) +{ + data += ` +
+ +
+ + + + + + +
` +} else if (totalfavorites == 7) { + data += ` +
+ +
+ + +
` + +stopdrawing = true; + +} +if (totalfavorites > 9) +{ + data += ` +
+ +
+ + + + + + +
` +} else if (totalfavorites == 9) { + data += ` +
+ +
+ + +
` + +stopdrawing = true; + +} +if (totalfavorites > 11) +{ + data += ` +
+ +
+ + + + + + +
` +} else if (totalfavorites == 11) { + data += ` +
+ +
+ + +
` + +stopdrawing = true; + +} +if (totalfavorites > 13) +{ + data += ` +
+ +
+ + + + + + +
` +} else if (totalfavorites == 13) { + data += ` +
+ +
+ + +
` + +stopdrawing = true; + +} +*/ + data += ` +
+
+ +
+
+ + + +
+`; +} \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/get-thumbnail.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/get-thumbnail.js new file mode 100644 index 00000000..b16eb4df --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/get-thumbnail.js @@ -0,0 +1,13 @@ +var minisrv_service_file = true; + +var errpage = null; + +var id = request_headers.query.id; +var folder = request_headers.query.folder; +var favorite = ssid_sessions[socket.ssid].favstore.getFavorite(folder, id); +if (!favorite) errpage = wtvshared.doErrorPage(400, "Invalid favorite ID"); + + + headers = `200 OK +Content-Type: ${favorite.imagetype}`; + data = new Buffer.from(favorite.image, 'base64'); diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/images/checkmark.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/images/checkmark.gif new file mode 100644 index 00000000..19ae5703 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/images/checkmark.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/images/fkey.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/images/fkey.gif new file mode 100644 index 00000000..8a1c5656 Binary files /dev/null and b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/images/fkey.gif differ diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/list-folders.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/list-folders.js new file mode 100644 index 00000000..13ed2b95 --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/list-folders.js @@ -0,0 +1,16 @@ +var minisrv_service_file = true; + +var favstore_exists = ssid_sessions[socket.ssid].favstore.favstoreExists(); + +if (favstore_exists != true) +{ + ssid_sessions[socket.ssid].favstore.createFavstore(); +} + +var folder_array = ssid_sessions[socket.ssid].favstore.getFolders(); +var data = ""; + +for (let i = 0; i < folder_array.length; i++) data += folder_array[i] + "\0"; + +headers = `200 OK +Content-type: text/plain` \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-add-folder-page.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-add-folder-page.js new file mode 100644 index 00000000..8314a03d --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-add-folder-page.js @@ -0,0 +1,123 @@ +var minisrv_service_file = true; + +headers = `200 OK +Connection: Keep-Alive +Content-Type: text/html` + + +data = ` + + +Add a folder + + + + + + +
+ + +
+ + + +
+
+ + + +
+ +
+
+
+ +
+
+
+ +
+
+
+
+
+ +
+ +
+
+
+
+ + + +
+
+ +
+ +Add a folder + + + + +
+
+ + + + + + +
+ +
+
+Type the name of the new folder you want
+to add, and then choose Add.
+
+ +
+
+ +Folder name + + + + + + + + +
+
+
+
+Or choose Samples to select one or
+more sample folders.
+
+
+
+ + + + + +
+
+
+
+ + + +`; \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-arrange-favorites.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-arrange-favorites.js new file mode 100644 index 00000000..d474618f --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-arrange-favorites.js @@ -0,0 +1,233 @@ +var minisrv_service_file = true; + +var favoritenum = 0; + +var foldername = request_headers.query.favorite_folder_name; + +var favarray = ssid_sessions[socket.ssid].favstore.listFavorites(foldername); + +var folder_array = ssid_sessions[socket.ssid].favstore.getFolders(); + +var folderid = folder_array.indexOf(foldername); + +var numoffolders = folder_array.length; + +favoritenum = Object.keys(favarray).length; + + +headers = `200 OK +Connection: Keep-Alive +Content-Type: text/html` + + +data = ` + +Listing favorites + + + + +
+ + +
+ + + +
+
+ + + +
+ +
+
+
+ +
+
+
+ +
+ +
+ +
+ Folders +
+
+
+
+ +
+
+ +
+
+ +
+ +
+ +
+ Add folder +
+
+
+
+ +
+
+ +
+
+ +
+ + +
+ +
+ Help +
+
+
+
+ +
+
+ +
+
+
+
+
+ +
+ +
+
+
+
+ + + + +
+
+ + + +
+Listing favorites in this folder: + +
+
+
+ +
+ +
+ +
+ +
+
+ +
+
+
+
+ + + + +
+
+
+ +
+ +
+
+
+
+ +
+
+ + +
+
+
+ +
+
+ + + + + + + + + + +
+ + + +
+
+
+ +

Choose With pictures +to display the favorite's +pictures. +

If With pictures is +unchecked, the +favorites will be listed +by name only. +

+ +
+ + + +
+ + + + +With pictures +
+
+
+
+ +
+ + +
+ +
+ + +
+ +
+ + + + + +
+ + +`; \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-browser.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-browser.js new file mode 100644 index 00000000..c5e26252 --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-browser.js @@ -0,0 +1,237 @@ +var minisrv_service_file = true; + +var favoritenum = 0; + +var foldername = request_headers.query.favorite_folder_name; + +var favarray = ssid_sessions[socket.ssid].favstore.listFavorites(foldername); + +var folder_array = ssid_sessions[socket.ssid].favstore.getFolders(); + +var folderid = folder_array.indexOf(foldername); + +var numoffolders = folder_array.length; + +favoritenum = Object.keys(favarray).length; + +headers = `200 OK +Connection: Keep-Alive +Content-Type: text/html +wtv-expire-all: wtv-favorite:/serve-browser +wtv-expire-all: wtv-favorite:/favorite +` + + +data = ` + +Favorites + + + + +
+ + +
+ + + +
+
+ + + +
+ +
+
+
+ +
+
+
+ +
+ +
+ +
+ Folders +
+
+
+
+ +
+
+ +
+
+ +
+ +
+ +
+ Organize +
+
+
+
+ +
+
+ +
+
+ +
+ + +
+ +
+ Help +
+
+
+
+ +
+
+ +
+
+
+
+
+ +
+ +
+
+
+
+ + + + +
+
+ + + +
+Favorites for ${ssid_sessions[socket.ssid].getSessionData("subscriber_username") || "You"} + +
+
+
+ +
+` +if (folderid !== 0) +{ + data += ` +
+ +
+ +
+
+` +} else { + data += ` +
+ +
+ +
+
+` +} +data += ` +
+
+
+
+ + + + +
+
+
+ +
+ +
+
+
+
+` +if (folderid !== numoffolders - 1) +{ + data += `
+
+ + +
+
+ +
  +
+
+
+
+
+
+ +
+
` +} else { + data += `
+
+ + +
+
+
+ +
+
` +} data += ` + + +
+
+
+`; + +// favorite loop +Object.keys(favarray).forEach(function (k) { + var url = decodeURIComponent(favarray[k].url); + data += ` + +
`; + if (favarray[k].imagetype == "url") + data += `
`; + else + data += `
`; + data += ` +
+${favarray[k].title} +
+
+
+
`; + if ((parseInt(k) + 1) % 3 == 0) { + // every 3 objects + data += `
+ +
+`; + } +}); + +data += ``; \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-choose-shortcut-favorites.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-choose-shortcut-favorites.js new file mode 100644 index 00000000..75b8d315 --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-choose-shortcut-favorites.js @@ -0,0 +1,404 @@ +var minisrv_service_file = true; + +var favoritenum = 0; + +var foldername = request_headers.query.favorite_folder_name; + +var favarray = ssid_sessions[socket.ssid].favstore.listFavorites(foldername); + +var folder_array = ssid_sessions[socket.ssid].favstore.getFolders(); + +var folderid = folder_array.indexOf(foldername); + +var favid = request_headers.query.favoriteid; + +var numoffolders = folder_array.length; + +favoritenum = Object.keys(favarray).length; + +var favoritedata = ssid_sessions[socket.ssid].favstore.getFavorite(foldername, favid); + + +headers = `200 OK +Connection: Keep-Alive +Content-Type: text/html` + + +data = ` + +Choose shortcut label + + + + + +
+ + +
+ + + +
+
+ + + +
+ +
+
+
+ +
+
+
+ +
+ +
+ +
+ Favorites +
+
+
+
+ +
+
+ +
+
+
+
+
+ +
+ +
+
+
+
+ + + + +
+
+ + + +
+Choose shortcut label +
+
+
+ +
+
+ +Choose a shortcut label for ${favoritedata.title}, then choose Done below. +
+
+
+
+
+
+
+ +
+
+ +
+
+
+ +
+ +
+ +
+
+ +
+
+
+ + +Not assigned
+
+
+
+ + +  F1 + +
+
+
+ + + +
+
+
+
+
+
+ +
+
+ +
+
+
+ +
+ + +
+
+ +
+
+
+ + +Not assigned
+
+
+
+ + +  F2 + +
+
+ + + + +
+
+
+
+
+
+ +
+
+ +
+
+
+ +
+ + +
+
+ +
+
+
+ + +Not assigned
+
+
+
+ + +  F3 + +
+
+ + + + +
+
+
+
+
+
+ +
+
+ +
+
+
+ +
+ + +
+
+ +
+
+
+ + +Not assigned
+
+
+
+ + +  F4 + +
+
+ + + + +
+
+
+
+
+
+ +
+
+ +
+
+
+ +
+ + +
+
+ +
+
+
+ + +Not assigned
+
+
+
+ + +  F5 + +
+
+ + + + +
+
+
+
+
+
+ +
+
+ +
+
+
+ +
+ + +
+
+ +
+
+
+ + +Not assigned
+
+
+
+ + +  F6 + +
+
+ + + + +
+
+
+
+
+
+ +
+
+ +
+
+
+ +
+ + +
+
+ +
+
+
+ + +Not assigned
+
+
+
+ + +  F7 + +
+
+ + + + + +
+
+
+
+
+
+
+ +
+
+ +
+
+
+ + + +
+
+ + + + + +
+ +
` \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-discard-favorites.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-discard-favorites.js new file mode 100644 index 00000000..ca695dc8 --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-discard-favorites.js @@ -0,0 +1,228 @@ +var minisrv_service_file = true; + +var favoritenum = 0; + +var foldername = request_headers.query.favorite_folder_name; + +var favarray = ssid_sessions[socket.ssid].favstore.listFavorites(foldername); + +var folder_array = ssid_sessions[socket.ssid].favstore.getFolders(); + +var folderid = folder_array.indexOf(foldername); + +var numoffolders = folder_array.length; + +favoritenum = Object.keys(favarray).length; + + +headers = `200 OK +Connection: Keep-Alive +Content-Type: text/html` + + +data = ` + +Discard favorites + + + + + +
+ + +
+ + + +
+
+ + + +
+ +
+
+
+ +
+
+
+ +
+ +
+ +
+ Organize +
+
+
+
+ +
+
+ +
+
+
+
+
+ +
+ +
+
+
+
+ + + + +
+
+ + + +
+Discard favorites in this folder: + +
+
+
+ +
+ +
+ +
+ +
+
+ +
+
+
+
+ + + + +
+
+
+ +
+ +
+
+
+
+ +
+
+ + +
+
+
+ + + +
+
` +if (favoritenum == 0) +{ + data += "   There are no favorites to discard in this folder."; +} else { +for (let i = 0; i < favoritenum; i++) { +data += ` +
+` +if (favarray[i].imagetype == "url") + data += `
` +else + data += `
` +data += ` +
+ +${favarray[i].title}
+ +
+ + + + + +
+ +
+
+
+ +
+
+ +
+
+
+

` +} +} +data += ` + + +
+
+
+
+ +
+
+ +
+
+
+
+ + + +
+
+ + + +` +if (favoritenum != 0) +{ + data += ` +` +} +data += ` + + + + + + + +
+
+
+ + +`; \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-discard-folders.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-discard-folders.js new file mode 100644 index 00000000..d1dd405f --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-discard-folders.js @@ -0,0 +1,202 @@ +var minisrv_service_file = true; + +var folder_array = ssid_sessions[socket.ssid].favstore.getFolders(); +var totalfavorites = folder_array.length; + +headers = `200 OK +Connection: Keep-Alive +Content-Type: text/html` + + +data = ` + + +Remove folders + + + + + + + +
+ + +
+ + + +
+
+ + + +
+ +
+
+
+ +
+
+
+ +
+ +
+ +
+ Favorites +
+
+
+
+ +
+
+ +
+
+
+
+
+ +
+ +
+
+
+
+ + + + +
+
+ +
+ +Remove folders + +
+
+
+
+ + +
+ +
+ +
+ +
+ + + + + +
+
+ +
+
+
` +for (let i = 1; i < totalfavorites; i++) { +data += `
+ +
+ +
+ + + + + +
+
+ +
+
+
` +} +if (totalfavorites == 1) + data += `
+
+
+
+
+
+` +else + data += `
+ +
+
+
+ +
+
+ +
+
+ +
+ + + + +
+
` +for (let i = 1; i < totalfavorites; i++) { +data += ` +
+ +
+
+ +
+ + + + +
+
` +} +data += ` +
+
+ + +
` +if (totalfavorites == 1) + data += "   You cannot delete your last folder." +data += ` +
+
+ + +
+
+ + + + +
+
+
+ + +`; \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-move-favorites.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-move-favorites.js new file mode 100644 index 00000000..f9f26738 --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-move-favorites.js @@ -0,0 +1,239 @@ +var minisrv_service_file = true; + +var favoritenum = 0; +var foldernum = 0; + +var foldername = request_headers.query.favorite_folder_name; + +var favarray = ssid_sessions[socket.ssid].favstore.listFavorites(foldername); + +var folder_array = ssid_sessions[socket.ssid].favstore.getFolders(); + +var folderid = folder_array.indexOf(foldername); + +var numoffolders = folder_array.length; + +favoritenum = Object.keys(favarray).length; +foldernum = folder_array.length; + +var folderlist = `" + + +headers = `200 OK +Connection: Keep-Alive +Content-Type: text/html` + + +data = ` + +Move favorites + + + + + +
+ + +
+ + + +
+
+ + + +
+ +
+
+
+ +
+
+
+ +
+ +
+ +
+ Organize +
+
+
+
+ +
+
+ +
+
+
+
+
+ +
+ +
+
+
+
+ + + + +
+
+ + + +
+Move favorites in this folder: + +
+
+
+ +
+ +
+ +
+ +
+
+ +
+
+
+
+ + + + +
+
+
+ +
+ +
+
+
+
+ +
+
+ + +
+
+
+ + + +
+
` +if (favoritenum == 0) +{ + data += "   There are no favorites to move in this folder."; +} else { +for (let i = 0; i < favoritenum; i++) { +data += ` +
+` +if (favarray[i].imagetype == "url") + data += `
` +else + data += `
` +data += ` +
+ +${favarray[i].title}
+ +
+ + +` +data += ` + + +
+ +
+
+
+ +
+
+ +
+
+
+

` +} +} +data += ` + +
+
+
+
+ +
+
+ +
+
+
+ + +
+
+ + + + + + + + + + + +
+
+ + + +`; \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-organize-favorites.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-organize-favorites.js new file mode 100644 index 00000000..7f1e2d9d --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-organize-favorites.js @@ -0,0 +1,220 @@ +var minisrv_service_file = true; + +var favoritenum = 0; + +var foldername = request_headers.query.favorite_folder_name; + +var favarray = ssid_sessions[socket.ssid].favstore.listFavorites(foldername); + +var folder_array = ssid_sessions[socket.ssid].favstore.getFolders(); + +var folderid = folder_array.indexOf(foldername); + +var numoffolders = folder_array.length; + +favoritenum = Object.keys(favarray).length; + + +headers = `200 OK +Connection: Keep-Alive +Content-Type: text/html` + + +data = ` + +Organize favorites + + + + +
+ + +
+ + + +
+
+ + + +
+ +
+
+
+ +
+
+
+ +
+ +
+ +
+ Folders +
+
+
+
+ +
+
+ +
+
+ +
+ +
+ +
+ Add folder +
+
+
+
+ +
+
+ +
+
+ +
+ + +
+ +
+ Help +
+
+
+
+ +
+
+ +
+
+
+
+
+ +
+ +
+
+
+
+ + + + +
+
+ + + +
+Organize favorites in this folder: + +
+
+
+ +
+ +
+ +
+ +
+
+ +
+
+
+
+ + + + +
+
+
+ +
+ +
+
+
+
+ +
+
+ + +
+
+
+ +
+
+ + +
+
+ + + + + + +
+ +Discard
+Remove unwanted favorites from this folder
+
+ +Move to folder
+Move favorites from this folder to another
+ +
+ + +Rename
+Rename favorites in this folder
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ + +
+
+
+ + +`; \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-rename-favorites.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-rename-favorites.js new file mode 100644 index 00000000..79c5c1f5 --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-rename-favorites.js @@ -0,0 +1,218 @@ +var minisrv_service_file = true; + +var favoritenum = 0; + +var foldername = request_headers.query.favorite_folder_name; + +var favarray = ssid_sessions[socket.ssid].favstore.listFavorites(foldername); + +var folder_array = ssid_sessions[socket.ssid].favstore.getFolders(); + +var folderid = folder_array.indexOf(foldername); + +var numoffolders = folder_array.length; + +favoritenum = Object.keys(favarray).length; + + +headers = `200 OK +Connection: Keep-Alive +Content-Type: text/html` + + +data = ` + +Rename favorites + + + + + +
+ + +
+ + + +
+
+ + + +
+ +
+
+
+ +
+
+
+ +
+ +
+ +
+ Organize +
+
+
+
+ +
+
+ +
+
+
+
+
+ +
+ +
+
+
+
+ + + + +
+
+ + + +
+Rename favorites in this folder: + +
+
+
+ +
+ +
+ +
+ +
+
+ +
+
+
+
+ + + + +
+
+
+ +
+ +
+
+
+
+ +
+
+ + +
+
+
+ + + +
+
` +if (favoritenum == 0) +{ + data += "   There are no favorites to rename in this folder."; +} else { +for (let i = 0; i < favoritenum; i++) { +data += ` +
+` +if (favarray[i].imagetype == "url") + data += `
` +else + data += `
` +data += ` +
+ + + + + + + + +
+ +
+
+
+ +
+
+ +
+
+
+

` +} +} +data += ` + + +
+
+
+
+ +
+
+ +
+
+
+
+ + + +
+
+ + + + + + + + + + + +
+
+
+ + +`; \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-samples-page.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-samples-page.js new file mode 100644 index 00000000..45f0f955 --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-samples-page.js @@ -0,0 +1,271 @@ +var minisrv_service_file = true; + +headers = `200 OK +Connection: Keep-Alive +Content-Type: text/html` + + +data = ` + + +Add sample folders + + + + + + + +
+ + +
+ + + +
+
+ + + +
+ +
+
+
+ +
+
+
+ +
+ +
+ +
+ Favorites +
+
+
+
+ +
+
+ +
+
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+ +
+ +Add sample folders + +
+
+
+ +
+
+ + +Mark the sample folders you want
+to add, and then choose Add.
+
+You can remove an existing sample folder
+by going to the folder and choosing Organize.
+
+ +
+
+ +
+ +
+ + +
+ + + + +
+
` +if (ssid_sessions[socket.ssid].favstore.folderExists("Fun") == true) +{ + data += ` + + + +
+ + + + Fun + +
` +} else { + data += ` +
+ +  Fun +` +} +if (ssid_sessions[socket.ssid].favstore.folderExists("Money") == true) +{ + data += ` + + + +
+ + + + Money + +
` +} else { + data += ` +
+ +  Money +` +} data += ` + +
` +if (ssid_sessions[socket.ssid].favstore.folderExists("Movies") == true) +{ + data += ` + + + +
+ + + + Movies + +
` +} else { + data += ` +
+ +  Movies +` +} +if (ssid_sessions[socket.ssid].favstore.folderExists("News") == true) +{ + data += ` + + + +
+ + + + News + +
` +} else { + data += ` +
+ +  News +` +} +data += ` + +
` +if (ssid_sessions[socket.ssid].favstore.folderExists("Recommended") == true) +{ + data += ` + + + +
+ + + + Recommended + +
` +} else { + data += ` +
+ +  Recommended +` +} +if (ssid_sessions[socket.ssid].favstore.folderExists("Reference") == true) +{ + data += ` + + + +
+ + + + Reference + +
` +} else { + data += ` +
+ +  Reference +` +} +data += ` +
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+ + + + + + +
+ +
+
+ + + +`; \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-shortcuts-favorites.js b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-shortcuts-favorites.js new file mode 100644 index 00000000..267ce3ad --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/serve-shortcuts-favorites.js @@ -0,0 +1,204 @@ +var minisrv_service_file = true; + +var favoritenum = 0; + +var foldername = request_headers.query.favorite_folder_name; + +var favarray = ssid_sessions[socket.ssid].favstore.listFavorites(foldername); + +var folder_array = ssid_sessions[socket.ssid].favstore.getFolders(); + +var folderid = folder_array.indexOf(foldername); + +var numoffolders = folder_array.length; + +favoritenum = Object.keys(favarray).length; + + +headers = `200 OK +Connection: Keep-Alive +Content-Type: text/html` + + +data = ` + + + + +Assign shortcut to favorite + + + + +
+ + +
+ + + +
+
+ + + +
+ +
+
+
+ +
+
+
+ +
+ +
+ +
+ Organize +
+
+
+
+ +
+
+ +
+
+
+
+
+ +
+ +
+
+
+
+ + + + +
+
+ + +
+Assign shortcut to favorite + +
+
+
+ +
+ +
+ +
+ + + + + +
+
+
+ +
  +
+
+
+
+
+ + +
+
+ +` +if (favoritenum == 0) +{ + data += "   There are no favorites to move in this folder."; +} else { + data += `To assign a keyboard shortcut to a favorite,
+choose the button to the right of the favorite.
+
+
+
` +for (let i = 0; i < favoritenum; i++) { + data += ` + +
+
+
+ +
+
+ +
+
+
+ +
+ + +
+` +if (favarray[i].imagetype == "url") + data += `
` +else + data += `
` +data += ` +
+ + +${favarray[i].title}
+
+
+
+
+ +
+ +
+ + +
+
+
+
+
+
+
` +} +} +data += ` +
+
+
+
+ +
+
+ +
+
+
+
+ + +
+
+ + + + + +
+
+
+
+`; \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/sony.html b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/sony.html new file mode 100644 index 00000000..b00f9400 --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-favorite/sony.html @@ -0,0 +1,247 @@ + + +Favorites + + + + + + + + + +
+ + +
+ + + +
+
+ + + +
+ +
+
+
+ +
+
+
+ +
+ +
+ +
+ Folders +
+
+
+
+ +
+
+ +
+
+ +
+ +
+ +
+ Organize +
+
+
+
+ +
+
+ +
+
+ +
+ + +
+ +
+ Help +
+
+
+
+ +
+
+ +
+
+
+
+
+ +
+ +
+
+
+
+ + + + +
+
+ + + +
+Favorites for ${ssid_sessions[socket.ssid].getSessionData("subscriber_username") || "You"} + +
+
+
+ +
+ +
+ +
+ +
+
+ +
+
+
+
+ + + + +
+
+
+ +
+ +
+
+
+
+ +
+
+ + +
+
+
+ +
+
+ + + +
+
+
+ + + +
+
+ +
+Columbia TriStar Television +
+
+
+
+
+ +
+
+ +
+JumpCity +
+
+
+
+
+ +
+
+ +
+SoapCity +
+
+
+
+
+ +
+ + + +
+
+ +
+Sony Electronics +
+
+
+
+
+ +
+
+ +
+Sony Pictures Movie Site +
+
+
+
+
+ +
+
+ +
+Sony Studio Store +
+
+
+
+
+ +
+ + + +
+
+ +
+WebSite for TV +
+
+
+
+
+ + + + +
\ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-head-waiter/login-stage-two.js b/zefie_wtvp_minisrv/ServiceVault/wtv-head-waiter/login-stage-two.js index fc637583..9c9997d8 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-head-waiter/login-stage-two.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-head-waiter/login-stage-two.js @@ -127,10 +127,12 @@ wtv-ssl-log-url: wtv-log:/log headers += `wtv-bypass-proxy: false user-id: ${userid} wtv-human-name: ${human_name} -wtv-mail-url: wtv-mail:/listmail ${ssid_sessions[socket.ssid].setIRCNick(nickname)} wtv-domain: ${ssid_sessions[socket.ssid].getSessionData("messenger_domain")} passport-domain: ${ssid_sessions[socket.ssid].getSessionData("messenger_domain")} +wtv-mail-url: wtv-mail:/listmail +wtv-favorite-url: wtv-favorite:/favorite +wtv-favorites-folders-url: wtv-favorite:/list-folders wtv-input-timeout: 14400 wtv-connection-timeout: 1440 wtv-fader-timeout: 1440 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-home/home.js b/zefie_wtvp_minisrv/ServiceVault/wtv-home/home.js index e4e525d6..b712a669 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-home/home.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-home/home.js @@ -47,6 +47,7 @@ minisrv v${minisrv_config.version}${(minisrv_config.config.git_commit) ? ' git-'
  • client:relog (direct)
  • Ultra Willies ~ Tricks
  • Setup (Including BG Music)
  • +
  • Favorites new!
  • Mail (beta)
  • Usenet (not ready) `; diff --git a/zefie_wtvp_minisrv/WTVClientSessionData.js b/zefie_wtvp_minisrv/WTVClientSessionData.js index b9779454..239cae5f 100644 --- a/zefie_wtvp_minisrv/WTVClientSessionData.js +++ b/zefie_wtvp_minisrv/WTVClientSessionData.js @@ -2,6 +2,7 @@ const { lib } = require('crypto-js'); const CryptoJS = require('crypto-js'); const WTVMail = require('./WTVMail.js') const WTVSec = require('./WTVSec.js'); +const WTVFavorites = require('./WTVFavorites.js'); class WTVClientSessionData { @@ -13,6 +14,7 @@ class WTVClientSessionData { data_store = null; session_store = null; mailstore = null; + favstore = null; login_security = null; capabilities = null; session_storage = ""; @@ -55,6 +57,7 @@ class WTVClientSessionData { this.lockdownWhitelist.push(minisrv_config.config.unauthorized_url); this.lockdownWhitelist.push(minisrv_config.config.service_logo); this.mailstore = new WTVMail(this.minisrv_config, this) + this.favstore = new WTVFavorites(this.minisrv_config, this) this.loginWhitelist = Object.assign([], this.lockdownWhitelist); // clone lockdown whitelist into login whitelist this.loginWhitelist.push("wtv-head-waiter:/choose-user"); this.loginWhitelist.push("wtv-head-waiter:/password"); diff --git a/zefie_wtvp_minisrv/WTVFavorites.js b/zefie_wtvp_minisrv/WTVFavorites.js new file mode 100644 index 00000000..99ed4099 --- /dev/null +++ b/zefie_wtvp_minisrv/WTVFavorites.js @@ -0,0 +1,387 @@ +class WTVFavorites { + + fs = require('fs'); + path = require('path'); + uuid = require('uuid'); + + ssid = null; + minisrv_config = []; + wtvshared = null; + wtvmime = null; + wtvclient = null; + WTVClientSessionData = null; + favFileExt = ".zfav"; + favstore_dir = null; + folderArr = []; + messageArr = []; + + constructor(minisrv_config, wtvclient) { + if (!minisrv_config) throw ("minisrv_config required"); + if (!wtvclient) throw ("WTVClientSessionData required"); + var WTVShared = require('./WTVShared.js')['WTVShared']; + var WTVMime = require('./WTVMime.js'); + this.WTVClientSessionData = require('./WTVClientSessionData.js'); + this.minisrv_config = minisrv_config; + this.wtvshared = new WTVShared(minisrv_config); + this.wtvmime = new WTVMime(minisrv_config); + this.wtvclient = wtvclient; + this.ssid = wtvclient.ssid; + this.folderArr = this.folderArr; + this.messageArr = this.messageArr; + } + + checkFavIntroSeen() { + return (this.wtvclient.getSessionData("subscriber_fav_intro_seen")) ? this.wtvclient.getSessionData("subscriber_fav_intro_seen") : false; + } + + setFavIntroSeen(seen) { + this.wtvclient.setSessionData("subscriber_fav_intro_seen", (seen) ? true : false); + } + + favstoreExists() { + if (!this.isguest) { + if (this.favstore_dir === null) { + // set favstore directory local var so we don't call the function every time + var userstore_dir = this.wtvclient.getUserStoreDirectory(); + + // FavStore + var store_dir = "FavStore" + this.path.sep; + this.favstore_dir = userstore_dir + store_dir; + } + return this.fs.existsSync(this.favstore_dir); + } + return null; + } + + folderExists(foldername) { + var folder_dir = null; + if (this.favstoreExists()) { + if (!foldername) return null; + + var folder_dir = foldername + this.path.sep; + var store_dir = this.favstore_dir + folder_dir; + } + return (store_dir !== null) ? this.fs.existsSync(store_dir) : false; + } + + getFolderDir(foldername) { + var folder_dir = null; + if (this.favstoreExists()) { + if (!foldername) return null; + + var folder_dir = foldername + this.path.sep; + var store_dir = this.favstore_dir + folder_dir; + } + return store_dir; + } + + createTemplateFolder(folder) { + // create emply folder + this.createFolder(folder) + var folder_templates = this.minisrv_config.favorites.folder_templates; + // populate it if a template exists + var self = this; + if (folder_templates[folder]) { + Object.keys(folder_templates[folder]).forEach(function (k) { + self.createFavorite(folder_templates[folder][k].title, folder_templates[folder][k].url, "Recommended", (folder_templates[folder][k].image_type == "image/wtv-bitmap") ? atob(folder_templates[folder][k].image) : folder_templates[folder][k].image, folder_templates[folder][k].image_type); + }) + } + } + + createDefaultFolders() { + var brandId = this.ssid.charAt(8); + this.createTemplateFolder("Recommended"); + if (brandId == 7) + this.createTemplateFolder("Personal (Samsung)"); + else + this.createTemplateFolder("Personal"); + + if (brandId == 0) + this.createTemplateFolder("Sony"); + } + + createFavstore() { + if (this.favstoreExists() === false) { + if (!this.fs.existsSync(this.favstore_dir)) this.fs.mkdirSync(this.favstore_dir, { recursive: true }); + this.createDefaultFolders(); + this.wtvclient.setSessionData("subscriber_fav_images", true) + return true; + } + return false; + } + + createFolder(foldername) { + var folder_exists = this.folderExists(foldername); + if (folder_exists === false) { + var folderdir = foldername + this.path.sep; + var store_dir = this.favstore_dir + folderdir; + if (!this.fs.existsSync(store_dir)) this.fs.mkdirSync(store_dir, { recursive: true }); + return true; + } + return folder_exists; + } + + getFolders() { + var path = this.favstore_dir; + var self = this; + return this.fs.readdirSync(path).filter(function (file) { + self.folderArr.push(file); + return self.folderArr; + }); + } + + createFavoriteID() { + return this.uuid.v1(); + } + + createFavorite(title, url, folder, image, imagetype) { + var folderpath = this.getFolderDir(folder); + var favoriteid = this.createFavoriteID(); + var favoritefile = favoriteid + this.favFileExt; + var favoritefileout = folderpath + favoritefile; + if (imagetype != "url") + image = btoa(image); + + title = decodeURIComponent(title).replaceAll("+", " "); + url = decodeURIComponent(url) + var favoritedata = { + "title": title, + "url": url, + "folder": folder, + "image": image, + "imagetype": imagetype, + "id": favoriteid + } + try { + if (this.fs.existsSync(favoritefileout)) { + console.log(" * ERROR: Favorite with this UUID (" + favoriteid + ") already exists (should never happen). Favorite lost."); + return false; + } + + // encode favorite into json + var result = this.fs.writeFileSync(favoritefileout, JSON.stringify(favoritedata)); + if (!result) return false; + + } catch (e) { + console.error(" # FavErr: Favorite Store failed\n", e, "\n", favoritefileout, "\n", favorite ,"\n"); + } + return false; + } + + listFavorites(folder) { + var folderpath = this.getFolderDir(folder); + var self = this; + self.messageArr = []; + var files = this.fs.readdirSync(folderpath) + .map(function (v) { + var favorite_data_raw = null; + var favoritepath = folderpath + self.path.sep + v; + if (self.fs.existsSync(favoritepath)) favorite_data_raw = self.fs.readFileSync(favoritepath); + if (favorite_data_raw) { + var favorite_data = JSON.parse(favorite_data_raw); + self.messageArr.push(favorite_data); + } + + }) + return self.messageArr; + } + + getFavorite(folder, favoriteid) { + var folder_path = this.getFolderDir(folder); + var folder_file = favoriteid + this.favFileExt; + var folder_file_in = folder_path + this.path.sep + folder_file; + var folder_data_raw = null; + + if (this.fs.existsSync(folder_file_in)) folder_data_raw = this.fs.readFileSync(folder_file_in); + else console.error(" # FavErr: could not find ", folder_file_in); + + if (folder_data_raw) { + var folder_data = JSON.parse(folder_data_raw); + folder_data.folder_path = folder_path; + folder_data.folder_file = folder_file; + if (folder_data) { + folder_data.id = favoriteid; + + return folder_data; + } + else console.error(" # FavErr: could not parse json in ", folder_file_in); + } + return false; + } + + deleteFolder(folder){ + var dir = this.getFolderDir(folder); + this.fs.rmdirSync(dir, { recursive: true }); + } + + checkFolderName(folder) { + var check1 = /^([A-Za-z0-9\-\_])$/.test(folder); + var check2 = /^[A-Za-z]/.test(folder); + return (check1 && check2); + } + + deleteFavorite(favoriteid, folder) { + var folderdir = this.getFolderDir(folder); + this.fs.unlinkSync(folderdir + favoriteid + ".zfav", { recursive: true }); + } + + clearFolder(folder) { + const { readdirSync, rmSync } = require('fs'); + var dir = this.getFolderDir(folder); + readdirSync(dir).forEach(f => rmSync(`${dir}${f}`)); + } + + updateFavorite(favoritedata, folder) { + // encode message into json + var favoriteout = new Object(); + var folderpath = this.getFolderDir(folder); + Object.assign(favoriteout, favoritedata); + delete favoriteout.folderpath; + delete favoriteout.favoritefile; + var result = this.fs.writeFileSync(folderpath + favoritedata.id + ".zfav", JSON.stringify(favoriteout)); + if (!result) return false; + } + + changeFavoriteName(favoriteid, folder, name) { + var favorite = this.getFavorite(folder, favoriteid); + if (!favorite) return false; + + favorite.title = name; + this.updateFavorite(favorite, folder); + return true; + } + + moveFavorite(oldfolder, newfolder, favoriteid) { + var favorite = this.getFavorite(oldfolder, favoriteid); + if (!favorite) return false; + + var newfolderdata = this.listFavorites(newfolder); + var newfoldernum = newfolderdata.length + + if (newfoldernum > 17) + return; + + favorite.folder = newfolder; + this.updateFavorite(favorite, oldfolder); + var favoriteout = new Object(); + var folderpath = this.getFolderDir(newfolder); + Object.assign(favoriteout, favorite); + delete favoriteout.folderpath; + delete favoriteout.favoritefile; + this.fs.writeFileSync(folderpath + favorite.id + ".zfav", JSON.stringify(favoriteout)); + this.deleteFavorite(favoriteid, oldfolder) + return true; + } + + createShortcutKey() { + var favoritefileout = this.favstore_dir + "KeyStore.zfav"; + var keydata = {}; + + keydata.F1 = { + folder: "none", + id: "none" + } + keydata.F2 = { + folder: "none", + id: "none" + } + keydata.F3 = { + folder: "none", + id: "none" + } + keydata.F4 = { + folder: "none", + id: "none" + } + keydata.F5 = { + folder: "none", + id: "none" + } + keydata.F6 = { + folder: "none", + id: "none" + } + keydata.F7 = { + folder: "none", + id: "none" + } + + try { + // encode favorite into json + var result = this.fs.writeFileSync(favoritefileout, keydata); + if (!result) return false; + + } catch (e) { + console.error(" # FavErr: Key Store failed\n", e, "\n", favoritefileout); + } + return false; + } + + updateShortcutKey(oldkey, newkey, folder, id) { + var folderpath = this.getFolderDir(folder); + var favoritefileout = this.favstore_dir + "KeyStore.zfav"; + var keydata = {}; + + keydata = this.fs.readFileSync(favoritefileout) + console.log(newkey) + switch(newkey) { + case "F1": + keydata.F1.folder = folder; + break + case "F2": + keydata.F2 = { + folder: folder, + id: id + } + break; + case "F3": + keydata.F3 = { + folder: folder, + id: id + } + break; + case "F4": + keydata.F4 = { + folder: folder, + id: id + } + break; + case "F5": + keydata.F5 = { + folder: folder, + id: id + } + break; + case "F6": + keydata.F6 = { + folder: folder, + id: id + } + break; + case "F7": + keydata.F7 = { + folder: folder, + id: id + } + break; + } + if (oldkey == "none") + { + //no + } else { + keydata[oldkey].folder = null; + keydata[oldkey].id = null; + } + + try { + // encode favorite into json + var result = this.fs.writeFileSync(favoritefileout, keydata); + if (!result) return false; + + } catch (e) { + console.error(" # FavErr: Key Store failed\n", e, "\n", favoritefileout); + } + return false; + } +} +module.exports = WTVFavorites; diff --git a/zefie_wtvp_minisrv/app.js b/zefie_wtvp_minisrv/app.js index 3b4ce180..9d4a1424 100644 --- a/zefie_wtvp_minisrv/app.js +++ b/zefie_wtvp_minisrv/app.js @@ -498,7 +498,7 @@ async function processURL(socket, request_headers) { } else { request_headers.query[k] = unescape(qraw[i].split("=")[1].replace(/\+/g, "%20")); } - } else if (qraw[i].length > 0) { + } else if (qraw[i].length == 1) { request_headers.query[qraw[i]] = null; } } diff --git a/zefie_wtvp_minisrv/config.json b/zefie_wtvp_minisrv/config.json index 9a6a6dae..8a12a9a7 100644 --- a/zefie_wtvp_minisrv/config.json +++ b/zefie_wtvp_minisrv/config.json @@ -115,6 +115,13 @@ "wtv-passport": { "port": 1654 }, + "wtv-favorite": { + "port": 1611, + "connections": 3, + "enable_multi_query": true, + "max_folders": 14, + "max_favorites_per_folder": 18 + }, "wtv-admin": { "port": 1698, "enable_multi_query": true, @@ -147,5 +154,55 @@ "allow_https": false, "force_https": false } + }, + "favorites": { + "folder_templates": { + "Recommended": [ + { + "title": "DuckDuckGo", + "url": "http://lite.duckduckgo.com/lite", + "image_type": "image/wtv-bitmap", + "image": "AAAAAAAAAQQAJAAAAAAAAAAAAAAAAAA0AAAARgAAAAABlAAAAAQBkLmAuYC5gLmAt3y5gJ1xsJKUgJeApoCIgLmAuYC5f7mAlG+umaVymJy5gLmAkoCMf5eAl4CigKOAuYC5gLN6sYe5gLmAm4CbgHCAlICdgJ6Ag22jqJ9znZ3YgNiAwIDAgJ54sZKlepmbuYC5gJuCm4CXgJeAo4CjgLmAuYCwebOHtH65gpd0qpmqcaKUmHCwlsWAj4C1gJCAjICMgLmAuYC5gLmAoXa3jZ+Aa4CggJOAl4CVgJuAo4CdgLmAfYC5gHKAbYCXgJaAuYCsgJeAj4CVcpalmW2jnH6AuoB5gLqAj4C7f5WAs3+ib5qcmG6omrmAuYChd7GQZ4B0gJeAloChcKqUl3Gjnbl5uYC5fbmAp3KrkJdxp5uUdZampXGdmbh9uYCWb6uZtX+xhZ54np2XbrmSn3CanotunKigcp2c2IXYgMCCwICqcZqYmnCmmrmAroC5gLmAlHOWpqBwopm0frGFl3Kin7d9uYCTbaubuYC5gKN3rpG4f66FmXOinYqAjIC5gLmAAAAAAAAAAAAAAAAAAAAAAAAAACUtBy4QLCQPHhAvARQDAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAwrKSAnJiMdIgoEGhEhAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAFDQgICAgICAgICAgICAgICAgICAgICBkCBg4WFwAAAIAAAAAcKAsLCwsLCwsLCwsLCwsLCwsLCwsLCxIVGB8JGwAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACowExMTAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" + }, + { + "title": "Old'aVista", + "url": "http://www.oldavista.com/", + "image_type": "url", + "image": "canned/oldavista.gif" + }, + { + "title": "RetroSite", + "url": "http://retrosite.ga/", + "image_type": "url", + "image": "canned/retrosite.gif" + }, + { + "title": "68k.news", + "url": "http://68k.news/", + "image_type": "url", + "image": "canned/news.gif" + }, + { + "title": "The Old Net", + "url": "http://theoldnet.com/lite", + "image_type": "image/wtv-bitmap", + "image": "AAAAAAAAAQQAJAAAAAAAAAAAAAAAAAA0AAAARgAAAAACBAAAAAQCALmAuYC5gLmAuHy5ga9ftIu2f7iCmHWjoISusnuoj699knKVbK18rnm8gL2AuIC4gISdh3mojKN9uIC4gJudmXyRdJessXywiZdwjq+XdaShkauQebCLsH65gLmAsIG0gLWEt393q555lIKaf7uBlX94gHOAiICGgKtsto+yebiF2IDYgLqAuoCZkJyLp4iqhZmAmYDYgNiAp4CmgHKAfICjgKKAg4CUgLmElYC2gqSAt4CnfoiSnnqPgI+A0IDQgIyAkoCJgIeAk4CTgKGAzICfgHOAe4CHgIqAnX+RgMp/uYC5gJeAmYCOgJGAn4CjgL6AkYC4gJOAdIB4gKCAnICggJ2Ak4CdgI6AhoCggJKAqIS7gLKBtoCTfbt+s3+4gKOAo4CwgK+AjoCMgLeAuICvf6aAtoCygI+YmXyli6p9oICNgJ2AgoCHgI6AjICcgIWAlYC9gLyAuYC5gLKApn+SlIV6rYSrfnWuiXeejq58koOKf6qBo4C3f7mBnnW5kbiAuYCcdaFyzYDNgLOAs4C5gLmAo4CngLmAt4CvgJF/noB1f7aAtYCAgG+AtIC3gG2AiYC1gLKAs4CNgLaAtoCWgJOAeIBtgJGAuYCSgLmAnJSNe6KOoX2kgHiAqoCMgKSApoCBgHqAuYC4gLiAsoCXgJuAcoB3gKaAooCYgHiAAAAAADMMBwcHBwcHAi8BAQEWDAwwMDAwMDACAgICLwAAAAAAAAAAADQKLQMGCgYDCA8PDw8NBgMEBAQEBCMICQkIDwAAAACIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAA9CwsLCwsLCwsLCws9HBwcHBwzHBwLAAAAAAAAAAAAAAAeOBQpDS4dISQuGxISEhINKDg+KTsgOBQ5AAAAAAAHAAAAAAAAJgAmBQUFBQUFAAUFBRwgPj4+Pho/PiAjAAAAAAAGAAAAAAAAHiEZEhISEhISEhISDT88Ezw/ExMTIDkAAAAAAABVAAAAAAAANwsFMTExMTExMTExFRQYGBgYGBgYPCMAAAAAAAB5AAAAAAAAHi4lFxcXFxcXFxcXDSgYGCk+GBgYKTkAAAAAAABVAAAAAAAAFSIiEBAQEBAQEBAQHhoODhgODg4OGDkAAAAAAABVAAAAAAAAMxwcHBwcHBwcHBwcHCEdHR0pHSEdHTIAAAAAAABVAAAAAAAAHiojEBAQEBAQEBAQHjsfHx8fDiEfKTkAAAAAAAB6AAAAAAEAAAAAPQAAAAAAAAAAACUlJSUlJSUlJQsLCwsAAABVAAAAPSYkJiYkJiQmJCQkJCMkJiQkJCIkJCYkJCQkJCIAAABVAAAAAAAAAAAAJiYmJCYkJiQkJCQmJCYREQsAAAAAAAAAAABVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6AAAAAAAAAAAAAAAAKws9Cz0LACsAPQsAAAAAAAAAAAAAAABVAAAAAAAAAAAAAAAAJAYnLCcnBgYnBiIAAAAAAAAAAAAAAABVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVAAAzMjMcMzIyMjIrHDIyMisyMjILHDIyCzMzMjIyMisLAAB6AAA3NTc2JTY0JTY0NTU1JSU2NTU3NTU1NDUlNjU1NjQqAABVPQAAAD0AAAAAAD0ANzYfDh0fHyEfHwsAPQsAAAAAAAA9AABVFR0pIS4pLjonJzonJzoVJzo6OjoGOicnLjY7ITsoIRg7ITlVAAAAAAAAAAAAAAAAAAAoGBQ/IBQUAAAAAAAAAAAAAAAAAAB6ADMTPD8TPhM/ExM8OD88PzgUExQ8Ez4UPBQTExQ+PD8UOQBV" + } + ], + "Personal": [ + { + "title": "The Midnight Archive", + "url": "http://archive.midnightchanne.net/", + "image_type": "url", + "image": "canned/midnightchannel.gif" + }, + { + "title": "WebTV/MSNTV Secrets", + "url": "http://turdinc.kicks-ass.net/Msntv/", + "image_type": "url", + "image": "canned/mattman69.gif" + } + ] + } } } diff --git a/zefie_wtvp_minisrv/user_config.example.json b/zefie_wtvp_minisrv/user_config.example.json index 9216bac5..e09e29b1 100644 --- a/zefie_wtvp_minisrv/user_config.example.json +++ b/zefie_wtvp_minisrv/user_config.example.json @@ -71,5 +71,22 @@ "password": "implemented" } } - } -} \ No newline at end of file + }, + "favorites": { + "folder_templates": { + "Personal": [ + { + "title": "The Midnight Archive", + "url": "http://archive.midnightchanne.net/", + "image_type": "url", + "image": "canned/midnightchannel.gif" + }, + { + "title": "WebTV/MSNTV Secrets", + "url": "http://turdinc.kicks-ass.net/Msntv/", + "image_type": "url", + "image": "canned/mattman69.gif" + } + ] + } + } \ No newline at end of file diff --git a/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj b/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj index ece15d4e..fab5f166 100644 --- a/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj +++ b/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj @@ -44,6 +44,19 @@ + + + + + + + + + + + + + @@ -67,6 +80,81 @@ Code + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Code @@ -429,6 +517,7 @@ Code + Code @@ -460,6 +549,13 @@ + + + + + + +