Update README.md

This commit is contained in:
Dmitry Isaenko 2020-11-02 16:58:10 +03:00
parent 66f3013ed8
commit ca4ac89561

View file

@ -1,49 +1,49 @@
# InnaIrcBot # InnaIrcBot
Another one IRC bot in deep-deep beta. InnaIrcBot is IRC bot.
_Pet-project created to learn Java in action_
## License ## License
Source code spreads under the GNU General Public License v3 or higher. Please see LICENSE file. Source code spreads under the GNU General Public License v3 or higher. Please see LICENSE file.
#### Used libraries: #### Used libraries:
* Apache commons CLI: https://commons.apache.org/proper/commons-cli/ * Apache commons CLI: https://commons.apache.org/proper/commons-cli/
* GSON: https://github.com/google/gson * ini4j: http://ini4j.sourceforge.net/
* sqliteJDBC: https://bitbucket.org/xerial/sqlite-jdbc * sqliteJDBC: https://bitbucket.org/xerial/sqlite-jdbc
* mongodb-driver-sync: https://mongodb.github.io/mongo-java-driver/3.9/ * mongodb-driver-sync: https://mongodb.github.io/mongo-java-driver/3.9/
* JUnit 5: https://junit.org/junit5/ * JUnit 5: https://junit.org/junit5/
## Usage ## Usage
``` ```
-c, --configuration <name.config> [<name1.config> ...] Read Config java -jar InnaIrcBot.jar [OPTION]... [FILE]...
-g, --generate [name.config] Generate Config options:
-v, --version Get application version -c,--configuration <arg> Start with configuration
-g,--generate <arg> Create configuration template
-h,--help Show this help
-v,--version Show application version
``` ```
#### Configuration settings #### Configuration notes
"userNickAuthStyle": "rusnet" or "freenode" "nickserv auth method" could be either "rusnet" or "freenode" where:
* rusnet - send '/nickserv IDENTIFY mySecretPass' * rusnet - send '/nickserv IDENTIFY mySecretPass'
* freenode - send '/msg nickserv IDENTIFY mySecretPass' * freenode - send '/msg nickserv IDENTIFY mySecretPass'
"logDriver" could be "Files", "SQLite", "MongoDB" or "Zero" Section [logging] "driver" could be "files", "SQLite", "MongoDB" or "Zero"
* Files - log everything to files using /yourPathSet/serverName/#chanelName_YYYY-MM-DD.txt format. * Files - log everything to files using /yourPathSet/serverName/#chanelName_YYYY-MM-DD.txt format.
* SQLite - use /yourPathSet/server.db (or /yourPathSet/yourFileName.db) sqlite file. * SQLite - use /yourPathSet/server.db (or /yourPathSet/yourFileName.db) sqlite file.
* MongoDB - write files to MongoDB. See ConfigurationExamples folder. * MongoDB - write files to MongoDB. See ConfigurationExamples folder.
* Zero - do not use any
Running application with '-g' option would create 'file-driven' configuration.
### TODO: ### TODO:
- [ ] Documentation - [ ] Documentation
- [ ] Code refactoring - [ ] QA: add good unit tests
- [ ] QA: good regression testing
- [x] CI/CD Jenkins
- [x] Suppress messages from server or handle them separately from selected worker
- [ ] Logs backend workers as threads (SQLite and co. are too slow) - [ ] Logs backend workers as threads (SQLite and co. are too slow)
- [x] Logs backend worker for mongodb
- [ ] Logs backend worker for redis/redis node - [ ] Logs backend worker for redis/redis node
- [ ] Re-implement connection routine - [ ] Scripts support at 'ChanelCommander'
- [ ] Availability to run scripts @ 'ChanelCommander'
- [ ] Docker(+compose) package - [ ] Docker(+compose) package
- [ ] Flood tracker - [ ] Flood tracker
- [ ] Deep configuration files validation
- [x] Maven ~~or Gradle~~ build
- [ ] ncurses-like or/and GUI configuration files (server/chanel setting) editor - [ ] ncurses-like or/and GUI configuration files (server/chanel setting) editor
- [x] CTCP support for using @ 'ChanelCommander'
- [ ] Access roles support (i.e. delegating some rights to another users) - [ ] Access roles support (i.e. delegating some rights to another users)
- [ ] Logs for application (partly implemented) - [ ] Logs for application (partly implemented)