Metadata-Version: 2.1
Name: Ragnar
Version: 1.3.37
Summary: Anti spam bot for dR
Author: Retoor
Author-email: retoor@molodetz.nl
License: MIT
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: requests==2.32.3

# Ragnar Bot: Automated Moderation System for Devrant.io

## Overview
Ragnar Bot is an automated system designed to interact with the **Devrant.io API** for community moderation. It detects spam, flags inappropriate content, and takes corrective actions such as downvoting and commenting. The system is scalable, customizable, and supports concurrent operations for multiple users.

---

## Features

### API Integration
- **User Authentication**: Secure login with credentials.
- **Profile Retrieval**: Access user profile data.
- **Content Search**: Find posts matching specific keywords or patterns.
- **Comments Management**: Post and fetch comments on rants.
- **Voting System**: Upvote or downvote rants programmatically.
- **Fetch Rants**: Retrieve and sort recent rants for analysis.

### Spam Detection
- **Keyword Triggers**: Detect spam using predefined keywords like `crypto`, `bitcoin`, and more.
- **Regex Matching**: Identify suspicious patterns in text, such as URLs or phone numbers.
- **Heuristic Checks**: Evaluate user profiles and comments for unusual behavior.

### Automation
- **Flagging Spam**: Automatically downvote and comment on posts flagged as spam.
- **Concurrent Execution**: Operates multiple bots simultaneously using multithreading.
- **Customizable Triggers**: Adjust detection patterns to fit evolving spam trends.

### Logging & Caching
- **Logging**: Outputs activity logs to both the console and a file for debugging and monitoring.
- **Caching**: Uses a custom caching system to optimize performance and reduce redundant operations.

---

## How It Works

### Components
1. **API**:
   Handles all interactions with the Devrant.io platform, including user authentication, content retrieval, and posting actions.
   
2. **Bot**:
   Implements moderation logic:
   - Identifies suspicious content.
   - Posts comments warning users about flagged content.
   - Maintains a history of checked rants to avoid redundant processing.

3. **CLI**:
   Command-line interface to configure and execute the bot. Accepts user credentials and runs bots for multiple users simultaneously.

4. **Victoria Integration**:
   Fetches user-related data from a remote service (`victoria.molodetz.nl`) for enhanced operations.

### Workflow
1. The bot authenticates using the provided username and password.
2. It retrieves and evaluates recent rants for spam indicators.
3. If spam is detected:
   - Posts a predefined warning comment.
   - Downvotes the rant.
4. Maintains logs and runs continuously to monitor new rants.

---

## Installation & Usage

1. **Setup**:
   Clone the repository and ensure all dependencies are installed.

2. **Run the Bot**:
   Execute the bot via the CLI:
   ```bash
   python cli.py -u <username> -p <password>

---

## Fan art
This is some fan art made by Buffon, a contributor of this project:

![Image generated by Buffon](buffon.jpg)

Another one:

![Image generated by Buffon](buffon2.jpg)

Third one, the legendary bot war of 2024 ended in peace. 

![Image generated by Buffon](buffon3.jpg)


