Google Groups KillFile 3.4.4 Released

Tim kindly posted a fix to a bug whereby if multiple entries in your killfile matched a post then it wouldn’t display any posts below the multiply blocked one.

You can download the updated script here Google Groups KillFile 3.4.4

Tags: ,

16 Responses to “Google Groups KillFile 3.4.4 Released”

  1. Jordan Lund says:

    The killfile seems to work 99% of the time, but it looks like it has trouble with usernames that have punctuation in them. It blocks topics that use punctuation, but chokes on usernames.

    Any ideas?

  2. Geoff says:

    Hey, wanted to say that this script is great. It makes Google Groups usable. Thanks very much.

    I have a feature request. Would it be possible to allow wildcards? For example, there are watch/shoe spams coming into my newsgroup, and they’re always coming from an email address. Could I set it so that *…@*.* was blocked? Everyone I want to read posts with a nickname, not an email.

    Or, another example, there’s a kook on the group that’s always posting about Hitler. I have him kfed, but he crossposts, and the replies get through. Could I killfile *hitler* in the subject?

  3. Geoff says:

    Hey…wanted to say thanks for making Google Groups usable again!

    I have a feature request…wildcards. Most of the spam in the groups I subscribe to comes from people who show up as email addresses, so I’d like to be able to throw *…@*.* in the killfile and block them. The other source is a kook who’s always posting about Nazis, so a Topic filter of *Hitler* or *Nazi* would be a lifesaver.

  4. Adam says:

    Running Greasemonkey 0.7.20080121.0
    Killfile 3.4.4

    When I select a user or topic to kill, the script seems to add ‘\’ characters. To correct these I need to use about:config and manually remove ‘%5C’ from the code before it will work.
    The characters are added whenever I manually change a kill file option to use a wildcard (*)

    Also, can anyone let me know if it’s possible to use topic kill files such as ‘*wholesale*’. ie: Hide anything with a topic in which the word wholesale appears.
    I have the %5C issues with this (as mentioned above) but can’t seem to get this working no matter what I do.

    Thanks for any advice. And, as always, thanks for the Killfile. Even with these few minor bugs, it’s a fantastic application.

  5. Kam-Hung Soh says:

    Comment to Adam:

    You have to add a dot before the wildcard, e.g: “Topic:.*wholesale.*”

    General comment:

    Another improvement is to use case-insensitive regular expressions. For each “compile()” function, add a “i” parameter. E.g:

    topicRE.compile(“^” + list[j], “i”);

    Use case-insensitive search reduces the number of patterns to define in the killfile variable.

  6. Tim says:

    Probably the simplest fix for this would be to change the code so that the dialog that pops up has the ‘\’ escapes. Just clicking OK would then leave it as before but you can then manually modify if you wish.

    However, this might confuse people who don’t understand about escaping.

    Untested. But probably just change this bit:

    killspec = prompt(“Add to KillFile”, killspec);
    data = unescape(GM_getValue(“GoogleKillFile”, “—–“));
    list = data.split(splitCh);
    list.push(RegExpEscape(killspec));

    To:

    killspec = RegExpEscape(killspec);
    data = unescape(GM_getValue(“GoogleKillFile”, “—–“));
    list = data.split(splitCh);
    list.push(killspec);

    Tim.

  7. Tim says:

    Hmm. I missed a line there:

    killspec = RegExpEscape(killspec);
    killspec = prompt(”Add to KillFile”, killspec);
    data = unescape(GM_getValue(“GoogleKillFile”, “—–“));
    list = data.split(splitCh);
    list.push(killspec);

    Still untested though!

    Tim.

  8. Tim says:

    Found another bug:

    This line:
    GM_log(“>>>>>>>>>>> ” + rowNodes.snapshotItem(u).textContent);

    Should be:
    GM_log(“>>>>>>>>>>> ” + rowNodes.snapshotItem(0).textContent);

    u is undefined at this point. The first time through the loop it works because u gets the value 0. But despite this only being a trace statement, the function aborts at this line with “shapshotItem has no properties” (or something like that) probably because u is greater than number of snapshotItems.

    Tim.

  9. Damian says:

    Hi Tim, thanks for finding that, I’ve gone ahead and updated the script. I’ll check out your other suggestion when I get a little free time :)

  10. Tim says:

    Thanks. I’ve just tested my suggestion above and it seems to work.

    But I’m not so bothered about going and editing the data in about:config. I was suggesting it to the OP for him specifically.

    Also I’m not sure whether it will confuse most users. Unless you understand about regular expressions and escaping you’re likely to incorrectly edit it.

    I’m not sure what might happen if the regular expression isn’t valid – e.g. ‘[a-\]’ sort of thing.

    What would be really sweet is if the manageKillfile option had the ability to edit the expressions as well as reanimate the dead. And that editor could then allow regular expressions.

    “Click X to reanimate the dead”
    “Click Y to edit the filter”
    “Click Z to edit regular expressions (experts only)”

    When I’ve got a bit of time I’ll have a play and see what can be done.

    Tim.

  11. Damian says:

    I’d only just scanned the comment previously but I see now. The X-Y-Z sounds like a good idea. Thanks for taking the time to poke around.

  12. Tim says:

    Ha. Well I’ve just had to wait 10 mins to load a massive coredump into the debugger so I’ve hacked something together:

    See
    http://www.woodall.me.uk/googlegroupskillfile.user.js

    I’ve also (I think) fixed a bug with reanimating regular expressions.

    NOT well tested and a lot of alert() boxes that need taking out but I’ve got to get back to this core now :-(

    Tim.

  13. Tim says:

    I’ve now done a bit more testing and cleaning up and it all looks like it is working now.

    Same URL as before (I’m assuming that my previous comment hasn’t been published because it’s awaiting moderation so I wont’ put the URL in again.)

    Tim.

  14. Tim says:

    Fixed another bug – the script breaks if the pattern contains ‘ (single quote) when you try to reanimate.

    I’ve also added “Add Address” and “Add Topic” options to the killfile and made the killfile update automatically after pressing ‘X’, ‘Y’, ‘Z’

    Hope you like it.

    http://www.penney.org/googleGroups.user.js

  15. Tim says:

    Just a warning for anyone who trys to install from the above address (sorry, I didn’t expect this to appear because my last post with the link in it didn’t) – you will find that your existing expressions disappear. This is because the data is stored based on the url. You’ll be able to copy from one to the other in about:config.

    Tim.

  16. Damian says:

    Thanks so much Tim :) I’ve gone ahead and updated the killfile here and released it as 3.5. I’ll close comments in thread so please post any bugs or comments to the Google Groups KillFile 3.5 thread