Exemplo n.º 1
0
media query_pt4::parse(const std::string& url, const options& opts) const
{
  _configure(opts);

  quvi_media_t qm;
  QUVIcode qc = quvi_parse(_quvi, const_cast<char*>(url.c_str()), &qm);

  if (qc != QUVI_OK)
    throw error(_quvi, qc);

  media r(_quvi, qm);
  quvi_parse_close(&qm);

  return r;
}
Exemplo n.º 2
0
QuviMediaInfo::QuviParse::QuviParse(Quvi& q, const std::wstring& url) {
	std::string murl(MultibyteFromWide(url.c_str()));
	QUVIcode qc = quvi_parse(q, murl.empty() ? "" : &murl[0], &qm);
	if (qc != QUVI_OK)
		throw qc;
}
IdolPlParserResult
idol_pl_parser_add_videosite (IdolPlParser *parser,
			       GFile *file,
			       GFile *base_file,
			       IdolPlParseData *parse_data,
			       gpointer data)
{
#ifdef HAVE_QUVI
	QUVIcode rc;
	quvi_t handle;
	quvi_video_t v;
	char *uri;
	/* properties */
	const char *video_uri;
	double length;
	char *length_str;
	const char *title;
	const char *id;
	const char *page_uri;
	const char *starttime;
	const char *content_type;

	if (quvi_init (&handle) != QUVI_OK)
		return IDOL_PL_PARSER_RESULT_ERROR;

	uri = g_file_get_uri (file);
	rc = quvi_parse(handle, uri, &v);
	if (rc != QUVI_OK) {
		if (idol_pl_parser_is_debugging_enabled (parser)) {
			g_print ("quvi_parse for '%s' returned %d", uri, rc);
		}
		g_free (uri);
		quvi_close (&handle);
		return IDOL_PL_PARSER_RESULT_ERROR;
	}

	getprop (QUVIPROP_VIDEOURL, video_uri);
	if (quvi_getprop (v, QUVIPROP_VIDEOFILELENGTH, &length) == QUVI_OK)
		length_str = g_strdup_printf ("%f", length);
	else
		length_str = NULL;
	getprop (QUVIPROP_PAGETITLE, title);
	getprop (QUVIPROP_VIDEOID, id);
	getprop (QUVIPROP_PAGEURL, page_uri);
	getprop (QUVIPROP_STARTTIME, starttime);
	getprop (QUVIPROP_VIDEOFILECONTENTTYPE, content_type);

	length_str = g_strdup_printf ("%d", (int) length);
	if (video_uri != NULL)
		idol_pl_parser_add_uri (parser,
					 IDOL_PL_PARSER_FIELD_TITLE, title,
					 IDOL_PL_PARSER_FIELD_ID, id,
					 IDOL_PL_PARSER_FIELD_MOREINFO, page_uri,
					 IDOL_PL_PARSER_FIELD_URI, video_uri,
					 IDOL_PL_PARSER_FIELD_FILESIZE, length_str,
					 IDOL_PL_PARSER_FIELD_STARTTIME, starttime,
					 IDOL_PL_PARSER_FIELD_CONTENT_TYPE, content_type,
					 NULL);
	g_free (uri);
	g_free (length_str);

	quvi_parse_close (&v);
	quvi_close (&handle);

	return IDOL_PL_PARSER_RESULT_SUCCESS;
#else
	return IDOL_PL_PARSER_RESULT_UNHANDLED;
#endif /* !HAVE_QUVI */
}