A class representing a toolkit for Reddit operations.This toolkit provides methods to interact with the Reddit API, allowing
users to collect top posts, perform sentiment analysis on comments, and
track keyword discussions across multiple subreddits.Parameters:
retries (int): Number of retries for API requests in case of failure.
delay (float): Delay between retries in seconds.
reddit (Reddit): An instance of the Reddit client.
def collect_top_posts( self, subreddit_name: str, post_limit: int = 5, comment_limit: int = 5):
Collects the top posts and their comments from a specified
subreddit.Parameters:
subreddit_name (str): The name of the subreddit to collect posts from.
post_limit (int): The maximum number of top posts to collect. Defaults to 5.
comment_limit (int): The maximum number of top comments to collect per post. Defaults to 5.
Returns:Union[List[Dict[str, Any]], str]: A list of dictionaries, each
containing the post title and its top comments if success.
String warming if credentials are not set.
def track_keyword_discussions( self, subreddits: List[str], keywords: List[str], post_limit: int = 10, comment_limit: int = 10, sentiment_analysis: bool = False):
Tracks discussions about specific keywords in specified subreddits.Parameters:
subreddits (List[str]): A list of subreddit names to search within.
keywords (List[str]): A list of keywords to track in the subreddit discussions.
post_limit (int): The maximum number of top posts to collect per subreddit. Defaults to 10.
comment_limit (int): The maximum number of top comments to collect per post. Defaults to 10.
sentiment_analysis (bool): If True, performs sentiment analysis on the comments. Defaults to False.
Returns:Union[List[Dict[str, Any]], str]: A list of dictionaries
containing the subreddit name, post title, comment body, and
upvotes for each comment that contains the specified keywords
if success. String warming if credentials are not set.