From b542b87f91d350bca0d6440e2df19866572b6bc7 Mon Sep 17 00:00:00 2001 From: Shish Date: Mon, 22 Jan 2024 22:37:47 +0000 Subject: [PATCH 1/6] [image] we might be generating a link to an image which has not yet been posted --- ext/image/main.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ext/image/main.php b/ext/image/main.php index c5b9285f..b7f8627d 100644 --- a/ext/image/main.php +++ b/ext/image/main.php @@ -211,7 +211,9 @@ class ImageIO extends Extension $event->replace('$filesize', to_shorthand_int($event->image->filesize)); $event->replace('$filename', $base_fname); $event->replace('$ext', $event->image->get_ext()); - $event->replace('$date', autodate($event->image->posted, false)); + if(isset($event->image->posted)) { + $event->replace('$date', autodate($event->image->posted, false)); + } $event->replace("\\n", "\n"); } From cbd073e681a11f3d27ca9c58819bb96c9b6389cb Mon Sep 17 00:00:00 2001 From: Shish Date: Sun, 28 Jan 2024 13:03:07 +0000 Subject: [PATCH 2/6] bump --- core/sys_config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/sys_config.php b/core/sys_config.php index ac601cbd..64d55b33 100644 --- a/core/sys_config.php +++ b/core/sys_config.php @@ -31,7 +31,7 @@ _d("DEBUG", false); // boolean print various debugging details _d("COOKIE_PREFIX", 'shm'); // string if you run multiple galleries with non-shared logins, give them different prefixes _d("SPEED_HAX", false); // boolean do some questionable things in the name of performance _d("WH_SPLITS", 1); // int how many levels of subfolders to put in the warehouse -_d("VERSION", "2.10.0"); // string shimmie version +_d("VERSION", "2.10.1"); // string shimmie version _d("TIMEZONE", null); // string timezone _d("EXTRA_EXTS", ""); // string optional extra extensions _d("BASE_HREF", null); // string force a specific base URL (default is auto-detect) From bc7adaffe826ddd618682bb7098085bd1c94cc17 Mon Sep 17 00:00:00 2001 From: Shish Date: Sun, 28 Jan 2024 21:23:29 +0000 Subject: [PATCH 3/6] try new releaser --- .github/workflows/release.yml | 36 ++++++----------------------------- 1 file changed, 6 insertions(+), 30 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2a9c36be..b783e975 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -31,35 +31,11 @@ jobs: zip -r shimmie2-${{ steps.get_version.outputs.VERSION }}.zip shimmie2 - name: Create Release - id: create_release - uses: actions/create-release@latest - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + uses: softprops/action-gh-release@latest with: - tag_name: ${{ github.ref }} - release_name: Shimmie ${{ steps.get_version.outputs.VERSION }} + token: ${{ secrets.GITHUB_TOKEN }} + name: Shimmie ${{ steps.get_version.outputs.VERSION }} body: Automated release from tags - draft: false - prerelease: false - - - name: Upload Zip - id: upload-release-asset-zip - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ../shimmie2-${{ steps.get_version.outputs.VERSION }}.zip - asset_name: shimmie2-${{ steps.get_version.outputs.VERSION }}.zip - asset_content_type: application/zip - - - name: Upload Tar - id: upload-release-asset-tar - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ../shimmie2-${{ steps.get_version.outputs.VERSION }}.tgz - asset_name: shimmie2-${{ steps.get_version.outputs.VERSION }}.tgz - asset_content_type: application/gzip + files: | + ../shimmie2-${{ steps.get_version.outputs.VERSION }}.zip + ../shimmie2-${{ steps.get_version.outputs.VERSION }}.tgz From e5828b0810f14bdbb9637deebd050d7412d05ede Mon Sep 17 00:00:00 2001 From: Shish Date: Sun, 28 Jan 2024 21:24:21 +0000 Subject: [PATCH 4/6] base_href as a data attr --- core/basepage.php | 3 +-- ext/autocomplete/script.js | 2 +- ext/handle_mp3/script.js | 30 ++++++++++++++++++++++++++++++ ext/handle_mp3/theme.php | 22 +--------------------- 4 files changed, 33 insertions(+), 24 deletions(-) create mode 100644 ext/handle_mp3/script.js diff --git a/core/basepage.php b/core/basepage.php index 76696c65..3b972af7 100644 --- a/core/basepage.php +++ b/core/basepage.php @@ -383,8 +383,6 @@ class BasePage $data_href = get_base_href(); $theme_name = $config->get_string(SetupConfig::THEME, 'default'); - $this->add_html_header("", 40); - # static handler will map these to themes/foo/static/bar.ico or ext/static_files/static/bar.ico $this->add_html_header("", 41); $this->add_html_header("", 42); @@ -558,6 +556,7 @@ class BasePage $body_attrs = [ "data-userclass" => $user->class->name, + "data-base-href" => get_base_href(), ]; print emptyHTML( diff --git a/ext/autocomplete/script.js b/ext/autocomplete/script.js index 55211167..24eb0d6a 100644 --- a/ext/autocomplete/script.js +++ b/ext/autocomplete/script.js @@ -42,7 +42,7 @@ function updateCompletions(element) { } else { element.completer_timeout = setTimeout(() => { - fetch(base_href + '/api/internal/autocomplete?s=' + word).then( + fetch(document.body.getAttribute("data-base-href") + '/api/internal/autocomplete?s=' + word).then( (response) => response.json() ).then((json) => { if(element.selected_completion !== -1) { diff --git a/ext/handle_mp3/script.js b/ext/handle_mp3/script.js new file mode 100644 index 00000000..b3a214a9 --- /dev/null +++ b/ext/handle_mp3/script.js @@ -0,0 +1,30 @@ +document.addEventListener("DOMContentLoaded", () => { + let main_image = document.getElementById("main_image"); + if (main_image) { + main_image.setAttribute("volume", 0.25); + } + + let base_href = document.body.getAttribute("data-base-href"); + let audio_src = document.getElementById("audio_src"); + if (audio_src) { + let ilink = audio_src.getAttribute("src"); + window.jsmediatags.read(location.origin + base_href + ilink, { + onSuccess: function (tag) { + var artist = tag.tags.artist, + title = tag.tags.title; + + document.getElementById("audio-title").innerText = title; + document.getElementById("audio-artist").innerText = artist; + document + .getElementById("audio-download") + .setAttribute( + "download", + (artist + " - " + title).substring(0, 250) + ".mp3", + ); + }, + onError: function (error) { + console.log(error); + }, + }); + } +}); diff --git a/ext/handle_mp3/theme.php b/ext/handle_mp3/theme.php index b7702919..ea94094c 100644 --- a/ext/handle_mp3/theme.php +++ b/ext/handle_mp3/theme.php @@ -13,31 +13,11 @@ class MP3FileHandlerTheme extends Themelet $ilink = $image->get_image_link(); $html = "

