| import os | |
| class SignGenerationService: | |
| def __init__(self, assets_dir=None): | |
| if assets_dir is None: | |
| base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) | |
| assets_dir = os.path.join(base_dir, "assets") | |
| self.assets_dir = assets_dir | |
| self.assets_map = self._build_assets_map() | |
| def _build_assets_map(self): | |
| assets_map = {} | |
| if not os.path.exists(self.assets_dir): | |
| return assets_map | |
| for filename in os.listdir(self.assets_dir): | |
| name = os.path.splitext(filename)[0].lower() | |
| assets_map[name] = filename | |
| return assets_map | |
| def get_sign_sequence(self, text): | |
| if not text: | |
| return [] | |
| words = text.lower().strip().split() | |
| sequence = [] | |
| for word in words: | |
| if word in self.assets_map: | |
| sequence.append({ | |
| "word": word, | |
| "asset": self.assets_map[word] | |
| }) | |
| return sequence | |