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

7.2 KiB

telegram-bot

A Telegram Bot based on plugins using tg.

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/zW7WWWt.png http://i.imgur.com/zW7WWWt.png

Bot Commands

Name Description Usage
9gag.lua9GAG for telegram!9gag: Send random image from 9gag
bitfinex.luaBitfinex commands!bitfinex symbols: Get a list of valid symbol IDs and the pair details.
!bitfinex ticker (pair): Gives innermost bid and asks and information on the most recent trade, as well as high, low and volume of the last 24 hours.
!bitfinex stats (pair): Various statistics about the requested pairs.
!bitfinex book|orderbook (pair): Get the order book. Limited to 10 bids an 10 asks.
!bitfinex trades (pair): Get a list of trades for the given symbol. Limited to 20.
!bitfinex lends (currency): Get a list of the most recent swaps: total amount lent and Flash Return Rate (in % by 365 days). Limited to 20.
btc.luaBitcoin global average market value (in EUR or USD)!btc [EUR|USD] [amount]
echo.luaSimplest plugin ever!!echo [whatever]: echoes the msg
eur.luaEURUSD market value!eur [USD]
fortunes_uc3m.luaFortunes from Universidad Carlos III!uc3m
get.luaRetrieves variables saved with !set!get (value_name): Returns the value_name value.
giphy.luaGIFs from telegram with Giphy API!gif (term): Search and sends GIF from Giphy. If no param, sends a trending GIF.
!giphy (term): Search and sends GIF from Giphy. If no param, sends a trending GIF.
google.luaSearches Google and send results!google [terms]: Searches Google and send results
gps.luagenerates a map showing the given GPS coordinates!gps latitude,longitude: generates a map showing the given GPS coordinates
hashrate.luaBitcoin Mining Calculator!hashrate: data for 1 TH/s
!hashrate [number]: number of TH/s
hello.luaSays hello to someonesay hello to [name]
help.luaHelp plugin. Get info from other plugins. !help: Show all the help
!help md: Generate a GitHub Markdown table
images.luaWhen user sends image URL (ends with png, jpg, jpeg) download and send it to origin.
imdb.luaImdb plugin for telegram!imdb [movie]
img_google.luaSearch image with Google API and sends it.!img [term]: Random search an image with Google API.
invite.luaInvite other user to the chat group!invite name [user_name]
!invite id [user_id]
location.luaGets information about a location, maplink and overview!loc (location): Gets information about a location, maplink and overview
media.luaWhen user sends media URL (ends with gif, mp4, pdf, etc.) download and send it to origin.
ping.luaIf domain is offline, send msg to peer
plugins.luaPlugin to manage other plugins. Enable, disable or reload.!plugins: list all plugins
!plugins enable [plugin]: enable plugin
!plugins disable [plugin]: disable plugin
!plugins reload: reloads all plugins
quandl.luaGold and Oil Price!gold
!oil
quotes.luaQuote plugin, you can create and retrieves random quotes!addquote [msg]
!quote
rae.luaSpanish dictionary!rae [word]: Search that word in Spanish dictionary. Powered by https://github.com/javierhonduco/dulcinea
set.luaPlugin for saving values. get.lua plugin is necesary to retrieve them.!set [value_name] [data]: Saves the data with the value_name name.
stats.luaPlugin to update user stats.!stats: Returns a list of Username [telegram_id]: msg_num
time.luaDisplays the local time in an area!time [area]: Displays the local time in that area
twitter.luaWhen user sends twitter URL, send text and images to origin. Requieres OAuth Key.
twitter_send.luaSends a tweet!tw [text]: Sends the Tweet with the configured accout.
version.luaShows bot version!version: Shows bot version
weather.luaweather in that city (Madrid is default)!weather (city)
xkcd.luaSend comic images from xkcd!xkcd (id): Send an xkcd image and tigle. If not id, send a random one
youtube.luaSends YouTube info and image.

Installation

# 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 unzip git
$ cd /tmp
$ wget http://luarocks.org/releases/luarocks-2.2.0.tar.gz
$ tar -xzvf luarocks-2.2.0.tar.gz
$ cd luarocks-2.2.0/
$ ./configure
$ make && sudo make install
$ sudo luarocks install oauth
$ sudo luarocks install luasocket
# After those dependencies, lets install the bot
$ cd $HOME
$ git clone https://github.com/yagop/telegram-bot.git --recursive
$ cd telegram-bot/tg
$ ./configure && make && cd ..
$ ./launch.sh # Will ask you for a phone number & confirmation code.

Enable more 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 you can run the bot by this way

$ 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 but if you have an issue please open one.