Russian 'P poster
You can help by notifying the authorities, and also by ordering 'za to xis house
Pedo-meter 3000: ▲
Captain 'P | |
|---|---|
| Status | Active |
| Nationality | Presumably russian based on his timezone |
| Other names | Captain 'P |
| Years active | early 2020s(?)–now |
| Best known for | Spamming child porn and links to it |
| Opponent | Moderators |
On imageboards, an obsessed Central Asian(?)[Marge...] pedophile subhuman, also referred to as Captain 'P would ocassionally advertise a shortened link to 'P files, accompanied with a 'P image and keywords/descriptions of extremely degenerate antimatter. On active imageboards, it is immediately banned upon sight. Investigation by a swinnycuck showed that this bot (most likely Captain 'P isn't a bot) targets imageboards listed on an imageboard directory website and that the subhuman has been doing it for 4 years.[1][2]. A datamine into his logged fingerprint on one of the imageboards he tried to post 'p on has shown that his timezone is Moscow Time (see what regions this timezone applies in here) and his browser languages are Russian, English, American English and Polish. The same datamine also has shown that he used same fingerprint every time it was logged, meaning that fingerprint bans are effective against him. See the Prevention section of this page to find more ways to fight against him. I'll find the post later but a non-soyosphere altchan owner had a thread on his site talking about a bot using Russian IPs to advertise CSAM since around 2020 on various altchans, presumably these are run by the same pedophile.
This pedophile had reportedly tried to spam Kiwi Farms and also sold 'P. You WILL dox and kill this subhuman scum.
Prevention
[edit | edit source]- Reporting him - obviously must always be done.
- Fingerprint ban him - very likely will prevent him, do this.
- Enabling manual approval of media on site – will prevent visitors from being jumpscared with child porn but will still leave links. There is also an upside to him putting descriptions that make it obvious that he's linking 'p: you can check for him and report/ban him with images disabled.
- Enabling manual approval of whole post – will prevent his spam completely (do this, your 10 post per day doesn't need to have users posts reach the log immediatly no offense).
- Spamming boards 'p was posted on with non-offensive shit – may be done to put the 'p post down until the moderation comes back, will get you banned.
- Enabling captchas on site - may not work, he is proven to solve captchas.
- Wordfiltering text he uses in his 'p posts – will not work as he will just change the text.
- For jschan, using a system made against him - see below:
Here's a shitty system i just made for the chaddy to prevent this bot, feel free to use it.'
the fingerprint of the "bot" is 100% real and it solves captchas, might not even be a bot and just an obsessed faggot. Also it seems to target every altchan regardless if it is listed on that site or not
checkPostShorteners: async (options) => {
const { proxy } = config.get;
const blacklistedKeywords = config.get.blacklistedKeywords || [
"small previews:",
"updated url.",
"6-14 years old",
"zoo and scat",
"real rape",
];
const allowedDomains = config.get.allowedDomains || [
"voca.ro",
"vocaroo.com",
"xcancel.com",
"x.com",
"twitter.com",
"youtube.com",
"m.youtube.com",
"music.youtube.com",
"youtu.be",
"garticphone.com",
"skribbl.io",
"catbox.moe",
"archive.ph",
"archive.org",
"web.archive.org",
"4chan.org",
"boards.4chan.org",
"wikipedia.org",
"strawpoll.com",
"soyjak.st",
"soyjakwiki.org",
"gigacha.de",
"gigawiki.org",
"github.com",
"gitlab.com",
"bitbucket.org",
"sncapedia.org",
"swedishwin.com",
];
const post = await Posts.getPost(
options.board._id || options.board,
options.postId,
true
);
const siteLinks = post.nomarkup.match(
/\b(?:https?:\/\/|www\.)[^\s<>"']+/gi
);
if (!siteLinks?.length) return;
const filteredLinks = siteLinks.filter((url) => {
try {
const parsed = new URL(
url.startsWith("http") ? url : `http://${url}`
);
const host = parsed.hostname
.replace(/^www\./, "")
.toLowerCase();
return !allowedDomains.some(
(d) => host === d || host.endsWith(`.${d}`)
);
} catch {
return false;
}
});
const uniqueLinks = [...new Set(filteredLinks)].slice(0, 10);
console.log("Found links:", uniqueLinks);
const agent = proxy.enabled
? new SocksProxyAgent(require("url").parse(proxy.address))
: null;
const resolveSite = async (url, signal) => {
let currentUrl = url;
for (let i = 0; i <= maxRedirects; i++) {
const res = await fetch(currentUrl, {
timeout: 10000,
agent,
redirect: "manual",
signal,
headers: {
"User-Agent":
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:146.0) Gecko/20100101 Firefox/146.0",
},
});
if (res.status >= 300 && res.status < 400) {
const location = res.headers.get("location");
currentUrl = new URL(location, currentUrl).toString();
continue;
}
if (i === 0) { // site wasn't a redirect
return null;
}
return res;
}
return null;
};
const scanShortener = async (url) => {
try {
const controller = new AbortController();
setTimeout(() => controller.abort(), 10000);
const res = await resolveSite(url, controller.signal);
if (!res) return false;
const text = await res.text();
return blacklistedKeywords.some((k) => text.includes(k))
? url
: false;
} catch (e) {
console.warn(`Error fetching ${url}:`, e.message);
return false;
}
};
const badSiteFound = await Promise.any(uniqueLinks.map(scanShortener));
if (!badSiteFound) return;
Citations
- ↑ https//files.catbox.moe/terrkl.html https://archive.is/wip/Ob8Wc
- ↑ https://files.catbox.moe/6sarh2.html https://archive.is/wip/EvsLB