Skip to content

Commit d0b22db

Browse files
Merge pull request #617 from SreejaVeerappan/patch-4
Update the project
2 parents e69257f + 3456a86 commit d0b22db

File tree

1 file changed

+33
-76
lines changed

1 file changed

+33
-76
lines changed

flask_news_project/app.py

+33-76
Original file line numberDiff line numberDiff line change
@@ -1,117 +1,74 @@
1+
12
# -*- coding: utf-8 -*-
23
"""
34
Created on Fri Mar 26 14:43:36 2021
45
56
@author: DRASHTI
67
"""
78

8-
99
import hashlib
10-
1110
from flask import Flask, render_template
1211
import requests
1312
import json
1413

15-
# enter your api key
16-
# I have used google-news-api
17-
api_key="18a186f151b642f7900ece5d626029f4"
18-
api_key="18a186f151b642f7900ece5d626029f4"
14+
# **Security:** Store your API key in a separate configuration file
15+
# or environment variable and avoid committing it to version control.
16+
# Here, we'll use a placeholder for demonstration.
17+
api_key = "YOUR_API_KEY" # Replace with your actual API key
1918

20-
url="https://newsapi.org/v2/top-headlines?sources=google-news-in&apiKey="+ api_key
21-
response=response = requests.get(url)
19+
def fetch_news(category=None, query=None):
20+
url = "https://newsapi.org/v2/top-headlines"
21+
params = {"apiKey": api_key}
22+
if category:
23+
params["category"] = category
24+
if query:
25+
params["q"] = query # Use "q" parameter for search
2226

23-
data = response.text
24-
parsed = json.loads(data)
25-
print(json.dumps(parsed, indent=4))
27+
response = requests.get(url, params=params)
28+
data = response.text
29+
parsed = json.loads(data)
30+
return parsed
2631

27-
app=Flask(__name__)
32+
app = Flask(__name__)
2833

29-
#<img src="{{url_for()}}{{parsed['articles'][0]['urlToImage']}}">
3034
@app.route('/')
3135
def home():
32-
url="https://newsapi.org/v2/top-headlines?sources=google-news-in&apiKey="+ api_key
33-
response=response = requests.get(url)
34-
35-
data = response.text
36-
parsed = json.loads(data)
37-
print(json.dumps(parsed, indent=4))
38-
print("##################################################################################")
39-
40-
return render_template('headlines.html',parsed=parsed)
36+
parsed = fetch_news() # Fetch top headlines
37+
return render_template('headlines.html', articles=parsed["articles"])
4138

4239
@app.route('/headlines')
4340
def headlines():
44-
url="https://newsapi.org/v2/top-headlines?sources=google-news-in&apiKey="+ api_key
45-
response=response = requests.get(url)
41+
return home() # Redirect to home for headlines
4642

47-
data = response.text
48-
parsed = json.loads(data)
49-
print(json.dumps(parsed, indent=4))
50-
51-
return render_template('headlines.html',parsed=parsed)
5243
@app.route('/sports')
5344
def sports():
54-
url="https://newsapi.org/v2/top-headlines?country=in&category=sports&apiKey="+ api_key
55-
response=response = requests.get(url)
56-
57-
data = response.text
58-
parsed = json.loads(data)
59-
print(json.dumps(parsed, indent=4))
60-
61-
return render_template('sports.html',parsed=parsed)
45+
parsed = fetch_news(category="sports")
46+
return render_template('sports.html', articles=parsed["articles"])
6247

6348
@app.route('/tech')
6449
def tech():
65-
url="https://newsapi.org/v2/top-headlines?country=in&category=technology&apiKey="+ api_key
66-
response=response = requests.get(url)
67-
68-
data = response.text
69-
parsed = json.loads(data)
70-
print(json.dumps(parsed, indent=4))
71-
72-
return render_template('tech.html',parsed=parsed)
50+
parsed = fetch_news(category="technology")
51+
return render_template('tech.html', articles=parsed["articles"])
7352

7453
@app.route('/science')
7554
def science():
76-
url="https://newsapi.org/v2/top-headlines?country=in&category=science&apiKey="+ api_key
77-
response=response = requests.get(url)
55+
parsed = fetch_news(category="science")
56+
return render_template('science.html', articles=parsed["articles"])
7857

79-
data = response.text
80-
parsed = json.loads(data)
81-
print(json.dumps(parsed, indent=4))
82-
83-
return render_template('science.html',parsed=parsed)
8458
@app.route('/business')
8559
def business():
86-
url="https://newsapi.org/v2/top-headlines?country=in&category=business&apiKey="+ api_key
87-
response=response = requests.get(url)
88-
89-
data = response.text
90-
parsed = json.loads(data)
91-
print(json.dumps(parsed, indent=4))
92-
93-
return render_template('business.html',parsed=parsed)
60+
parsed = fetch_news(category="business")
61+
return render_template('business.html', articles=parsed["articles"])
9462

9563
@app.route('/ent')
9664
def ent():
97-
url="https://newsapi.org/v2/top-headlines?country=in&category=entertainment&apiKey="+ api_key
98-
response=response = requests.get(url)
99-
100-
data = response.text
101-
parsed = json.loads(data)
102-
print(json.dumps(parsed, indent=4))
103-
104-
return render_template('ent.html',parsed=parsed)
65+
parsed = fetch_news(category="entertainment")
66+
return render_template('ent.html', articles=parsed["articles"])
10567

10668
@app.route('/crypto')
10769
def crypto():
108-
url="https://newsapi.org/v2/everything?q=bitcoin&apiKey="+ api_key
109-
response=response = requests.get(url)
110-
111-
data = response.text
112-
parsed = json.loads(data)
113-
print(json.dumps(parsed, indent=4))
114-
return render_template('crypto.html',parsed=parsed)
70+
parsed = fetch_news(query="bitcoin")
71+
return render_template('crypto.html', articles=parsed["articles"])
11572

116-
if __name__=='__main__':
73+
if __name__ == '__main__':
11774
app.run()

0 commit comments

Comments
 (0)