aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStarscouts <starscouts@equestria.dev>2024-07-14 14:28:01 +0200
committerStarscouts <starscouts@equestria.dev>2024-07-14 14:28:01 +0200
commit361fe53a7e8a48e42ac8d7f4c07f33bf4ed178e2 (patch)
treef559784cd9a076c27fa6cd904641176efec89a6a
parent1bbe60d3a237cfe99dc6d1a3aa14de542668dc6f (diff)
downloadfaunerie-mane.tar.gz
faunerie-mane.tar.bz2
faunerie-mane.zip
Fixes for WindowsHEADmane
-rw-r--r--[-rwxr-xr-x].gitignore0
-rw-r--r--[-rwxr-xr-x].idea/.gitignore0
-rw-r--r--[-rwxr-xr-x].idea/compiler.xml0
-rw-r--r--[-rwxr-xr-x].idea/deployment.xml0
-rw-r--r--[-rwxr-xr-x].idea/discord.xml0
-rw-r--r--[-rwxr-xr-x].idea/faunerie.iml0
-rw-r--r--[-rwxr-xr-x].idea/inspectionProfiles/Project_Default.xml0
-rw-r--r--[-rwxr-xr-x].idea/jsLibraryMappings.xml0
-rw-r--r--[-rwxr-xr-x].idea/modules.xml0
-rw-r--r--[-rwxr-xr-x].idea/php.xml0
-rw-r--r--[-rwxr-xr-x].idea/sshConfigs.xml0
-rw-r--r--[-rwxr-xr-x].idea/vcs.xml0
-rw-r--r--[-rwxr-xr-x].idea/webServers.xml0
-rw-r--r--[-rwxr-xr-x]LICENSE0
-rw-r--r--[-rwxr-xr-x]README.md5
-rw-r--r--[-rwxr-xr-x]ai/server.py0
-rw-r--r--[-rwxr-xr-x]bootstrap/bootstrap.bundle.min.js0
-rw-r--r--[-rwxr-xr-x]bootstrap/bootstrap.bundle.min.js.map0
-rw-r--r--[-rwxr-xr-x]bootstrap/bootstrap.min.css0
-rw-r--r--[-rwxr-xr-x]bootstrap/bootstrap.min.css.map0
-rw-r--r--build.bat11
-rw-r--r--[-rwxr-xr-x]build.sh0
-rw-r--r--[-rwxr-xr-x]dom/app.css20
-rw-r--r--[-rwxr-xr-x]dom/index.html60
-rw-r--r--[-rwxr-xr-x]e621/categories.pngbin24434 -> 24434 bytes
-rw-r--r--[-rwxr-xr-x]e621/csv2json.js0
-rw-r--r--[-rwxr-xr-x]e621/match.js0
-rw-r--r--[-rwxr-xr-x]e621/package-lock.json0
-rw-r--r--[-rwxr-xr-x]e621/package.json0
-rw-r--r--[-rwxr-xr-x]e621/parse.js0
-rw-r--r--[-rwxr-xr-x]e621/update.js0
-rw-r--r--[-rwxr-xr-x]intimate/TODO.md0
-rw-r--r--[-rwxr-xr-x]intimate/bs5/bootstrap.bundle.min.js0
-rw-r--r--[-rwxr-xr-x]intimate/bs5/bootstrap.bundle.min.js.map0
-rw-r--r--[-rwxr-xr-x]intimate/bs5/bootstrap.min.css0
-rw-r--r--[-rwxr-xr-x]intimate/bs5/bootstrap.min.css.map0
-rw-r--r--[-rwxr-xr-x]intimate/build.sh3
-rw-r--r--[-rwxr-xr-x]intimate/default.toml0
-rw-r--r--[-rwxr-xr-x]intimate/fullscreen.html0
-rw-r--r--[-rwxr-xr-x]intimate/index.html1
-rw-r--r--[-rwxr-xr-x]intimate/index.js14
-rw-r--r--[-rwxr-xr-x]intimate/loader.svg0
-rw-r--r--[-rwxr-xr-x]intimate/package-lock.json0
-rw-r--r--[-rwxr-xr-x]intimate/package.json0
-rw-r--r--[-rwxr-xr-x]intimate/src/actions.js0
-rw-r--r--[-rwxr-xr-x]intimate/src/display.js0
-rw-r--r--[-rwxr-xr-x]intimate/src/fetcher.js1
-rw-r--r--[-rwxr-xr-x]intimate/src/keyboard.js0
-rw-r--r--[-rwxr-xr-x]logo/logo-mac.pngbin140782 -> 140782 bytes
-rw-r--r--[-rwxr-xr-x]logo/logo-round.icobin277095 -> 277095 bytes
-rw-r--r--[-rwxr-xr-x]logo/logo-round.pngbin19423 -> 19423 bytes
-rw-r--r--[-rwxr-xr-x]logo/logo-updater-mac.pngbin140782 -> 140782 bytes
-rw-r--r--[-rwxr-xr-x]logo/logo-updater-round.icobin277095 -> 277095 bytes
-rw-r--r--[-rwxr-xr-x]logo/logo-updater-round.pngbin19423 -> 19423 bytes
-rw-r--r--[-rwxr-xr-x]logo/logo-updater.icnsbin166003 -> 166003 bytes
-rw-r--r--[-rwxr-xr-x]logo/logo-updater.pngbin14839 -> 14839 bytes
-rw-r--r--[-rwxr-xr-x]logo/logo.icnsbin166003 -> 166003 bytes
-rw-r--r--[-rwxr-xr-x]logo/logo.pngbin14839 -> 14839 bytes
-rw-r--r--[-rwxr-xr-x]logo/placeholder.jpgbin16579 -> 16579 bytes
-rw-r--r--[-rwxr-xr-x]main.js18
-rw-r--r--[-rwxr-xr-x]package-lock.json8
-rw-r--r--[-rwxr-xr-x]package.json5
-rw-r--r--[-rwxr-xr-x]sql/.idea/.gitignore0
-rw-r--r--[-rwxr-xr-x]sql/.idea/inspectionProfiles/Project_Default.xml0
-rw-r--r--[-rwxr-xr-x]sql/.idea/inspectionProfiles/profiles_settings.xml0
-rw-r--r--[-rwxr-xr-x]sql/.idea/misc.xml0
-rw-r--r--[-rwxr-xr-x]sql/.idea/modules.xml0
-rw-r--r--[-rwxr-xr-x]sql/.idea/pgsql.iml0
-rw-r--r--[-rwxr-xr-x]sql/doall.sh0
-rw-r--r--[-rwxr-xr-x]sql/mac/LICENSE0
-rw-r--r--[-rwxr-xr-x]sql/mac/README.md0
-rw-r--r--[-rwxr-xr-x]sql/mac/binding.gyp0
-rw-r--r--[-rwxr-xr-x]sql/mac/deps/common-sqlite.gypi0
-rw-r--r--[-rwxr-xr-x]sql/mac/deps/extract.js0
-rw-r--r--[-rwxr-xr-x]sql/mac/deps/sqlite3.gyp0
-rw-r--r--[-rwxr-xr-x]sql/mac/lib/sqlite3-binding.js0
-rw-r--r--[-rwxr-xr-x]sql/mac/lib/sqlite3.d.ts0
-rw-r--r--[-rwxr-xr-x]sql/mac/lib/sqlite3.js0
-rw-r--r--[-rwxr-xr-x]sql/mac/lib/trace.js0
-rw-r--r--[-rwxr-xr-x]sql/mac/package.json0
-rw-r--r--[-rwxr-xr-x]sql/main.py0
-rw-r--r--[-rwxr-xr-x]sql/win/LICENSE0
-rw-r--r--[-rwxr-xr-x]sql/win/README.md0
-rw-r--r--[-rwxr-xr-x]sql/win/binding.gyp0
-rw-r--r--[-rwxr-xr-x]sql/win/deps/common-sqlite.gypi0
-rw-r--r--[-rwxr-xr-x]sql/win/deps/extract.js0
-rw-r--r--[-rwxr-xr-x]sql/win/deps/sqlite3.gyp0
-rw-r--r--[-rwxr-xr-x]sql/win/lib/sqlite3-binding.js0
-rw-r--r--[-rwxr-xr-x]sql/win/lib/sqlite3.d.ts0
-rw-r--r--[-rwxr-xr-x]sql/win/lib/sqlite3.js0
-rw-r--r--[-rwxr-xr-x]sql/win/lib/trace.js0
-rw-r--r--[-rwxr-xr-x]sql/win/package.json0
-rw-r--r--[-rwxr-xr-x]src/FaunerieAI.ts0
-rw-r--r--[-rwxr-xr-x]src/FaunerieActions.ts0
-rw-r--r--[-rwxr-xr-x]src/FaunerieApp.ts4
-rw-r--r--[-rwxr-xr-x]src/FaunerieAppDisplay.ts0
-rw-r--r--[-rwxr-xr-x]src/FaunerieDataStore.ts0
-rw-r--r--[-rwxr-xr-x]src/FaunerieDerpibooru.ts0
-rw-r--r--[-rwxr-xr-x]src/FaunerieLoader.ts0
-rw-r--r--[-rwxr-xr-x]src/FaunerieSearch.ts0
-rw-r--r--[-rwxr-xr-x]src/FaunerieSettings.ts0
-rw-r--r--[-rwxr-xr-x]src/FaunerieUtilities.ts0
-rw-r--r--[-rwxr-xr-x]src/index.ts0
-rw-r--r--[-rwxr-xr-x]src/tsconfig.json0
-rw-r--r--[-rwxr-xr-x]updater/main.js0
-rw-r--r--[-rwxr-xr-x]updater/menu/16x16@2x.pngbin4883 -> 4883 bytes
-rw-r--r--[-rwxr-xr-x]updater/package-lock.json0
-rw-r--r--[-rwxr-xr-x]updater/package.json0
l---------updater/sql1
-rw-r--r--[-rwxr-xr-x]updater/tray/16x16Template@2x.pngbin2556 -> 2556 bytes
110 files changed, 96 insertions, 55 deletions
diff --git a/.gitignore b/.gitignore
index d5045ce..d5045ce 100755..100644
--- a/.gitignore
+++ b/.gitignore
diff --git a/.idea/.gitignore b/.idea/.gitignore
index b58b603..b58b603 100755..100644
--- a/.idea/.gitignore
+++ b/.idea/.gitignore
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 1a2fb33..1a2fb33 100755..100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
diff --git a/.idea/deployment.xml b/.idea/deployment.xml
index 3aa29c3..3aa29c3 100755..100644
--- a/.idea/deployment.xml
+++ b/.idea/deployment.xml
diff --git a/.idea/discord.xml b/.idea/discord.xml
index 3aef922..3aef922 100755..100644
--- a/.idea/discord.xml
+++ b/.idea/discord.xml
diff --git a/.idea/faunerie.iml b/.idea/faunerie.iml
index 41eb966..41eb966 100755..100644
--- a/.idea/faunerie.iml
+++ b/.idea/faunerie.iml
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
index d6adb5e..d6adb5e 100755..100644
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ b/.idea/inspectionProfiles/Project_Default.xml
diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml
index d23208f..d23208f 100755..100644
--- a/.idea/jsLibraryMappings.xml
+++ b/.idea/jsLibraryMappings.xml
diff --git a/.idea/modules.xml b/.idea/modules.xml
index 468ea56..468ea56 100755..100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
diff --git a/.idea/php.xml b/.idea/php.xml
index 88cd1bc..88cd1bc 100755..100644
--- a/.idea/php.xml
+++ b/.idea/php.xml
diff --git a/.idea/sshConfigs.xml b/.idea/sshConfigs.xml
index dc6085f..dc6085f 100755..100644
--- a/.idea/sshConfigs.xml
+++ b/.idea/sshConfigs.xml
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 94a25f7..94a25f7 100755..100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
diff --git a/.idea/webServers.xml b/.idea/webServers.xml
index 1fb39d7..1fb39d7 100755..100644
--- a/.idea/webServers.xml
+++ b/.idea/webServers.xml
diff --git a/LICENSE b/LICENSE
index f9058f8..f9058f8 100755..100644
--- a/LICENSE
+++ b/LICENSE
diff --git a/README.md b/README.md
index 67b5128..b27e993 100755..100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
A browser and search engine for local copies of various image boards (e621, Derpibooru, Furbooru, ...)
## Development
-Assuming you are using macOS or Linux. Other POSIX systems won't work as Electron does not have binaries for these.
+Assuming you are using macOS, Windows or Linux. Other POSIX systems won't work as Electron does not have binaries for these.
### Cloning
```
@@ -27,5 +27,6 @@ npm run debug-updater
### Building
```
# This will run 'npm audit fix' and 'npm install' to update dependencies if needed
-npm run release
+npm run release-unix # For Unix systems
+npm run release-win # For Windows
```
diff --git a/ai/server.py b/ai/server.py
index 1db3891..1db3891 100755..100644
--- a/ai/server.py
+++ b/ai/server.py
diff --git a/bootstrap/bootstrap.bundle.min.js b/bootstrap/bootstrap.bundle.min.js
index b1999d9..b1999d9 100755..100644
--- a/bootstrap/bootstrap.bundle.min.js
+++ b/bootstrap/bootstrap.bundle.min.js
diff --git a/bootstrap/bootstrap.bundle.min.js.map b/bootstrap/bootstrap.bundle.min.js.map
index 7cd8480..7cd8480 100755..100644
--- a/bootstrap/bootstrap.bundle.min.js.map
+++ b/bootstrap/bootstrap.bundle.min.js.map
diff --git a/bootstrap/bootstrap.min.css b/bootstrap/bootstrap.min.css
index 8562e9a..8562e9a 100755..100644
--- a/bootstrap/bootstrap.min.css
+++ b/bootstrap/bootstrap.min.css
diff --git a/bootstrap/bootstrap.min.css.map b/bootstrap/bootstrap.min.css.map
index c418bf8..c418bf8 100755..100644
--- a/bootstrap/bootstrap.min.css.map
+++ b/bootstrap/bootstrap.min.css.map
diff --git a/build.bat b/build.bat
new file mode 100644
index 0000000..7374a92
--- /dev/null
+++ b/build.bat
@@ -0,0 +1,11 @@
+del /s /q build
+
+cd src || exit
+npx tsc
+cd .. || exit
+
+npx electron-packager . Faunerie --ignore sql/win --ignore sql/preprocessed.db --ignore updater --ignore intimate --ignore sql/preprocessed.db --ignore sql/preprocessed2.db --ignore e621 --overwrite --platform=darwin --arch=arm64 --icon=./logo/logo.icns --out=./build
+npx electron-packager . Faunerie --ignore sql/mac --ignore sql/preprocessed.db --ignore updater --ignore intimate --ignore sql/preprocessed.db --ignore sql/preprocessed2.db --ignore e621 --overwrite --platform=win32 --arch=x64 --icon=./logo/logo-round.ico --out=./build
+
+npx electron-packager ./updater "Faunerie Updater" --ignore sql/win --ignore sql/preprocessed.db --ignore sql/preprocessed2.db --overwrite --platform=darwin --arch=arm64 --icon=./logo/logo-updater.icns --out=./build
+npx electron-packager ./updater "Faunerie Updater" --ignore sql/mac --ignore sql/preprocessed.db --ignore sql/preprocessed2.db --overwrite --platform=win32 --arch=x64 --icon=./logo/logo-updater-round.ico --out=./build
diff --git a/build.sh b/build.sh
index affdb98..affdb98 100755..100644
--- a/build.sh
+++ b/build.sh
diff --git a/dom/app.css b/dom/app.css
index c4893d2..10054af 100755..100644
--- a/dom/app.css
+++ b/dom/app.css
@@ -14,11 +14,11 @@ code {
}
#search {
- font-family: 'JetBrains Mono', monospace;
+ font-family: 'Iosevka', 'JetBrains Mono', monospace;
}
#search::placeholder {
- font-family: var(--bs-body-font-family) !important;
+ font-family: var(--bs-body-font-family), sans-serif !important;
color: rgba(255, 255, 255, .5);
}
@@ -412,3 +412,19 @@ select:active, select:focus {
#preview-parts-list:has(.preview-tag-zone:hover) .preview-tag-zone:not(:hover):not(.hover), #preview-parts-list:has(.preview-tag-zone.hover) .preview-tag-zone:not(:hover):not(.hover) {
opacity: .75 !important;
}
+
+::-webkit-scrollbar {
+ width: 8px;
+}
+
+::-webkit-scrollbar-track {
+ background-color: transparent;
+}
+
+::-webkit-scrollbar-thumb {
+ background-color: rgba(255, 255, 255, .05);
+}
+
+::-webkit-scrollbar-thumb:hover {
+ background-color: rgba(255, 255, 255, .1);
+}
diff --git a/dom/index.html b/dom/index.html
index 4239a1d..a7b95b5 100755..100644
--- a/dom/index.html
+++ b/dom/index.html
@@ -90,8 +90,8 @@
</div>
</div>
- <div id="app" class="container disabled" style="padding-top: 50px;">
- <div style="-webkit-app-region: drag; position: fixed; top: 0; left: 0; right: 0; backdrop-filter: blur(50px); background-color: rgba(33,33,33,0.75); border-bottom: 1px solid #111;" id="filter-bar">
+ <div id="app" class="disabled" style="padding-top: 50px;">
+ <div style="z-index: 99; -webkit-app-region: drag; position: fixed; top: 0; left: 0; right: 0; backdrop-filter: blur(50px); background-color: rgba(33,33,33,0.75); border-bottom: 1px solid #111;" id="filter-bar">
<div style="display: grid; grid-template-columns: minmax(130px, 1fr) 2fr minmax(260px, 1fr); grid-gap: 10px;">
<div style="text-align: center;">
<a class="fancy-btn" id="logo" onclick="instance.actions.goHome();" href="#" style="padding: 5px 10px; display: inline-block; color: white; text-decoration: none; -webkit-app-region: no-drag;">
@@ -136,33 +136,35 @@
</div>
</div>
- <div style="margin-top: 42px;">
- <div id="search-error" style="margin-bottom: 20px; margin-top: 20px; display: none;" class="alert alert-danger"></div>
- <div id="search-warning" style="margin-bottom: 20px; margin-top: 20px; display: none;" class="alert alert-warning"></div>
- <div id="images" style="margin-bottom: 20px; margin-top: 20px; display: grid; grid-template-columns: repeat(5, 1fr); grid-gap: 10px;"></div>
- <div style="margin-bottom: 50px; display: grid; grid-template-columns: 1fr max-content;" id="footer">
- <div id="pages"></div>
- <div id="sort">
- <select tabindex="-1" id="sorting" onchange="instance.display.updateDisplay();" class="form-select" style="width: max-content; display: inline-block;">
- <option selected value="new">Sort by date</option>
- <optgroup label="Popularity">
- <option value="popular">Sort by score</option>
- <option value="relevance">Sort by relevance</option>
- </optgroup>
- <optgroup label="Sizes">
- <option value="resolution">Sort by resolution</option>
- <option value="size">Sort by size</option>
- <option value="duration">Sort by duration</option>
- </optgroup>
- <optgroup label="Technical">
- <option value="id">Sort by image ID</option>
- <option value="tag">Sort by tags</option>
- </optgroup>
- </select>
- <select tabindex="-1" id="order" onchange="instance.display.updateDisplay();" class="form-select" style="width: max-content; display: inline-block;">
- <option value="up">↑ Ascending</option>
- <option selected value="down">↓ Descending</option>
- </select>
+ <div id="app-area" style="z-index: 1; position: fixed; top: 0; left: 0; right: 0; overflow: auto; bottom: 0;">
+ <div style="padding-top: 42px;" class="container">
+ <div id="search-error" style="margin-bottom: 20px; margin-top: 20px; display: none;" class="alert alert-danger"></div>
+ <div id="search-warning" style="margin-bottom: 20px; margin-top: 20px; display: none;" class="alert alert-warning"></div>
+ <div id="images" style="margin-bottom: 20px; margin-top: 20px; display: grid; grid-template-columns: repeat(5, 1fr); grid-gap: 10px;"></div>
+ <div style="margin-bottom: 50px; display: grid; grid-template-columns: 1fr max-content;" id="footer">
+ <div id="pages"></div>
+ <div id="sort">
+ <select tabindex="-1" id="sorting" onchange="instance.display.updateDisplay();" class="form-select" style="width: max-content; display: inline-block;">
+ <option selected value="new">Sort by date</option>
+ <optgroup label="Popularity">
+ <option value="popular">Sort by score</option>
+ <option value="relevance">Sort by relevance</option>
+ </optgroup>
+ <optgroup label="Sizes">
+ <option value="resolution">Sort by resolution</option>
+ <option value="size">Sort by size</option>
+ <option value="duration">Sort by duration</option>
+ </optgroup>
+ <optgroup label="Technical">
+ <option value="id">Sort by image ID</option>
+ <option value="tag">Sort by tags</option>
+ </optgroup>
+ </select>
+ <select tabindex="-1" id="order" onchange="instance.display.updateDisplay();" class="form-select" style="width: max-content; display: inline-block;">
+ <option value="up">↑ Ascending</option>
+ <option selected value="down">↓ Descending</option>
+ </select>
+ </div>
</div>
</div>
</div>
diff --git a/e621/categories.png b/e621/categories.png
index da09fde..da09fde 100755..100644
--- a/e621/categories.png
+++ b/e621/categories.png
Binary files differ
diff --git a/e621/csv2json.js b/e621/csv2json.js
index ee55fdb..ee55fdb 100755..100644
--- a/e621/csv2json.js
+++ b/e621/csv2json.js
diff --git a/e621/match.js b/e621/match.js
index 3837500..3837500 100755..100644
--- a/e621/match.js
+++ b/e621/match.js
diff --git a/e621/package-lock.json b/e621/package-lock.json
index 556abc0..556abc0 100755..100644
--- a/e621/package-lock.json
+++ b/e621/package-lock.json
diff --git a/e621/package.json b/e621/package.json
index d0c2ada..d0c2ada 100755..100644
--- a/e621/package.json
+++ b/e621/package.json
diff --git a/e621/parse.js b/e621/parse.js
index b848708..b848708 100755..100644
--- a/e621/parse.js
+++ b/e621/parse.js
diff --git a/e621/update.js b/e621/update.js
index 08d61af..08d61af 100755..100644
--- a/e621/update.js
+++ b/e621/update.js
diff --git a/intimate/TODO.md b/intimate/TODO.md
index 35bbf5f..35bbf5f 100755..100644
--- a/intimate/TODO.md
+++ b/intimate/TODO.md
diff --git a/intimate/bs5/bootstrap.bundle.min.js b/intimate/bs5/bootstrap.bundle.min.js
index d705b8d..d705b8d 100755..100644
--- a/intimate/bs5/bootstrap.bundle.min.js
+++ b/intimate/bs5/bootstrap.bundle.min.js
diff --git a/intimate/bs5/bootstrap.bundle.min.js.map b/intimate/bs5/bootstrap.bundle.min.js.map
index 17a1e03..17a1e03 100755..100644
--- a/intimate/bs5/bootstrap.bundle.min.js.map
+++ b/intimate/bs5/bootstrap.bundle.min.js.map
diff --git a/intimate/bs5/bootstrap.min.css b/intimate/bs5/bootstrap.min.css
index aac8bee..aac8bee 100755..100644
--- a/intimate/bs5/bootstrap.min.css
+++ b/intimate/bs5/bootstrap.min.css
diff --git a/intimate/bs5/bootstrap.min.css.map b/intimate/bs5/bootstrap.min.css.map
index e504478..e504478 100755..100644
--- a/intimate/bs5/bootstrap.min.css.map
+++ b/intimate/bs5/bootstrap.min.css.map
diff --git a/intimate/build.sh b/intimate/build.sh
index 3917ff6..6eaf025 100755..100644
--- a/intimate/build.sh
+++ b/intimate/build.sh
@@ -1,5 +1,2 @@
-#npx electron-packager . Intimate --overwrite --platform=darwin --arch=arm64 --icon=./logo/logo-round.ico --out=./build
npx electron-packager . Intimate --overwrite --platform=darwin --arch=arm64 --out=./build
npx electron-packager . Intimate --overwrite --platform=win32 --arch=x64 --out=./build
-/Library/Atomic/SDK/convert_darwin_arm64.sh ./build/Intimate-darwin-arm64/Intimate.app || /Volumes/Projects/atomic/converter/convert_darwin_arm64.sh ./build/Intimate-darwin-arm64/Intimate.app
-/Library/Atomic/SDK/convert_windows_x64.sh ./build/Intimate-win32-x64 || /Volumes/Projects/atomic/converter/convert_windows_x64.sh ./build/Intimate-win32-x64
diff --git a/intimate/default.toml b/intimate/default.toml
index 57d5d7d..57d5d7d 100755..100644
--- a/intimate/default.toml
+++ b/intimate/default.toml
diff --git a/intimate/fullscreen.html b/intimate/fullscreen.html
index 8e9f6d6..8e9f6d6 100755..100644
--- a/intimate/fullscreen.html
+++ b/intimate/fullscreen.html
diff --git a/intimate/index.html b/intimate/index.html
index aa8eac0..3fc0e32 100755..100644
--- a/intimate/index.html
+++ b/intimate/index.html
@@ -126,6 +126,7 @@
if (!config.modules.derpibooru['faunerie_cache']) return i;
if (!fs.existsSync(config.modules.derpibooru['faunerie_cache'] + "/images/" + i['sha512_hash'].substring(0, 1) + "/" + i['sha512_hash'].substring(0, 2) + "/" + i['sha512_hash'].substring(0, 3) + "/10" + i['id'] + ".bin")) return i;
i['view_url'] = "pbip://" + config.modules.derpibooru['faunerie_cache'] + "/images/" + i['sha512_hash'].substring(0, 1) + "/" + i['sha512_hash'].substring(0, 2) + "/" + i['sha512_hash'].substring(0, 3) + "/10" + i['id'] + ".bin";
+ if (process.platform === "win32") i['view_url'] = i['view_url'].replaceAll("\\", "/").replaceAll("pbip://", "pbip:///");
return i;
})[0]["view_url"];
diff --git a/intimate/index.js b/intimate/index.js
index 620398c..be295e3 100755..100644
--- a/intimate/index.js
+++ b/intimate/index.js
@@ -22,6 +22,10 @@ function createWindow () {
fullscreenable: false,
simpleFullscreen: true,
titleBarStyle: "hidden",
+ titleBarOverlay: {
+ color: "#21252977",
+ symbolColor: "#ffffff"
+ },
backgroundColor: "#212529",
autoHideMenuBar: true,
webPreferences: {
@@ -98,9 +102,11 @@ Menu.setApplicationMenu(menu);
app.whenReady().then(() => {
protocol.handle('pbip', async (req) => {
- const { pathname, searchParams } = new URL(req.url);
+ let { pathname, searchParams } = new URL(req.url);
let mime = searchParams.get("mime") ?? "application/octet-stream";
+ if (process.platform === "win32") pathname = pathname.substring(1);
+
const inflateRawSync = util.promisify(zlib.inflateRaw);
try {
@@ -140,11 +146,6 @@ app.on('window-all-closed', () => {
app.quit();
});
-app.on('before-quit', () => {
- try { if (mainWindow) mainWindow.close(); } catch (e) { console.error(e); }
- try { if (mainWindow) fullscreenWindow.close(); } catch (e) { console.error(e); }
-});
-
ipcMain.on('start', (_, prefs, config) => {
preferences = prefs;
globalConfig = config;
@@ -158,6 +159,7 @@ ipcMain.on('start', (_, prefs, config) => {
resizable: false,
maximizable: false,
minimizable: false,
+ autoHideMenuBar: true,
webPreferences: {
nodeIntegration: true,
contextIsolation: false
diff --git a/intimate/loader.svg b/intimate/loader.svg
index df4bd90..df4bd90 100755..100644
--- a/intimate/loader.svg
+++ b/intimate/loader.svg
diff --git a/intimate/package-lock.json b/intimate/package-lock.json
index 8409912..8409912 100755..100644
--- a/intimate/package-lock.json
+++ b/intimate/package-lock.json
diff --git a/intimate/package.json b/intimate/package.json
index 8bbd20a..8bbd20a 100755..100644
--- a/intimate/package.json
+++ b/intimate/package.json
diff --git a/intimate/src/actions.js b/intimate/src/actions.js
index 2590656..2590656 100755..100644
--- a/intimate/src/actions.js
+++ b/intimate/src/actions.js
diff --git a/intimate/src/display.js b/intimate/src/display.js
index 921cdee..921cdee 100755..100644
--- a/intimate/src/display.js
+++ b/intimate/src/display.js
diff --git a/intimate/src/fetcher.js b/intimate/src/fetcher.js
index 4375fe5..f5eb236 100755..100644
--- a/intimate/src/fetcher.js
+++ b/intimate/src/fetcher.js
@@ -99,6 +99,7 @@ async function slideshowMain() {
if (!config.modules.derpibooru['faunerie_cache']) return i;
if (!fs.existsSync(config.modules.derpibooru['faunerie_cache'] + "/images/" + i['sha512_hash'].substring(0, 1) + "/" + i['sha512_hash'].substring(0, 2) + "/" + i['sha512_hash'].substring(0, 3) + "/10" + i['id'] + ".bin")) return i;
i['view_url'] = "pbip://" + config.modules.derpibooru['faunerie_cache'] + "/images/" + i['sha512_hash'].substring(0, 1) + "/" + i['sha512_hash'].substring(0, 2) + "/" + i['sha512_hash'].substring(0, 3) + "/10" + i['id'] + ".bin";
+ if (process.platform === "win32") i['view_url'] = i['view_url'].replaceAll("\\", "/").replaceAll("pbip://", "pbip:///");
return i;
}));
window.displayQueue = window.displayQueue.sort(() => Math.random() - Math.random());
diff --git a/intimate/src/keyboard.js b/intimate/src/keyboard.js
index 26916bb..26916bb 100755..100644
--- a/intimate/src/keyboard.js
+++ b/intimate/src/keyboard.js
diff --git a/logo/logo-mac.png b/logo/logo-mac.png
index 004c9ff..004c9ff 100755..100644
--- a/logo/logo-mac.png
+++ b/logo/logo-mac.png
Binary files differ
diff --git a/logo/logo-round.ico b/logo/logo-round.ico
index 384ee93..384ee93 100755..100644
--- a/logo/logo-round.ico
+++ b/logo/logo-round.ico
Binary files differ
diff --git a/logo/logo-round.png b/logo/logo-round.png
index e1736b4..e1736b4 100755..100644
--- a/logo/logo-round.png
+++ b/logo/logo-round.png
Binary files differ
diff --git a/logo/logo-updater-mac.png b/logo/logo-updater-mac.png
index 004c9ff..004c9ff 100755..100644
--- a/logo/logo-updater-mac.png
+++ b/logo/logo-updater-mac.png
Binary files differ
diff --git a/logo/logo-updater-round.ico b/logo/logo-updater-round.ico
index 384ee93..384ee93 100755..100644
--- a/logo/logo-updater-round.ico
+++ b/logo/logo-updater-round.ico
Binary files differ
diff --git a/logo/logo-updater-round.png b/logo/logo-updater-round.png
index e1736b4..e1736b4 100755..100644
--- a/logo/logo-updater-round.png
+++ b/logo/logo-updater-round.png
Binary files differ
diff --git a/logo/logo-updater.icns b/logo/logo-updater.icns
index 9366bef..9366bef 100755..100644
--- a/logo/logo-updater.icns
+++ b/logo/logo-updater.icns
Binary files differ
diff --git a/logo/logo-updater.png b/logo/logo-updater.png
index 86f041b..86f041b 100755..100644
--- a/logo/logo-updater.png
+++ b/logo/logo-updater.png
Binary files differ
diff --git a/logo/logo.icns b/logo/logo.icns
index 9366bef..9366bef 100755..100644
--- a/logo/logo.icns
+++ b/logo/logo.icns
Binary files differ
diff --git a/logo/logo.png b/logo/logo.png
index 86f041b..86f041b 100755..100644
--- a/logo/logo.png
+++ b/logo/logo.png
Binary files differ
diff --git a/logo/placeholder.jpg b/logo/placeholder.jpg
index 6f38b08..6f38b08 100755..100644
--- a/logo/placeholder.jpg
+++ b/logo/placeholder.jpg
Binary files differ
diff --git a/main.js b/main.js
index 329ebd8..9220a09 100755..100644
--- a/main.js
+++ b/main.js
@@ -25,7 +25,7 @@ function open() {
},
titleBarStyle: "hidden",
titleBarOverlay: {
- color: "transparent",
+ color: "#00000000",
symbolColor: "#ffffff",
height: 43
},
@@ -39,9 +39,10 @@ function open() {
remote.enable(win.webContents);
win.on('close', async (e) => {
- if (await win.webContents.executeJavaScript("instance?.dataStore.unloaded;")) e.preventDefault();
- await win.webContents.executeJavaScript("instance?.safeClose();");
- })
+ e.preventDefault();
+ if (await win.webContents.executeJavaScript("instance?.dataStore.unloaded;")) win.destroy();
+ await win.webContents.executeJavaScript("instance?.safeUnload().then(() => { require('electron').ipcRenderer.send('destroy'); });");
+ });
win.loadFile("./dom/index.html");
win.on('ready-to-show', () => {
@@ -68,6 +69,10 @@ function open() {
properties: ["openFile", "treatPackageAsDirectory", "dontAddToRecent"]
});
});
+
+ ipcMain.on('destroy', () => {
+ win.destroy();
+ });
}
if (app.getName() !== "Electron") {
@@ -80,9 +85,11 @@ if (app.getName() !== "Electron") {
app.whenReady().then(() => {
protocol.handle('pbip', async (req) => {
- const { pathname, searchParams } = new URL(req.url);
+ let { pathname, searchParams } = new URL(req.url);
let mime = searchParams.get("mime") ?? "application/octet-stream";
+ if (process.platform === "win32") pathname = pathname.substring(1);
+
const inflateRawSync = util.promisify(zlib.inflateRaw);
try {
@@ -101,7 +108,6 @@ app.whenReady().then(() => {
headers: { 'content-type': 'text/plain' }
});
}
-
});
open();
diff --git a/package-lock.json b/package-lock.json
index 2650569..0996c10 100755..100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,11 +1,11 @@
{
"name": "faunerie",
- "version": "3.1.0",
+ "version": "3.2.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
- "version": "3.1.0",
+ "version": "3.2.0",
"hasInstallScript": true,
"dependencies": {
"@electron/remote": "^2.1.2",
@@ -2158,8 +2158,8 @@
}
},
"node_modules/libfaunerie": {
- "version": "2.4.0",
- "resolved": "git+ssh://git@github.com/equestria-dev/libfaunerie.git#e2dc982e0530f11c5afd673b08ccab2e7d1341ad",
+ "version": "2.5.0",
+ "resolved": "git+ssh://git@github.com/equestria-dev/libfaunerie.git#126e8dce7032d537180cf197846adeedcea180fc",
"hasInstallScript": true,
"dependencies": {
"@types/sqlite3": "^3.1.11"
diff --git a/package.json b/package.json
index 26dfab4..bd0d3df 100755..100644
--- a/package.json
+++ b/package.json
@@ -3,11 +3,12 @@
"version": "3.2.0",
"scripts": {
"install": "cd updater && npm install && cd ..",
- "postinstall": "echo \"============================\n\nThank you for developing on Faunerie!\n\n- Run 'npm run build' to build TypeScript code\n- Run 'npm run debug' to start the application in debug mode\n- Run 'npm run debug-updater' to start Faunerie Updater in debug mode\n- Run 'npm run release' to build the release application\n\n============================\"",
+ "postinstall": "echo \"============================\n\nThank you for developing on Faunerie!\n\n- Run 'npm run build' to build TypeScript code\n- Run 'npm run debug' to start the application in debug mode\n- Run 'npm run debug-updater' to start Faunerie Updater in debug mode\n- Run 'npm run release-<platform>' to build the release application\n\n============================\"",
"build": "cd src && tsc && cd ..",
"debug": "npm run build && electron main.js",
"debug-updater": "npm run build && cd updater && npx electron main.js && cd ..",
- "release": "npm audit fix && npm install && ./build.sh"
+ "release-unix": "npm audit fix && npm install && ./build.sh",
+ "release-win": "npm audit fix && npm install && build.bat"
},
"dependencies": {
"@electron/remote": "^2.1.2",
diff --git a/sql/.idea/.gitignore b/sql/.idea/.gitignore
index 13566b8..13566b8 100755..100644
--- a/sql/.idea/.gitignore
+++ b/sql/.idea/.gitignore
diff --git a/sql/.idea/inspectionProfiles/Project_Default.xml b/sql/.idea/inspectionProfiles/Project_Default.xml
index 8252e57..8252e57 100755..100644
--- a/sql/.idea/inspectionProfiles/Project_Default.xml
+++ b/sql/.idea/inspectionProfiles/Project_Default.xml
diff --git a/sql/.idea/inspectionProfiles/profiles_settings.xml b/sql/.idea/inspectionProfiles/profiles_settings.xml
index 105ce2d..105ce2d 100755..100644
--- a/sql/.idea/inspectionProfiles/profiles_settings.xml
+++ b/sql/.idea/inspectionProfiles/profiles_settings.xml
diff --git a/sql/.idea/misc.xml b/sql/.idea/misc.xml
index a971a2c..a971a2c 100755..100644
--- a/sql/.idea/misc.xml
+++ b/sql/.idea/misc.xml
diff --git a/sql/.idea/modules.xml b/sql/.idea/modules.xml
index dfb35d4..dfb35d4 100755..100644
--- a/sql/.idea/modules.xml
+++ b/sql/.idea/modules.xml
diff --git a/sql/.idea/pgsql.iml b/sql/.idea/pgsql.iml
index d0876a7..d0876a7 100755..100644
--- a/sql/.idea/pgsql.iml
+++ b/sql/.idea/pgsql.iml
diff --git a/sql/doall.sh b/sql/doall.sh
index 89594f8..89594f8 100755..100644
--- a/sql/doall.sh
+++ b/sql/doall.sh
diff --git a/sql/mac/LICENSE b/sql/mac/LICENSE
index 6c4ce40..6c4ce40 100755..100644
--- a/sql/mac/LICENSE
+++ b/sql/mac/LICENSE
diff --git a/sql/mac/README.md b/sql/mac/README.md
index ffc1f04..ffc1f04 100755..100644
--- a/sql/mac/README.md
+++ b/sql/mac/README.md
diff --git a/sql/mac/binding.gyp b/sql/mac/binding.gyp
index a8fccd0..a8fccd0 100755..100644
--- a/sql/mac/binding.gyp
+++ b/sql/mac/binding.gyp
diff --git a/sql/mac/deps/common-sqlite.gypi b/sql/mac/deps/common-sqlite.gypi
index a04b1d5..a04b1d5 100755..100644
--- a/sql/mac/deps/common-sqlite.gypi
+++ b/sql/mac/deps/common-sqlite.gypi
diff --git a/sql/mac/deps/extract.js b/sql/mac/deps/extract.js
index 46aed47..46aed47 100755..100644
--- a/sql/mac/deps/extract.js
+++ b/sql/mac/deps/extract.js
diff --git a/sql/mac/deps/sqlite3.gyp b/sql/mac/deps/sqlite3.gyp
index 660b3b0..660b3b0 100755..100644
--- a/sql/mac/deps/sqlite3.gyp
+++ b/sql/mac/deps/sqlite3.gyp
diff --git a/sql/mac/lib/sqlite3-binding.js b/sql/mac/lib/sqlite3-binding.js
index 98d1b91..98d1b91 100755..100644
--- a/sql/mac/lib/sqlite3-binding.js
+++ b/sql/mac/lib/sqlite3-binding.js
diff --git a/sql/mac/lib/sqlite3.d.ts b/sql/mac/lib/sqlite3.d.ts
index 15e6623..15e6623 100755..100644
--- a/sql/mac/lib/sqlite3.d.ts
+++ b/sql/mac/lib/sqlite3.d.ts
diff --git a/sql/mac/lib/sqlite3.js b/sql/mac/lib/sqlite3.js
index 430a2b8..430a2b8 100755..100644
--- a/sql/mac/lib/sqlite3.js
+++ b/sql/mac/lib/sqlite3.js
diff --git a/sql/mac/lib/trace.js b/sql/mac/lib/trace.js
index 1d84cb0..1d84cb0 100755..100644
--- a/sql/mac/lib/trace.js
+++ b/sql/mac/lib/trace.js
diff --git a/sql/mac/package.json b/sql/mac/package.json
index ab413ff..ab413ff 100755..100644
--- a/sql/mac/package.json
+++ b/sql/mac/package.json
diff --git a/sql/main.py b/sql/main.py
index f4e3a01..f4e3a01 100755..100644
--- a/sql/main.py
+++ b/sql/main.py
diff --git a/sql/win/LICENSE b/sql/win/LICENSE
index 6c4ce40..6c4ce40 100755..100644
--- a/sql/win/LICENSE
+++ b/sql/win/LICENSE
diff --git a/sql/win/README.md b/sql/win/README.md
index ffc1f04..ffc1f04 100755..100644
--- a/sql/win/README.md
+++ b/sql/win/README.md
diff --git a/sql/win/binding.gyp b/sql/win/binding.gyp
index a8fccd0..a8fccd0 100755..100644
--- a/sql/win/binding.gyp
+++ b/sql/win/binding.gyp
diff --git a/sql/win/deps/common-sqlite.gypi b/sql/win/deps/common-sqlite.gypi
index a04b1d5..a04b1d5 100755..100644
--- a/sql/win/deps/common-sqlite.gypi
+++ b/sql/win/deps/common-sqlite.gypi
diff --git a/sql/win/deps/extract.js b/sql/win/deps/extract.js
index 46aed47..46aed47 100755..100644
--- a/sql/win/deps/extract.js
+++ b/sql/win/deps/extract.js
diff --git a/sql/win/deps/sqlite3.gyp b/sql/win/deps/sqlite3.gyp
index 660b3b0..660b3b0 100755..100644
--- a/sql/win/deps/sqlite3.gyp
+++ b/sql/win/deps/sqlite3.gyp
diff --git a/sql/win/lib/sqlite3-binding.js b/sql/win/lib/sqlite3-binding.js
index 98d1b91..98d1b91 100755..100644
--- a/sql/win/lib/sqlite3-binding.js
+++ b/sql/win/lib/sqlite3-binding.js
diff --git a/sql/win/lib/sqlite3.d.ts b/sql/win/lib/sqlite3.d.ts
index 15e6623..15e6623 100755..100644
--- a/sql/win/lib/sqlite3.d.ts
+++ b/sql/win/lib/sqlite3.d.ts
diff --git a/sql/win/lib/sqlite3.js b/sql/win/lib/sqlite3.js
index 430a2b8..430a2b8 100755..100644
--- a/sql/win/lib/sqlite3.js
+++ b/sql/win/lib/sqlite3.js
diff --git a/sql/win/lib/trace.js b/sql/win/lib/trace.js
index 1d84cb0..1d84cb0 100755..100644
--- a/sql/win/lib/trace.js
+++ b/sql/win/lib/trace.js
diff --git a/sql/win/package.json b/sql/win/package.json
index ab413ff..ab413ff 100755..100644
--- a/sql/win/package.json
+++ b/sql/win/package.json
diff --git a/src/FaunerieAI.ts b/src/FaunerieAI.ts
index aa93cbb..aa93cbb 100755..100644
--- a/src/FaunerieAI.ts
+++ b/src/FaunerieAI.ts
diff --git a/src/FaunerieActions.ts b/src/FaunerieActions.ts
index 853ac12..853ac12 100755..100644
--- a/src/FaunerieActions.ts
+++ b/src/FaunerieActions.ts
diff --git a/src/FaunerieApp.ts b/src/FaunerieApp.ts
index 6614d07..55f651b 100755..100644
--- a/src/FaunerieApp.ts
+++ b/src/FaunerieApp.ts
@@ -69,6 +69,10 @@ export class FaunerieApp {
async loadApp() {
if (this.dataStore.loaded) return;
+ if (process.platform === "win32") {
+ document.getElementById("filter-bar").style.paddingRight = "96px";
+ }
+
document.getElementById("load").innerText = "Waiting for application...";
document.getElementById("progress").classList.remove("progress-bar-striped");
document.getElementById("progress").style.width = "0%";
diff --git a/src/FaunerieAppDisplay.ts b/src/FaunerieAppDisplay.ts
index 66f592b..66f592b 100755..100644
--- a/src/FaunerieAppDisplay.ts
+++ b/src/FaunerieAppDisplay.ts
diff --git a/src/FaunerieDataStore.ts b/src/FaunerieDataStore.ts
index 3506841..3506841 100755..100644
--- a/src/FaunerieDataStore.ts
+++ b/src/FaunerieDataStore.ts
diff --git a/src/FaunerieDerpibooru.ts b/src/FaunerieDerpibooru.ts
index 84252f9..84252f9 100755..100644
--- a/src/FaunerieDerpibooru.ts
+++ b/src/FaunerieDerpibooru.ts
diff --git a/src/FaunerieLoader.ts b/src/FaunerieLoader.ts
index 926ece6..926ece6 100755..100644
--- a/src/FaunerieLoader.ts
+++ b/src/FaunerieLoader.ts
diff --git a/src/FaunerieSearch.ts b/src/FaunerieSearch.ts
index eb4db33..eb4db33 100755..100644
--- a/src/FaunerieSearch.ts
+++ b/src/FaunerieSearch.ts
diff --git a/src/FaunerieSettings.ts b/src/FaunerieSettings.ts
index 74919ae..74919ae 100755..100644
--- a/src/FaunerieSettings.ts
+++ b/src/FaunerieSettings.ts
diff --git a/src/FaunerieUtilities.ts b/src/FaunerieUtilities.ts
index 1c84300..1c84300 100755..100644
--- a/src/FaunerieUtilities.ts
+++ b/src/FaunerieUtilities.ts
diff --git a/src/index.ts b/src/index.ts
index 5413d83..5413d83 100755..100644
--- a/src/index.ts
+++ b/src/index.ts
diff --git a/src/tsconfig.json b/src/tsconfig.json
index e397c5f..e397c5f 100755..100644
--- a/src/tsconfig.json
+++ b/src/tsconfig.json
diff --git a/updater/main.js b/updater/main.js
index 16f4aff..16f4aff 100755..100644
--- a/updater/main.js
+++ b/updater/main.js
diff --git a/updater/menu/16x16@2x.png b/updater/menu/16x16@2x.png
index c02929f..c02929f 100755..100644
--- a/updater/menu/16x16@2x.png
+++ b/updater/menu/16x16@2x.png
Binary files differ
diff --git a/updater/package-lock.json b/updater/package-lock.json
index 99658cf..99658cf 100755..100644
--- a/updater/package-lock.json
+++ b/updater/package-lock.json
diff --git a/updater/package.json b/updater/package.json
index 34f86f2..34f86f2 100755..100644
--- a/updater/package.json
+++ b/updater/package.json
diff --git a/updater/sql b/updater/sql
deleted file mode 120000
index 44657b9..0000000
--- a/updater/sql
+++ /dev/null
@@ -1 +0,0 @@
-../sql \ No newline at end of file
diff --git a/updater/tray/16x16Template@2x.png b/updater/tray/16x16Template@2x.png
index 3136296..3136296 100755..100644
--- a/updater/tray/16x16Template@2x.png
+++ b/updater/tray/16x16Template@2x.png
Binary files differ