Skip to main content

Creating a simple Telegram Bot

Well first what is a bot?
     A bot is a piece of software that can execute commands, reply to messages, or perform routine tasks, as online searches, either automatically or with minimal human intervention

Now how to create one?
    Here i have created a bot that run in telegram and i will show you how to do

Steps in creating a Telegram Bot 
  • Create a account in telegram 
  • Search for @botfather ( a bot that will assist you in creating new bot )
  • Inside BotFather chat type /newbot and it will ask name for the bot and username for the bot once you completed above things successfully then botfather gives you Token id which is essential to create a bot
          
In this image you can able to find the token id strike out by red color

  • Well now we have everything we need , we can able to create a bot using python ( you can able to create in any language ) 
  • In command line
                    pip install python-telegram-bot
       Bot can get update from user using two methods
  •  Long Polling
  •  Webhooks
      Here we use long polling methods ( every x period of second we check whether we received any updates)

Here i have created a bot which download the file to the computer. you need to pass the url download command 

Eg: [  /download <<url>> ]

The concept is simple we get the url from the message and pass it to the wget ( command line downloader ) which can be done in python by

        command = "wget " + << download url >> + "&" ( '&' -> to run the program in background )
        os.system(command)

To implement the above concept we will pass the Token id to the updater and then add handler to the updater 

In our scenario the handler is "download" so we will create a dispatcher then set handler to the dispathcer and set a function that execute when we encounter this handler this can be done using

    updater = Updater("<<Your Bot Id>>")
    dp = updater.dispatcher
    dp.add_handler(CommandHandler("<< handler name >>", Function to be executed ))
    
Add the above code to create a simple telegram app and the complete source code look alike

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Simple Telegram bot in which you can pass the url to the download the computer will download for you
# Reference : https://github.com/python-telegram-bot/python-telegram-bot/blob/master/examples
# My Blog : Thangaayyanar.blogspot.in

from telegram.ext import Updater, CommandHandler
import logging
import os

# Enable logging
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
                    level=logging.INFO)

logger = logging.getLogger(__name__)


def start(bot, update):
    update.message.reply_text('Hi! Use /download <download url> to download the file')


def initiate_download(bot, update, args, job_queue, chat_data):
    
    chat_id = update.message.chat_id
    
    try:
        
      command = "wget " + args[0] + "&"
        os.system(command)
      update.message.reply_text('Download process started')

    except (IndexError, ValueError):
        update.message.reply_text('Usage: /download <download url>')


def error(bot, update, error):
    """Log Errors caused by Updates."""
    logger.warning('Update "%s" caused error "%s"', update, error)


def main():
    """Run bot."""
    updater = Updater("<<Your Bot Id>>")

    # Get the dispatcher to register handlers
    dp = updater.dispatcher

    # on different commands - answer in Telegram
    dp.add_handler(CommandHandler("start", start))
    dp.add_handler(CommandHandler("help", start))
    dp.add_handler(CommandHandler("download", initiate_download,
                                  pass_args=True,
                                  pass_job_queue=True,
                                  pass_chat_data=True))


    # log all errors
    dp.add_error_handler(error)

    # Start the Bot
    updater.start_polling()
    updater.idle()


if __name__ == '__main__':
    main()
 
 
 
Adding few error handling code  to the program to work better

Run the bot and pass the data

             /download < url >

the file will be download to the computer 


Cheers you have created a Bot







Comments

Popular posts from this blog

Docker

Docker is used to run software packages called "containers". Containers are isolated from each other and bundle their own tools, libraries and configuration files; they can communicate with each other through well-defined channels                                                                                                --Wikipedia  I have already written a article about the containers you can check out in here https://thangaayyanar.blogspot.com/2018/06/containers.html This time, let's learn more about docker engine how we can use this. The important things we need to know in docker are Docker Image:  The container can be created with the help of Image. The Image file consists of code, libraries, environment variable...

BlockChain

As the name says chain of block Now what is a block?       A block typically contains a  cryptographic hash of the previous block,  a timestamp transaction data    Where it is used?      It is the backbone of cryptocurrency i.e it ensure the security and integrity of data. The usage doesn't stop here well blockchain are resistant to modification of the data. so it can used in Bank Identity verification Hospital records and much more   How it ensures security and integrity of data? Block added to the chain, contain the hash ( result obtained from hash algorithm such as MD5,SHA) of the previous block so changes in one block lead to mismatch. Proof of work algorithm - Adding a node in the block chain require validation whether the new block is valid or not which is done my miner if they find the valid hash they will be rewarded How to do one?      The most interesting part ...

My experience in iOS Hackathon

This is my second hackathon, my first hackathon was on machine learning if you want to check out that article by following the below link https://thangaayyanar.blogspot.com/2018/02/what-i-learned-from-machine-learning.html So let's get started First let us discuss about the idea of what we are trying to achieve in this hackathon. From the above image you can able to know that we are going to recognize text from the image and use it to do find which field it is.  we separated this idea into three modules Identify the region Recognize the text  Field classification Module I : Identify the region To identify the selected region we used Vision framework ( ML framework provided by apple to detect the object ). The vision framework give us the boundary of the text region ( i.e frame - x,y,width,height ).  Then using the above region we crop the selected region and pass it to the next module. Module II : Recognize the text To recognize the text we ...