| 157 | log.info(f'Loaded {len(self.extensions)} extensions') |
| 158 | |
| 159 | def process_loaded_extension(self, extension, extensiondir): |
| 160 | name = extension['identity'] |
| 161 | |
| 162 | # Repoint asset urls |
| 163 | for version in extension["versions"]: |
| 164 | if "targetPlatform" in version: |
| 165 | targetPlatform = version['targetPlatform'] |
| 166 | asseturi = vsc.URLROOT + os.path.join(extensiondir, version['version'], targetPlatform) |
| 167 | else: |
| 168 | asseturi = vsc.URLROOT + os.path.join(extensiondir, version['version']) |
| 169 | |
| 170 | version['assetUri'] = asseturi |
| 171 | version['fallbackAssetUri'] = asseturi |
| 172 | for asset in version['files']: |
| 173 | asset['source'] = asseturi + '/' + asset['assetType'] |
| 174 | |
| 175 | # Map statistics for later lookup |
| 176 | stats = { |
| 177 | 'averagerating': 0, |
| 178 | 'install': 0, |
| 179 | 'weightedRating': 0 |
| 180 | } |
| 181 | if 'statistics' not in extension or not extension['statistics']: |
| 182 | log.info(f'Statistics are missing from extension {name} in {extensiondir}, generating.') |
| 183 | else: |
| 184 | extension_statistics = {} |
| 185 | for statistic in extension['statistics']: |
| 186 | extension_statistics[statistic['statisticName']] = statistic['value'] |
| 187 | stats.update(extension_statistics) |
| 188 | extension['stats'] = stats |
| 189 | return extension |
| 190 | |
| 191 | def update_state_loop(self): |
| 192 | while True: |