forked from Shinonome/dots-hyprland
booru: instant feedback on enter
This commit is contained in:
@@ -18,7 +18,7 @@ Item {
|
|||||||
id: root
|
id: root
|
||||||
property var panelWindow
|
property var panelWindow
|
||||||
property var inputField: tagInputField
|
property var inputField: tagInputField
|
||||||
readonly property list<var> responses: Booru.responses
|
readonly property var responses: Booru.responses
|
||||||
property string previewDownloadPath: `${StandardPaths.standardLocations(StandardPaths.CacheLocation)[0]}/media/waifus`.replace("file://", "")
|
property string previewDownloadPath: `${StandardPaths.standardLocations(StandardPaths.CacheLocation)[0]}/media/waifus`.replace("file://", "")
|
||||||
property string downloadPath: (StandardPaths.standardLocations(StandardPaths.PicturesLocation)[0] + "/homework").replace("file://", "")
|
property string downloadPath: (StandardPaths.standardLocations(StandardPaths.PicturesLocation)[0] + "/homework").replace("file://", "")
|
||||||
property string nsfwPath: (StandardPaths.standardLocations(StandardPaths.PicturesLocation)[0] + "/homework/🌶️").replace("file://", "")
|
property string nsfwPath: (StandardPaths.standardLocations(StandardPaths.PicturesLocation)[0] + "/homework/🌶️").replace("file://", "")
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ Singleton {
|
|||||||
|
|
||||||
readonly property list<DesktopEntry> list: Array.from(DesktopEntries.applications.values)
|
readonly property list<DesktopEntry> list: Array.from(DesktopEntries.applications.values)
|
||||||
.sort((a, b) => a.name.localeCompare(b.name))
|
.sort((a, b) => a.name.localeCompare(b.name))
|
||||||
readonly property list<var> preppedNames: list.map(a => ({
|
readonly property var preppedNames: list.map(a => ({
|
||||||
name: Fuzzy.prepare(`${a.name} `),
|
name: Fuzzy.prepare(`${a.name} `),
|
||||||
entry: a
|
entry: a
|
||||||
}))
|
}))
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ Singleton {
|
|||||||
}
|
}
|
||||||
|
|
||||||
property string failMessage: qsTr("That didn't work. Tips:\n- Check your tags and NSFW settings\n- If you don't have a tag in mind, type a page number")
|
property string failMessage: qsTr("That didn't work. Tips:\n- Check your tags and NSFW settings\n- If you don't have a tag in mind, type a page number")
|
||||||
property list<var> responses: []
|
property var responses: []
|
||||||
property var getWorkingImageSource: (url) => {
|
property var getWorkingImageSource: (url) => {
|
||||||
if (url.includes('pximg.net')) {
|
if (url.includes('pximg.net')) {
|
||||||
return `https://www.pixiv.net/en/artworks/${url.substring(url.lastIndexOf('/') + 1).replace(/_p\d+\.(png|jpg|jpeg|gif)$/, '')}`;
|
return `https://www.pixiv.net/en/artworks/${url.substring(url.lastIndexOf('/') + 1).replace(/_p\d+\.(png|jpg|jpeg|gif)$/, '')}`;
|
||||||
@@ -308,6 +308,15 @@ Singleton {
|
|||||||
var url = constructRequestUrl(tags, nsfw, limit, page)
|
var url = constructRequestUrl(tags, nsfw, limit, page)
|
||||||
// console.log("[Booru] Making request to " + url)
|
// console.log("[Booru] Making request to " + url)
|
||||||
|
|
||||||
|
const newResponse = root.booruResponseDataComponent.createObject(null, {
|
||||||
|
"provider": currentProvider,
|
||||||
|
"tags": tags,
|
||||||
|
"page": page,
|
||||||
|
"images": [],
|
||||||
|
"message": ""
|
||||||
|
})
|
||||||
|
root.responses = [...root.responses, newResponse]
|
||||||
|
|
||||||
var xhr = new XMLHttpRequest()
|
var xhr = new XMLHttpRequest()
|
||||||
xhr.open("GET", url)
|
xhr.open("GET", url)
|
||||||
xhr.onreadystatechange = function() {
|
xhr.onreadystatechange = function() {
|
||||||
@@ -317,23 +326,12 @@ Singleton {
|
|||||||
var response = JSON.parse(xhr.responseText)
|
var response = JSON.parse(xhr.responseText)
|
||||||
response = providers[currentProvider].mapFunc(response)
|
response = providers[currentProvider].mapFunc(response)
|
||||||
// console.log("[Booru] Mapped response: " + JSON.stringify(response))
|
// console.log("[Booru] Mapped response: " + JSON.stringify(response))
|
||||||
root.responses = [...root.responses, root.booruResponseDataComponent.createObject(null, {
|
newResponse.images = response
|
||||||
"provider": currentProvider,
|
newResponse.message = response.length > 0 ? "" : root.failMessage
|
||||||
"tags": tags,
|
|
||||||
"page": page,
|
|
||||||
"images": response,
|
|
||||||
"message": response.length > 0 ? "" : root.failMessage
|
|
||||||
})]
|
|
||||||
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log("[Booru] Failed to parse response: " + e)
|
console.log("[Booru] Failed to parse response: " + e)
|
||||||
root.responses = [...root.responses, root.responseDataComponent.createObject(null, {
|
newResponse.message = root.failMessage
|
||||||
"provider": currentProvider,
|
|
||||||
"tags": tags,
|
|
||||||
"page": page,
|
|
||||||
"images": [],
|
|
||||||
"message": root.failMessage
|
|
||||||
})]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (xhr.readyState === XMLHttpRequest.DONE) {
|
else if (xhr.readyState === XMLHttpRequest.DONE) {
|
||||||
|
|||||||
@@ -1,13 +1,10 @@
|
|||||||
import "root:/modules/common"
|
import "root:/modules/common"
|
||||||
import Quickshell;
|
|
||||||
import Quickshell.Io;
|
|
||||||
import Qt.labs.platform
|
|
||||||
import QtQuick;
|
import QtQuick;
|
||||||
|
|
||||||
QtObject {
|
QtObject {
|
||||||
property string provider
|
property string provider
|
||||||
property list<var> tags
|
property var tags
|
||||||
property var page
|
property var page
|
||||||
property list<var> images
|
property var images
|
||||||
property string message
|
property string message
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user