| 890 | |
| 891 | |
| 892 | class FileRecord(KeeperRecord): |
| 893 | def __init__(self): |
| 894 | super(FileRecord, self).__init__() |
| 895 | self.name = '' |
| 896 | self.size = None # type: Optional[int] |
| 897 | self.mime_type = '' |
| 898 | self.last_modified = None # type: Optional[int] |
| 899 | self.storage_size = None # type: Optional[int] |
| 900 | |
| 901 | def get_version(self): # type: () -> int |
| 902 | return 4 |
| 903 | |
| 904 | def get_record_type(self): |
| 905 | return 'file' |
| 906 | |
| 907 | def load_record_data(self, data, extra=None): |
| 908 | self.title = sanitize_str_field_value(data.get('title')).strip() |
| 909 | self.name = sanitize_str_field_value(data.get('name')).strip() |
| 910 | self.size = sanitize_int_field_value(data.get('size')) |
| 911 | self.mime_type = sanitize_str_field_value(data.get('type')) |
| 912 | self.last_modified = sanitize_int_field_value(data.get('lastModified'), default=None) |
| 913 | |
| 914 | def enumerate_fields(self): # type: () -> Iterable[Tuple[str, Union[None, str, List[str]]]] |
| 915 | for pair in super(FileRecord, self).enumerate_fields(): |
| 916 | yield pair |
| 917 | yield '(type)', self.get_record_type() |
| 918 | yield '(name)', self.name |
| 919 | if self.mime_type: |
| 920 | yield '(mime-type)', self.mime_type |
| 921 | yield '(size)', KeeperRecord.size_to_str(self.size) |
| 922 | |
| 923 | |
| 924 | class ApplicationRecord(KeeperRecord): |