File size: 1,924 Bytes
2357765
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import requests
import json
from dotenv import load_dotenv
import os

load_dotenv()

access_token = os.getenv('REDDIT_ACCESS_TOKEN')

headers = {
    'Authorization': f'bearer {access_token}',
    'User-Agent': 'MyAPI/0.0.1'
}

# Subreddits of interest
subreddits = [
    'UnitedKingdom', 'Trueoffmychest', 'beginexsitence', 'Entitledpeople',
    'AmITheAsshole', 'creepyencounters', 'Leeds', 'Manchester', 'London',
    'Scotland', 'Talesfromthefrontdesk'
]

# Function to fetch top 3 comments from a post
def fetch_top_comments(post_id):
    url = f'https://oauth.reddit.com/comments/{post_id}'
    response = requests.get(url, headers=headers)
    if response.status_code == 200:
        post_data = response.json()
        comments = post_data[1]['data']['children']
        top_comments = [comment['data']['body'] for comment in comments[:1]]  # Get top 3 comments
        return top_comments
    else:
        return []

def grab_articles(topic):
  data = []
  print("Topic: ", topic)
  for subreddit in subreddits:
      # Search for the topic within each subreddit
      search_url = f'https://oauth.reddit.com/r/{subreddit}/search?q={topic}&restrict_sr=on&sort=hot&limit=1'
      res = requests.get(search_url, headers=headers)

      if res.status_code == 200:
          posts_data = res.json()['data']['children']

          for post in posts_data:
              post_data = post['data']
              post_id = post_data['id']
              title = post_data['title']
              selftext = post_data['selftext']
              top_comments = fetch_top_comments(post_id)
              data.append({
                  'subreddit': subreddit,
                  'title': title,
                  'post_content': selftext,
                  'top_comments': top_comments
              })
      else:
          print(f"Failed to fetch data from {subreddit}")
          
  # Example output
  print(data)
  return data