Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from os import walk
- from os import path as system_path
- class ScreenshotDiversifier:
- def __init__(self, path_to_screenshots):
- self.data_folder = path_to_screenshots
- self.screenshots_tree = {}
- self.diversified_screenshots_pack = []
- self.pack_size = 0
- self._fill_screenshots_tree()
- def _fill_screenshots_tree(self):
- screenshots = self._get_screenshots()
- # to be continued
- def _get_screenshots(self):
- screenshots = []
- for root, dirs, files in walk(self.data_folder):
- for file in files:
- if self._file_is_image(file):
- screenshot = ScreenshotDiversifier.Screenshot(system_path.join(root, file))
- screenshots.append(screenshot)
- return screenshots
- @staticmethod
- def _file_is_image(file_name):
- image_extensions = ['.jpg', '.jpeg', '.bmp']
- for image_extension in image_extensions:
- if file_name.endswith(image_extension):
- return True
- return False
- class Screenshot:
- def __init__(self, path):
- self.path = path
- self.name = system_path.basename(path)
- self.video_clip_name_divider_index = self._get_video_clip_name_divider_index()
- self.frame_divider_index = self._get_frame_divider_index()
- self.sample_divider_index = self._get_sample_divider_index()
- self._set_video_clip_name()
- self._set_frame()
- self._set_sample()
- self._set_patch()
- def _get_video_clip_name_divider_index(self):
- if self._video_clip_name_has_extension():
- return self._get_second_point_index()
- else:
- return self.name.index('.')
- def _video_clip_name_has_extension(self):
- if self._symbol_after_first_point_is_letter():
- return True
- else:
- return False
- def _symbol_after_first_point_is_letter(self):
- first_point_index = self.name.index('.')
- symbol_after_first_point = self.name[first_point_index + 1]
- if symbol_after_first_point.isalpha():
- return True
- else:
- return False
- def _get_second_point_index(self):
- first_point_index = self.name.index('.')
- second_point_index = self.name.index('.', first_point_index + 1)
- return second_point_index
- def _get_frame_divider_index(self):
- return self.name.index('_')
- def _get_sample_divider_index(self):
- return self.name.index('-')
- def _set_video_clip_name(self):
- self.video_clip_name = self.name[:self.video_clip_name_divider_index]
- def _set_frame(self):
- self.frame = self.name[self.video_clip_name_divider_index + 1: self.frame_divider_index]
- def _set_sample(self):
- self.sample = self.name[self.frame_divider_index + 1: self.sample_divider_index]
- def _set_patch(self):
- if self._name_has_patch():
- self.patch = self._parse_patch()
- else:
- self.patch = '0-0'
- def _name_has_patch(self):
- if self._name_has_two_dashes():
- return True
- else:
- return False
- def _name_has_two_dashes(self):
- dash_count = 0
- for symbol in self.name:
- if symbol == '-':
- dash_count += 1
- if dash_count >= 2:
- return True
- else:
- return False
- def _parse_patch(self):
- patch_beginning_index = self._get_patch_beginning_index()
- patch_ending_index = self._get_patch_ending_index()
- return self.name[patch_beginning_index: patch_ending_index + 1]
- def _get_patch_beginning_index(self):
- second_dash_index = self.name.index('-', self.sample_divider_index + 1)
- for i in range(second_dash_index - 1, 0, -1):
- if not self.name[i].isdigit():
- return i + 1
- def _get_patch_ending_index(self):
- second_dash_index = self.name.index('-', self.sample_divider_index + 1)
- for i in range(second_dash_index + 1, len(self.name)):
- if not self.name[i].isdigit():
- return i - 1
- def get_name(self):
- return self.name
- def get_video_file_name(self):
- return self.video_clip_name
- def get_frame(self):
- return self.frame
- def get_sample(self):
- return self.sample
- def get_patch(self):
- return self.patch
- def get_path(self):
- return self.path
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement