From 54ea70bf4d9cd378e79635dcf6f93e9b23580221 Mon Sep 17 00:00:00 2001 From: "Roza." <71328419+shinyPy@users.noreply.github.com> Date: Fri, 16 Aug 2024 16:10:19 +0800 Subject: [PATCH 1/4] booru: add save image save the image and put it in the folder based on the tag --- .config/ags/modules/sideleft/apis/booru.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.config/ags/modules/sideleft/apis/booru.js b/.config/ags/modules/sideleft/apis/booru.js index 61b7fa60..13586cdf 100644 --- a/.config/ags/modules/sideleft/apis/booru.js +++ b/.config/ags/modules/sideleft/apis/booru.js @@ -218,6 +218,22 @@ const BooruPage = (taglist, serviceName = 'Booru') => { icon: 'open_in_new', action: () => execAsync(['xdg-open', `${data.source}`]).catch(print), }), + ImageAction({ + name: 'Save image', + icon: 'save', + action: () => { + const currentTags = BooruService.queries.at(-1).realTagList.filter(tag => !tag.includes('rating:')); + const tagDirectory = currentTags.join('_'); + let fileExtension = data.file_ext || 'jpg'; + const saveCommand = `mkdir -p $(xdg-user-dir PICTURES)/homework/${tagDirectory} && curl -L -o $(xdg-user-dir PICTURES)/homework/${tagDirectory}/${data.md5}.${fileExtension} '${data.file_url}'`; + execAsync(['bash', '-c', saveCommand]) + // .then(() => { + // print(`Image saved to $(xdg-user-dir PICTURES)/homework/${tagDirectory}/${data.md5}.${data.file_ext}`); + // }) + .then(() => self.label = 'done') + .catch(print); + }, + }), ] }) }); From b5f98347a71dcdf6070cc6b4027d573dabcbe3d3 Mon Sep 17 00:00:00 2001 From: "Roza." <71328419+shinyPy@users.noreply.github.com> Date: Fri, 16 Aug 2024 23:52:20 +0800 Subject: [PATCH 2/4] Update booru.js --- .config/ags/modules/sideleft/apis/booru.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.config/ags/modules/sideleft/apis/booru.js b/.config/ags/modules/sideleft/apis/booru.js index 13586cdf..4cfc8037 100644 --- a/.config/ags/modules/sideleft/apis/booru.js +++ b/.config/ags/modules/sideleft/apis/booru.js @@ -221,17 +221,14 @@ const BooruPage = (taglist, serviceName = 'Booru') => { ImageAction({ name: 'Save image', icon: 'save', - action: () => { + action: (self) => { const currentTags = BooruService.queries.at(-1).realTagList.filter(tag => !tag.includes('rating:')); const tagDirectory = currentTags.join('_'); let fileExtension = data.file_ext || 'jpg'; const saveCommand = `mkdir -p $(xdg-user-dir PICTURES)/homework/${tagDirectory} && curl -L -o $(xdg-user-dir PICTURES)/homework/${tagDirectory}/${data.md5}.${fileExtension} '${data.file_url}'`; execAsync(['bash', '-c', saveCommand]) - // .then(() => { - // print(`Image saved to $(xdg-user-dir PICTURES)/homework/${tagDirectory}/${data.md5}.${data.file_ext}`); - // }) - .then(() => self.label = 'done') - .catch(print); + .then(() => self.label = 'done') + .catch(print); }, }), ] From 7d39885ce389665760cadbf54d3ce7edf36c4754 Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Mon, 19 Aug 2024 08:51:15 +0700 Subject: [PATCH 3/4] =?UTF-8?q?booru:=20save=20to=20=F0=9F=8C=B6=EF=B8=8F?= =?UTF-8?q?=20folder=20if=20nsfw?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .config/ags/modules/sideleft/apis/booru.js | 11 +++++------ .config/ags/services/booru.js | 2 ++ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.config/ags/modules/sideleft/apis/booru.js b/.config/ags/modules/sideleft/apis/booru.js index 4cfc8037..7016cd4a 100644 --- a/.config/ags/modules/sideleft/apis/booru.js +++ b/.config/ags/modules/sideleft/apis/booru.js @@ -187,7 +187,6 @@ const BooruPage = (taglist, serviceName = 'Booru') => { // Show // const downloadCommand = `wget -O '${imagePath}' '${data.preview_url}'`; const downloadCommand = `curl -L -o '${imagePath}' '${data.preview_url}'`; - // console.log(downloadCommand) if (!force && fileExists(imagePath)) showImage(); else Utils.timeout(delay, () => Utils.execAsync(['bash', '-c', downloadCommand]) .then(showImage) @@ -222,13 +221,13 @@ const BooruPage = (taglist, serviceName = 'Booru') => { name: 'Save image', icon: 'save', action: (self) => { - const currentTags = BooruService.queries.at(-1).realTagList.filter(tag => !tag.includes('rating:')); + const currentTags = BooruService.queries.at(-1).realTagList.filter(tag => !tag.includes('rating:')); const tagDirectory = currentTags.join('_'); - let fileExtension = data.file_ext || 'jpg'; - const saveCommand = `mkdir -p $(xdg-user-dir PICTURES)/homework/${tagDirectory} && curl -L -o $(xdg-user-dir PICTURES)/homework/${tagDirectory}/${data.md5}.${fileExtension} '${data.file_url}'`; + let fileExtension = data.file_ext || 'jpg'; + const saveCommand = `mkdir -p $(xdg-user-dir PICTURES)/homework/${data.is_nsfw ? '🌶️/' : ''}${tagDirectory} && curl -L -o $(xdg-user-dir PICTURES)/homework/${data.is_nsfw ? '🌶️/' : ''}${tagDirectory}/${data.md5}.${fileExtension} '${data.file_url}'`; execAsync(['bash', '-c', saveCommand]) - .then(() => self.label = 'done') - .catch(print); + .then(() => self.label = 'done') + .catch(print); }, }), ] diff --git a/.config/ags/services/booru.js b/.config/ags/services/booru.js index 35125b13..e620d8ce 100644 --- a/.config/ags/services/booru.js +++ b/.config/ags/services/booru.js @@ -129,6 +129,8 @@ class BooruService extends Service { aspect_ratio: obj.width / obj.height, id: obj.id, tags: obj.tags, + rating: obj.rating, + is_nsfw: (obj.rating != 's'), md5: obj.md5, preview_url: obj.preview_url, preview_width: obj.preview_width, From f285bd080d24b93d4cfba6b7198bde06a779e707 Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Mon, 19 Aug 2024 09:16:27 +0700 Subject: [PATCH 4/4] booru: config option for saving in folders by tags and join tags by "+" --- .config/ags/modules/.configuration/user_options.js | 1 + .config/ags/modules/sideleft/apis/booru.js | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.config/ags/modules/.configuration/user_options.js b/.config/ags/modules/.configuration/user_options.js index e5ef916a..fb9cf0fe 100644 --- a/.config/ags/modules/.configuration/user_options.js +++ b/.config/ags/modules/.configuration/user_options.js @@ -102,6 +102,7 @@ let configOptions = { 'columns': 2, 'batchCount': 20, 'allowNsfw': false, + 'sortInFolderByTags': false, }, 'pages': { 'order': ["apis", "tools"], diff --git a/.config/ags/modules/sideleft/apis/booru.js b/.config/ags/modules/sideleft/apis/booru.js index 7016cd4a..23223c31 100644 --- a/.config/ags/modules/sideleft/apis/booru.js +++ b/.config/ags/modules/sideleft/apis/booru.js @@ -222,9 +222,9 @@ const BooruPage = (taglist, serviceName = 'Booru') => { icon: 'save', action: (self) => { const currentTags = BooruService.queries.at(-1).realTagList.filter(tag => !tag.includes('rating:')); - const tagDirectory = currentTags.join('_'); + const tagDirectory = currentTags.join('+'); let fileExtension = data.file_ext || 'jpg'; - const saveCommand = `mkdir -p $(xdg-user-dir PICTURES)/homework/${data.is_nsfw ? '🌶️/' : ''}${tagDirectory} && curl -L -o $(xdg-user-dir PICTURES)/homework/${data.is_nsfw ? '🌶️/' : ''}${tagDirectory}/${data.md5}.${fileExtension} '${data.file_url}'`; + const saveCommand = `mkdir -p $(xdg-user-dir PICTURES)/homework/${data.is_nsfw ? '🌶️/' : ''}${userOptions.sidebar.image.sortInFolderByTags ? tagDirectory : ''} && curl -L -o $(xdg-user-dir PICTURES)/homework/${data.is_nsfw ? '🌶️/' : ''}${userOptions.sidebar.image.sortInFolderByTags ? (tagDirectory + '/') : ''}${data.md5}.${fileExtension} '${data.file_url}'`; execAsync(['bash', '-c', saveCommand]) .then(() => self.label = 'done') .catch(print);