A peek into reddit's anti-spam internals
From Programming Digest · subscribed via aiste.ulozaite@gmail.com · original ↗ · unsubscribe
A bug in Reddit’s spam filter briefly exposed internal removal reasons to a moderator in 2021. The leaked messages revealed several tools Reddit uses behind the scenes, including Google’s Perspective API for spam scoring, a rules engine called Spamurai, domain bans, and even URL inspection that scans linked pages for known spam patterns.
@scope { @media (width >= 720px) { @supports (anchor-name:–supports) { & { position: absolute; width: 300px; top: anchor(–mod top); right: anchor(–mod right); } } } & { padding: 8px; padding-top: 6px; border-radius: 3px; } &:not(:has(input:checked)) #sent { display: none; } h1 { display: inline; margin: 0; color: gray; font-family: inherit; font-size: 130%; font-weight: normal; } ul { margin: 0; padding: 5px; border: 1px solid gray; font-size: larger; list-style: none; } .message-button { padding: 5px 0 10px; text-align: center; label { display: inline-block; font-weight: bold; cursor: pointer; border: 1px solid transparent; padding: 4px 12px 3px; line-height: 20px; border-radius: 3px; -webkit-user-select: none; user-select: none; background-color: #4f86b5; border-bottom: 2px solid #4270a2; color: #FFF; text-decoration: none; &:hover, &:active { background-color: #4980ae; } &:active { border-bottom-width: 1px; margin-top: 1px; } } } a { cursor: pointer; } –b:-1; .more { –a: calc(var(–c, 0) + 1); –o: 0; a { color: gray } animation: x 1ms infinite, y 1ms infinite; animation-play-state: paused, paused; &:has(a:first-child:active) { animation-play-state: running, paused; } &:has(a:last-child:active) { animation-play-state: paused, running; } a:last-child { display: none; } @container style(–a > –b) { a:first-child { display: none; } a:last-child { display: block; } a::after { –o: 0; } } @container style(–a = –b) { a::after { –o: 1; } } margin-top: 5px; text-align: right; font-size: smaller; a::after { counter-reset: a calc(var(–a) * 2 + var(–o) + 17); content: counter(a) “ more »”; @container style(–a > 2) { white-space: pre-wrap; content: counter(a) “ more ?”; } @container style(–a > 10) { white-space: pre-wrap; content: counter(a) “ more ??”; } @container style(–a > 25) { white-space: pre-wrap; content: counter(a) “ more ???”; } @container style(–a > 55) { white-space: pre-wrap; content: ‘Exception in thread “main” java.lang.ArithmeticException: ‘ counter(a) ‘ is out of range\a at lyra.horse.blog.posts.RedditPost.increaseCounter(RedditPost.java:385)\a at lyra.horse.blog.Main.POST_REQUEST(Blog.java:53)\a at lyra.horse.blog.Main.serve(Blog.java:103)’; } @container style(–a > 65) { white-space: pre-wrap; content: ‘Exception in thread “main” java.lang.ArithmeticException: ‘ counter(a) ‘ is out of range\a at lyra.horse.blog.posts.RedditPost.increaseCounter(RedditPost.java:385)\a at lyra.horse.blog.Main.POST_REQUEST(Blog.java:53)\a at lyra.horse.blog.Main.serve(Blog.java:103)\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a ‘; } @container style(–a > 80) { position: fixed; width: 100vw; height: 100lvh; top:0; left: 0; padding:64px; background: #000; z-index: 10; color: #F00; box-sizing: border-box; white-space: pre-wrap; content: ‘Exception in thread “main” java.lang.ArithmeticException: ‘ counter(a) ‘ is out of range\a at lyra.horse.blog.posts.RedditPost.increaseCounter(RedditPost.java:385)\a at lyra.horse.blog.Main.POST_REQUEST(Blog.java:53)\a at lyra.horse.blog.Main.serve(Blog.java:103)\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\a Segmentation fault (core dumped)\a root@lyra.horse #’; } } } } @property –a { syntax: “
MODERATORS
- MESSAGE THE MODS
- message sent.
- Orschmann
- optimistic_outcome
- Chinch335
- IllusionOf_Integrity
- spokesthebrony
- TheeLinker
- Lankygit
- Raging_Mouse
- Searchbar_Trixie
- gbeaudette
- …and …and