Skip to content

Instantly share code, notes, and snippets.

@imankulov
Created April 7, 2018 15:41
Show Gist options
  • Save imankulov/7e7340624c3b7c361bab7cf2fb91ff1f to your computer and use it in GitHub Desktop.
Save imankulov/7e7340624c3b7c361bab7cf2fb91ff1f to your computer and use it in GitHub Desktop.
Telegram chat bot replying with random "Trump-alike" messages to anything you write
import json
import glob
import requests
import markovify
from tqdm import tqdm
TELEGRAM_TOKEN = os.environ['TELEGRAM_TOKEN']
def get_model():
tweet_text = []
for filename in glob.glob('*.json'):
tweets = json.load(open(filename))
for tweet in tweets:
tweet_text.append(tweet['text'])
input_text = ' '.join(tweet_text)
return markovify.Text(input_text)
def read_input():
offset = 0
get_updates_url = f'https://api.telegram.org/bot{TELEGRAM_TOKEN}/getUpdates'
send_message_url = f'https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage'
model = get_model()
while True:
resp = requests.get(get_updates_url,
params={'timeout': 5, 'offset': offset}
).json()
result = resp['result']
for upd in result:
message_id = upd['message']['message_id']
chat_id = upd['message']['chat']['id']
resp2 = requests.get(send_message_url, params={
'chat_id': chat_id,
'text': model.make_short_sentence(280),
'reply_to_message_id': message_id,
})
offset = max(offset, upd['update_id'] + 1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment