Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
root committed Jul 27, 2016
2 parents 3eebb2b + 5d4979a commit a8c3fa1
Show file tree
Hide file tree
Showing 9 changed files with 251 additions and 17 deletions.
4 changes: 4 additions & 0 deletions HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
History
-------
0.2.1 (2016-07-24)
++++++++++++++++++
* Update for python-telegram-bot release v5.0

0.2.0 (2016-04-27)
++++++++++++++++++

Expand Down
34 changes: 34 additions & 0 deletions HISTORY.rst~
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
.. :changelog:

History
-------
0.2.0 (2016-04-27)
++++++++++++++++++

* Update for python-telegram-bot release v4.0.1

0.1.8 (2016-03-22)
++++++++++++++++++

* Update for deprecation in python-telegram-bot release v3.4

0.1.5 (2016-01-28)
++++++++++++++++++

* Fix compatibility.

0.1.4 (2016-01-28)
++++++++++++++++++

* Fix compatibility.

0.1.3 (2016-01-28)
++++++++++++++++++

* Fix setting certificate.
* Add method DjangoTelegramBot.getBot(); get bot instance by token or username.

0.1.2 (2016-01-26)
++++++++++++++++++

* First release on PyPI.
35 changes: 22 additions & 13 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -56,27 +56,32 @@ Include in your urls.py the ``django_telegrambot.urls`` using the same value of
Then use it in a project creating a module ``telegrambot.py`` in your app ::

#myapp/telegrambot.py
# Example code for telegrambot.py module
from telegram.ext import CommandHandler, MessageHandler, Filters
from django_telegrambot.apps import DjangoTelegramBot
from django_telegrambot.apps import DjangoTelegramBot

import logging
logger = logging.getLogger(__name__)


# Define a few command handlers. These usually take the two arguments bot and
# update. Error handlers also receive the raised TelegramError object in error.
def start(bot, update):
bot.sendMessage(update.message.chat_id, text='Hi!')


def help(bot, update):
bot.sendMessage(update.message.chat_id, text='Help!')


def echo(bot, update):
bot.sendMessage(update.message.chat_id, text=update.message.text)


def error(bot, update, error):
logger.warn('Update "%s" caused error "%s"' % (update, error))

def main():
logger.info("Loading handlers for telegram bot")
Expand All @@ -87,16 +92,20 @@ Then use it in a project creating a module ``telegrambot.py`` in your app ::
# dp = DjangoTelegramBot.getDispatcher('BOT_n_username') #get by bot username
# on different commands - answer in Telegram
dp.addHandler(CommandHandler("start", start))
dp.addHandler(CommandHandler("help", help))
dp.add_handler(CommandHandler("start", start))
dp.add_handler(CommandHandler("help", help))

# on noncommand i.e message - echo the message on Telegram
dp.addHandler(MessageHandler([Filters.text], echo))
dp.add_handler(MessageHandler([Filters.text], echo))

# log all errors
dp.add_error_handler(error)

# log all errors
dp.addErrorHandler(error)



Features
--------

Expand Down
133 changes: 133 additions & 0 deletions README.rst~
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
=============================
django-telegrambot
=============================

.. image:: https://badge.fury.io/py/django-telegrambot.png
:target: https://badge.fury.io/py/django-telegrambot

.. image:: https://travis-ci.org/JungDev/django-telegrambot.png?branch=master
:target: https://travis-ci.org/JungDev/django-telegrambot

A simple app to develop Telegram bots with Django

Documentation
-------------

The full documentation is at https://django-telegrambot.readthedocs.org.

Quickstart
----------

Install django-telegrambot::

pip install django-telegrambot

Configure your installation
---------------------------

Add ``django_telegrambot`` in ``INSTALLED_APPS`` ::

#settings.py
INSTALLED_APPS = (
...
'django_telegrambot',
...
)

And set your bots::

#settings.py
#Django Telegram Bot settings
TELEGRAM_BOT_TOKENS = ('BOT_1_token','BOT_2_token',)
TELEGRAM_WEBHOOK_SITE = 'https://mysite.it'
TELEGRAM_WEBHOOK_BASE = '/baseurl'
#TELEGRAM_WEBHOOK_CERTIFICATE = 'cert.pem' #If your site use self-signed certificate, must be set with location of your public key certificate. (More info at https://core.telegram.org/bots/self-signed )


Include in your urls.py the ``django_telegrambot.urls`` using the same value of ``TELEGRAM_WEBHOOK_BASE`` ::

#urls.py
urlpatterns = [
...
url(r'^baseurl/', include('django_telegrambot.urls')),
...
]

Then use it in a project creating a module ``telegrambot.py`` in your app ::

