memechain/tools/caption_image.py
2025-05-16 17:29:49 -07:00

42 lines
1.1 KiB
Python

import json
import requests
CAPTION_IMAGE_URL = "https://api.imgflip.com/caption_image"
def load_config():
with open('tools/config.json') as config_file:
return json.load(config_file)
def caption_image(input_data):
# Replace single quotes with double quotes because langchain likes to use single quotes
input_data = input_data.replace("'", '"')
data = json.loads(input_data)
template_id = data['template_id']
text = data['text']
config = load_config()
username = config['username']
password = config['password']
url = CAPTION_IMAGE_URL
payload = {
"template_id": template_id,
"username": username,
"password": password,
}
for i in range(len(text)):
payload[f'text{i}'] = text[i]
response = requests.post(url, data=payload)
result = response.json()
if result['success']:
meme_url = result['data']['url']
print(f"Meme created! URL: {meme_url}")
return meme_url
else:
print(f"Meme could not be created. Response code: {result}")
return None