This repository has been archived on 2021-04-24. You can view files and clone it, but cannot push or open issues or pull requests.
Mikubot/README.md
2015-04-11 18:10:46 +02:00

521 lines
10 KiB
Markdown

telegram-bot
============
[![](https://travis-ci.org/yagop/telegram-bot.svg?branch=master)](https://travis-ci.org/yagop/telegram-bot)
A Telegram Bot based on plugins using [tg](https://github.com/vysheng/tg).
Test it on [telegram.me/yago_bot](https://telegram.me/yago_bot)
Multimedia
----------
- When user sends image (png, jpg, jpeg) URL download and send it to origin.
- When user sends media (gif, mp4, pdf, etc.) URL download and send it to origin.
- When user sends twitter URL, send text and images to origin. Requires OAuth Key.
- When user sends youtube URL, send to origin video image.
![http://i.imgur.com/0FGUvU0.png](http://i.imgur.com/0FGUvU0.png) ![http://i.imgur.com/zW7WWWt.png](http://i.imgur.com/zW7WWWt.png) ![http://i.imgur.com/zW7WWWt.png](http://i.imgur.com/kPK7paz.png)
Bot Commands
------------
<table>
<thead>
<tr>
<td>
<strong>
Name
</strong>
</td>
<td>
<strong>
Description
</strong>
</td>
<td>
<strong>
Usage
</strong>
</td>
</tr>
</thead>
<tbody>
<tr>
<td>
9gag.lua
</td>
<td>
9GAG for telegram
</td>
<td>
!9gag: Send random image from 9gag
</td>
</tr>
<tr>
<td>
boobs.lua
</td>
<td>
Gets a random boobs or butts pic
</td>
<td>
!boobs: Get a boobs NSFW image. :underage:
<br>
!butts: Get a butts NSFW image. :underage:
<br>
</td>
</tr>
<tr>
<td>
btc.lua
</td>
<td>
Bitcoin global average market value (in EUR or USD)
</td>
<td>
!btc [EUR|USD] [amount]
</td>
</tr>
<tr>
<td>
bugzilla.lua
</td>
<td>
Lookup bugzilla status update
</td>
<td>
/bot bugzilla [bug number]
</td>
</tr>
<tr>
<td>
echo.lua
</td>
<td>
Simplest plugin ever!
</td>
<td>
!echo [whatever]: echoes the msg
</td>
</tr>
<tr>
<td>
eur.lua
</td>
<td>
EURUSD market value
</td>
<td>
!eur [USD]
</td>
</tr>
<tr>
<td>
fortunes_uc3m.lua
</td>
<td>
Fortunes from Universidad Carlos III
</td>
<td>
!uc3m
</td>
</tr>
<tr>
<td>
get.lua
</td>
<td>
Retrieves variables saved with !set
</td>
<td>
!get (value_name): Returns the value_name value.
</td>
</tr>
<tr>
<td>
giphy.lua
</td>
<td>
GIFs from telegram with Giphy API
</td>
<td>
!gif (term): Search and sends GIF from Giphy. If no param, sends a trending GIF.
<br>
!giphy (term): Search and sends GIF from Giphy. If no param, sends a trending GIF.
<br>
</td>
</tr>
<tr>
<td>
google.lua
</td>
<td>
Searches Google and send results
</td>
<td>
!google [terms]: Searches Google and send results
</td>
</tr>
<tr>
<td>
gps.lua
</td>
<td>
generates a map showing the given GPS coordinates
</td>
<td>
!gps latitude,longitude: generates a map showing the given GPS coordinates
</td>
</tr>
<tr>
<td>
hackernews.lua
</td>
<td>
Show top 5 hacker news (ycombinator.com)
</td>
<td>
!hackernews
</td>
</tr>
<tr>
<td>
hello.lua
</td>
<td>
Says hello to someone
</td>
<td>
say hello to [name]
</td>
</tr>
<tr>
<td>
help.lua
</td>
<td>
Help plugin. Get info from other plugins.
</td>
<td>
!help: Show list of plugins.
<br>
!help all: Show all commands for every plugin.
<br>
!help [plugin name]: Commands for that plugin.
<br>
</td>
</tr>
<tr>
<td>
images.lua
</td>
<td>
When user sends image URL (ends with png, jpg, jpeg) download and send it to origin.
</td>
<td>
</td>
</tr>
<tr>
<td>
imdb.lua
</td>
<td>
Imdb plugin for telegram
</td>
<td>
!imdb [movie]
</td>
</tr>
<tr>
<td>
img_google.lua
</td>
<td>
Search image with Google API and sends it.
</td>
<td>
!img [term]: Random search an image with Google API.
</td>
</tr>
<tr>
<td>
invite.lua
</td>
<td>
Invite other user to the chat group
</td>
<td>
!invite name [user_name]
<br>
!invite id [user_id]
<br>
</td>
</tr>
<tr>
<td>
location.lua
</td>
<td>
Gets information about a location, maplink and overview
</td>
<td>
!loc (location): Gets information about a location, maplink and overview
</td>
</tr>
<tr>
<td>
magic8ball.lua
</td>
<td>
Magic 8Ball
</td>
<td>
!magic8ball
</td>
</tr>
<tr>
<td>
media.lua
</td>
<td>
When user sends media URL (ends with gif, mp4, pdf, etc.) download and send it to origin.
</td>
<td>
</td>
</tr>
<tr>
<td>
ping.lua
</td>
<td>
If domain is offline, send msg to peer
</td>
<td>
</td>
</tr>
<tr>
<td>
plugins.lua
</td>
<td>
Plugin to manage other plugins. Enable, disable or reload.
</td>
<td>
!plugins: list all plugins
<br>
!plugins enable [plugin]: enable plugin
<br>
!plugins disable [plugin]: disable plugin
<br>
!plugins reeload: reloads all plugins
<br>
</td>
</tr>
<tr>
<td>
quotes.lua
</td>
<td>
Quote plugin, you can create and retrieves random quotes
</td>
<td>
!addquote [msg]
<br>
!quote
<br>
</td>
</tr>
<tr>
<td>
rae.lua
</td>
<td>
Spanish dictionary
</td>
<td>
!rae [word]: Search that word in Spanish dictionary.
</td>
</tr>
<tr>
<td>
set.lua
</td>
<td>
Plugin for saving values. get.lua plugin is necesary to retrieve them.
</td>
<td>
!set [value_name] [data]: Saves the data with the value_name name.
</td>
</tr>
<tr>
<td>
stats.lua
</td>
<td>
Plugin to update user stats.
</td>
<td>
!stats: Returns a list of Username [telegram_id]: msg_num
</td>
</tr>
<tr>
<td>
steam.lua
</td>
<td>
Displays preview of store infomration/pricing/screenshot.
</td>
<td>
</td>
</tr>
<tr>
<td>
time.lua
</td>
<td>
Displays the local time in an area
</td>
<td>
!time [area]: Displays the local time in that area
</td>
</tr>
<tr>
<td>
translate.lua
</td>
<td>
Translate some text
</td>
<td>
!translate text. Translate to english the text.
<br>
!translate target_lang text.
<br>
!translate source,target text
<br>
</td>
</tr>
<tr>
<td>
twitter.lua
</td>
<td>
When user sends twitter URL, send text and images to origin. Requieres OAuth Key.
</td>
<td>
</td>
</tr>
<tr>
<td>
twitter_send.lua
</td>
<td>
Sends a tweet
</td>
<td>
!tw [text]: Sends the Tweet with the configured accout.
</td>
</tr>
<tr>
<td>
version.lua
</td>
<td>
Shows bot version
</td>
<td>
!version: Shows bot version
</td>
</tr>
<tr>
<td>
vote.lua
</td>
<td>
Plugin for voting in groups.
</td>
<td>
!voting reset: Reset all the votes.
<br>
!vote [number]: Cast the vote.
<br>
!voting stats: Shows the statistics of voting.
<br>
</td>
</tr>
<tr>
<td>
weather.lua
</td>
<td>
weather in that city (Madrid is default)
</td>
<td>
!weather (city)
</td>
</tr>
<tr>
<td>
xkcd.lua
</td>
<td>
Send comic images from xkcd
</td>
<td>
!xkcd (id): Send an xkcd image and title. If not id, send a random one
<br>
</td>
</tr>
<tr>
<td>
youtube.lua
</td>
<td>
Sends YouTube info and image.
</td>
<td>
</td>
</tr>
</tbody>
</table>
Installation
------------
```bash
# Tested on Ubuntu 14.04, for other OSs check out https://github.com/vysheng/tg#installation
sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev make unzip git
```
```bash
# After those dependencies, lets install the bot
cd $HOME
git clone https://github.com/yagop/telegram-bot.git
cd telegram-bot
./launch.sh install
./launch.sh # Will ask you for a phone number & confirmation code.
```
Enable more [`plugins`](https://github.com/yagop/telegram-bot/tree/master/plugins)
-------------
See the plugins list with `!plugins` command.
Enable a disabled plugin by `!plugins enable [name]`.
Disable an enabled plugin by `!plugins disable [name]`.
Those commands require a privileged user, privileged users are defined inside `data/config.lua` (generated by the bot), stop de bot and edit if necessary.
Run it as a daemon
------------
If your linux/unix comes with [upstart](http://upstart.ubuntu.com/) you can run the bot by this way
```bash
$ sed -i "s/yourusername/$(whoami)/g" etc/telegram.conf
$ sed -i "s_telegrambotpath_$(pwd)_g" etc/telegram.conf
$ sudo cp etc/telegram.conf /etc/init/
$ sudo start telegram # To start it
$ sudo stop telegram # To stop it
```
Contact me
------------
You can contact me [via Telegram](https://telegram.me/yago_perez) but if you have an issue please [open](https://github.com/yagop/telegram-bot/issues) one.