https://github.com/rakinplaban/discord_chat_miku
Synthia is a Discord bot that fetches and displays the latest AI news in a designated channel using web scraping.
https://github.com/rakinplaban/discord_chat_miku
bot discord-bot discord-py python3
Last synced: 8 months ago
JSON representation
Synthia is a Discord bot that fetches and displays the latest AI news in a designated channel using web scraping.
- Host: GitHub
- URL: https://github.com/rakinplaban/discord_chat_miku
- Owner: rakinplaban
- Created: 2024-12-03T12:43:31.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-01-04T13:06:34.000Z (over 1 year ago)
- Last Synced: 2025-01-04T14:22:56.911Z (over 1 year ago)
- Topics: bot, discord-bot, discord-py, python3
- Language: Python
- Homepage: https://discord.com/oauth2/authorize?client_id=1313455711971180607&permissions=8&integration_type=0&scope=bot
- Size: 11 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Synthia Bot
Synthia is a feature-rich Discord bot designed to provide real-time updates and enhancements to your server. It specializes in fetching and displaying the latest AI-related news in a dedicated channel, offering an automated news feed experience. Additionally, Synthia is built to demonstrate web scraping skills and runs seamlessly on a Docker container for 24/7 availability.
---

## Features
- **Welcome with a Joke:**
Welcomes new members to your server with a personalized joke, setting a friendly tone for interactions. (Feature under development, nearly complete.)
- **AI News Feed**:
Automatically fetches the latest AI-related news from top sources and posts it in a specified Discord channel.
- **Web Scraping Integration**:
Utilizes web scraping techniques to collect fresh and relevant news, serving as a practical example of Python-based scraping.
- **Customizable**:
Easily configure the channel for news updates and set the frequency of news posts.
- **Dockerized Deployment**:
Fully containerized with Docker, ensuring portability and ease of deployment.
---
## Installation
### Prerequisites
- Python 3.8+
- Docker (optional, for containerized deployment)
- A Discord bot token (get one from the [Discord Developer Portal](https://discord.com/developers/applications))
### Local Setup
1. Clone the repository:
```bash
git clone https://github.com/rakinplaban/Discord_chat_miku
cd Discord_chat_miku
```
2. Install dependencies:
```bash
pip install -r requirements.txt
```
3. Configure the bot:
- Create a `.env` file in the root directory.
- Add your Discord bot token:
```env
BOT_TOKEN=your_discord_bot_token
```
4. Run the bot:
```bash
python main.py
```
---
## Docker Deployment
1. Build the Docker image:
```bash
docker build -t synthia-bot .
```
2. Run the container:
```bash
docker run -d --name synthia-container synthia-bot
```
3. Ensure 24/7 availability by hosting the container on a cloud platform like AWS, Azure, or DigitalOcean.
---
## Usage
- Invite Synthia to your Discord server using your bot's invite link.
- Set up the channel where you want AI news to be posted.
- Synthia will start fetching and posting news based on the configured schedule (default: hourly).
---
## Technologies Used
- **Programming Language**: Python
- **Libraries**:
- `discord.py` for bot interactions
- `beautifulsoup4` and `requests` for web scraping
- **Containerization**: Docker
---
## Contributing
1. Fork the repository.
2. Create a new branch:
```bash
git checkout -b feature-name
```
3. Commit your changes:
```bash
git commit -m 'Add some feature'
```
4. Push to the branch:
```bash
git push origin feature-name
```
5. Open a pull request.
---
## License
This project is licensed under the MIT License. See the LICENSE file for details.
---
## Acknowledgments
- Inspired by the desire to automate AI news feeds and practice web scraping techniques.
- Thanks to the open-source community for providing tools and libraries.
---
Enjoy using Synthia! If you encounter any issues or have feature requests, feel free to open an issue or contact us.