Awesome
Robbie
Say hi to Robbie! I'm a small Telegram bot written entirely in Python, based off two awesome modules: pyTelegramBotAPI and PyGithub.
I'm not very smart, but go ahead, ask me anything, I'll do my best! :)
Usage
The usage is pretty simple: feed me up with a bunch of content off the if-else statements. Then, fire up the main.py
file, located at the root of this project.
Oh, by the way, don't forget to define your Telegram API key! On whatever system you're in, define a shell/environment variable called API_KEY
and put in there your key.
Features
- Basic social interactions.
- Crashless exception-handled backend.
- GitHub repository searching and listing, with summary of README contents appending.
- Support for account token reporting and deletion.
- High performance MySQL/MariaDB-backed message tracking.
- Support for Android build guides lookup in LineageOS' server.
- DuckDuckGo searches.
Modules
Some of the features of Robbie depend on the availability of several values, objects and external content providers (and receivers). Any module requiring a special treatment will be specified below, alongside the proper instructions to follow in order to get them working.
-
GitHub search
This module requires the following environment variables to be set:
MYSQL_HOSTNAME
MYSQL_USERNAME
MYSQL_PASSWORD
MYSQL_DBNAME
This module requires the following third-party software:
MySQL Server
orMariaDB Server
TODO
-
Minimize the user activity on internals. - Improve performance (implement AsyncTeleBot).
-
Fix a bunch of possible security issues. -
Use an actual database and implement OAuth token authentication.(kept username/password auth) - Implement fully cloud-managed OAuth authentication.
Licensing
Robbie (with exception of its dependencies) is licensed under the GNU Affero General Public License v3.0.
Dependencies
This bot depends of several APIs, libraries and modules, their licensing may vary. The list provided below, specifies each direct dependency. Please note that some other dependencies might be involved of which their licensing may be different too.
- pyTelegramBotAPI (GNU GPL v2.0) - Python Telegram bot API.
This API provides the core functionality.
- PyMySQL (MIT License) - Pure Python MySQL Client.
This API provides support for SQL queries to a MySQL/MariaDB, it's required to read/write the list of messages (to allow purging) and to save the user's personal access tokens to log into the GitHub API.
- PyGithub (GNU LGPL v3.0) - Typed interactions with the GitHub API v3
This API provides support for GitHub searches and other general purpose interaction with their API.
- DuckDuckGo2 (BSD-style license) - A library for querying the DuckDuckGo API.
This API provides support for DuckDuckGo searches. Please note that this is just a fork and quick port over the original version, just to make it compatible with Python 3.x.