#myapp/telegrambot.py
from telegram.ext import CommandHandler, MessageHandler, Filters
from django_telegrambot.apps import DjangoTelegramBot

# Define a few command handlers. These usually take the two arguments bot and
# update. Error handlers also receive the raised TelegramError object in error.
def start(bot, update):
bot.sendMessage(update.message.chat_id, text='Hi!')


def help(bot, update):
bot.sendMessage(update.message.chat_id, text='Help!')


def echo(bot, update):
bot.sendMessage(update.message.chat_id, text=update.message.text)


def error(bot, update, error):
logger.warn('Update "%s" caused error "%s"' % (update, error))


def main():
logger.info("Loading handlers for telegram bot")

# Default dispatcher (this is related to the first bot in settings.TELEGRAM_BOT_TOKENS)
dp = DjangoTelegramBot.dispatcher
# To get Dispatcher related to a specific bot
# dp = DjangoTelegramBot.getDispatcher('BOT_n_token') #get by bot token
# dp = DjangoTelegramBot.getDispatcher('BOT_n_username') #get by bot username

# on different commands - answer in Telegram
dp.addHandler(CommandHandler("start", start))
dp.addHandler(CommandHandler("help", help))

# on noncommand i.e message - echo the message on Telegram
dp.addHandler(MessageHandler([Filters.text], echo))

# log all errors
dp.addErrorHandler(error)


Features
--------

* Multiple bots

Contributing
------------

Patches and bug reports are welcome, just please keep the style consistent with the original source.

Running Tests
--------------

Does the code actually work?

::

source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install -r requirements-test.txt
(myenv) $ python runtests.py

Credits
---------
Required package:
* `Python Telegram Bot`_

.. _`Python Telegram Bot`: https://github.com/python-telegram-bot/python-telegram-bot

Tools used in rendering this package:

* Cookiecutter_

.. _Cookiecutter: https://github.com/audreyr/cookiecutter

2 changes: 2 additions & 0 deletions django_telegrambot/__init__.py~
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
__version__ = '0.2.0'
default_app_config = 'django_telegrambot.apps.DjangoTelegramBot'
9 changes: 6 additions & 3 deletions example/telegrambot.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,14 @@ def main():
# dp = DjangoTelegramBot.getDispatcher('BOT_n_username') #get by bot username

# on different commands - answer in Telegram
dp.addHandler(CommandHandler("start", start))
dp.addHandler(CommandHandler("help", help))
dp.add_handler(CommandHandler("start", start))
dp.add_handler(CommandHandler("help", help))

# on noncommand i.e message - echo the message on Telegram
dp.addHandler(MessageHandler([Filters.text], echo))
dp.add_handler(MessageHandler([Filters.text], echo))

# log all errors
dp.add_error_handler(error)

# log all errors
dp.addErrorHandler(error)
Expand Down
46 changes: 46 additions & 0 deletions example/telegrambot.py~
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# -*- coding: utf-8 -*-
# Example code for telegrambot.py module
from telegram.ext import CommandHandler, MessageHandler, Filters
from django_telegrambot.apps import DjangoTelegramBot

import logging
logger = logging.getLogger(__name__)


# Define a few command handlers. These usually take the two arguments bot and
# update. Error handlers also receive the raised TelegramError object in error.
def start(bot, update):
bot.sendMessage(update.message.chat_id, text='Hi!')


def help(bot, update):
bot.sendMessage(update.message.chat_id, text='Help!')


def echo(bot, update):
bot.sendMessage(update.message.chat_id, text=update.message.text)


def error(bot, update, error):
logger.warn('Update "%s" caused error "%s"' % (update, error))


def main():
logger.info("Loading handlers for telegram bot")

# Default dispatcher (this is related to the first bot in settings.TELEGRAM_BOT_TOKENS)
dp = DjangoTelegramBot.dispatcher
# To get Dispatcher related to a specific bot
# dp = DjangoTelegramBot.getDispatcher('BOT_n_token') #get by bot token
# dp = DjangoTelegramBot.getDispatcher('BOT_n_username') #get by bot username

# on different commands - answer in Telegram
dp.addHandler(CommandHandler("start", start))
dp.addHandler(CommandHandler("help", help))

# on noncommand i.e message - echo the message on Telegram
dp.addHandler(MessageHandler([Filters.text], echo))

# log all errors
dp.addErrorHandler(error)

2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
django>=1.8.0
# Additional requirements go here
python-telegram-bot>=4.0.1
python-telegram-bot>=5.0
3 changes: 3 additions & 0 deletions requirements.txt~
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
django>=1.8.0
# Additional requirements go here
python-telegram-bot>=4.0.1

0 comments on commit a8c3fa1

Please sign in to comment.