Example #1
0
def start():
    """
    Start the servers
    """
    Static.sock.start()
    Static.web.start()
    print '\t**PyJax**\n'
    print '%s:%s' % (Settings.get('address'), Settings.get('port'))
Example #2
0
 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
Example #3
0
 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
Example #4
0
 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
Example #5
0
 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
Example #6
0
 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)
Example #7
0
 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')
Example #8
0
 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)
Example #9
0
 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')
Example #10
0
    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>'