Ejemplo n.º 1
0
	def __init__(self, filename=os.path.join(configuration.cache_root,
	                                         'csvdb',
	                                         'jukebox_selection.csv')):
		videos = csv.reader(open(filename, "rb"), delimiter='|')
		l = []
		columns = []
		shortest_duration = None
		for row in videos:
			if not columns:
				columns = row
				continue
			d = {}
			for name, field in zip(columns, row):
				if name == "name":
					field = field.decode("utf-8")
				elif name == "duration":
					field = float(field)
				elif name == "location":
					continue
					# TODO: There are more formats to "location" in the legacy DB videotable, so this will fail! Investigate.
					#s = field[36:]
					#s = s[:s.find('/')]
					#field = int(s)
					#name = "media_id"
				elif name == "id":
					name = "media_id"
					field = int(field)
				d[name] = field
			if configuration.video_cache_only:
				if not os.path.exists(lookup.locate_media_by_id(d["media_id"])):
					continue
			if d["duration"] < self.minimum_duration:
				continue
			if not shortest_duration or d["duration"] < shortest_duration:
				shortest_duration = d["duration"]
			l.append(d)
		self.videos = l
		self.shortest_duration = shortest_duration
		if not self.videos:
			logging.warning("No videos in in jukebox")
		else:
			logging.info("Total %i videos in jukebox. Shortest duration is %.1fs" % (len(self.videos), shortest_duration))
Ejemplo n.º 2
0
 def get_filename(self):
     if self.filename:
         return self.filename
     else:
         return lookup.locate_media_by_id(self.media_id)