Extra Shop Filters Bookmarklet

1235»

Comments

  • jmucchiellojmucchiello Posts: 1,902

    Doesn't seem to work on search results.

  • jjoynerjjoyner Posts: 837

    jmucchiello said:

    Doesn't seem to work on search results.

    I tried that quite a while back with version 1 and it did not work on search results either.  Nevertheless, a great utility to have! 

  • UtiltarianUtiltarian Posts: 76
    edited June 17

    jjoyner said:

    Ditto that!!  Coffee bought.

    Thanks for the coffee (again), appreciate it!

    And yeah, search never worked, and can't work since the search results don't include product ids for all the results. While I could in theory filter just the results within one page, that doesn't seem particularly useful, so no point adding it. Even the actual site needs to reload in order to apply any of its filters.

    I did consider adding my own search as a filter. But for that, I'd need to create a plugin, handle adding new items daily, etc. Sadly, not worth the effort.

    Post edited by Utiltarian on
  • jjoynerjjoyner Posts: 837

    @Utilitarian,

    Has DAZ3D broken the Advanced Filters Desktop again?  I tried it on two Windows 11 computers and it’s not working.  I tried it on two Windows 10 computers and it’s not working on the newer laptop but is working on the older laptop.

  • ElorElor Posts: 4,039

    Maybe Daz is currently doing an A/B testing and you're lucky enough to have one computer as part of the A group and another one as part the B group, and one of the changes they are testing is breaking the filers.

    It's working on my Mac with Firefox, but it's the only computer with the filters installed.

  • UtiltarianUtiltarian Posts: 76

    Still works for me as well. Don't think operating system should make a difference, though browser could make a difference (I mostly only tested on Chrome, minimally on Firefox). When you say "not working," are you just seeing funky behavior, or the checkmarks don't show up at all?

    One thing to consider: if you copied the bookmark contents from one browser to another (that is, you clicked "Edit..." on the bookmark, copied the contents, and pasted to another browser), I've noticed that Chrome will sometimes randomly replace characters with the URL-safe encoding (like quotes with %22), which would break the bookmarklet since it would no longer be valid code. Also, no idea if Chrome has this problem when syncing bookmarks across computers for a single account, as I really only use a single computer. If that's what happened, then you might just need to copy the bookmarklet fresh on the computers where it isn't working.

    If copying it fresh doesn't fix it, you can check the Developer Tools (opened using F12, or Ctrl + Shift + I), and then the Console tab. Run the bookmarklet, and if there was an error, a message will likely get logged in the console. Paste it here and I can take a look.

  • UtiltarianUtiltarian Posts: 76

    PixelPie said:

    Thanks DAZ! really liking the site features! Can't wait to see what is in store for the gallery too!

     Not sure if this was directed at me, but I don't work for Daz (and this is an unofficial bookmarklet). Though I am a PA (only 1 product for now, but more in the works!).

     

    jmucchiello said:

    Except I use infinite s roll. And when you come back it doesn't return to where I came from if I'm more than a page down.

    Ah, I see. Yeah, the filter restoring doesn't help there. To open a page in a new tab, you can always hold the Ctrl key when you click a link.

    That said, AI tells me the following code will cause all links on a page to open in a new tab. I wasn't previously aware of how to achieve this, so I don't know the implications of the code it suggested, but it seems to work. You can add it to the bookmarklet if you want (just before "const settings"), or create a new bookmarket with just this code. Not sure I want to add it in for everyone, so probably will leave it out of the full bookmarklet code.

    document.head.appendChild(document.createElement('base')).target = '_blank';

     

  • jmucchiellojmucchiello Posts: 1,902

    Utiltarian said:

    document.head.appendChild(document.createElement('base')).target = '_blank';

    Well, it does work. Thanks.

  • jjoynerjjoyner Posts: 837

    Utiltarian said:

    Still works for me as well. Don't think operating system should make a difference, though browser could make a difference (I mostly only tested on Chrome, minimally on Firefox). When you say "not working," are you just seeing funky behavior, or the checkmarks don't show up at all?

    One thing to consider: if you copied the bookmark contents from one browser to another (that is, you clicked "Edit..." on the bookmark, copied the contents, and pasted to another browser), I've noticed that Chrome will sometimes randomly replace characters with the URL-safe encoding (like quotes with %22), which would break the bookmarklet since it would no longer be valid code. Also, no idea if Chrome has this problem when syncing bookmarks across computers for a single account, as I really only use a single computer. If that's what happened, then you might just need to copy the bookmarklet fresh on the computers where it isn't working.

    If copying it fresh doesn't fix it, you can check the Developer Tools (opened using F12, or Ctrl + Shift + I), and then the Console tab. Run the bookmarklet, and if there was an error, a message will likely get logged in the console. Paste it here and I can take a look.

    I did a fresh copy and paste of the javascript from your website on each of the three computers on which the script no longer worked and now it works again on all three.  Prior to the fresh copy and paste, clicking the bookmark with the javascript result in no change whatsoever on the store page.  My oldest laptop did not have the problem.  I was using the Edge browser on all four computers.  I suspect that Windows had a hand in causing the problem.

  • UtiltarianUtiltarian Posts: 76

    Great! Glad to hear it's working for both of you.

    Given that it wasn't doing anything, sounds like the code got corrupted after all. Maybe Edge has a similar issue as Chrome.

  • UtiltarianUtiltarian Posts: 76

    I've released a new version of the script which centralizes the UI, and adds some new features. I've updated the first post of this thread with the full feature description, but for existing users, here's what changed:

    • Did away with having 2 versions of similar filters (one for showing/one for hiding), instead opting to use Ctrl+Click on the same option. So now, there's just a Daz+ option, and you can click to show Daz+ items, or Ctrl+Click to hide them. Same for new items and bundles. The only exception is for PA and Daz Original items, where having 2 distinct filters seems more intuitive.
    • Brought back the Wishlist filter into my UI. This way, combined with the above change, all the filter options are now centralized to the checkmarks UI that my bookmarklet adds.
    • Added a "No Outlet" filter which hides outlet/quickgrab items.
    • Added the ability to reorder all the Filters on the panel to the left, letting you move the Category and Artist filters up to the top, and File Formats/Price towards the end. Customize as you see fit!
    • Added my own Artists filtering section, which enables the ability to hide artists using Ctrl+Click (similar to the feature added to the Category filters section), and is more performant.
    • Artist and Category sections both auto-update their counts, and will hide options as you adjust your filters. (The site's own Artists implementation has this, but Category filters do not.)
    • Added back the license filtering that was lost after they redesigned the site.
    • Added price details on the "In Cart" filter, so that you can view your cart totals immediately after adding/removing items.
    • Added bundle info to products in the shop. Now, as you scroll, it shows you [X/Total] items, where X is how many items you don't currently own.
    • Added automatic interactive license highlighting, letting you see which items do or don't offer an interactive license.

    Get it here in a new post: https://buymeacoffee.com/utiltarian/extra-shop-filters

    Enjoy!

  • jmucchiellojmucchiello Posts: 1,902
    edited July 17

    Not a fan of the ctrl to negate. Unless you plan to add it to artist and the genre filter.

    Post edited by jmucchiello on
  • donniekeidicdonniekeidic Posts: 71

    the "no outlet" filter doesn't seem to filter everything out for me. without being logged in, It filters out 2268 items. but there are 2209 items in outlet and 79 items in quick grab, 2288 items, so its not filtering 20 items for some reason.

  • UtiltarianUtiltarian Posts: 76

    jmucchiello said:

    Not a fan of the ctrl to negate. Unless you plan to add it to artist and the genre filter.

    You're right, I wasn't in love with ctrl either. But the critique just gave me an idea: right click to negate. It also addresses anyone using a touch screen, something I didn't consider.

    Just updated the script with this, so if anyone grabs it from the link now, either right click or ctrl click will negate. Didn't update the descriptions, but the functionality is in.

    As for genre, unlikely that I'll update that one sadly.

  • UtiltarianUtiltarian Posts: 76

    donniekeidic said:

    the "no outlet" filter doesn't seem to filter everything out for me. without being logged in, It filters out 2268 items. but there are 2209 items in outlet and 79 items in quick grab, 2288 items, so its not filtering 20 items for some reason.

    Just checked this out: the outlet filter is actually working correctly. The problem that you spotted is that some items appear in outlet/quick grab but don't appear on the main shop page. 16 outlet items and 1 quick grab item don't appear in the main shop listing, and 3 items are shared by outlet and quick grab. You can find out which by copying all the main shop ids (ctrl + click the [copy ids] button), then paste them into the IDs filter on either the outlet or quick grab page, and enable the inverted filter.

  • jmucchiellojmucchiello Posts: 1,902

    Utiltarian said:

    jmucchiello said:

    Not a fan of the ctrl to negate. Unless you plan to add it to artist and the genre filter.

    You're right, I wasn't in love with ctrl either. But the critique just gave me an idea: right click to negate. It also addresses anyone using a touch screen, something I didn't consider.

    Just updated the script with this, so if anyone grabs it from the link now, either right click or ctrl click will negate. Didn't update the descriptions, but the functionality is in.

    As for genre, unlikely that I'll update that one sadly.

    How about figures? I just don't want to see V4/M4 stuff. :)

  • ElorElor Posts: 4,039

    Thank you for the various updates smiley

    I don't know if it's only on my end, but using Firefox, the Wishlist % Off filter is not added to the Sort menu when I'm loading your script: the wishlist is sorted by Wishlist % Off, but the filter itself is not added.

  • UtiltarianUtiltarian Posts: 76

    jmucchiello said:

    Utiltarian said:

    jmucchiello said:

    Not a fan of the ctrl to negate. Unless you plan to add it to artist and the genre filter.

    You're right, I wasn't in love with ctrl either. But the critique just gave me an idea: right click to negate. It also addresses anyone using a touch screen, something I didn't consider.

    Just updated the script with this, so if anyone grabs it from the link now, either right click or ctrl click will negate. Didn't update the descriptions, but the functionality is in.

    As for genre, unlikely that I'll update that one sadly.

    How about figures? I just don't want to see V4/M4 stuff. :)

    To hide older stuff like V4/M4, there's an easier way to achieve that. If you take a look at the script settings, you will notice this line:

    defaultIdRange: "",

    If you set that to some default value, then when you enable the filter with an empty textfield, it will automatically insert and use your default id range without you having to type anything in. (The price filter has the same option: defaultPriceRange.)

    So, if you primarily only want to see items starting from Genesis 1 era and later, you can set that to something like "12500-", re-assign your bookmark, and then you'll always be able to just click the IDs filter without typing anythig to filter out the older items.

  • UtiltarianUtiltarian Posts: 76

    Elor said:

    Thank you for the various updates smiley

    I don't know if it's only on my end, but using Firefox, the Wishlist % Off filter is not added to the Sort menu when I'm loading your script: the wishlist is sorted by Wishlist % Off, but the filter itself is not added.

    Oh yeah, I see it, it happens on the wishlist. That page actually has 2 dropdowns: one if you narrow the screen (and it goes into mobile mode), and one in standard mode. Looks like my script is adding the option to the mobile one and not the standard one.

    I guess as a workaround, you can just view your wishlist on the main shop page, or shrink your screen width if you need to change the sort. Might fix at some point.

  • jmucchiellojmucchiello Posts: 1,902

    Utiltarian said:

    jmucchiello said:

    Utiltarian said:

    jmucchiello said:

    Not a fan of the ctrl to negate. Unless you plan to add it to artist and the genre filter.

    You're right, I wasn't in love with ctrl either. But the critique just gave me an idea: right click to negate. It also addresses anyone using a touch screen, something I didn't consider.

    Just updated the script with this, so if anyone grabs it from the link now, either right click or ctrl click will negate. Didn't update the descriptions, but the functionality is in.

    As for genre, unlikely that I'll update that one sadly.

    How about figures? I just don't want to see V4/M4 stuff. :)

    To hide older stuff like V4/M4, there's an easier way to achieve that. If you take a look at the script settings, you will notice this line:

    defaultIdRange: "",

    If you set that to some default value, then when you enable the filter with an empty textfield, it will automatically insert and use your default id range without you having to type anything in. (The price filter has the same option: defaultPriceRange.)

    So, if you primarily only want to see items starting from Genesis 1 era and later, you can set that to something like "12500-", re-assign your bookmark, and then you'll always be able to just click the IDs filter without typing anythig to filter out the older items.

    I already do this, sometimes as high as 30000 or 40000. Problem is. For example today and yesterday, the special offers are mostly G8/8.1 products. My library is mostly G9 with a smattering G3. The IDs trick doesn't let you "remove" G8. The other issue with IDs is it will remove environments and shaders and tools and props. And what I want is to get rid of G2 and earlier only or get rid of G8.  For some artists, I like their environments but not their figures. And so on.

    As for price, I often enter 500-9999 to remove QC and outlet. I can't wait to not need to do that.

    IOW, I don't have a signle issue that removing figures would help. I have various scenarios and want flexibility.

  • Silas3DSilas3D Posts: 830
    edited July 21

    @Utilitarian thank you for your work on this, it's really appreciated!

    Forgive me if this is already possible and I've missed information, but is there a way of filtering a category and excluding all other options in said category?

    For example, selecting Daz Originals as artist and then excluding all other artists without having to ctrl click every option (in an effort to create an equivalent of the old dedicated Genesis 8/3/2 character pages. but for Genesis 9).

    It would also be great to negate a string match, eg "Add-on" - for some reason shape add-on's and hd add-on's aren't included in the add-on's category?!

    Post edited by Silas3D on
  • UtiltarianUtiltarian Posts: 76

    Silas3D said:

    @Utilitarian thank you for your work on this, it's really appreciated!

    Forgive me if this is already possible and I've missed information, but is there a way of filtering a category and excluding all other options in said category?

    For example, selecting Daz Originals as artist and then excluding all other artists without having to ctrl click every option (in an effort to create an equivalent of the old dedicated Genesis 8/3/2 character pages. but for Genesis 9).

    If I understand, you're asking about filtering Daz Originals to just "pure" Daz Originals, i.e. those without a PA associated with them? You're right, there's no quick way to do this, you would indeed need to exclude all the artists. One thing you could do to reduce the number of artists in the list is to enable the "DO Only" checkbox filter. Doing so would remove all the non-Daz Original artists, though it'll still be a decent number left. Seems a bit of a niche scenario though, so not sure it's something I'd add.

    It would also be great to negate a string match, eg "Add-on" - for some reason shape add-on's and hd add-on's aren't included in the add-on's category?!

    Unfortunately, string match is not currently possible. I'm only able to filter items on data that's always accessible. Since I don't know the names of products without loading each one's data, it's impossible to know which ones contain the word "Add-on." So, filter by text is probably not going to happen. The only way to achieve this would be to create a proper browser extension, and host the full list of product names that the extension could then use. But that also means regularly updating/managing the list, which means I'd probably have to charge a subscription to make it worth my time. Not sure how many people would be willing to pay a monthly fee just to be able to search the store (a feature that would become obsolete the moment the store implemented a proper search of its own). That said, were I to go this route, it would enable filtering/sorting by discount or base-price. If I'm wrong and people would be interested in this for a recurring fee, I can reconsider.

  • UtiltarianUtiltarian Posts: 76
    edited July 25

    jmucchiello said:

    Utiltarian said:

    jmucchiello said:

    How about figures? I just don't want to see V4/M4 stuff. :)

    To hide older stuff like V4/M4, there's an easier way to achieve that. If you take a look at the script settings, you will notice this line:

    defaultIdRange: "",

    If you set that to some default value, then when you enable the filter with an empty textfield, it will automatically insert and use your default id range without you having to type anything in. (The price filter has the same option: defaultPriceRange.)

    So, if you primarily only want to see items starting from Genesis 1 era and later, you can set that to something like "12500-", re-assign your bookmark, and then you'll always be able to just click the IDs filter without typing anythig to filter out the older items.

    I already do this, sometimes as high as 30000 or 40000. Problem is. For example today and yesterday, the special offers are mostly G8/8.1 products. My library is mostly G9 with a smattering G3. The IDs trick doesn't let you "remove" G8. The other issue with IDs is it will remove environments and shaders and tools and props. And what I want is to get rid of G2 and earlier only or get rid of G8.  For some artists, I like their environments but not their figures. And so on.

    As for price, I often enter 500-9999 to remove QC and outlet. I can't wait to not need to do that.

    IOW, I don't have a signle issue that removing figures would help. I have various scenarios and want flexibility.

    You can already do that with IDs filter, just not with 1 click. First you filter everything from your starting range, e.g. 30000+. Then once you've viewed all that, you right click to invert your IDs range, and apply the inverted Figure filter. This gives you all non-figure items <30000, which your first 30000+ filter removed.

    Or, if you really want to do it all in one click, here's what you do: 1) select all the old generations you never want to see, 2) click the [Copy IDs] button to copy all the ids to your clipboard, 3) paste those ids into the defaultIdRange in the script. Then when you run the script, you just right-click to remove all those ids. Only problem is that the max bookmarklet length is (I think) 64KB, and all my current code is ~20KB, so if the full ID list is more than 40KB, it might exceed the limit (though, you can always just save the IDs to a file and copy/paste when you're on the site). You can also make your own bookmarklet(s) that will populate that field as necessary, e.g. by adding/removing IDs to it, then you can get around limits by having a couple bookmarklets, e.g. for each generation.

    Post edited by Utiltarian on
  • Silas3DSilas3D Posts: 830

    Utiltarian said:

    If I understand, you're asking about filtering Daz Originals to just "pure" Daz Originals, i.e. those without a PA associated with them? You're right, there's no quick way to do this, you would indeed need to exclude all the artists. One thing you could do to reduce the number of artists in the list is to enable the "DO Only" checkbox filter. Doing so would remove all the non-Daz Original artists, though it'll still be a decent number left. Seems a bit of a niche scenario though, so not sure it's something I'd add.

    Yes that's right, I guess it is quite niche as its really only the artist list that is so long and would benefit from such a feature. Oh well, figured there was no harm in asking :(

Sign In or Register to comment.