def get_videos_model_in_channel(channel_id): key = _channel_key(channel_id) q = VideoModel.all() q.ancestor(key) q.order("-final_score") videos = q.fetch(limit=MAX_CHANNEL_SIZE) return models.to_dict_array(videos)
def get(self): channel_id = self.request.get("channel_id") values = {} if channel_id: offset, limit = handlers.parse_offset_and_limit(self) videos = data_source.get_videos_model_in_channel(channel_id, offset, limit) channel = data_source.get_channel(channel_id) if channel: values["channel"] = channel # If delete is set we will delete all the channel as well as its videos. delete = self.request.get("delete") if delete == "true": q = VideoModel.all() q.ancestor(channel) for video in q: video.delete() channel.delete() self.redirect(router_path["admin_channel_list"]) return if videos: values["videos"] = videos values["offset"] = offset values["limit"] = limit self.render("ChannelUpdate.html", values)
def get_video_by_external_id(source, external_id): q = VideoModel.all() q.filter("external_id =", external_id) q.filter("source =", source) result = q.fetch(1) if result: return result[0] return None