Plugin requests

Seasons greetings everyone!

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

Cheers!

-Serechops and his coder cat.

1 Like

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).

Example (text NSFW):

Similar in concept to: Stashdb-diff but then for stash itself.

1 Like

There is a long list of ideas to choose from.


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.

1 Like

Thanks for your request, let me look into it.

Thanks, Dogma! I’ll have a look through the list, but will start with your personal request.

Cheers!

1 Like

Great idea.

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.

1 Like

Thank you for your requests! I’ll add them to the list and see what I can get done.

Cheers!

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.

My only request is that the Timestamp Trade plugin actually worked. :sob:

are you talking about the stashtimestamps plugin? If so, I’m having trouble with that one too! lol

:sob:

1 Like

I wish I could help, but unfortunately that’s not my plugin. If you post which errors you’re receiving I could try and help, but I don’t own that one.

Let me look into this one as well!

1 Like

I’d like someone to add the java script ui bits to Extra Performer Info.

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.

1 Like

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.

1 Like

Feature to add downloaded galleries by the following plugins to performers

  1. Performer Gallery Scraper
  2. BabePedia Gallery Scraper

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.

For a plugin to compare local scenes to stash boxes for missing scenes, check this one out: stash-plugins/plugins/missingScenes at main · carrotwaxr/stash-plugins · GitHub

I haven’t tried it myself but carrotwaxr produces great work as always!

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.