Created
April 7, 2018 15:41
-
-
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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