Less spam, easier for server.
All checks were successful
Build Ragnar anti spam bot / Build (push) Successful in 1m21s

This commit is contained in:
retoor 2025-01-11 18:40:17 +01:00
parent cf7c54be63
commit a43c13c2e5
2 changed files with 17 additions and 17 deletions

View File

@ -5,6 +5,7 @@ import time
from ragnar import log from ragnar import log
from ragnar.api import Api from ragnar.api import Api
from ragnar.cache import method_cache from ragnar.cache import method_cache
from ragnar.victoria import vic
class Bot: class Bot:
@ -55,7 +56,7 @@ class Bot:
self.api = Api(username=self.username, password=self.password) self.api = Api(username=self.username, password=self.password)
def rsleepii(self): def rsleepii(self):
time.sleep(random.randint(10, 60)) time.sleep(random.randint(1, 2))
@method_cache @method_cache
def login(self): def login(self):
@ -172,5 +173,6 @@ class Bot:
self.rant_history.append(rant["id"]) self.rant_history.append(rant["id"])
def down_vote_rant(self, rant): def down_vote_rant(self, rant):
log.warning("Downvoting rant by {}.".format(rant["user_username"])) vic.dr_downvote_rant(rant["id"],5)
log.warning("Downvoting rant by {} for 5 times.".format(rant["user_username"]))
log.debug("Vote result: ".format(self.api.post_rant_vote(rant["id"], -1))) log.debug("Vote result: ".format(self.api.post_rant_vote(rant["id"], -1)))

View File

@ -4,7 +4,7 @@ from concurrent.futures import ThreadPoolExecutor as Executor
from ragnar import log from ragnar import log
from ragnar.bot import Bot from ragnar.bot import Bot
from ragnar.victoria import vic from ragnar.victoria import vic
import time
def parse_args(): def parse_args():
parser = argparse.ArgumentParser(description="Process username and password.") parser = argparse.ArgumentParser(description="Process username and password.")
@ -15,26 +15,24 @@ def parse_args():
return parser.parse_args() return parser.parse_args()
def bot_task(username, password):
log.info(f"Created new bot runniner. Username: {username}")
while True:
try:
bot = Bot(username=username, password=password)
bot.login()
bot.fight()
except Exception as ex:
log.critical(ex, exc_info=True)
def main(): def main():
args = parse_args() args = parse_args()
usernames = vic.get_friends() usernames = vic.get_friends()
with Executor(len(usernames)) as executor: while True:
for username in usernames: for username in usernames:
executor.submit(bot_task, f"{username}@molodetz.nl", args.password) time_start = time.time()
executor.shutdown(wait=True) try:
log.info(f"Created new bot runner. Username: {username}")
bot = Bot(username=username, password=args.password)
bot.login()
bot.fight()
except Exception as ex:
log.critical(ex, exc_info=True)
time.sleep(1)
time_duration = time.time() - time_start
log.info(f"Bot {username} finished in {time_duration} seconds.")
def run(): def run():
main() main()