Example #1
0
class Filetype(object):
    
    def __init__(self, process_map, extra_header):
        self.lock = True
        self.logger = logging.getLogger(__name__)
        conf = Config()
        root = conf.config_directory["ROOT"]

        requested_file = root + process_map["FILE"]
        self.status = self.__get_status(requested_file)
        self.header = Header(self.status)
        self.process_map = process_map
        self.body = ""
        for key, value in extra_header.iteritems():
            self.header.set_extra(key, value)

    def __get_status(self, requested_file):
        if not os.path.isfile(requested_file):
            # maybe chcanged for dynamic 404 displaying
            return Status_NOTFOUND()
        else:
            return Status_OK(requested_file)

    @abstractmethod
    def set_header(self):
        pass

    def sendinfo(self):
        self.set_header()
        if not isinstance(self.status, Status_OK):
            self.header.set_type("text")
        return self.header.get_header() + self.body