def migrate_001_to_002(metadata): metadata['ver'] = '0.0.2' metadata['nsfw'] = False def migrate_002_to_003(metadata): metadata['ver'] = '0.0.3' if 'content-type' in metadata: metadata['content_type'] = metadata['content-type'] del metadata['content-type'] def migrate_003_to_010(value): metadata = { "version": "_0_1_0", "title": value.get('title', ''), "description": value.get('description', ''), "thumbnail": value.get('thumbnail', ''), "preview": value.get('preview', ''), "author": value.get('author', ''), "license": value.get('license', ''), "licenseUrl": value.get('license_url', ''), "language": value.get('language', ''), "nsfw": value.get('nsfw', False), } if "fee" in value: fee = value["fee"] currency = list(fee.keys())[0] metadata['fee'] = { "version": "_0_0_1", "currency": currency, "amount": fee[currency]['amount'], "address": fee[currency]['address'] } source = { "source": value['sources']['lbry_sd_hash'], "contentType": value['content_type'], "sourceType": "lbry_sd_hash", "version": "_0_0_1" } migrated = { "version": "_0_0_1", "claimType": "streamType", "stream": { "version": "_0_0_1", "metadata": metadata, "source": source } } return migrated def migrate(value): if value.get('ver', '0.0.1') == '0.0.1': migrate_001_to_002(value) if value['ver'] == '0.0.2': migrate_002_to_003(value) if value['ver'] == '0.0.3': value = migrate_003_to_010(value) return value