-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
84 lines (76 loc) · 2.23 KB
/
main.py
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
from flask import Flask, jsonify, request
from storage import all_articles, liked_articles, not_liked_articles
from demographic_filtering import output
from content_filtering import get_recommendations
app = Flask(__name__)
@app.route("/get-article")
def get_article():
movie_data = {
"url": all_articles[0][11],
"title": all_articles[0][12],
"text": all_articles[0][13],
"lang": all_articles[0][14],
"total_events": all_articles[0][15]
}
return jsonify({
"data": movie_data,
"status": "success"
})
@app.route("/liked-article", methods=["POST"])
def liked_article():
article = all_articles[0]
liked_articles.append(article)
all_articles.pop(0)
return jsonify({
"status": "success"
}), 201
@app.route("/unliked-article", methods=["POST"])
def unliked_article():
article = all_articles[0]
not_liked_articles.append(article)
all_articles.pop(0)
return jsonify({
"status": "success"
}), 201
@app.route("/popular-articles")
def popular_articles():
article_data = []
for article in output:
_d = {
"url": article[0],
"title": article[1],
"text": article[2],
"lang": article[3],
"total_events": article[4]
}
article_data.append(_d)
return jsonify({
"data": article_data,
"status": "success"
}), 200
@app.route("/recommended-articles")
def recommended_articles():
all_recommended = []
for liked_article in liked_articles:
output = get_recommendations(liked_article[4])
for data in output:
all_recommended.append(data)
import itertools
all_recommended.sort()
all_recommended = list(all_recommended for all_recommended,_ in itertools.groupby(all_recommended))
article_data = []
for recommended in all_recommended:
_d = {
"url": recommended[0],
"title": recommended[1],
"text": recommended[2],
"lang": recommended[3],
"total_events": recommended[4]
}
article_data.append(_d)
return jsonify({
"data": article_data,
"status": "success"
}), 200
if __name__ == "__main__":
app.run()