-
Notifications
You must be signed in to change notification settings - Fork 0
/
forum.py
95 lines (73 loc) · 2.08 KB
/
forum.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
85
86
87
88
89
90
91
92
93
94
95
from flask import Flask, request
from flask_cors import CORS, cross_origin
from pymongo import MongoClient
import json
import time
app = Flask(__name__)
CORS(app)
class Post():
def __init__(self,user,text):
self.created=time.time()
self.user=user
self.text=text
def __repr__(self):
return str(self.__dict__)
class Thread():
def __init__(self,title,user,text):
self.created=time.time()
self.title=title
self.user=user
self.text=text
self.posts=[]
def insertPost(self,post):
self.posts.append(post)
def countReplys(self):
return len(self.posts)
def lastPoster(self):
return self.posts[-1].user.name
def getPosts(self):
return self.posts
class Forum():
def __init__(self):
self.threads=[]
def addThread(self,title,user,text):
self.threads.append(Thread(title,user,text))
return self.threads[-1].created
def listThreads(self):
list=[]
for t in self.threads:
d={}
d['title'] = t.title
d['created'] = t.created
list.append(d)
return list
def getThread(self,created):
for t in self.threads:
if t.created == float(created):
return (t.__dict__)
return 0
def addPost(self, created,user,text):
for t in self.threads:
if t.created == float(created):
t.posts.append(Post(user,text))
return 1
return 0
f=Forum()
@app.route('/list',methods = ['GET'])
def list():
return (str(f.listThreads()))
@app.route('/<created>',methods = ['GET'])
def thread(created):
return (str(f.getThread(created)))
@app.route('/addthread/',methods = ['POST'])
def addThread():
data=eval(request.get_data())
f.addThread(data[0],data[1],data[2])
return ("OK")
@app.route('/addpost/',methods = ['POST'])
def addPost():
data=eval(request.get_data())
f.addPost(data[0],data[1],data[2])
return ("OK")
if __name__ == "__main__":
app.run(host='0.0.0.0',port=1201)