diff --git a/.gitignore b/.gitignore index 694a471..a7bcbeb 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,9 @@ Images-dd514b88-Results node_modules .kanbn .random -.original \ No newline at end of file +.original + +Images-c9dbce3b-Results +Results + +sync.ffs_db diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..8aaeb39 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,11 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "type": "node", + "request": "launch", + "name": "Launch Current Opened File", + "program": "${file}" + } + ] + } \ No newline at end of file diff --git a/.vscode/mklink.md b/.vscode/mklink.md index d273d69..527524a 100644 --- a/.vscode/mklink.md +++ b/.vscode/mklink.md @@ -5,10 +5,14 @@ type: "note" # mklink ```bash +mklink /J "L:\Git\www\.kanbn" "D:\5-Other-Small\Kanban\www" +mklink /J "L:\Git\www\.random" "D:\1-Images-A\Images-c9dbce3b-Results\F)Random\c9dbce3b\[]" +mklink /J "L:\Git\www\.original" "D:\1-Images-A\Images-c9dbce3b-Results\C)Resize\c9dbce3b\Original\()" ``` ```bash -mklink /J "L:\Git\www\.kanbn" "D:\5-Other-Small\Kanban\www" -mklink /J "L:\Git\www\.random" "D:\1-Images-A\Images-7007a9df-Results\F)Random\7007a9df\[]" -mklink /J "L:\Git\www\.original" "D:\1-Images-A\Images-7007a9df-Results\C)Resize\7007a9df\Original\()" +ln -s /var/log/nginx /var/www/html/log-nginx +# ln -s /home/syncthing/Immich/upload/thumbs/fc9fd5a1-d1b3-4080-a21c-daf9b1c24593 /var/www/html/Images-c9dbce3b-Results/thumbs +cp -R /home/syncthing/Immich/upload/thumbs/fc9fd5a1-d1b3-4080-a21c-daf9b1c24593/ /var/www/html/Images-c9dbce3b-Results/thumbs +ls -la /var/www/html/Images-c9dbce3b-Results ``` diff --git a/admin b/admin new file mode 160000 index 0000000..be05b0f --- /dev/null +++ b/admin @@ -0,0 +1 @@ +Subproject commit be05b0f61d3fcf796dae4cc3f89f8540b2359325 diff --git a/index.html b/index.html index 6c42679..48beed9 100644 --- a/index.html +++ b/index.html @@ -11,9 +11,9 @@
-

Slideshow

-

Slideshow (Time)

-

Slideshow (No Sleep)

+

Slideshow

+

Slideshow (Time)

+

Slideshow (No Sleep)

diff --git a/index.nginx-debian.html b/index.nginx-debian.html new file mode 100644 index 0000000..e8f5622 --- /dev/null +++ b/index.nginx-debian.html @@ -0,0 +1,23 @@ + + + +Welcome to nginx! + + + +

Welcome to nginx!

+

If you see this page, the nginx web server is successfully installed and +working. Further configuration is required.

+ +

For online documentation and support please refer to +nginx.org.
+Commercial support is available at +nginx.com.

+ +

Thank you for using nginx.

