def start(): """ Start the servers """ Static.sock.start() Static.web.start() print '\t**PyJax**\n' print '%s:%s' % (Settings.get('address'), Settings.get('port'))
def __init__(self): """ Server object is used to host the normal WebServer. No parameters are needed. """ threading.Thread.__init__(self) self.daemon = True self.__server = WebServer((Settings.get('address'), Settings.get('port')), ClientHandler) self.__server.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) self.__server.allow_reuse_address = socket.SO_REUSEADDR cert = Settings.get('cert') if cert: self.__server.socket = ssl.wrap_socket(self.__server.socket, certfile=cert, server_side=True) self.__running = True
def run(self): try: self.__server.bind((Settings.get('address'), Settings.get('socketport'))) except Exception as e: print e while True: try: self.__server.listen(50) connection, address = self.__server.accept() if self.__cert: connection = ssl.wrap_socket(connection, certfile=self.__cert, server_side=True) SocketHandler(connection).start() except Exception as e: print e
def _get_other_asset(self, asset, ext): """ Return asset specifying the extension. :param asset: :param ext: :return: """ header = Header('Content-Type', '%s/%s' % (TYPES.get(ext), ext)) f = None if asset in self.__media: f = Settings.read_file(Settings.get('media')[asset]) elif asset in self.__images: f = Settings.read_file(Settings.get('img')[asset]) return header, f
def find_page(self, name): """ Return the request html page if found. """ name = name.replace('/', '') if name in self.__pages: return Settings.get('pages')[name] return False
def _get_script_links(self): """ Return the html formatted javascript. """ links = [] for item in self.__script: links.append('\n<script>\n%s\n</script>' % Settings.get('js').get(item)) return ''.join(links)
def __init__(self): """ WebSocketServer object is used to host the SocketServer. No parameters are needed. """ threading.Thread.__init__(self) self.daemon = True self.__server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.__server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) self.__cert = Settings.get('cert')
def _get_style_links(self): """ Return the html formatted stylesheet. :return: """ links = [] for item in self.__style: links.append('\n<style>\n%s\n</style>' % Settings.get('style').get(item)) return ''.join(links)
def find_asset(self, asset): """ Return a list containing the Header, and the Asset string. :param asset: :return: :rtype : list """ asset = asset.replace('/', '') name, ext = Settings.split_extension(asset) if ext: if ext == 'js': return None, Settings.get('js')[asset] elif ext == 'css': return None, Settings.get('style').get(asset) elif ext in TYPES: return self._get_other_asset(asset, ext) else: if asset == 'jquery': return Header('Content-Type', 'text/javascript'), Settings.get('jquery') elif asset == 'smart': return Header('Content-Type', 'text/javascript'), Settings.get('smart') return Header.void(), Settings.get('404')
def __init__(self): """ Create a Builder object """ self.__pages = Settings.get('pages') self.__jquery = '\n<script>\n%s\n</script>' % Settings.get('jquery') self.__smart = '\n<script>\n%s\n</script>' % Settings.get('smart') self.__media = Settings.get('media') self.__images = Settings.get('img') self.__script = Settings.get('js') self.__style = Settings.get('style') self.__title = Settings.get('title') self.__header = '\n<head>\n' + Settings.get('meta') + self._get_title() + \ self._get_style_links() + self.__jquery + '\n</head>' self.__body = '\n<body>\n' + Settings.get('nav') + Settings.get('frame') + Settings.get('footer') + \ self.__smart + self._get_script_links() + '\n</body>'