Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import json
- import logging
- import urllib
- import urllib2
- from google.appengine.api import urlfetch
- from google.appengine.ext import ndb
- import webapp2
- TOKEN = 'YOUR_BOT_TOKEN_HERE'
- BASE_URL = 'https://api.telegram.org/bot' + TOKEN + '/'
- # ================================
- class EnableStatus(ndb.Model):
- # key name: str(chat_id)
- enabled = ndb.BooleanProperty(indexed=False, default=False)
- # ================================
- def setEnabled(chat_id, yes):
- es = EnableStatus.get_or_insert(str(chat_id))
- es.enabled = yes
- es.put()
- def getEnabled(chat_id):
- es = EnableStatus.get_by_id(str(chat_id))
- if es:
- return es.enabled
- return False
- # ================================
- class MeHandler(webapp2.RequestHandler):
- def get(self):
- urlfetch.set_default_fetch_deadline(60)
- self.response.write(json.dumps(json.load(urllib2.urlopen(BASE_URL + 'getMe'))))
- class GetUpdatesHandler(webapp2.RequestHandler):
- def get(self):
- urlfetch.set_default_fetch_deadline(60)
- self.response.write(json.dumps(json.load(urllib2.urlopen(BASE_URL + 'getUpdates'))))
- class SetWebhookHandler(webapp2.RequestHandler):
- def get(self):
- urlfetch.set_default_fetch_deadline(60)
- url = self.request.get('url')
- if url:
- self.response.write(json.dumps(json.load(urllib2.urlopen(BASE_URL + 'setWebhook', urllib.urlencode({'url': url})))))
- class WebhookHandler(webapp2.RequestHandler):
- def post(self):
- urlfetch.set_default_fetch_deadline(60)
- body = json.loads(self.request.body)
- logging.info('request body:')
- logging.info(body)
- self.response.write(json.dumps(body))
- update_id = body['update_id']
- message = body['message']
- message_id = message.get('message_id')
- date = message.get('date')
- text = message.get('text')
- fr = message.get('from')
- chat = message['chat']
- chat_id = chat['id']
- if not text:
- logging.info('no text')
- return
- def reply(msg):
- resp = urllib2.urlopen(BASE_URL + 'sendMessage', urllib.urlencode({
- 'chat_id': str(chat_id),
- 'text': msg,
- 'disable_web_page_preview': 'true',
- 'reply_to_message_id': str(message_id),
- })).read()
- logging.info('send response:')
- logging.info(resp)
- if text.startswith('/'):
- if text == '/start':
- reply('Bot enabled')
- setEnabled(chat_id, True)
- elif text == '/stop':
- reply('Bot disabled')
- setEnabled(chat_id, False)
- elif text == '/getChatId':
- reply(str(chat_id))
- else:
- reply('What command?')
- # CUSTOMIZE FROM HERE
- elif 'who are you' in text:
- reply('telebot starter kit, created by yukuku: https://github.com/yukuku/telebot')
- elif 'what time' in text:
- reply('look at the top-right corner of your screen!')
- else:
- if getEnabled(chat_id):
- resp1 = json.load(urllib2.urlopen('http://www.simsimi.com/requestChat?lc=en&ft=1.0&req=' + urllib.quote_plus(text.encode('utf-8'))))
- back = resp1.get('res')
- if not back:
- reply('okay...')
- elif 'I HAVE NO RESPONSE' in back:
- reply('you said something with no meaning')
- else:
- reply(back)
- else:
- logging.info('not enabled for chat_id {}'.format(chat_id))
- class TestMessage(webapp2.RequestHandler):
- def get(self):
- resp = urllib2.urlopen(BASE_URL + 'sendMessage', urllib.urlencode({
- 'chat_id': str(1337), # REPLACE 1337 WITH YOUR CHAT ID
- 'text': 'Hi there! Test test test!'
- })).read()
- app = webapp2.WSGIApplication([
- ('/me', MeHandler),
- ('/updates', GetUpdatesHandler),
- ('/set_webhook', SetWebhookHandler),
- ('/webhook', WebhookHandler),
- ('/testmsg', TestMessage),
- ], debug=True)
Advertisement
Add Comment
Please, Sign In to add comment