https://github.com/alexgustafsson/irc-ruski-bot
A Dockerized IRC Ruski Bot written in Java 8
https://github.com/alexgustafsson/irc-ruski-bot
bot conversational-bot docker irc java java-8 translation yandex-translate
Last synced: 2 months ago
JSON representation
A Dockerized IRC Ruski Bot written in Java 8
- Host: GitHub
- URL: https://github.com/alexgustafsson/irc-ruski-bot
- Owner: AlexGustafsson
- License: unlicense
- Created: 2019-05-12T12:47:06.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2021-07-14T14:20:07.000Z (almost 5 years ago)
- Last Synced: 2025-03-30T05:11:34.864Z (over 1 year ago)
- Topics: bot, conversational-bot, docker, irc, java, java-8, translation, yandex-translate
- Language: Java
- Size: 93.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# IRC Emoji Bot
### A Dockerized IRC Ruski Bot written in Java 8
***
### Setting up
##### Quickstart
```Bash
# Clone the repository
git clone https://github.com/AlexGustafsson/irc-ruski-bot
# Enter the directory
cd irc-ruski-bot
# Build the image
./build-docker.sh
# Start the image
docker run -d -e IRC_SERVER='irc.example.org' -e YANDEX_TRANSLATE_API_KEY='api key' --restart always axgn/irc-ruski-bot
```
### Documentation
#### Running with Docker
```Bash
docker run -d \
-e IRC_SERVER='irc.example.org' \
-e IRC_PORT='6697' \
-e IRC_CHANNEL='#random' \
-e IRC_NICK='emoji-bot' \
-e IRC_USER='emoji-bot' \
-e IRC_GECOS='Ruski Bot v0.1 (github.com/AlexGustafsson/irc-ruski-bot)' \
-e YANDEX_TRANSLATE_API_KEY='api key' \
-e DISABLE_TLS_VALIDATION='false' \
axgn/irc-ruski-bot
```
The image is stateless and based on Alpine and is roughly 110MB in size. While running, the container usually uses 0.10% of the CPU and roughly 40MB of RAM. During load it uses about 15% CPU and while starting about 50% on a single core and an unchanged amout of RAM.
To prevent any unforseen events, one can therefore limit the container's resources by using the flags `--cpus=0.2` and `--memory=50MB` which should both leave some head room. Note that the lower CPU count will cause somewhat slower startups.
#### Invoking via IRC
To see help messages send `ruski-bot: help` in the channel where the bot lives.
To send a message translated to Ruski, send `ruski-bot: I only drive Lada` which will send `YA yezzhu tol'ko na Lade`.
If you have a secret (such as `I don't like vodka`) which you would like to share, you can send it in a direct message to the bot. It will still send the response to the specified channel without any mentioning of the sender.
### Contributing
Any contribution is welcome. If you're not able to code it yourself, perhaps someone else is - so post an issue if there's anything on your mind.
###### Development
```
# Clone the repository
git clone https://github.com/AlexGustafsson/irc-ruski-bot && cd irc-ruski-bot
##
# Using Gradle
# If you're on a Windows PC, you may have to use ./gradlew.bat instead.
# --rerun-tasks ignore if the source code has seen no changes
# it ensures that you get the full result
# Run all checks and tests on the project
./gradlew check
# Test the project
./gradlew test
# Check code style
./gradlew --rerun-tasks checkstyleMain checkstyleTest
# Check for common bugs
./gradlew --rerun-tasks spotbugsMain spotbugsTest
# Check for dependency issues
./gradlew --rerun-tasks dependencyCheckAnalyze
# Compile and package the project
./gradlew assemble
# Compile, test and package the project
./gradlew build
# Run the project on port 3000
./gradlew run --args=3000
```
### Disclaimer
_Although the project is very capable, it is not built with production in mind. Therefore there might be complications when trying to use the bot for large-scale projects meant for the public. The bot was created to easily send Ruski in IRC channels and as such it might not promote best practices nor be performant._