Ваш код не имеет отношения к проблеме, которую вы пытаетесь решить.Мало того, что main()
, похоже, не принимает никаких аргументов (твитнуть текст?), Но вы не показываете, как вы в настоящее время пытаетесь подойти к этому вопросу.Рассмотрим следующий код:
import random
TWEET_MAX_LENGTH = 280
# Sample Tweet Seed
tweet = """I'm using tweepy to automatically tweet a list of URLs. However if my list is too long (it can vary from tweet to tweet) I am not allowed."""
# Creates list of tweets of random length
tweets = []
for _ in range(10):
tweets.append(tweet * (random.randint(1, 10)))
# Print total initial tweet count and list of lengths for each tweet.
print("Initial Tweet Count:", len(tweets), [len(x) for x in tweets])
# Create a list for formatted tweet texts
to_tweet = []
for tweet in tweets:
while len(tweet) > TWEET_MAX_LENGTH:
# Take only first 280 chars
cut = tweet[:TWEET_MAX_LENGTH]
# Save as separate tweet to do later
to_tweet.append(cut)
# replace the existing 'tweet' variable with remaining chars
tweet = tweet[TWEET_MAX_LENGTH:]
# Gets last tweet or those < 280
to_tweet.append(tweet)
# Print total final tweet count and list of lengths for each tweet
print("Formatted Tweet Count:", len(to_tweet), [len(x) for x in to_tweet])
Он максимально выделен для простоты интерпретации.Суть в том, что можно начать со списка текста, который будет использоваться в качестве твитов.Переменная TWEET_MAX_LENGTH
определяет, где каждый твит будет разделен, чтобы можно было использовать несколько твитов.
Список to_tweet
будет содержать каждый твит в порядке вашего начального списка, разбитый на несколько твитов длиной <= <code>TWEET_MAX_LENGTH.
Вы можете использовать этот список для подачив вашу фактическую функцию tweepy, что сообщенияЭтот подход довольно умышленный и не делает никаких проверок для поддержания последовательности разделенных твитов.В зависимости от того, как вы реализуете свои последние функции твита, это может быть проблемой, но также вопросом отдельного вопроса.