booru: add gui toggle for save in folder by tags

This commit is contained in:
end-4 2024-08-19 10:54:00 +07:00
parent 6b0587694a
commit a06f8ca97d
2 changed files with 11 additions and 2 deletions

View file

@ -102,7 +102,7 @@ let configOptions = {
'columns': 2,
'batchCount': 20,
'allowNsfw': false,
'sortInFolderByTags': false,
'saveInFolderByTags': false,
},
'pages': {
'order': ["apis", "tools"],

View file

@ -110,6 +110,15 @@ export const BooruSettings = () => MarginRevealer({
self.attribute.enabled.value = BooruService.nsfw;
}, 'notify::nsfw')
}),
ConfigToggle({
icon: 'sell',
name: 'Save in folder by tags',
desc: 'Saves images in folders by their tags',
initValue: userOptions.sidebar.image.saveInFolderByTags,
onChange: (self, newValue) => {
userOptions.sidebar.image.saveInFolderByTags = newValue;
},
}),
]
})
]
@ -224,7 +233,7 @@ const BooruPage = (taglist, serviceName = 'Booru') => {
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/${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}'`;
const saveCommand = `mkdir -p $(xdg-user-dir PICTURES)/homework/${data.is_nsfw ? '🌶️/' : ''}${userOptions.sidebar.image.saveInFolderByTags ? tagDirectory : ''} && curl -L -o $(xdg-user-dir PICTURES)/homework/${data.is_nsfw ? '🌶️/' : ''}${userOptions.sidebar.image.saveInFolderByTags ? (tagDirectory + '/') : ''}${data.md5}.${fileExtension} '${data.file_url}'`;
execAsync(['bash', '-c', saveCommand])
.then(() => self.label = 'done')
.catch(print);