Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Awesome Script

About: Fanfiction.net Unwanted Result Filter
I was using this script off and on, and you've made it better and better. Thanks for the script and fixing the bugs. I've rec'd this to a few people I know that use ff.net.
Just curious, are there any features you're looking to implement into it in the future?

Comments

  • edited December 2015 Chromium

    I have various ideas. It's just a matter of finding the time. (What I've done so far has been squeezed in while I'm working on my degree project and most of my other projects are completely on hold.)

    For example, I'd like to add:

    1. An on-hover toolbar to make adding new filters as simple as a hover and a click.
    2. The ability to add/remove filters temporarily (eg. "Hide Naruto right now, but don't remember that choice for next time")
    3. A button to sort by faves/follows when looking at an author's faves list (ff.net only offers that in the category browser right now)
    4. The ability to set freeform min/max words filters (eg. I like to filter for ">10K and <20K" on other sites for before-bed reading.)
    5. Genre filtering so you can specify more complex blacklist/whitelist rules than FFnet allows (eg. "No Mass Effect romance, frienship, or family" because I want big-scale alt. first contact fics and there are far too many person-scale fics with those genre tags.)
    6. A system for marking stories as read to enable "show only stuff I've never read" as an option. (Same basic behaviour as the "collapse all owned" toggle on my Mark owned ScummVM Games script. They'd fade out when marked, then be gone after a page reload unless "hide stuff I've read" was disabled.)

    P.S. I develop on Firefox... this forum is just refusing to let me post from it for some reason. (Says I need to log in, then says I'm already logged in when I try.)

  • Interesting. A couple of these ideas sound awesome like #1 - but also sound difficult to program. I've always had a list of a few things I wanted to get done but this plugin opened up my mind to even more thoughts.

    I have a couple of thoughts/ideas I'd like to run by you. If somethings extra work and you don't have any interest in doing it, don't. I'm not asking you to, I'm just curious. If you do do something I've thought of, suggested then great, if not then the world keeps on turning.

    I have a question/thought about the filtering. Is there a way to do a sort of reverse filter (only x and x fandom or crossovers?). I have a very long list to block things, and it might actually be easier to say only these 6 fandoms or so rather than blocking out so many.

    One other thought was to block out all crossovers that have their fandoms already blocked unless you specify otherwise. IE if the fandom (main) Dragon Age is blocked, then block any crossovers /except/ a specified fandom ... say Harry Potter so Harry Potter & Dragon Age would be the only crossover because of said exception. This would make a list so much more manageable if you have a long list. It starts getting complicated even then because what if you wanted to have an exception of an exception so Harry Potter is an exception to the list, but you don't want to read any Harry Potter & Twilight crossovers... the blocking would have to be overruled by certain instances or another area would have to be made for these.

    Your ideas #3 (sorting by favs/follows) has some similarities to something I tried a long time ago (didn't work out well since I haven't done any programming in almost 20 years and my mind just didn't keep up with any sort of programming language that well anymore) I was trying to write something to make the the review and chapters area stand out more so it's easier to read while scanning through lists. Something like highlight said text automatically. Generally now I just use the search function and highlight, but doing it automatically would have been nice.

    Ultimately I would have liked to have an additional notation at the review that was a division (reviews per chapter) so it was easy to filter out stuff I had absolutely no interest in looking at. IE a fanfiction that's got 40 chapters over a year and 40 reviews total show that there's an Avg of 1 Review/Chap. I actually do this in calibre, where I download most of my stuff prior to reading with fanficfare. But, that's a secondary filter so to speak, and doesn't help me make the initial picks. I'm not even sure if it's possible to do this and insert it into the webpage, but it was a thought.

    This would work well with idea #3 too, because having 400 reviews isn't such a great thing when you have 200 chapters (yes they do exist) so sorting by reviews isn't an ideal way. Though, doing it by favorite or follows is a lot better idea of if the fic is worth reading.

    Another thing I was just looking at yesterday was making the bio automatically hidden. I actually sat down for 40 minutes trying to grasp what needed to be done. I finally threw up my hands after a couple of false starts. Maybe on a good day.

    Oh one last thing I noticed since I've been using the script. There were a couple of keywords I had added to the block (mpreg being the main one - for some reason they may say mpreg but not slash *sigh*) but at some point I lost them about two weeks ago when my computer crashed, when I see them I put them back into the filter. Also your anti filter (fem/slash) doesn't include fem-slash or femmeslash (for some reason I saw several of those the other day when I was looking at why there was a slash filter in someones favorites. I modified my keywords/regex to get them included but thought you may want to change it for your default script.

    That's probably enough from me I wont bother you any more today. Thanks again for the fantastic script.
  • edited December 2015 Chromium
    I have a question/thought about the filtering. Is there a way to do a sort of reverse filter (only x and x fandom or crossovers?). I have a very long list to block things, and it might actually be easier to say only these 6 fandoms or so rather than blocking out so many.

    A reverse filter is actually just a one character change (Add ! before the check to invert it). The problem is that it's not that useful if, like me, you keep bouncing from fandom to fandom and the script only allows one set of rules for the entire site.

    It would be more useful to me once some of those other features make it more feasible to quickly set custom filters for either a limited time or a limited subset of the site but I can definitely add a checkbox to invert the match. (Given how the script is growing, probably a good idea to whip up a basic regression test suite before I go further.)

    One other thought was to block out all crossovers that have their fandoms already blocked unless you specify otherwise. IE if the fandom (main) Dragon Age is blocked, then block any crossovers /except/ a specified fandom ... say Harry Potter so Harry Potter & Dragon Age would be the only crossover because of said exception. This would make a list so much more manageable if you have a long list. It starts getting complicated even then because what if you wanted to have an exception of an exception so Harry Potter is an exception to the list, but you don't want to read any Harry Potter & Twilight crossovers... the blocking would have to be overruled by certain instances or another area would have to be made for these.

    As for exceptions, again, it's a UI thing. It's not complicated in theory (treat blacklist and whitelist rules as one big list when matching, most specific rule wins) but it needs a good UI for editing rules or it'll be far too easy for the user to misconfigure it and then have trouble figuring out why it's misbehaving.

    Your ideas #3 (sorting by favs/follows) has some similarities to something I tried a long time ago (didn't work out well since I haven't done any programming in almost 20 years and my mind just didn't keep up with any sort of programming language that well anymore) I was trying to write something to make the the review and chapters area stand out more so it's easier to read while scanning through lists. Something like highlight said text automatically. Generally now I just use the search function and highlight, but doing it automatically would have been nice. Ultimately I would have liked to have an additional notation at the review that was a division (reviews per chapter) so it was easy to filter out stuff I had absolutely no interest in looking at. IE a fanfiction that's got 40 chapters over a year and 40 reviews total show that there's an Avg of 1 Review/Chap. I actually do this in calibre, where I download most of my stuff prior to reading with fanficfare. But, that's a secondary filter so to speak, and doesn't help me make the initial picks. I'm not even sure if it's possible to do this and insert it into the webpage, but it was a thought.

    It's definitely a bigger hassle than it should be since ff.net doesn't mark that stuff in the HTML for easy matching, but I've already got the basic matching code to do it in the form of the code to match fandoms for exclusion.

    I actually have another script which has been mothballed at the in-design phase for years which would make all of this trivial by parsing everything into an in-memory data model, then rebuilding the entire page as whatever the user wanted. (Mothballed because it's intended as a cross-browser extension to integrate sites with a bigger project which has also been mothballed for lack of time.

    Another thing I was just looking at yesterday was making the bio automatically hidden. I actually sat down for 40 minutes trying to grasp what needed to be done. I finally threw up my hands after a couple of false starts. Maybe on a good day.

    Depending on whether you want the toggle to remain working, you can either use Stylish with this userstyle...

    @namespace url(http://www.w3.org/1999/xhtml);
    
    @-moz-document url-prefix("https://www.fanfiction.net/u/") { {
      #bio { display: none !important; }
    }
    

    ...or you can build a simple Greasemonkey script around this line...

    jQuery("span#bio_text:contains('hide bio')").click()
    

    (The latter would be the perfect solution except that the check which prevents it from showing a "hidden by default" bio (if they add that later) will only work if the user is viewing the site in English... which makes me loathe to wrap it in a script and post it to my profile. Ideally, I'd dig into their code to see how it works so I could get the same effect without being language-specific.)

    Oh one last thing I noticed since I've been using the script. There were a couple of keywords I had added to the block (mpreg being the main one - for some reason they may say mpreg but not slash *sigh*) but at some point I lost them about two weeks ago when my computer crashed, when I see them I put them back into the filter. Also your anti filter (fem/slash) doesn't include fem-slash or femmeslash (for some reason I saw several of those the other day when I was looking at why there was a slash filter in someones favorites. I modified my keywords/regex to get them included but thought you may want to change it for your default script.

    Thanks. I didn't include those because I didn't run into them during the testing phase where I composed my regexp. I'll update the script as soon as I can spare a bit of time. (Again, I'll probably want to add a regression suite first.)

    That's probably enough from me I wont bother you any more today. Thanks again for the fantastic script.

    If this is what you call bothering, I welcome any amount of it. :) Your commentary was constructive, helpful, and I enjoyed responding to it.

  • The script worked great. I knew what I had to work with, just not how to do it. Not sure why (and it doesn't matter because the script worked), but I did try using the stylish option just to see if it worked and... nothing.

    I'd actually tried to go that route when I tried (and failed) but I think I was using #bio_text. I didn't keep the thing but it was pretty close to what you'd written.

    I'll keep watching this page and make sure to comment when I have thoughts ideas that aren't too over the top.
  • edited December 2015 Firefox

    Even if they are "too over the top", collect them up and mention them when you have a more reasonable idea. One might turn out to be more relevant than you think.

    (Also, I got this forum working under Firefox. It looks like it just had two sign-in buttons next to each other where the more eye-grabbing one is buggy and only works if you're not already signed into the main site... a problem Chrome didn't have because I run it in Incognito Mode and don't leave it open.)

  • edited March 20 Firefox
    You previously mentioned that you'd like a list of items/suggestions I came up with when I had a more reasonable idea. (That idea is pointed out as #6) I know you're busy with other things, and haven't done much on this script for months... but I lost these once and had to retype them so I figured I'd make sure they got out there at some point, since there was at least one item I couldn't recall.

    Item #1 Crossovers issues. I know this has sort of been mentioned before, but this is more of a problem (not quite a bug) than a suggestions (like I made earlier).

    When blocking a category IE Worm, any crossovers that has that category get blocked. If there was a way to specifically make exceptions so that by making an exception for Harry Potter anything Harry Potter & Worm is an exception to what is blocked. That is to say that Harry Potter & Worm would be visible, and not blocked. This is mostly because while I generally don't like specific categories, crossovers with specific categories such as Harry Potter, are an exception and I don't mind going through them. Some of this thought relates into what was previously brought up in our first conversation.

    The other possibility (probably easier) to make this easier, is to make categories inclusive. Thus blocking 'Worm' only blocks 'Worm' and not any subcategories.

    Item #2 2 different Unwanted Category Filters. One of them that are things I would never consider reading, and can be specified to not show the placeholder. The second is one that shows the category, so that it can be shown if wanted. (categories that may be interested depending on the mood).

    Item #3 Another possible idea is that, rather than hiding results, have an option to make results stand out? Change background color, text color, text size? Something to make them more visible. It'd have to be something that's fairly easy to modify, since other scripts/customization could affect this (this is because I run a customized theme color, to make FF.net darker with different font colors). The easiest in this case would be perhaps to bump the font or make it bold or italicized.

    Item #4 What about filtering out characters and/or pairings? This would likely be far more complicated, but it could make finding stories easier - generally I use DarkLordPotter's Scryer search engine when I want to do complicated search filtering.

    Item #5 Manual Filter - Genius! It makes things awesome and I use it to great effect with one minor issue (mentioned as Item #6). Since I use FanFicFare and keep all my stories in calibre, this filter makes things easy to filter out anything I have already. It does, as I expected it to with such a large list, grab a bit of processing power and ram when the page loads. But, that's alright, I'm good with it, one thing I never scrimped on was a good computer and I just upgraded last winter.

    Item #6 Involves the manual filter. Due to the way it's setup, the manual filter is last, so if something (a category item or slash item) appears first, that's pre-filtered. Is it possible to filter the manual stuff first, or make a note that it's filtered for that reason as well? Manually filtered stuff is generally (at least for me) considered to be filtered for an excellent reason and I never look at it. Sometimes I uncover category filters or occasionally even slash filters if it's on someone's favorites list that doesn't read slash and I'm curious. If it was noted or identified as my manually filtered results, it would mean I didn't have to look. (All manually filtered stuff is from my calibre library that's read or in queue already).

    Perhaps show all the reasons it's filtered, say it's manually filtered and filtered because of a category show both in the click to show dialog.

    You also mentioned wanting my filters. Here are my current ones, they've evolved slightly. At one point I had a few more changes, but that got lost when Firefox crashed and I lost all my settings do to the profile getting corrupted. Anyway, these are my current ones:
    .*(mpreg|slash|yaoi|m/m)([.,!: ]|$)
    .*(fem|femme|fem!|fem-|no|not?[ ]+)(slash|yaoi)([.,!: ]|$)

    To that end, perhaps it may be good to have a backup option so that it's easy to restore settings. This isn't a big problem, because I put them in a text file but it would make things a bit easier.
  • Thanks. That'll be very helpful once I get all of the stuff I'm currently dealing with out of the way and can make time to work on non-productivity hobby projects again.

Sign In or Register to comment.