pyTweetBot submodules

Submodules

pyTweetBot.execute_actions module

pyTweetBot.execute_actions.execute_actions(config, action_scheduler, no_tweet=False, no_retweet=False, no_like=False, no_follow=False, no_unfollow=False)

Launch threads that will execute each action thread.

Examples:
>>> config = BotConfig.load("config.json")
>>> action_scheduler = ActionScheduler(config=config)
>>> execute_actions(config, action_scheduler)
Arguments:
  • config (BotConfig): Bot configuration of type pyTweetBot.config.BotConfig.
  • action_scheduler (ActionScheduler): Action management of type pyTweetBot.executor.ActionScheduler
  • no_tweet (Boolean): Do not execute tweet action
  • no_retweet (Boolean): Do not execute retweet action
  • no_like (Boolean): Do not execute like action
  • no_follow (Boolean): Do not execute follow action
  • no_unfollow (Boolean): Do not execute unfollow action

pyTweetBot.export_database module

pyTweetBot.export_database.export_database(output_dir, mysql_connector)

Export a database from a MySQL database to a series of files.

Example:
>>> mysql_connector = DBConnector(host="localhost", username="test", password="pass", db_name="pytb")
>>> export_database(".", mysql_connector)
Arguments:
  • output_dir (str): The output directory path
  • mysql_connector (DBConnector) : A connector object of type pyTweetBot.db.DBConnector

pyTweetBot.find_follows module

pyTweetBot.find_follows.add_follow_action(action_scheduler, friend)

Add a follow action through the scheduler.

Arguments:
pyTweetBot.find_follows.find_follows(config, model, action_scheduler, friends_manager, text_size, n_pages=20, threshold=0.5)

Find Twitter user to follows accordingly to parameters set in the config file.

Example:
>>> config = BotConfig.load("config.json")
>>> find_follows(config, model, action_scheduler, friends_manager, 50)
Arguments:
  • config: Bot’s configuration object
  • model: Classification model’s file
  • action_scheduler: Action scheduler object
  • friends_manager: Friends manager object
  • text_size: Minimum text size to be accepted
  • n_pages: Number of pages to search for each term
  • threshold: Minimum probability to accept following

pyTweetBot.find_github_tweets module

pyTweetBot.find_github_tweets.add_tweet(action_scheduler, tweet_text)

Add tweet through the scheduler

Arguments:
  • action_scheduler: The action scheduler object
  • tweet_text: Text to tweet
Returns:
  • True if ok, False if problem.
pyTweetBot.find_github_tweets.compute_tweet(tweet_text, action_scheduler, instantaneous)

Tweet something directly or add it to the database.

Arguments:
  • tweet_text (unicode): The text to tweet.
  • action_scheduler (ActionScheduler): Action scheduler object of type (pyTweetBot.executor.ActionScheduler)
  • instantaneous (bool): Tweet directly (True) or add it to the DB.
Returns:
  • True if tweeted/added, False if already in the database.
pyTweetBot.find_github_tweets.create_tweet_text(contrib_counter, contrib_date, project_name, project_url, topics)

Create the tweet’s text for a git push event.

Arguments:
  • contrib_counter (int): Number of contributions
  • contrib_date (datetime): Date of the push
  • project_name (unicode): GitHub project’s name
  • project_url (str): GitHub project’s URL
  • topics (list): GitHub project’s topics
Returns:
The tweet’s text.
pyTweetBot.find_github_tweets.create_tweet_text_create(project_name, project_description, project_url, topics)

Create tweet’s text for a git repository creation.

Arguments:
  • project_name (unicode): GitHub project’s name
  • project_description (unicode): GitHub project’s description
  • project_url (unicode): GitHub project’s URL
  • topics (list): GitHub project’s topics.
Returns:
return:The created text.
pyTweetBot.find_github_tweets.find_github_tweets(config, action_scheduler, event_type='push', depth=-1, instantaneous=False, waiting_time=0)

Add tweets based on GitHub activities to the database, or tweet it directly.

Arguments:
  • config (BotConfig): Bot config object of type pyTweetBot.config.BotConfig
  • action_scheduler (ActonScheduler): Action scheduler object of type pyTweetBot.executor.ActionScheduler
  • event_type (str): Type of event to tweet (push or create)
  • depth (int): Number of events to tweet for each repository.
  • instantaneous: Tweet the information instantaneously or not (to DB)?
  • waiting_time: Waiting time between each tweets (for instantaneous tweeting)
pyTweetBot.find_github_tweets.prepare_project_name(project_name)

Replace - by space in the project name and put the first letter of each word to uppercase.

Arguments:
  • project_name (unicode): GitHub project’s name
Returns:
The cleaned project name

pyTweetBot.find_retweets module

pyTweetBot.find_retweets.find_retweets(config, model_file, action_scheduler, text_size=80, threshold=0.5)

Find tweets to retweet from search terms set in the config file.

Example:
>>> config = BotConfig.load("config.json")
>>> action_scheduler = ActionScheduler(config=config)
>>> find_retweets(config, "model.p", action_scheduler)
Arguments:
  • config (BotConfig): Bot configuration object of type pyTweetBot.config.BotConfig
  • model_file (str): Path to the file containing the classifier model
  • action_scheduler (ActionScheduler): Action scheduler object of type pyTweetBot.executor.ActionScheduler
  • text_size (int): Minimum text length to take a tweet into account
  • threshold (float): Minimum to reach to be classified as positive

