summaryrefslogtreecommitdiff
path: root/web_server.py
diff options
context:
space:
mode:
Diffstat (limited to 'web_server.py')
-rwxr-xr-xweb_server.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/web_server.py b/web_server.py
new file mode 100755
index 0000000..a8ccc7c
--- /dev/null
+++ b/web_server.py
@@ -0,0 +1,62 @@
1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3
4import json
5import sys
6
7import cherrypy
8
9from sqlalchemy import create_engine
10from sqlalchemy.orm import sessionmaker
11
12from bpynotify_orm import NotificationEntry, notification_entry_table
13
14
15class WebNotifyServer(object):
16
17 def __init__(self, session):
18 self.session = session
19
20 @cherrypy.expose
21 def notifications(self):
22 query = self.session.query(NotificationEntry)\
23 .filter(NotificationEntry.viewed==False)\
24 .order_by(NotificationEntry.id)
25 entries = query.all()
26 entry_list = list()
27 for entry in entries:
28 #print(entry.message)
29 entry_list.append(entry.message)
30 entry.viewed = True
31 self.session.commit()
32 print (json.dumps(entry_list, sort_keys=True, indent=4))
33 return json.dumps(entry_list, sort_keys=True, indent=4)
34
35
36def main():
37
38 cherrypy.config.update({
39 'server.socket_host': '10.0.0.4',
40 'server.socket_port': 40004,
41
42 'server.ssl_module': 'pyopenssl',
43 'server.ssl_certificate': '/home/blackmore/gitprogs/bpynotify/cert.crt',
44 'server.ssl_private_key': '/home/blackmore/gitprogs/bpynotify/key.pem',
45 })
46
47 try:
48 engine = create_engine('sqlite:///notifications.db')
49 Session = sessionmaker(bind=engine) # bound session
50 session = Session()
51
52 cherrypy.quickstart(WebNotifyServer(session))
53
54 except Exception as e:
55 sys.stderr.write("WebServer error: {0}".format(e))
56 sys.exit(1)
57
58 sys.exit(0)
59
60
61if __name__ == "__main__":
62 main()