def from_file(path, query, duration=None): media_type = guess_type(path) if media_type is MEDIA_TYPE_VIDEO: if duration is None: duration = get_video_duration(path) tmp = create_temporary_file(".snap.mp4") output_path = tmp.name subprocess.Popen(["ffmpeg", "-y", "-i", path, output_path]).wait() elif media_type is MEDIA_TYPE_IMAGE: image = Image.open(path) draw = ImageDraw.Draw(image) font = ImageFont.truetype("aller-font.ttf", 28) draw.text((10, 10), 'Name:' + query['title'] + ' Artist:' + query['artist'], (255, 0, 0), font=font) del draw tmp = create_temporary_file(".jpg") output_path = tmp.name resize_image(image, output_path) if not duration: duration = DEFAULT_DURATION else: raise UnknownMediaType( "Could not determine media type of the file") return Snap(path=output_path, media_type=media_type, duration=duration)
def from_model(cls, model_object, base_source=None): """Creates and returns a new data source from a given model :param model_object: The instance of a model as obtained from the `trytond.pool.Pool` :param base_source: The base_source to inherit from. Must be an instance of :class:`BaseSource` """ assert isinstance(model_object, ModelSQL), \ "model_object must be an instance of ModelSQL" if base_source: assert isinstance(base_source, BaseSource), \ "base_source must be an instance of BaseSource (got %s)" % type( base_source) attributes = {} for name, field in model_object._columns.iteritems(): if field.select != 1: continue try: attributes[name] = guess_type(field) except ValueError: # Ignore if a value error is raised because its a field which # sphinx doesnt know the proper type for conversion continue sql_query = "" sql_query_range = 'SELECT MIN(id),MAX(id) FROM "%s"' \ % model_object._table if attributes: # Construct the SQL query if attributes do exist sql_query = ['SELECT "%s"."id" AS "id",' % model_object._table] sql_query.append(", ".join([ '"%s"."%s" AS "%s"' % (model_object._table, name, name) \ for name in attributes.keys() ])) sql_query.append('FROM "%s"' % model_object._table) sql_query.extend([ 'WHERE', '"%s"."id" >= $start' % model_object._table, 'AND', '"%s"."id" <= $end' % model_object._table, ]) # Build the data source name data_source_name = model_object._table if base_source: data_source_name = "%s : %s" % (data_source_name, base_source.name) # Create a new instance of Data Source with the data we have return cls( name=data_source_name, sql_query=' '.join(sql_query), attributes=attributes, sql_query_range=sql_query_range, )
def from_file(path, duration=None): media_type = guess_type(path) if media_type is MEDIA_TYPE_VIDEO: if duration is None: duration = get_video_duration(path) tmp = create_temporary_file(".snap.mp4") output_path = tmp.name subprocess.Popen(["ffmpeg", "-y", "-i", path, output_path]).wait() elif media_type is MEDIA_TYPE_IMAGE: image = Image.open(path) tmp = create_temporary_file(".jpg") output_path = tmp.name resize_image(image, output_path) if duration is None: duration = DEFAULT_DURATION else: raise Exception, "Could not determine media type of the file" return Snap(path=output_path, media_type=media_type, duration=duration)
def from_file(path, duration = None): media_type = guess_type(path) if media_type is MEDIA_TYPE_VIDEO: if duration is None: duration = get_video_duration(path) tmp = create_temporary_file(".snap.mp4") output_path = tmp.name subprocess.Popen(["ffmpeg", "-y", "-i", path, output_path]).wait() elif media_type is MEDIA_TYPE_IMAGE: image = Image.open(path) tmp = create_temporary_file(".jpg") output_path = tmp.name resize_image(image, output_path) if duration is None: duration = DEFAULT_DURATION else: raise Exception, "Could not determine media type of the file" return Snap(path = output_path, media_type = media_type, duration = duration)