summaryrefslogtreecommitdiff
path: root/socket_server.py
diff options
context:
space:
mode:
Diffstat (limited to 'socket_server.py')
-rwxr-xr-xsocket_server.py30
1 files changed, 19 insertions, 11 deletions
diff --git a/socket_server.py b/socket_server.py
index 7297d24..f683712 100755
--- a/socket_server.py
+++ b/socket_server.py
@@ -2,18 +2,18 @@
2# -*- coding: utf-8 -*- 2# -*- coding: utf-8 -*-
3 3
4import SocketServer 4import SocketServer
5import os
5import sys 6import sys
6 7
7from sqlalchemy import create_engine 8from sqlalchemy import create_engine
8from sqlalchemy.orm import sessionmaker 9from sqlalchemy.orm import sessionmaker
9 10
10from bpynotify_orm import NotificationEntry 11from bpynotify_orm import NotificationEntry, notification_entry_table
11 12
12 13
13class CustomSocketServer(SocketServer.TCPServer): 14class CustomSocketServer(SocketServer.TCPServer):
14 15
15 def __init__(self, server_address, RequestHandlerClass, session): 16 def __init__(self, server_address, RequestHandlerClass, session):
16 print "Done"
17 SocketServer.TCPServer.__init__(self, 17 SocketServer.TCPServer.__init__(self,
18 server_address, 18 server_address,
19 RequestHandlerClass) 19 RequestHandlerClass)
@@ -30,14 +30,10 @@ class MyTCPHandler(SocketServer.StreamRequestHandler):
30 """ 30 """
31 31
32 def handle(self): 32 def handle(self):
33 # self.request is the TCP socket connected to the client
34 ##self.data = self.request.recv(1024).strip()
35 ##print "{} wrote:".format(self.client_address[0])
36 ##print self.data
37 33
38 self.data = self.rfile.readline().strip() 34 self.data = self.rfile.readline().decode('utf8').strip()
39 35 #print(self.data)
40 entry = NotificationEntry(unicode(self.data)) 36 entry = NotificationEntry(self.data)
41 self.server.session.add(entry) 37 self.server.session.add(entry)
42 self.server.session.commit() 38 self.server.session.commit()
43 39
@@ -46,14 +42,26 @@ def main():
46 42
47 HOST, PORT = "localhost", 9999 43 HOST, PORT = "localhost", 9999
48 44
45 if len(sys.argv) == 2 and sys.argv[1] == '-d':
46 try:
47 pid = os.fork()
48 if pid > 0:
49 sys.exit(0)
50 except Exception as e:
51 sys.stderr.write("Unable to daemonize. Fork error: {0}".format(e))
52 sys.exit(1)
53
49 try: 54 try:
55
50 engine = create_engine('sqlite:///notifications.db') 56 engine = create_engine('sqlite:///notifications.db')
51 Session = sessionmaker(bind=engine) # bound session 57 Session = sessionmaker(bind=engine) # bound session
52 session = Session() 58 session = Session()
53 59
54 server = CustomSocketServer((HOST, PORT), MyTCPHandler, session) 60 server = CustomSocketServer((HOST, PORT), MyTCPHandler, session)
55 # Activate the server; this will keep running until you 61
56 # interrupt the program with Ctrl-C 62 # clean all previous entries #
63 notification_entry_table.delete(bind=engine).execute()
64
57 server.serve_forever() 65 server.serve_forever()
58 66
59 except Exception as e: 67 except Exception as e: