It’s that time of year again where myself and the coder cat have some much needed time off coming up.
I have done some work with plugins for Stash in the past, if you’re not familiar with what’s available, please feel free to visit my GitHub and have a look!
Now that I have some time coming up I decided to create this thread as a way to reach out to this awesome community and try to give back as much as I can.
If you have any plugin requests for Stash please feel free to leave them here and I’ll do my best to work through them over the next few weeks while on holidays.
All the best to you and yours this holiday season!
If you do find use from my work, consider supporting me on my Patreon
Perhaps a plugin to extend the scraper views to show diffs between textareas. I made a crude userscript version of this but something packaged as a plugin might help more people.
It helps when scraping data from multiple sources to quickly compare what changed (especially with whitespace changes).
My personal request would be a plugin for sorting all URLs alphabetically excluding http(s)://www., if that’s even possible with current plugin API. It was recently introduced in core Stash but subsequently reverted due to breaking workflow for some exisitng users.
I’ve love to be able to get a plugin that can pull scene and performed ratings, and show them on the cards. they have the ability to sort by those ratings.
Also would like a plug-in to compare locally owned scenes with those in TPDB and list all performer scened that your collection is missing.
Hello! Not necessarily a request, but just some TLC on the stashnewperformerscenes plugin, I’m not sure if it’s working properly at the moment, as I don’t see it’s benefit on the performer page like it’s supposed to.
I’m populating performer custom fields with award info so icons on the performer page might be cool to add and I don’t want to touch the java script.
There can occasionally be a “Spouse” or “Sibling” custom field so check if the field is there, check if the performer exists in your stash and provide a link to go to the other page.
one that I have been meaning to do is to grab data from data18. Specifically Movie/group data. It could also theoretically be an extension of the scraper, but I’m more comfortable with the plugin side of stash.
Could you check that plugin again and report what’s not working in particular? I have just installed in on Stash v0.30.1 and it seems to be populating the bell icons on the performer cards, and respecting the amount of days to display scenes (for reference I have mine set to 60 days currently) and it’s pulling scenes from StashDB with no issues.
I wish Stash had better support for copy-pasting (clipboard support). Here’s my wish list:
Enable “smart” clipboard support that intuitively copies based on what you have selected / what page you’re on.
For many-items-visible layouts, e.g scenes list page, scenes wall page, scenes tagger page, scenes grid page (and so on, and so on, for the different item types– images, groups, markers, galleries, performers, studios, and tags), use the checkboxes to inform the clipboard handler which objects should be consider for copying.
On specific item pages, e.g. /scenes/:scene_id and so on, when CTRL+C is pressed, copy whichever data the User has configured to the clipboard, for this scene and this scene only.
Allow user to configure the fields that will be copied when using the feature. A clever UI is ideal, but as a proof-of-concept, it’s probably easy enough to get away with something like this in the plugin:
const copyQueryFragments = {
// Could use the `__typename` field here as the keys.
// Tag: gql(...)
Scene: gql(`
query GetClipboardScenes($ids: [ID!]!) {
findScenes(scene_ids: $scene_ids, filter: { per_page: -1 }) {
scenes {
...ClipboardSceneFields
}
}
}
fragment ClipboardSceneFields on Scene {
id
title
director
urls
date
rating100
organized
created_at
updated_at
files {
id
path
width
height
size
}
studio {
id
name
}
tags {
id
name
}
performers {
id
name
}
}
`)
} satisfies Partial<Record<CopyContextTypes, string>>
type CopyContextTypes = (
| 'Scene'
| 'Image'
| 'Group'
| 'Marker'
| 'Gallery'
| 'Performer'
| 'Studio'
| 'Tag'
)
type CopyContext = { type: CopyContextTypes; ids: (number | string)[], isMultiple: boolean }
// Returns whichever items are meant to be copied based on the current page and selection state.
declare const getCopyContext: () => CopyContext | null;
async function handleCopyEvent () {
const copyContext = getCopyContext();
if (!copyContext) return;
const { type, ids, isMultiple } = copyContext;
const queryFragment = copyQueryFragments[type];
if (!queryFragment) return;
// Left as an exercise to the reader...
}
I need a tool that can translate metadata such as tags, descriptions, and titles into Chinese during scraping. Can I use Google Translate, Bing, or other API for this purpose? Thank you.