+ + diff --git a/slideshow/index.html b/slideshow/index.html index ef1e7a4..cffe24d 100644 --- a/slideshow/index.html +++ b/slideshow/index.html @@ -21,7 +21,7 @@ - + \ No newline at end of file diff --git a/slideshow/index.json b/slideshow/index.json index 2e1e529..d18189b 100644 --- a/slideshow/index.json +++ b/slideshow/index.json @@ -3,7 +3,7 @@ "JsonInterval": 59000, "ImageZero": "images/1x1_00000000.png", "DataDirectoryX": "../.random", - "DataDirectory": "../Images-7007a9df-Results/F)Random/7007a9df/[]", + "DataDirectory": "../Images-c9dbce3b-Results/F)Random/c9dbce3b/[]", "RootX": "../.original", - "Root": "../Images-7007a9df-Results/C)Resize/7007a9df/Original/()" + "Root": "../Images-c9dbce3b-Results/thumbs" } \ No newline at end of file diff --git a/slideshow/scripts/index.js b/slideshow/scripts/index.js index 995da0a..6ca35ef 100644 --- a/slideshow/scripts/index.js +++ b/slideshow/scripts/index.js @@ -1,14 +1,9 @@ -// For an introduction to the Blank template, see the following documentation: -// http://go.microsoft.com/fwlink/?LinkID=397704 -// To debug code on page load in cordova-simulate or on Android devices/emulators: launch your app, set breakpoints, -// and then run "window.location.reload()" in the JavaScript Console. -(function () { +(function () { "use strict"; var _Root; var _RootAlt; var _ImageZero; - var _ImageTimer; var _DataDirectory; var _Pause = 0; @@ -17,142 +12,11 @@ var _ImageInterval; var _ImageIndex = 0; var _OpaqueIndex = 0; - var _DeviceReadyDiv = $("#deviceReady div"); + var _DeviceReadyDiv = $('#deviceReady div'); var time = document.createElement('time'); time.setAttribute('style', 'position: fixed;'); - // Create the root video element - var video = document.createElement('video'); - video.setAttribute('loop', ''); - // Add some styles if needed - video.setAttribute('style', 'position: fixed;'); - - $(document).ready(function () { - - console.log("onDeviceReady"); - - // Handle the Cordova pause and resume events - document.addEventListener('keyup', getInput, false); - - var url = '../slideshow/index.json?nocache=2024-01-28-20-23'; - console.log(url); - var _ = $.getJSON(url, function (data) { - console.log(url + " downloaded successfully"); - _RootAlt = null; - _Root = data.Root; - _ImageZero = data.ImageZero; - _JsonInterval = data.JsonInterval; - _ImageInterval = data.ImageInterval; - _DataDirectory = data.DataDirectory; - console.log(url + " used successfully"); - }) - .done(function () { - loadData(); - _ = setInterval(onTickJSON, _JsonInterval); - _ImageTimer = setInterval(onTickImage, _ImageInterval); - }) - .fail(function (er) { console.log("error", er); }) - .always(function () { console.log("complete"); }); - }); - - function goBack() { - _Pause = 1; - if (_Pause === 0) { - _ImageIndex -= 1; - } - else { - _ImageIndex -= 2; - } - if (_ImageIndex === 0) { - _ImageIndex = _Images.length - 1; - } - var backgroundImage = GetBackgroundImage(); - _DeviceReadyDiv.attr('style', backgroundImage); - } - - function goForward() { - _Pause = 1; - _ImageIndex += 1; - if (_ImageIndex >= _Images.length) { - _ImageIndex = 0; - } - var backgroundImage = GetBackgroundImage(); - _DeviceReadyDiv.attr('style', backgroundImage); - } - - function changeImageTimer(imageInterval) { - _ImageInterval = imageInterval; - clearTimeout(_ImageTimer); - _ImageTimer = setInterval(onTickImage, _ImageInterval); - } - - function getInput(e) { - var which = e.which; - switch (which) { - case 13: //Okay - if (_Pause === 0) { - _Pause = 1; - } - else { - _Pause = 0; - } - break; - case 37: //Left - goBack(); - break; - case 38: //Up - goForward(); - break; - case 39: //Right - goForward(); - break; - case 40: //Down - goBack(); - break; - case 173: //Fast Forward - goForward(); - break; - case 177: //Rewind - goBack(); - break; - case 8: //Delete - console.log('Delete key was pressed!'); - break; - case 48: //0 - changeImageTimer(10000); - break; - case 49: //1 - changeImageTimer(1000); - break; - case 50: //2 - changeImageTimer(2000); - break; - case 51: //3 - changeImageTimer(3000); - break; - case 52: //4 - changeImageTimer(4000); - break; - case 53: //5 - changeImageTimer(5000); - break; - case 54: //6 - changeImageTimer(6000); - break; - case 55: //7 - changeImageTimer(7000); - break; - case 56: //8 - changeImageTimer(8000); - break; - case 57: //9 - changeImageTimer(9000); - break; - default: - } - } - function loadData() { var currentDate = new Date(); var mm = (new Date().getMonth() + 1).toString().padStart(2, '0'); @@ -160,24 +24,24 @@ if (window.location.href.indexOf('time') > 0) { time.innerText = mm + '-' + dd + '.json'; } - var url = _DataDirectory + '/' + mm + '-' + dd + '.json?nocache=2024-01-28-20-23'; + var url = _DataDirectory + '/' + mm + '-' + dd + '.json?nocache=2024-05-12-14-48'; console.log(url); $.getJSON(url, function (data) { - console.log("success", data.length); + console.log('success', data.length); _Images = []; $.each(data, function (_, value) { _Images.push(value.replaceAll("\\", "/")); }); }) - .done(function () { console.log("second success"); }) - .fail(function (er) { console.log("error", er); }) - .always(function () { console.log("complete"); }); + .done(function () { console.log('second success'); }) + .fail(function (er) { console.log('error', er); }) + .always(function () { console.log('complete'); }); } function onTickJSON() { var currentDate = new Date(); var currentHours = currentDate.getHours(); - if (currentHours === 21) { + if (currentHours === 0) { var currentMinutes = currentDate.getMinutes(); if (currentMinutes === 0) { loadData(); @@ -186,9 +50,9 @@ } function GetBackgroundImage() { - var result = "background-image: url('" + _Root + _Images[_ImageIndex] + "'), url('"; + var result = "background-image: url('" + _Root + _Images[_ImageIndex] + '?index=' + _ImageIndex + "'), url('"; if (_RootAlt !== null) { - result = result + _RootAlt + _Images[_ImageIndex] + "'), url('"; + result = result + _RootAlt + _Images[_ImageIndex] + '?index=' + _ImageIndex + "'), url('"; } result = result + _ImageZero + "');"; return result; @@ -202,7 +66,7 @@ _DeviceReadyDiv.attr('style', 'background-color: #191717;'); } else { - _DeviceReadyDiv.eq(_OpaqueIndex).removeClass("opaque"); + _DeviceReadyDiv.eq(_OpaqueIndex).removeClass('opaque'); _ImageIndex += 1; if (_ImageIndex >= _Images.length) { _ImageIndex = 0; @@ -225,7 +89,7 @@ } var backgroundImage = GetBackgroundImage(); _DeviceReadyDiv.eq(loadIndex).attr('style', backgroundImage); - _DeviceReadyDiv.eq(_OpaqueIndex).addClass("opaque"); + _DeviceReadyDiv.eq(_OpaqueIndex).addClass('opaque'); if (window.location.href.indexOf('time') > 0) { var mm = (new Date().getMonth() + 1).toString().padStart(2, '0'); var dd = currentDate.getDate().toString().padStart(2, '0'); @@ -235,38 +99,122 @@ } } - // A helper to add sources to video - function addSourceToVideo(element, type, dataURI) { - var source = document.createElement('source'); - source.src = dataURI; - source.type = 'video/' + type; - element.appendChild(source); + function pause() { + _Pause = 1; + $('#deviceReady').innerHTML = '
'; } - // A helper to concat base64 - var base64 = function (mimeType, base64) { - return 'data:' + mimeType + ';base64,' + base64; - }; + function goBack() { + if (_Pause === 0) { + pause(); + } + _ImageIndex -= 1; + if (_ImageIndex === 0) { + _ImageIndex = _Images.length - 1; + } + var backgroundImage = GetBackgroundImage(); + _DeviceReadyDiv.attr('style', backgroundImage); + } - if (window.location.href.indexOf('noSleep') > 0) { - // Add Fake sourced - addSourceToVideo(video, 'webm', base64('video/webm', 'GkXfo0AgQoaBAUL3gQFC8oEEQvOBCEKCQAR3ZWJtQoeBAkKFgQIYU4BnQI0VSalmQCgq17FAAw9CQE2AQAZ3aGFtbXlXQUAGd2hhbW15RIlACECPQAAAAAAAFlSua0AxrkAu14EBY8WBAZyBACK1nEADdW5khkAFVl9WUDglhohAA1ZQOIOBAeBABrCBCLqBCB9DtnVAIueBAKNAHIEAAIAwAQCdASoIAAgAAUAmJaQAA3AA/vz0AAA=')); - addSourceToVideo(video, 'mp4', base64('video/mp4', 'AAAAHGZ0eXBpc29tAAACAGlzb21pc28ybXA0MQAAAAhmcmVlAAAAG21kYXQAAAGzABAHAAABthADAowdbb9/AAAC6W1vb3YAAABsbXZoZAAAAAB8JbCAfCWwgAAAA+gAAAAAAAEAAAEAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIVdHJhawAAAFx0a2hkAAAAD3wlsIB8JbCAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAIAAAACAAAAAABsW1kaWEAAAAgbWRoZAAAAAB8JbCAfCWwgAAAA+gAAAAAVcQAAAAAAC1oZGxyAAAAAAAAAAB2aWRlAAAAAAAAAAAAAAAAVmlkZW9IYW5kbGVyAAAAAVxtaW5mAAAAFHZtaGQAAAABAAAAAAAAAAAAAAAkZGluZgAAABxkcmVmAAAAAAAAAAEAAAAMdXJsIAAAAAEAAAEcc3RibAAAALhzdHNkAAAAAAAAAAEAAACobXA0dgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAIAAgASAAAAEgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABj//wAAAFJlc2RzAAAAAANEAAEABDwgEQAAAAADDUAAAAAABS0AAAGwAQAAAbWJEwAAAQAAAAEgAMSNiB9FAEQBFGMAAAGyTGF2YzUyLjg3LjQGAQIAAAAYc3R0cwAAAAAAAAABAAAAAQAAAAAAAAAcc3RzYwAAAAAAAAABAAAAAQAAAAEAAAABAAAAFHN0c3oAAAAAAAAAEwAAAAEAAAAUc3RjbwAAAAAAAAABAAAALAAAAGB1ZHRhAAAAWG1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAAK2lsc3QAAAAjqXRvbwAAABtkYXRhAAAAAQAAAABMYXZmNTIuNzguMw==')); + function goForward() { + if (_Pause === 0) { + pause(); + } + _ImageIndex += 1; + if (_ImageIndex >= _Images.length) { + _ImageIndex = 0; + } + var backgroundImage = GetBackgroundImage(); + _DeviceReadyDiv.attr('style', backgroundImage); + } - // Append the video to where ever you need - document.body.appendChild(video); - - // Start playing video after any user interaction. - // NOTE: Running video.play() handler without a user action may be blocked by browser. - var playFn = function () { - video.play(); - document.body.removeEventListener('touchend', playFn); - }; - document.body.addEventListener('touchend', playFn); + function getInput(e) { + var which = e.which; + switch (which) { + case 13: //Okay + if (_Pause === 0) { + _Pause = 1; + } + else { + _Pause = 0; + $('#deviceReady').innerHTML = '
'; + } + break; + case 37: //Left + goBack(); + break; + case 38: //Up + goForward(); + break; + case 39: //Right + goForward(); + break; + case 40: //Down + goBack(); + break; + case 173: //Fast Forward + goForward(); + break; + case 177: //Rewind + goBack(); + break; + default: + } } if (window.location.href.indexOf('time') > 0) { document.body.appendChild(time); } + if (window.location.href.indexOf('last') > 0) { + var url = '../log-nginx/access.log?nocache=2024-05-12-14-48'; + $.get(url, function (data) { + var arrayOfUrl = []; + var arrayOfIndex = []; + var arrayOfLines = data.match(/[^\r\n]+/g); + for (var i = arrayOfLines.length - 1; i >= 0; i--) { + arrayOfUrl = arrayOfLines[i].split('?index='); + if (arrayOfUrl.length !== 2) + continue; + arrayOfIndex = arrayOfUrl[1].split(' '); + if (arrayOfIndex.length < 2) + continue; + var index = parseInt(arrayOfIndex[0]); + console.log('index', index); + _ImageIndex = index; + break; + } + }) + .fail(function (err) { + console.error(err); + }); + } + + $(document).ready(function () { + + console.log('onDeviceReady'); + + document.addEventListener('keyup', getInput, false); + + var url = '../slideshow/index.json?nocache=2024-05-12-14-48'; + console.log(url); + var _ = $.getJSON(url, function (data) { + console.log(url + ' downloaded successfully'); + _RootAlt = null; + _Root = data.Root; + _ImageZero = data.ImageZero; + _JsonInterval = data.JsonInterval; + _ImageInterval = data.ImageInterval; + _DataDirectory = data.DataDirectory; + console.log(url + ' used successfully'); + }) + .done(function () { + loadData(); + _ = setInterval(onTickJSON, _JsonInterval); + _ = setInterval(onTickImage, _ImageInterval); + }) + .fail(function (er) { console.log('error', er); }) + .always(function () { console.log('complete'); }); + }); + })(); \ No newline at end of file