def deduplicate(): gold = Media.select( peewee.fn.first_value(Media.id).over( partition_by=Media.digest, order_by=[ Media.organized_at.asc(nulls='LAST'), peewee.fn.length(Media.stem).asc(), Media.taken_at.asc() ]).distinct()) with Media.db: Media.update(duplicate=False).execute() Media.update(duplicate=True).where(Media.id.not_in(gold)).execute()
def update_media(id): payload = request.form.to_dict() if 'www.youtube.com/watch?v=' in payload['url']: payload['media_type'] = 'video' else: return jsonify(data={}, status={'code': 401, 'message': 'URL input is not valid.'}) if payload['media_type'] == 'video': v_location = payload['url'].index('v') eq_location = payload['url'].index('=') if eq_location == v_location + 1: url_id = payload['url'][eq_location + 1: eq_location + 12] else: return jsonify(data={}, status={'code': 401, 'message': 'URL input is not valid.'}) payload['full_html'] = '<iframe width="560" height="315" src="https://www.youtube.com/embed/{}" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'.format(url_id) payload['thumbnail_html'] = 'http://i.ytimg.com/vi/{}/maxresdefault.jpg'.format(url_id) query = Media.update(**payload).where(Media.id == id) query.execute() media_dict = model_to_dict(Media.get_by_id(id)) return jsonify(data=media_dict, status={'code': 201, 'message': 'Success'})
def job_finished_cb(patero, job): tmp = [] for filename in job['output']['files']: copy_or_link(filename, common.output_dir) os.unlink(filename) tmp.append( os.path.join(common.output_dir, os.path.basename(filename))) job['output']['files'] = tmp job.save() # here tell Caspa the file is ready media = Media() for key in ['metadata', 'stat']: media.update(job['output'][key]) media['_id'] = job['output']['checksum'] media['checksum'] = job['output']['checksum'] media['files'] = job['output']['files'] media['file'] = job['output']['transcoded'] media['stat'] = job['output']['stat'] media.save()