Tweet Strings via Tweepy - PullRequest
       8

Tweet Strings via Tweepy

0 голосов
/ 16 декабря 2018

Я использую tweepy, чтобы автоматически твитнуть список URL.Однако, если мой список слишком длинный (он может варьироваться от твита к твиту), я не допускаюсь.Есть ли в любом случае, что tweepy может создать поток твитов, когда контент слишком длинный?Мой твипи код выглядит так:

import tweepy

def get_api(cfg):
  auth = tweepy.OAuthHandler(cfg['consumer_key'], 
cfg['consumer_secret'])
  auth.set_access_token(cfg['access_token'], 
cfg['access_token_secret'])
  return tweepy.API(auth)

def main():
  # Fill in the values noted in previous step here
  cfg = { 
    "consumer_key"        : "VALUE",
    "consumer_secret"     : "VALUE",
    "access_token"        : "VALUE",
    "access_token_secret" : "VALUE" 
    }

  api = get_api(cfg)
  tweet = "Hello, world!"
  status = api.update_status(status=tweet) 
  # Yes, tweet is called 'status' rather confusing

if __name__ == "__main__":
  main()

1 Ответ

0 голосов
/ 16 декабря 2018

Ваш код не имеет отношения к проблеме, которую вы пытаетесь решить.Мало того, что 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, что сообщенияЭтот подход довольно умышленный и не делает никаких проверок для поддержания последовательности разделенных твитов.В зависимости от того, как вы реализуете свои последние функции твита, это может быть проблемой, но также вопросом отдельного вопроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...