MrPowerScripts / reddit-karma-farming-bot

"Is karma really that important to you? Damn bro, you need a life" - YouTube Comment
https://mrpowerscripts.com
MIT License
296 stars 121 forks source link

The repost algo needs to get updated asap #171

Closed Avnsx closed 2 years ago

Avnsx commented 2 years ago

Bots like https://www.reddit.com/user/exponant/ Quickly flag reposts as karma grinding bots. You can easily bypass this by making python edit the contents of the repost before publishing, even replacing one space character to two space characters or switching up some random words with their coressponding synonyms by using an api such as https://www.synonyms.com/synonyms_api.php would be able to avoid detection. Or if you want to avoid api usage, you could push a wordlist within the next releases files, which already has the synonyms for words saved in them as a python list or similar. Reposts that only include pictures in their body; for them a solution would be adding some meaningless words such as "Nice!" or the synonyms of it or stuff like "Good Idea?", "What do you think?" which would be an attempt for people to say something back to the thread and low the chances of detection.

Also I'm not really statisfied with the comments this bot writes; most of them make no sense at all, might farm reports really quick. But that's a whole diffrent topic I guess. But in my opinion you might aswell try to find similar topics(idk like 30% same words in the threads) and then just repost one of their replies into the new thread, instead of trying to make the bot "learn"(haven't looked at the code for learning) and then post a sentence that not even a child would formulate like that such as "Cagayan is great, people’s brains up."

ghost commented 2 years ago

As far as I know, the development of this bot is halted for now. Your suggestions are great, it would be helpful if you could implement them and open a pull request, this can help others too.

Avnsx commented 2 years ago

As far as I know, the development of this bot is halted for now. Your suggestions are great, it would be helpful if you could implement them and open a pull request, this can help others too.

I already figured this out yesterday and am midway through implementing these changes. I've bypassed detection and improved the reposts algo in general on my dev version already. Right now I'm trying to comprehend how exactly the learning functionality - works as a whole, as those still seem to get detected by a reddit bot called BotDefense. It seems to be open source, but I can't find the exact functionality which determines comments as generated by bots. Its source: https://github.com/botdefense/botdefense/blob/master/botdefense.py

In my head theoretically speaking, this bot generates comments randomly; so what could possibly be used as a needle to determine a randomly generated comment as written by a bot? How advanced could the detection bot be, to be able to tell this? It's not like the comments our bot generates, are grammatically incorrect or are completly randomly put together. They all more or less return somewhat of a logic behind them which doesn't seem to always be hitting topic on its head, which shouldn't be an issue though.

So then the only other logic that I can come up with is that the cube algo or whatever it uses as 'brain' is limited to a cetain point and this bot just knows that cube things way to formulate sentences and limitations or something. Which would leave us back with only entirely disabling the current algo for posting comments and instead just doing what I orginally explained above for comments instead.

Avnsx commented 2 years ago

Honestly I checked through the comments & replies it wrote again. Most of them are entirely useless, might aswell turn comments chance to 0 at this point as it would in addition also stop the bot from getting flagged by BotDefense for whatever reason. Does it even mater if a account posts only threads(posts) or if it writes comments too? Like does reddit itsself have any detection algos, that would then determine a user as a bot since he has no commments/replies?

MrPowerScripts commented 2 years ago

hi this isn't a commercial product it's an educational tool. if you'd like to submit a pull request with improvements i'm open to reviewing them, but I won't be personally making any significant changes going forward. at least that's my current feels on it. I actually think reddit will likely rebuild their bot infrastructure in the near future and the bot will become obsolete anyway.

some background: the comments do suck. but at the time I when I wrote the bot 4 years ago cobe was the only library I could find that generated comments. there's probably many libraries and tools available these days that are much better. the current bot code makes it very easy to add your own comment source implementation. Just create a new class for the source similar to the cobe class and select it as the source.

your suggestion regarding the post titles is something that was discussed previously but indeed the problem was finding a way to do it without an external API. A previous version of the bot used a word spinner API, but I didn't re-implement it when moving from 3.0 to 4.0. if you look at the 3.x code you'll see there's some stuff implemented around post titles and re-uploading to imgur that might be helpful.

the bot does have many aspects that could be improved. . i'm open to reviewing pull requests, but I don't have any intention on implementing them myself at this time.