BullShark (Christopher Lemire)
BinaryStroke (StompinBroknGlas on irc)
projektile (Tyler Pollard)
teslasolutions (Kamal Sajid)
n0tme (thatsn0tmysite on matrix)
JRobo is an advanced IRC bot that uses its own IRC framework. It was written from scratch.
- Colored and formatted output
- Ability to respond to actions such as a user who joined
- Auto reponds to its name with a random joke
- Uses its own IRC framework
- Configuration file in plain text JSON, just modify it's values
- Authenticates with nickserv
- google|g <search query>
- wakeroom|wr
- Brings a dead channel back to life!
- weather|w <location, zip, etc.>
- Queries the wunderground api for a weather summary
- urbandict|ud <search query>
- Returns the top 3 results of the search query from urbandictionary.com
- Sorts by thumbs up, and shows the number of thumbs up and thumbs down for each result
- Nicely formatted and colored output
- list|l
- Provides a list of commands
- Uses a Linux Man page type Syntax
- help [cmd]
- Provides help output on a particular command
- leet
- Queries 1337x.to with formatted and colored output
- Category is one of the following: Movies, TV, Games, Music, Apps, Documentaries, Anime, Other, XXX, All
- pirate [-s|-l|-d] <search query>
- Queries pirate bay with formatted and colored output
- -s sort by seeds (default)
- -l sort by leachers
- -d sort by total times downloaded
- Limits output to 3 lines to avoid flooding the channel
- epic
- Gets a list of free Epic Games with links
- isup <url>
- Checks if the url is really up or down
- version
- quit|q
- JRobo will only respond to this and other commands/features sent from the master or (Not implemented fully yet)
- One of the list of masters read in from Config.json
- And others, download and use the bots in-channel help for more
- RSS Feed Support
Requirements for Building
- Gradle (included)
- OpenJDK or Oracle/Sun JDK version 16
- Git of course
Problems
- Java JDK 17 is not compatible with Gradle, cannot fetch Gradle/Maven dependencies, and won't work for now
- Recommended to use sdkman to install Java JDK 16 unless your distro has a package for JDK 16.
$ yay -Syy aur/jrobo
Edit the Config.json in /usr/lib/JRobo.jar or /etc/JRobo/Config.json. The config file in /etc will be used unless it doesn't exist. If it does not exist, a bundled Config.json in JRobo.jar will be used instead.
$ jrobo
$ sudo apt install git
# Use SDK Manager, sdkman to fetch a compatible Java JDK
$ curl -s "https://get.sdkman.io" | bash
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
$ sdk install java 16.0.2.fx-librca
$ sdk help # for more info
$ git clone https://github.com/BullShark/JRobo.git
$ cd JRobo
# Extract one file from JRobo.jar
$ jar xf JRobo.jar expectusafterlun/ch/jrobo/Config.json
# Rename Config.json-example to Config.json
$ mv ./expectusafterlun/ch/jrobo/Config.json-example ./expectusafterlun/ch/jrobo/Config.json
# Put your own settings into the bot's configuration file
$ nano ./expectusafterlun/ch/jrobo/Config.json
# Update JRobo.jar with the new Config.json
$ jar uf JRobo.jar expectusafterlun/ch/jrobo/Config.json
$ ./gradlew clean
$ ./gradlew build
$ ./gradlew run
$ yum install java-latest-openjdk-devel git
$ # The rest is the same as above
$ # Download gson jar to the project root where it's easy to find
$ wget https://repo1.maven.org/maven2/com/google/code/gson/gson/2.8.8/gson-2.8.8.jar
$ wget https://repo1.maven.org/maven2/commons-io/commons-io/2.11.0/commons-io-2.11.0.jar
$ cd src/main/java
$ javac -classpath ../../../gson-2.8.8.jar:../../../commons-io-2.11.0.jar:. expectusafterlun/ch/jrobo/JRobo.java
$ java -classpath ../../../gson-2.8.8.jar:../../../commons-io-2.11.0.jar:. expectusafterlun.ch.jrobo.JRobo
Tested, and it works.
Contact me (BullShark) if you would like to contribute to this project, and you might be able to become a collaborator.
This works best under Netbeans, but you can choose a different development environment. It is recommended to use my custom build.xml to include Google's GSON for JSON library and other jar libraries bundled with JRobo.jar.
$ cd ~/NetbeansProjects
$ git clone https://github.com/BullShark/JRobo.git
Now go into Netbeans and click File->Open Project. Browse to ~/NetbeansProjects and choose JRobo.
OR:
From Netbeans, use the Git plugin to clone this Netbeans project. /main/java
http://expectusafterlun.ch/JRobo/docs/javadoc/jrobo/expectusafterlun/ch/package-summary.html