Shinigami Eyes - Transgender browser extension that turns links red if they're transphobic or some shit (named after anime because anime makes you gay)

  • 🏰 The Fediverse is up. If you know, you know.
  • Want to keep track of this thread?
    Accounts can bookmark posts, watch threads for updates, and jump back to where you stopped reading.
    Create account
What kind of a faggot would use something from Death Note as a name?
Gee, I wonder.
Screenshot_20210630_093657.png
 
I looked into this once. Unfortunately there's no way to extract the blocklist out of the extension. They just have it all encoded up into a Bloom filter.
For shits and giggles I wrote up a quick c++ thing that eats the datafiles from the extension + a text file with names, and it seems to be able to do 10M tests per second per core on my laptop (unless I'm miscounting, I'm not sober).
So I just need a list of twitter/youtube/facebook/whatever usernames and suddenly get a nice list of users, bar the false positives.

And some speculation:
The acronym of the authors name is probably ML (based on build artifacts), and is very likely in scandinavia (his timezone, before he figured out how to scrub it, switched between +1 and +2 in sync with DST).
And to noones surprise, that matches Wesley James Earl Bailey (hover over the timestamps here: https://github.com/Laurelai/decompile-dump/commits/master), who's also the only consistent supporter of it on github.

And all the huff and puff about not having problems claiming ownership sounds really hollow since it's in proper legal trouble: https://www.datatilsynet.no/en/news...t-nettleserutvidelsen-shinigami-eyes-i-norge/
 
A browser extension that highlights stuff in red that would endanger the euphoria you get from stealing your sister's underwear. What wacky lengths will they go to next so they can maintain the fragile illusion they are woman and not an unwashed fetishist?
Everything you do to come across as a woman just reinforces the fact you are man.
 
I started scraping twitter to get the social graph around the shinegamieyes twitter account into gephi, and realized how nazi they have become with scraping. So if anyone has access to a dataset with some millions of social media usernames feel free to run it.

C++:
// to build, run "make dump" (assuming this file is named dump.cpp)
// then run it from a folder where you have unziped the .crx or .xpi
// The latest version at the moment is at
// https://addons.mozilla.org/firefox/downloads/file/3827437/shinigami_eyes-1.0.30-an+fx.xpi
//
// It expects to have a file named "names.txt" in the same folder,
// the format is a single entry per line.
// The format Shinegami Eyes uses is site.com/username. E. g.:
// twitter.com/jk_rowling
// twitter.com/kiwifarmsdotnet
// etc.

// Copyright 2018-2021 Wesley Bailey <shinieyes@protonmail.com>
// Copyright 2022 KiwiLeaks LLC.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice, this permission notice and the word "NIGGER"
// shall be included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE.


#pragma GCC optimize ("-O3") // doesn't really matter, like 5% speedup here

#include <cstdio>
#include <cstdint>
#include <fstream>
#include <array>
#include <filesystem>

template<uint32_t seed> inline int32_t fnv_1a(const std::string &input) {
    const char *string = input.data();
    const size_t length = input.size();

    uint32_t hash = 2166136261u ^ seed;
    for (size_t i=0; i<length; i++) {
        hash = (hash ^ string[i]) * 16777619u;
    }
    hash += hash << 13;
    hash ^= hash >> 7;
    hash += hash << 3;
    hash ^= hash >> 17;
    hash += hash << 5;
    return hash;
}

static void check_names(const std::string &type) {
    const std::string filename = "data/" + type + ".dat";
    std::ifstream datafile(filename);
    if (!datafile.is_open()) {
        perror(("failed to open " + type + ".dat").c_str());
        return;
    }
    datafile.exceptions(std::ios::failbit | std::ios::eofbit);
    const size_t filesize = std::filesystem::file_size(filename);

    constexpr uint32_t n = 71888;
    if (n != filesize / sizeof(uint32_t)) {
        fprintf(stderr, "new n: %u\n", int(filesize / sizeof(uint32_t)));
        return;
    }

    std::array<uint32_t, n> buckets;
    datafile.read((char*)buckets.data(), sizeof(uint32_t) * n);
    datafile.close();

    std::ifstream namefile("names.txt");
    if (!namefile.is_open()) {
        perror("Failed to open names.txt");
        return;
    }

    constexpr int32_t rounds = 20;
    std::array<uint32_t, rounds> r;

    constexpr int32_t m = 32 * n;
    uint64_t tested = 0, hits = 0;
    for (std::string line; std::getline(namefile, line); ) {
        if (line.empty()) {
            continue;
        }
        tested++;
        int32_t x = fnv_1a<0>(line) % m;
        const int32_t b = fnv_1a<1576284489u>(line);
        for (int i=0; i<rounds; i++) {
            r[i] = x;
            x = (x + b) % m;
        }
        for (int i=0; i<rounds; i++) {
            x = r[i];
            r[i] = x < 0 ? (x + m) : x;
        }
        bool found = true;
        for (int i=0; i<rounds; i++) {
            const uint32_t bit = r[i];
            if ((buckets[bit / 32] & (1 << (bit % 32))) == 0) {
                found = false;
                break;
            }
        }
        if (found) {
            hits++;
            printf("%s:\t%s\n", type.c_str(), line.c_str());
        }
    }
    printf("tested %llu names, %llu %s\n", tested, hits, type.c_str());
}

int main(int, char*[]) try {
    check_names("t-friendly");
    check_names("transphobic");
    return 0;
} catch (const std::exception &e) {
    puts(e.what());
    return 1;
}

edit; I got bored, so I started downloading the twitter stream dump from archiveteam, just need an insanely efficient json parser to extract the usernames. each of the dumps (one day of tweets) are 2GB compressed...
edit2: tested with some other datasets, twitter and reddit usernames (e. g. https://github.com/nyxgeek/twitter-usernames-wordlist):
Code:
tested 56895889 names, 5052 t-friendly
tested 56895889 names, 5273 transphobic

edit3: So since I don't think I can upload plain text files here (and even in a spoiler tag I think 10k lines is too much), I modified it a bit so it renders all the names to pngs, as well as writing them in text form to the metadata. Note that it is a relatively small set of twitter usernames and a tiny set of reddit usernames I've based it on, if someone has lists of facebook user IDs, youtube IDs, etc. we can expand a bit. But twitter is the most fun anyways.
t-friendly.png
transphobic.png
 
Last edited:
Last edited by a moderator:
Someone should HACK that app & make everything RED into GREEN & everything GREEN into RED!
Then we can get some Popcorn ready & enjoy the meltdowns ^^ !
 
Someone should HACK that app & make everything RED into GREEN & everything GREEN into RED!
Then we can get some Popcorn ready & enjoy the meltdowns ^^ !
null could in theory tweak the forums to make the extension mark everyone here as "t-friendly".
Granted usernames are already green, but maybe the troons would finally see this place for what it really is: the ultimate safe space for troons, their last bastion against the TERFs.
 
Apparently Grimes (yeah, that gross meme-musician from that unfortunate sweaty pink photo) is going to drop a track called "Shinigami Eyes" tomorrow, and since she's a ridiculous shitlib, call it a coin toss whether it will in fact relate to the subject of this thread, or whether she's pivoting from pretending to have anything to do with cyberpunk to pretending to have anything to do with anime:
 
I looked into this once. Unfortunately there's no way to extract the blocklist out of the extension. They just have it all encoded up into a Bloom filter.
That’s beautiful. They didn’t even pretend to put the blocklist and source code on GitHub for people to verify for themselves. At least those retards who are adding Mozilla relays to the email blacklist have the balls to make it public. Just listen and believe. Wait a second, why do sjw’s trust this extension to not be a rat/backdoor?
 
Wait a second, why do sjw’s trust this extension to not be a rat/backdoor?
If you download the extension you can view its source code. It really does only what it says it does, flags things based on the blacklist and whitelist Bloom filters. Only the actual lists used to build the filters are secret.
 
Apparently Grimes (yeah, that gross meme-musician from that unfortunate sweaty pink photo) is going to drop a track called "Shinigami Eyes" tomorrow, and since she's a ridiculous shitlib, call it a coin toss whether it will in fact relate to the subject of this thread, or whether she's pivoting from pretending to have anything to do with cyberpunk to pretending to have anything to do with anime:
https://youtube.com/watch?v=zqpyrW_WVlEhttps://youtube.com/watch?v=lrLaXZaxGwA
she’s been a weeb for a while so it prob has nothing to do with the extension
 
That’s beautiful. They didn’t even pretend to put the blocklist and source code on GitHub for people to verify for themselves. At least those retards who are adding Mozilla relays to the email blacklist have the balls to make it public. Just listen and believe. Wait a second, why do sjw’s trust this extension to not be a rat/backdoor?
If you download the extension you can view its source code. It really does only what it says it does, flags things based on the blacklist and whitelist Bloom filters. Only the actual lists used to build the filters are secret.
He did put the code on github: https://github.com/shinigami-eyes/shinigami-eyes (and I checked, the source matches the chrome and firefox extension, bar the data files only in the extensions.)

And there's been slapfights there for years in the issues, it's hilarious. I was tempted to open a PR with my c++ bruteforcer and the demo name lists since they've quieted down a bit.
 

Attachments

  • 1643252956381.png
    1643252956381.png
    213.3 KB · Views: 234
My brother is not a troon, but he uses this extension for some godforsaken reason. My fear is that those creatures groom him into becoming one.

He also tried to kill himself four times in 2020.
 
My brother is not a troon, but he uses this extension for some godforsaken reason. My fear is that those creatures groom him into becoming one.

He also tried to kill himself four times in 2020.
I think I have bad news for you. You might be able to do something if you take his internet connection away now.
 
My brother is not a troon, but he uses this extension for some godforsaken reason. My fear is that those creatures groom him into becoming one.

He also tried to kill himself four times in 2020.
Put a blindfold on him, drive four hours into a forest and drop him off and tell him to find the way back home. Or just go camping with him, wrestle some beers and have some meaningful talks.

In general cult deprogramming requires a lot of empathy, time and effort but it's absolutely possible.
 
Back
Top Bottom