pyTweetBot.find_tweets module

pyTweetBot.find_tweets.find_tweets(config, model_file, action_scheduler, n_pages=2, threshold=0.5)

Find tweet from Google News and RSS streams.

Examples:
>>> config = BotConfig.load("config.json")
>>> action_scheduler = ActionScheduler(config=config)
>>> find_tweets(config, "model.p", action_scheduler)
Arguments:
  • config (BotConfig): BotConfig configuration object of type pyTweetBot.config.BotConfig
  • model_file (str): Path to model file for classification
  • action_scheduler (ActionScheduler): Scheduler object of type pyTweetBot.executor.ActionScheduler
  • n_pages (int): Number of pages to analyze
  • threshold (float): Probability threshold to be accepted as tweet

pyTweetBot.find_unfollows module

pyTweetBot.find_unfollows.find_unfollows(config, friends_manager, model_file, action_scheduler, threshold=0.5)

Find Twitter users to unfollow according to the parameters in the configuration file.

Example:
>>> config = BotConfig.load("config.json")
>>> action_scheduler = ActionScheduler(config=config)
>>> friends_manager = FriendsManager()
>>> find_unfollows(config, friends_manager, "model.p", action_scheduler)
Arguments:
  • config (BotConfig): Bot configuration object of type pyTweetBot.config.BotConfig
  • friends_manager (FriendsManager): Friend manager object of type pyTweetBot.friends.FriendsManager
  • model_file (str): Path to the model’s Pickle file.
  • action_scheduler (ActionScheduler): Action scheduler object.
  • threshold (float): Probability threshold to accept unfollow.

pyTweetBot.follower_dataset module

pyTweetBot.follower_dataset.follower_dataset(twitter_connect, dataset_file, info, source='followers', text_size=50)

Create a dataset or add textual data from a list of Twitter users.

Example:
>>> config = BotConfig.load("config.json")
>>> twitter_connector = TweetBotConnector(config)
>>> follower_dataset(twitter_connect, "dataset.p", False, 'followers')
Arguments:
  • twitter_connect (TweetBotConnector): Twitter bot connector object of type pyTweetBot.twitter.TweetBotConnect
  • dataset_file (str): Path to the dataset file to load or create.
  • info (bool): If True, show information about the dataset and exit
  • source (str): Can be ‘follower’ or ‘following’. Set where to load users from.
  • text_size (int): Minimum user’s description length to take the profile into account.

pyTweetBot.import_database module

pyTweetBot.import_database.import_actions(session, actions)

Import actions :param session: :param actions: :return:

pyTweetBot.import_database.import_database(output_dir, mysql_connector)

Function to import the database :param output_dir: :param mysql_connector: :return:

pyTweetBot.import_database.import_friends(session, friends)

Import friends :param session: :param friends: :return:

pyTweetBot.import_database.import_statistics(session, statistics)

Import statistics :param session: :param statistics: :return:

pyTweetBot.import_database.import_tweets(session, tweets)

Import tweets :param session: :param tweets: :return:

pyTweetBot.list_actions module

pyTweetBot.list_actions.list_actions(action_scheduler, action_type='')

List actions :param action_scheduler: Action Scheduler object :param action_type: Filter action type

pyTweetBot.model_testing module

pyTweetBot.model_testing.model_testing(data_set_file, model_file, text_size=2000, threshold=0.5)

Test a classifier :param data_set_file: Path to the dataset file :param model_file: Path to model file if needed :param text_size: Minimum text size :param threshold: Probability threshold

pyTweetBot.model_training module

pyTweetBot.model_training.model_training(data_set_file, model_file='', model_type='NaiveBayes')

Train a classifier on a dataset. :param data_set_file: Path to the dataset file :param model_file: Path to model file if needed :param model_type: Model’s type (stat, tfidf, stat2, textblob)

pyTweetBot.retweet_dataset module

pyTweetBot.retweet_dataset.retweet_dataset(config, dataset_file, search='', info=False, source='tweets')

Get retweet data :param config: :param dataset_file: :param n_pages: :param search: Search term :param info: :return:

pyTweetBot.statistics_generator module

pyTweetBot.statistics_generator.statistics_generator(twitter_connector, stats_file, n_pages, stream, info)

Statistics generator

pyTweetBot.tweet_dataset module

pyTweetBot.tweet_dataset.tweet_dataset(config, dataset_file, n_pages, info, rss)

Create a tweet dataset :param config: :param tweet_connector: :return:

pyTweetBot.tweet_training module

pyTweetBot.tweet_training.clean_html_text(to_clean)

Clean HTML text :param to_clean: :return:

pyTweetBot.tweet_training.tweet_training(dataset_file, model_file='', test=False, param='dp', type='stat')

Train a classifier on a dataset. :param config: pyTweetBot configuration object :param dataset_file: Path to the dataset file :param model_file: Path to model file if needed :param data: Title or content :param test: Test the classification success rate :param param: Model parameter (dp, …) :param type: Model’s type (stat, tfidf, stat2, textblob)

pyTweetBot.unfollow_dataset module

pyTweetBot.update_statistics module

pyTweetBot.update_statistics.update_statistics(config)

Update the statistics in the DB :param config: :return:

Module contents