Title: ??? | Artist: ???

- -

Download"; $page->add_html_header(""); From 143ca4820ed0c61ae9ded38f6d84b10a347c0c3a Mon Sep 17 00:00:00 2001 From: Shish Date: Sun, 28 Jan 2024 21:27:07 +0000 Subject: [PATCH 5/6] argh --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b783e975..433352f9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -31,7 +31,7 @@ jobs: zip -r shimmie2-${{ steps.get_version.outputs.VERSION }}.zip shimmie2 - name: Create Release - uses: softprops/action-gh-release@latest + uses: softprops/action-gh-release@v1 with: token: ${{ secrets.GITHUB_TOKEN }} name: Shimmie ${{ steps.get_version.outputs.VERSION }} From 74889c4c94942105ae81840d7c5fe5417502e7bf Mon Sep 17 00:00:00 2001 From: Shish Date: Sun, 4 Feb 2024 00:24:34 +0000 Subject: [PATCH 6/6] [autocomplete] allow enter to do the default thing --- ext/autocomplete/script.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/ext/autocomplete/script.js b/ext/autocomplete/script.js index 24eb0d6a..ecb9fdd4 100644 --- a/ext/autocomplete/script.js +++ b/ext/autocomplete/script.js @@ -232,16 +232,11 @@ document.addEventListener('DOMContentLoaded', () => { event.preventDefault(); highlightCompletion(element, element.selected_completion+1); } - // if enter or right are pressed, add the selected completion + // if enter or right are pressed while a completion is selected, add the selected completion else if((event.code === "Enter" || event.code == "ArrowRight") && element.selected_completion !== -1) { event.preventDefault(); setCompletion(element, Object.keys(element.completions)[element.selected_completion]); } - // If enter is pressed while nothing is selected, submit the form - else if(event.code === "Enter" && element.selected_completion === -1) { - event.preventDefault(); - element.form.submit(); - } // if escape is pressed, hide the completion block else if(event.code === "Escape") { event.preventDefault();