Python Tweepy Bot, который случайным образом размещает в Твиттере изображение и соответствующую текстовую подпись. - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь создать бота Tweepy, который случайным образом выбирает изображение из папки и отправляет твит с соответствующей надписью из текстового файла, и повторяет его через заданный интервал в режиме сна. Раньше я не использовал python или любой другой язык кодирования, поэтому я крайне незнаком с тем, как это сделать sh. Пока у меня есть это:

import tweepy
from time import sleep
import random

print('Twitter Bot')

CONSUMER_KEY = 'XXXXXXX'
CONSUMER_SECRET = 'XXXXXXX'
ACCESS_KEY = 'XXXXXXX'
ACCESS_SECRET = 'XXXXXXX'

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)

filename = open('tweets.txt','r')
file_lines = filename.readlines()
filename.close()

media_list = list()
response = api.media_upload('image.png')
media_list.append(response.media_id_string)

randomChoice = random.randrange(len(file_lines))
print (file_lines[randomChoice])
api.update_status(status=file_lines[randomChoice], media_ids=media_list)

Как вы можете видеть, все, что это делает, это выбирает случайную строку в качестве текста твита и заданное изображение. Однако я пытаюсь добиться либо выбора случайного изображения с соответствующим текстом, либо наоборот. То есть: должна быть указанная c строка текста, соответствующая каждому изображению, но я не уверен, как go об этом.

1 Ответ

0 голосов
/ 16 апреля 2020

Сначала сохраните вашу информацию в файле .json, например:

[
  {
    "text": "hi",
    "image": "/image1.jpg"
  },
  {
    "text": "hello",
    "image": "/image2.jpg"
  }
]

Затем загрузите ее в Python в виде списка:

import json
with open('test.json', 'r') as f:
    info = json.load(f)

А затем все остальное так же, как ваш код: случайным образом выберите элемент из загруженного списка.

...