|
Packit |
4b6dd7 |
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
|
|
Packit |
4b6dd7 |
/*
|
|
Packit |
4b6dd7 |
* GData Client
|
|
Packit |
4b6dd7 |
* Copyright (C) Philip Withnall 2009–2010 <philip@tecnocode.co.uk>
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* GData Client is free software; you can redistribute it and/or
|
|
Packit |
4b6dd7 |
* modify it under the terms of the GNU Lesser General Public
|
|
Packit |
4b6dd7 |
* License as published by the Free Software Foundation; either
|
|
Packit |
4b6dd7 |
* version 2.1 of the License, or (at your option) any later version.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* GData Client is distributed in the hope that it will be useful,
|
|
Packit |
4b6dd7 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
4b6dd7 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
4b6dd7 |
* Lesser General Public License for more details.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit |
4b6dd7 |
* License along with GData Client. If not, see <http://www.gnu.org/licenses/>.
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* SECTION:gdata-youtube-query
|
|
Packit |
4b6dd7 |
* @short_description: GData YouTube query object
|
|
Packit |
4b6dd7 |
* @stability: Stable
|
|
Packit |
4b6dd7 |
* @include: gdata/services/youtube/gdata-youtube-query.h
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* #GDataYouTubeQuery represents a collection of query parameters specific to the YouTube service, which go above and beyond
|
|
Packit |
4b6dd7 |
* those catered for by #GDataQuery.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* With the transition to version 3 of the YouTube, the #GDataQuery:author and
|
|
Packit |
4b6dd7 |
* #GDataQuery:start-index properties are no longer supported, and their values
|
|
Packit |
4b6dd7 |
* will be ignored. Use gdata_query_next_page() instead of the
|
|
Packit |
4b6dd7 |
* #GDataQuery:start-index API.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information on the custom GData query parameters supported by #GDataYouTubeQuery, see the
|
|
Packit |
4b6dd7 |
* url="https://developers.google.com/youtube/v3/docs/search/list#parameters">online documentation</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
#include <config.h>
|
|
Packit |
4b6dd7 |
#include <glib.h>
|
|
Packit |
4b6dd7 |
#include <glib/gi18n-lib.h>
|
|
Packit |
4b6dd7 |
#include <string.h>
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
#include "gdata-youtube-query.h"
|
|
Packit |
4b6dd7 |
#include "gdata-query.h"
|
|
Packit |
4b6dd7 |
#include "gdata-youtube-content.h"
|
|
Packit |
4b6dd7 |
#include "gdata-private.h"
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void gdata_youtube_query_finalize (GObject *object);
|
|
Packit |
4b6dd7 |
static void gdata_youtube_query_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
|
|
Packit |
4b6dd7 |
static void gdata_youtube_query_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
|
|
Packit |
4b6dd7 |
static void get_query_uri (GDataQuery *self, const gchar *feed_uri, GString *query_uri, gboolean *params_started);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
struct _GDataYouTubeQueryPrivate {
|
|
Packit |
4b6dd7 |
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
|
Packit |
4b6dd7 |
GDataYouTubeFormat format;
|
|
Packit |
4b6dd7 |
GDataYouTubeSortOrder sort_order;
|
|
Packit |
4b6dd7 |
GDataYouTubeUploader uploader;
|
|
Packit |
4b6dd7 |
G_GNUC_END_IGNORE_DEPRECATIONS
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
gdouble latitude;
|
|
Packit |
4b6dd7 |
gdouble longitude;
|
|
Packit |
4b6dd7 |
gdouble location_radius;
|
|
Packit |
4b6dd7 |
gboolean has_location;
|
|
Packit |
4b6dd7 |
gchar *language;
|
|
Packit |
4b6dd7 |
gchar *order_by;
|
|
Packit |
4b6dd7 |
gchar *restriction;
|
|
Packit |
4b6dd7 |
GDataYouTubeSafeSearch safe_search;
|
|
Packit |
4b6dd7 |
GDataYouTubeAge age;
|
|
Packit |
4b6dd7 |
gchar *license;
|
|
Packit |
4b6dd7 |
};
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
enum {
|
|
Packit |
4b6dd7 |
PROP_FORMAT = 1,
|
|
Packit |
4b6dd7 |
PROP_LATITUDE,
|
|
Packit |
4b6dd7 |
PROP_LONGITUDE,
|
|
Packit |
4b6dd7 |
PROP_LOCATION_RADIUS,
|
|
Packit |
4b6dd7 |
PROP_HAS_LOCATION,
|
|
Packit |
4b6dd7 |
PROP_LANGUAGE,
|
|
Packit |
4b6dd7 |
PROP_ORDER_BY,
|
|
Packit |
4b6dd7 |
PROP_RESTRICTION,
|
|
Packit |
4b6dd7 |
PROP_SAFE_SEARCH,
|
|
Packit |
4b6dd7 |
PROP_SORT_ORDER,
|
|
Packit |
4b6dd7 |
PROP_AGE,
|
|
Packit |
4b6dd7 |
PROP_UPLOADER,
|
|
Packit |
4b6dd7 |
PROP_LICENSE,
|
|
Packit |
4b6dd7 |
};
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
G_DEFINE_TYPE (GDataYouTubeQuery, gdata_youtube_query, GDATA_TYPE_QUERY)
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
gdata_youtube_query_class_init (GDataYouTubeQueryClass *klass)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
|
|
Packit |
4b6dd7 |
GDataQueryClass *query_class = GDATA_QUERY_CLASS (klass);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_type_class_add_private (klass, sizeof (GDataYouTubeQueryPrivate));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
gobject_class->set_property = gdata_youtube_query_set_property;
|
|
Packit |
4b6dd7 |
gobject_class->get_property = gdata_youtube_query_get_property;
|
|
Packit |
4b6dd7 |
gobject_class->finalize = gdata_youtube_query_finalize;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
query_class->get_query_uri = get_query_uri;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataYouTubeQuery:format:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Specifies that videos must be available in a particular video format. Use %GDATA_YOUTUBE_FORMAT_UNKNOWN to
|
|
Packit |
4b6dd7 |
* retrieve videos irrespective of their format availability.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
* Deprecated: 0.17.0: No longer supported by Google. The value of
|
|
Packit |
4b6dd7 |
* this property will be unused in queries. There is no replacement.
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_FORMAT,
|
|
Packit |
4b6dd7 |
g_param_spec_enum ("format",
|
|
Packit |
4b6dd7 |
"Format", "Specifies that videos must be available in a particular video format.",
|
|
Packit |
4b6dd7 |
GDATA_TYPE_YOUTUBE_FORMAT, GDATA_YOUTUBE_FORMAT_UNKNOWN,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
|
|
Packit |
4b6dd7 |
G_PARAM_DEPRECATED));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataYouTubeQuery:latitude:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The latitude of a particular location of which videos should be found. This should be used in conjunction with
|
|
Packit |
4b6dd7 |
* #GDataYouTubeQuery:longitude; if either property is outside the valid range, neither will be used. Valid latitudes
|
|
Packit |
4b6dd7 |
* are between -90 and 90 0 degrees; any values of this property outside that range
|
|
Packit |
4b6dd7 |
* will unset the property in the query URI.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* If #GDataYouTubeQuery:location-radius is a non-0 value, this will define a circle from which videos should be
|
|
Packit |
4b6dd7 |
* found.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* As it is deprecated, the value of #GDataYouTubeQuery:has-location is
|
|
Packit |
4b6dd7 |
* ignored.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the
|
|
Packit |
4b6dd7 |
* url="https://developers.google.com/youtube/v3/docs/search/list#location">online documentation</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_LATITUDE,
|
|
Packit |
4b6dd7 |
g_param_spec_double ("latitude",
|
|
Packit |
4b6dd7 |
"Latitude", "The latitude of a particular location of which videos should be found.",
|
|
Packit |
4b6dd7 |
-G_MAXDOUBLE, G_MAXDOUBLE, G_MAXDOUBLE,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataYouTubeQuery:longitude:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The longitude of a particular location of which videos should be found. This should be used in conjunction with
|
|
Packit |
4b6dd7 |
* #GDataYouTubeQuery:latitude; if either property is outside the valid range, neither will be used. Valid longitudes
|
|
Packit |
4b6dd7 |
* are between -180 and 180 degrees; any values of this property outside that
|
|
Packit |
4b6dd7 |
* range will unset the property in the query URI.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the documentation for #GDataYouTubeQuery:latitude.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_LONGITUDE,
|
|
Packit |
4b6dd7 |
g_param_spec_double ("longitude",
|
|
Packit |
4b6dd7 |
"Longitude", "The longitude of a particular location of which videos should be found.",
|
|
Packit |
4b6dd7 |
-G_MAXDOUBLE, G_MAXDOUBLE, G_MAXDOUBLE,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataYouTubeQuery:location-radius:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The radius, in metres, of a circle from within which videos should be returned. The circle is centred on the latitude and
|
|
Packit |
4b6dd7 |
* longitude given in #GDataYouTubeQuery:latitude and #GDataYouTubeQuery:longitude.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Set this property to 0 to search for specific coordinates, rather than within a given radius.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the documentation for #GDataYouTubeQuery:latitude.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_LOCATION_RADIUS,
|
|
Packit |
4b6dd7 |
g_param_spec_double ("location-radius",
|
|
Packit |
4b6dd7 |
"Location radius", "The radius, in metres, of a circle to search within.",
|
|
Packit |
4b6dd7 |
0.0, G_MAXDOUBLE, 0.0,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataYouTubeQuery:has-location:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Whether to restrict search results to videos with specific coordinates associated with them. If used with a given
|
|
Packit |
4b6dd7 |
* #GDataYouTubeQuery:latitude and #GDataYouTubeQuery:longitude, only videos with specific coordinates (not those with merely
|
|
Packit |
4b6dd7 |
* a descriptive address) will be returned. If used without a latitude and longitude set, only videos with specific coordinates
|
|
Packit |
4b6dd7 |
* (regardless of those coordinates) will be returned.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the documentation for #GDataYouTubeQuery:latitude.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
* Deprecated: 0.17.0: No longer supported by Google. The value of
|
|
Packit |
4b6dd7 |
* this property will be unused in queries.
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_HAS_LOCATION,
|
|
Packit |
4b6dd7 |
g_param_spec_boolean ("has-location",
|
|
Packit |
4b6dd7 |
"Has location?", "Whether to restrict results to videos with specific coordinates.",
|
|
Packit |
4b6dd7 |
FALSE,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
|
|
Packit |
4b6dd7 |
G_PARAM_DEPRECATED));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataYouTubeQuery:language:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Restricts the search to videos that have a title, description or keywords in a specified language. The language code should
|
|
Packit |
4b6dd7 |
* be a two-letter ISO 639-1 code; or you can use <literal>zh-Hans</literal> for simplified Chinese and <literal>zh-Hant</literal>
|
|
Packit |
4b6dd7 |
* for traditional Chinese.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the
|
|
Packit |
4b6dd7 |
* url="http://code.google.com/apis/youtube/2.0/reference.html#lrsp">online documentation</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
* Deprecated: 0.17.0: No longer supported by Google. The value of
|
|
Packit |
4b6dd7 |
* this property will be unused in queries. There is no replacement.
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_LANGUAGE,
|
|
Packit |
4b6dd7 |
g_param_spec_string ("language",
|
|
Packit |
4b6dd7 |
"Language", "Restricts the search to videos described in the given language.",
|
|
Packit |
4b6dd7 |
NULL,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
|
|
Packit |
4b6dd7 |
G_PARAM_DEPRECATED));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataYouTubeQuery:order-by:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Specifies the order of entries in a feed. Supported values are <literal>relevance</literal>,
|
|
Packit |
4b6dd7 |
* <literal>published</literal>, <literal>viewCount</literal> and <literal>rating</literal>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Additionally, results most relevant to a specific language can be returned by setting the property
|
|
Packit |
4b6dd7 |
* to <literal>relevance_lang_<replaceable>languageCode</replaceable></literal>, where
|
|
Packit |
4b6dd7 |
* <replaceable>languageCode</replaceable> is an ISO 639-1 language code, as used in #GDataYouTubeQuery:language.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the
|
|
Packit |
4b6dd7 |
* url="https://developers.google.com/youtube/v3/docs/search/list#order">online documentation</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_ORDER_BY,
|
|
Packit |
4b6dd7 |
g_param_spec_string ("order-by",
|
|
Packit |
4b6dd7 |
"Order by", "Specifies the order of entries in a feed.",
|
|
Packit |
4b6dd7 |
NULL,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataYouTubeQuery:restriction:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* An ISO 3166 two-letter country code that should be used to filter
|
|
Packit |
4b6dd7 |
* videos playable only in specific countries.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Previously, this property could also accept the client’s IP address
|
|
Packit |
4b6dd7 |
* for country lookup. This feature is no longer supported by Google,
|
|
Packit |
4b6dd7 |
* and will result in an error from the server if used. Use a country
|
|
Packit |
4b6dd7 |
* code instead.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the
|
|
Packit |
4b6dd7 |
* url="https://developers.google.com/youtube/v3/docs/search/list#regionCode">online documentation</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_RESTRICTION,
|
|
Packit |
4b6dd7 |
g_param_spec_string ("restriction",
|
|
Packit |
4b6dd7 |
"Restriction", "The country code to filter videos playable only in specific countries.",
|
|
Packit |
4b6dd7 |
NULL,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataYouTubeQuery:safe-search:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Whether the search results should include restricted content as well as standard content.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the
|
|
Packit |
4b6dd7 |
* url="https://developers.google.com/youtube/v3/docs/search/list#safeSearch">online documentation</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_SAFE_SEARCH,
|
|
Packit |
4b6dd7 |
g_param_spec_enum ("safe-search",
|
|
Packit |
4b6dd7 |
"Safe search", "Whether the search results should include restricted content.",
|
|
Packit |
4b6dd7 |
GDATA_TYPE_YOUTUBE_SAFE_SEARCH, GDATA_YOUTUBE_SAFE_SEARCH_MODERATE,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataYouTubeQuery:sort-order:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Specifies the direction of sorting. To use the default sort order, set the property to %GDATA_YOUTUBE_SORT_NONE.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
* Deprecated: 0.17.0: No longer supported by Google. The value of
|
|
Packit |
4b6dd7 |
* this property will be unused in queries. There is no replacement.
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_SORT_ORDER,
|
|
Packit |
4b6dd7 |
g_param_spec_enum ("sort-order",
|
|
Packit |
4b6dd7 |
"Sort order", "Specifies the direction of sorting.",
|
|
Packit |
4b6dd7 |
GDATA_TYPE_YOUTUBE_SORT_ORDER, GDATA_YOUTUBE_SORT_NONE,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
|
|
Packit |
4b6dd7 |
G_PARAM_DEPRECATED));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataYouTubeQuery:age:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Restricts the search to videos uploaded within the specified time period. To retrieve videos irrespective of their
|
|
Packit |
4b6dd7 |
* age, set the property to %GDATA_YOUTUBE_AGE_ALL_TIME.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_AGE,
|
|
Packit |
4b6dd7 |
g_param_spec_enum ("age",
|
|
Packit |
4b6dd7 |
"Age", "Restricts the search to videos uploaded within the specified time period.",
|
|
Packit |
4b6dd7 |
GDATA_TYPE_YOUTUBE_AGE, GDATA_YOUTUBE_AGE_ALL_TIME,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataYouTubeQuery:uploader:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Restricts the search to videos from the specified type of uploader. Currently, this can only be used to restrict
|
|
Packit |
4b6dd7 |
* searches to videos from YouTube partners.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
* Deprecated: 0.17.0: No longer supported by Google. The value of
|
|
Packit |
4b6dd7 |
* this property will be unused in queries. There is no replacement.
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_UPLOADER,
|
|
Packit |
4b6dd7 |
g_param_spec_enum ("uploader",
|
|
Packit |
4b6dd7 |
"Uploader", "Restricts the search to videos from the specified type of uploader.",
|
|
Packit |
4b6dd7 |
GDATA_TYPE_YOUTUBE_UPLOADER, GDATA_YOUTUBE_UPLOADER_ALL,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
|
|
Packit |
4b6dd7 |
G_PARAM_DEPRECATED));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataYouTubeQuery:license:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The content license which should be used to filter search results. If set to, for example, %GDATA_YOUTUBE_LICENSE_CC, only videos which
|
|
Packit |
4b6dd7 |
* are Creative Commons licensed will be returned in search results. Set this to %NULL to return videos under any license.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the
|
|
Packit |
4b6dd7 |
* url="https://developers.google.com/youtube/v3/docs/search/list#videoLicense">online documentation</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.11.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_LICENSE,
|
|
Packit |
4b6dd7 |
g_param_spec_string ("license",
|
|
Packit |
4b6dd7 |
"License", "The content license which should be used to filter search results.",
|
|
Packit |
4b6dd7 |
NULL,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
gdata_youtube_query_init (GDataYouTubeQuery *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GDATA_TYPE_YOUTUBE_QUERY, GDataYouTubeQueryPrivate);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
self->priv->latitude = G_MAXDOUBLE;
|
|
Packit |
4b6dd7 |
self->priv->longitude = G_MAXDOUBLE;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* https://developers.google.com/youtube/v3/docs/search/list#pageToken */
|
|
Packit |
4b6dd7 |
_gdata_query_set_pagination_type (GDATA_QUERY (self),
|
|
Packit |
4b6dd7 |
GDATA_QUERY_PAGINATION_TOKENS);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
gdata_youtube_query_finalize (GObject *object)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GDataYouTubeQueryPrivate *priv = GDATA_YOUTUBE_QUERY (object)->priv;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_free (priv->language);
|
|
Packit |
4b6dd7 |
g_free (priv->order_by);
|
|
Packit |
4b6dd7 |
g_free (priv->restriction);
|
|
Packit |
4b6dd7 |
g_free (priv->license);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Chain up to the parent class */
|
|
Packit |
4b6dd7 |
G_OBJECT_CLASS (gdata_youtube_query_parent_class)->finalize (object);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
gdata_youtube_query_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GDataYouTubeQueryPrivate *priv = GDATA_YOUTUBE_QUERY (object)->priv;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
switch (property_id) {
|
|
Packit |
4b6dd7 |
case PROP_FORMAT:
|
|
Packit |
4b6dd7 |
g_value_set_enum (value, priv->format);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_LATITUDE:
|
|
Packit |
4b6dd7 |
g_value_set_double (value, priv->latitude);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_LONGITUDE:
|
|
Packit |
4b6dd7 |
g_value_set_double (value, priv->longitude);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_LOCATION_RADIUS:
|
|
Packit |
4b6dd7 |
g_value_set_double (value, priv->location_radius);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_HAS_LOCATION:
|
|
Packit |
4b6dd7 |
g_value_set_boolean (value, priv->has_location);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_LANGUAGE:
|
|
Packit |
4b6dd7 |
g_value_set_string (value, priv->language);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_ORDER_BY:
|
|
Packit |
4b6dd7 |
g_value_set_string (value, priv->order_by);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_RESTRICTION:
|
|
Packit |
4b6dd7 |
g_value_set_string (value, priv->restriction);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_SAFE_SEARCH:
|
|
Packit |
4b6dd7 |
g_value_set_enum (value, priv->safe_search);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_SORT_ORDER:
|
|
Packit |
4b6dd7 |
g_value_set_enum (value, priv->sort_order);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_AGE:
|
|
Packit |
4b6dd7 |
g_value_set_enum (value, priv->age);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_UPLOADER:
|
|
Packit |
4b6dd7 |
g_value_set_enum (value, priv->uploader);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_LICENSE:
|
|
Packit |
4b6dd7 |
g_value_set_string (value, priv->license);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
default:
|
|
Packit |
4b6dd7 |
/* We don't have any other property... */
|
|
Packit |
4b6dd7 |
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
gdata_youtube_query_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GDataYouTubeQuery *self = GDATA_YOUTUBE_QUERY (object);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
switch (property_id) {
|
|
Packit |
4b6dd7 |
case PROP_FORMAT:
|
|
Packit |
4b6dd7 |
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
|
Packit |
4b6dd7 |
gdata_youtube_query_set_format (self, g_value_get_enum (value));
|
|
Packit |
4b6dd7 |
G_GNUC_END_IGNORE_DEPRECATIONS
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_LATITUDE:
|
|
Packit |
4b6dd7 |
self->priv->latitude = g_value_get_double (value);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_LONGITUDE:
|
|
Packit |
4b6dd7 |
self->priv->longitude = g_value_get_double (value);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_LOCATION_RADIUS:
|
|
Packit |
4b6dd7 |
self->priv->location_radius = g_value_get_double (value);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_HAS_LOCATION:
|
|
Packit |
4b6dd7 |
self->priv->has_location = g_value_get_boolean (value);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_LANGUAGE:
|
|
Packit |
4b6dd7 |
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
|
Packit |
4b6dd7 |
gdata_youtube_query_set_language (self, g_value_get_string (value));
|
|
Packit |
4b6dd7 |
G_GNUC_END_IGNORE_DEPRECATIONS
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_ORDER_BY:
|
|
Packit |
4b6dd7 |
gdata_youtube_query_set_order_by (self, g_value_get_string (value));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_RESTRICTION:
|
|
Packit |
4b6dd7 |
gdata_youtube_query_set_restriction (self, g_value_get_string (value));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_SAFE_SEARCH:
|
|
Packit |
4b6dd7 |
gdata_youtube_query_set_safe_search (self, g_value_get_enum (value));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_SORT_ORDER:
|
|
Packit |
4b6dd7 |
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
|
Packit |
4b6dd7 |
gdata_youtube_query_set_sort_order (self, g_value_get_enum (value));
|
|
Packit |
4b6dd7 |
G_GNUC_END_IGNORE_DEPRECATIONS
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_AGE:
|
|
Packit |
4b6dd7 |
gdata_youtube_query_set_age (self, g_value_get_enum (value));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_UPLOADER:
|
|
Packit |
4b6dd7 |
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
|
Packit |
4b6dd7 |
gdata_youtube_query_set_uploader (self, g_value_get_enum (value));
|
|
Packit |
4b6dd7 |
G_GNUC_END_IGNORE_DEPRECATIONS
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_LICENSE:
|
|
Packit |
4b6dd7 |
gdata_youtube_query_set_license (self, g_value_get_string (value));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
default:
|
|
Packit |
4b6dd7 |
/* We don't have any other property... */
|
|
Packit |
4b6dd7 |
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Convert from a v2 order-by parameter value to a v3 order parameter value.
|
|
Packit |
4b6dd7 |
* Reference:
|
|
Packit |
4b6dd7 |
* v2: https://developers.google.com/youtube/2.0/developers_guide_protocol_api_query_parameters#orderbysp
|
|
Packit |
4b6dd7 |
* v3: https://developers.google.com/youtube/v3/docs/search/list#order
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
static const gchar *
|
|
Packit |
4b6dd7 |
get_v3_order (const gchar *v2_order_by)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
const struct {
|
|
Packit |
4b6dd7 |
const gchar *v2_order_by;
|
|
Packit |
4b6dd7 |
const gchar *v3_order;
|
|
Packit |
4b6dd7 |
} mapping[] = {
|
|
Packit |
4b6dd7 |
{ "relevance", "relevance" },
|
|
Packit |
4b6dd7 |
{ "published", "date" },
|
|
Packit |
4b6dd7 |
{ "viewCount", "viewCount" },
|
|
Packit |
4b6dd7 |
{ "rating", "rating" },
|
|
Packit |
4b6dd7 |
};
|
|
Packit |
4b6dd7 |
guint i;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
for (i = 0; i < G_N_ELEMENTS (mapping); i++) {
|
|
Packit |
4b6dd7 |
if (g_strcmp0 (v2_order_by, mapping[i].v2_order_by) == 0) {
|
|
Packit |
4b6dd7 |
return mapping[i].v3_order;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Special case for ‘relevance_lang_*’. */
|
|
Packit |
4b6dd7 |
if (g_str_has_prefix (v2_order_by, "relevance_lang_")) {
|
|
Packit |
4b6dd7 |
return "relevance";
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
return NULL;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Convert from a v2 license parameter value to a v3 videoLicense parameter
|
|
Packit |
4b6dd7 |
* value. Reference:
|
|
Packit |
4b6dd7 |
* v2: https://developers.google.com/youtube/2.0/developers_guide_protocol_api_query_parameters#licensesp
|
|
Packit |
4b6dd7 |
* v3: https://developers.google.com/youtube/v3/docs/search/list#videoLicense
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
static const gchar *
|
|
Packit |
4b6dd7 |
get_v3_video_license (const gchar *v2_license)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
if (g_strcmp0 (v2_license, "cc") == 0) {
|
|
Packit |
4b6dd7 |
return "creativeCommon";
|
|
Packit |
4b6dd7 |
} else if (g_strcmp0 (v2_license, "youtube") == 0) {
|
|
Packit |
4b6dd7 |
return "youtube";
|
|
Packit |
4b6dd7 |
} else {
|
|
Packit |
4b6dd7 |
return NULL;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
get_query_uri (GDataQuery *self, const gchar *feed_uri, GString *query_uri, gboolean *params_started)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GDataYouTubeQueryPrivate *priv = GDATA_YOUTUBE_QUERY (self)->priv;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
#define APPEND_SEP g_string_append_c (query_uri, (*params_started == FALSE) ? '?' : '&';; *params_started = TRUE;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* NOTE: We do not chain up because the parent class implements a lot
|
|
Packit |
4b6dd7 |
* of deprecated API. */
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Categories */
|
|
Packit |
4b6dd7 |
if (gdata_query_get_categories (self) != NULL) {
|
|
Packit |
4b6dd7 |
APPEND_SEP
|
|
Packit |
4b6dd7 |
g_string_append (query_uri, "videoCategoryId=");
|
|
Packit |
4b6dd7 |
g_string_append_uri_escaped (query_uri,
|
|
Packit |
4b6dd7 |
gdata_query_get_categories (self),
|
|
Packit |
4b6dd7 |
NULL,
|
|
Packit |
4b6dd7 |
FALSE);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* q param */
|
|
Packit |
4b6dd7 |
if (gdata_query_get_q (self) != NULL) {
|
|
Packit |
4b6dd7 |
APPEND_SEP
|
|
Packit |
4b6dd7 |
g_string_append (query_uri, "q=");
|
|
Packit |
4b6dd7 |
g_string_append_uri_escaped (query_uri,
|
|
Packit |
4b6dd7 |
gdata_query_get_q (self), NULL,
|
|
Packit |
4b6dd7 |
FALSE);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (gdata_query_get_max_results (self) > 0) {
|
|
Packit |
4b6dd7 |
APPEND_SEP
|
|
Packit |
4b6dd7 |
g_string_append_printf (query_uri, "maxResults=%u",
|
|
Packit |
4b6dd7 |
gdata_query_get_max_results (self));
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (priv->age != GDATA_YOUTUBE_AGE_ALL_TIME) {
|
|
Packit |
4b6dd7 |
gchar *after;
|
|
Packit |
4b6dd7 |
GTimeVal tv = { 0, };
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_get_current_time (&tv;;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Squash the microseconds; they’re not useful. */
|
|
Packit |
4b6dd7 |
tv.tv_usec = 0;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
switch (priv->age) {
|
|
Packit |
4b6dd7 |
case GDATA_YOUTUBE_AGE_TODAY:
|
|
Packit |
4b6dd7 |
tv.tv_sec -= 24 * 60 * 60;
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case GDATA_YOUTUBE_AGE_THIS_WEEK:
|
|
Packit |
4b6dd7 |
tv.tv_sec -= 7 * 24 * 60 * 60;
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case GDATA_YOUTUBE_AGE_THIS_MONTH:
|
|
Packit |
4b6dd7 |
tv.tv_sec -= 31 * 24 * 60 * 60;
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case GDATA_YOUTUBE_AGE_ALL_TIME:
|
|
Packit |
4b6dd7 |
default:
|
|
Packit |
4b6dd7 |
g_assert_not_reached ();
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
APPEND_SEP
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
after = g_time_val_to_iso8601 (&tv;;
|
|
Packit |
4b6dd7 |
g_string_append_printf (query_uri, "publishedAfter=%s", after);
|
|
Packit |
4b6dd7 |
g_free (after);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* We don’t need to use APPEND_SEP below here, as this parameter is
|
|
Packit |
4b6dd7 |
* always included */
|
|
Packit |
4b6dd7 |
APPEND_SEP
|
|
Packit |
4b6dd7 |
switch (priv->safe_search) {
|
|
Packit |
4b6dd7 |
case GDATA_YOUTUBE_SAFE_SEARCH_NONE:
|
|
Packit |
4b6dd7 |
g_string_append (query_uri, "safeSearch=none");
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case GDATA_YOUTUBE_SAFE_SEARCH_MODERATE:
|
|
Packit |
4b6dd7 |
g_string_append (query_uri, "safeSearch=moderate");
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case GDATA_YOUTUBE_SAFE_SEARCH_STRICT:
|
|
Packit |
4b6dd7 |
g_string_append (query_uri, "safeSearch=strict");
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
default:
|
|
Packit |
4b6dd7 |
g_assert_not_reached ();
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (priv->latitude >= -90.0 && priv->latitude <= 90.0 &&
|
|
Packit |
4b6dd7 |
priv->longitude >= -180.0 && priv->longitude <= 180.0) {
|
|
Packit |
4b6dd7 |
gchar latitude[G_ASCII_DTOSTR_BUF_SIZE];
|
|
Packit |
4b6dd7 |
gchar longitude[G_ASCII_DTOSTR_BUF_SIZE];
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_string_append_printf (query_uri, "&location=%s,%s",
|
|
Packit |
4b6dd7 |
g_ascii_dtostr (latitude,
|
|
Packit |
4b6dd7 |
sizeof (latitude),
|
|
Packit |
4b6dd7 |
priv->latitude),
|
|
Packit |
4b6dd7 |
g_ascii_dtostr (longitude,
|
|
Packit |
4b6dd7 |
sizeof (longitude),
|
|
Packit |
4b6dd7 |
priv->longitude));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (priv->location_radius >= 0.0) {
|
|
Packit |
4b6dd7 |
gchar radius[G_ASCII_DTOSTR_BUF_SIZE];
|
|
Packit |
4b6dd7 |
g_string_append_printf (query_uri, "&locationRadius=%sm",
|
|
Packit |
4b6dd7 |
g_ascii_dtostr (radius,
|
|
Packit |
4b6dd7 |
sizeof (radius),
|
|
Packit |
4b6dd7 |
priv->location_radius));
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (priv->order_by != NULL) {
|
|
Packit |
4b6dd7 |
const gchar *v3_order_by = get_v3_order (priv->order_by);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (v3_order_by != NULL) {
|
|
Packit |
4b6dd7 |
g_string_append (query_uri, "&order=");
|
|
Packit |
4b6dd7 |
g_string_append_uri_escaped (query_uri, v3_order_by,
|
|
Packit |
4b6dd7 |
NULL, FALSE);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (priv->restriction != NULL) {
|
|
Packit |
4b6dd7 |
g_string_append (query_uri, "®ionCode=");
|
|
Packit |
4b6dd7 |
g_string_append_uri_escaped (query_uri, priv->restriction, NULL, FALSE);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (priv->license != NULL) {
|
|
Packit |
4b6dd7 |
const gchar *v3_video_license;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
v3_video_license = get_v3_video_license (priv->license);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (v3_video_license != NULL) {
|
|
Packit |
4b6dd7 |
g_string_append (query_uri, "&videoLicense=");
|
|
Packit |
4b6dd7 |
g_string_append_uri_escaped (query_uri,
|
|
Packit |
4b6dd7 |
v3_video_license, NULL,
|
|
Packit |
4b6dd7 |
FALSE);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_youtube_query_new:
|
|
Packit |
4b6dd7 |
* @q: (allow-none): a query string, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Creates a new #GDataYouTubeQuery with its #GDataQuery:q property set to @q.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: a new #GDataYouTubeQuery
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
GDataYouTubeQuery *
|
|
Packit |
4b6dd7 |
gdata_youtube_query_new (const gchar *q)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
return g_object_new (GDATA_TYPE_YOUTUBE_QUERY, "q", q, NULL);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_youtube_query_get_format:
|
|
Packit |
4b6dd7 |
* @self: a #GDataYouTubeQuery
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataYouTubeQuery:format property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the format property
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
* Deprecated: 0.17.0: No longer supported by Google. The value of
|
|
Packit |
4b6dd7 |
* this property will be unused in queries. There is no replacement.
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
GDataYouTubeFormat
|
|
Packit |
4b6dd7 |
gdata_youtube_query_get_format (GDataYouTubeQuery *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_YOUTUBE_QUERY (self), GDATA_YOUTUBE_FORMAT_UNKNOWN);
|
|
Packit |
4b6dd7 |
return self->priv->format;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_youtube_query_set_format:
|
|
Packit |
4b6dd7 |
* @self: a #GDataYouTubeQuery
|
|
Packit |
4b6dd7 |
* @format: the requested video format
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Sets the #GDataYouTubeQuery:format property of the #GDataYouTubeQuery to @format.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
* Deprecated: 0.17.0: No longer supported by Google. The value of
|
|
Packit |
4b6dd7 |
* this property will be unused in queries. There is no replacement.
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_youtube_query_set_format (GDataYouTubeQuery *self, GDataYouTubeFormat format)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_YOUTUBE_QUERY (self));
|
|
Packit |
4b6dd7 |
self->priv->format = format;
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "format");
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Our current ETag will no longer be relevant */
|
|
Packit |
4b6dd7 |
gdata_query_set_etag (GDATA_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
G_GNUC_END_IGNORE_DEPRECATIONS
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_youtube_query_get_location:
|
|
Packit |
4b6dd7 |
* @self: a #GDataYouTubeQuery
|
|
Packit |
4b6dd7 |
* @latitude: (out caller-allocates) (allow-none): a location in which to return the latitude, or %NULL
|
|
Packit |
4b6dd7 |
* @longitude: (out caller-allocates) (allow-none): a location in which to return the longitude, or %NULL
|
|
Packit |
4b6dd7 |
* @radius: (out caller-allocates) (allow-none): a location in which to return the location radius, or %NULL
|
|
Packit |
4b6dd7 |
* @has_location: (out caller-allocates) (allow-none): a location in which to return %TRUE if the query is searching for videos with a specific
|
|
Packit |
4b6dd7 |
* location, %FALSE otherwise, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the location-based properties of the #GDataYouTubeQuery: #GDataYouTubeQuery:latitude, #GDataYouTubeQuery:longitude,
|
|
Packit |
4b6dd7 |
* #GDataYouTubeQuery:location-radius and #GDataYouTubeQuery:has-location.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_youtube_query_get_location (GDataYouTubeQuery *self, gdouble *latitude, gdouble *longitude, gdouble *radius, gboolean *has_location)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_YOUTUBE_QUERY (self));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (latitude != NULL)
|
|
Packit |
4b6dd7 |
*latitude = self->priv->latitude;
|
|
Packit |
4b6dd7 |
if (longitude != NULL)
|
|
Packit |
4b6dd7 |
*longitude = self->priv->longitude;
|
|
Packit |
4b6dd7 |
if (radius != NULL)
|
|
Packit |
4b6dd7 |
*radius = self->priv->location_radius;
|
|
Packit |
4b6dd7 |
if (has_location != NULL)
|
|
Packit |
4b6dd7 |
*has_location = self->priv->has_location;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_youtube_query_set_location:
|
|
Packit |
4b6dd7 |
* @self: a #GDataYouTubeQuery
|
|
Packit |
4b6dd7 |
* @latitude: the new latitude, or %G_MAXDOUBLE
|
|
Packit |
4b6dd7 |
* @longitude: the new longitude, or %G_MAXDOUBLE
|
|
Packit |
4b6dd7 |
* @radius: the new location radius, or 0
|
|
Packit |
4b6dd7 |
* @has_location: %TRUE if the query is for videos with a specific location, %FALSE otherwise
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Sets the location-based properties of the #GDataYouTubeQuery: #GDataYouTubeQuery:latitude, #GDataYouTubeQuery:longitude,
|
|
Packit |
4b6dd7 |
* #GDataYouTubeQuery:location-radius and #GDataYouTubeQuery:has-location.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_youtube_query_set_location (GDataYouTubeQuery *self, gdouble latitude, gdouble longitude, gdouble radius, gboolean has_location)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_YOUTUBE_QUERY (self));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
self->priv->latitude = latitude;
|
|
Packit |
4b6dd7 |
self->priv->longitude = longitude;
|
|
Packit |
4b6dd7 |
self->priv->location_radius = radius;
|
|
Packit |
4b6dd7 |
self->priv->has_location = has_location;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_object_freeze_notify (G_OBJECT (self));
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "latitude");
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "longitude");
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "location-radius");
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "has-location");
|
|
Packit |
4b6dd7 |
g_object_thaw_notify (G_OBJECT (self));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Our current ETag will no longer be relevant */
|
|
Packit |
4b6dd7 |
gdata_query_set_etag (GDATA_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_youtube_query_get_language:
|
|
Packit |
4b6dd7 |
* @self: a #GDataYouTubeQuery
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataYouTubeQuery:language property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the language property, or %NULL if it is unset
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
* Deprecated: 0.17.0: No longer supported by Google. The value of
|
|
Packit |
4b6dd7 |
* this property will be unused in queries. There is no replacement.
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
const gchar *
|
|
Packit |
4b6dd7 |
gdata_youtube_query_get_language (GDataYouTubeQuery *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_YOUTUBE_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
return self->priv->language;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_youtube_query_set_language:
|
|
Packit |
4b6dd7 |
* @self: a #GDataYouTubeQuery
|
|
Packit |
4b6dd7 |
* @language: (allow-none): a new language name, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Sets the #GDataYouTubeQuery:language property of the #GDataYouTubeQuery to the new language, @language.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Set @language to %NULL to unset the property in the query URI.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
* Deprecated: 0.17.0: No longer supported by Google. The value of
|
|
Packit |
4b6dd7 |
* this property will be unused in queries. There is no replacement.
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_youtube_query_set_language (GDataYouTubeQuery *self, const gchar *language)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_YOUTUBE_QUERY (self));
|
|
Packit |
4b6dd7 |
g_free (self->priv->language);
|
|
Packit |
4b6dd7 |
self->priv->language = g_strdup (language);
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "language");
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Our current ETag will no longer be relevant */
|
|
Packit |
4b6dd7 |
gdata_query_set_etag (GDATA_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_youtube_query_get_order_by:
|
|
Packit |
4b6dd7 |
* @self: a #GDataYouTubeQuery
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataYouTubeQuery:order-by property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the order by property, or %NULL if it is unset
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
const gchar *
|
|
Packit |
4b6dd7 |
gdata_youtube_query_get_order_by (GDataYouTubeQuery *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_YOUTUBE_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
return self->priv->order_by;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_youtube_query_set_order_by:
|
|
Packit |
4b6dd7 |
* @self: a #GDataYouTubeQuery
|
|
Packit |
4b6dd7 |
* @order_by: (allow-none): a new order by string, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Sets the #GDataYouTubeQuery:order-by property of the #GDataYouTubeQuery to the new order by string, @order_by.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Set @order_by to %NULL to unset the property in the query URI.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_youtube_query_set_order_by (GDataYouTubeQuery *self, const gchar *order_by)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_YOUTUBE_QUERY (self));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_free (self->priv->order_by);
|
|
Packit |
4b6dd7 |
self->priv->order_by = g_strdup (order_by);
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "order-by");
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Our current ETag will no longer be relevant */
|
|
Packit |
4b6dd7 |
gdata_query_set_etag (GDATA_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_youtube_query_get_restriction:
|
|
Packit |
4b6dd7 |
* @self: a #GDataYouTubeQuery
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataYouTubeQuery:restriction property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the restriction property, or %NULL if it is unset
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
const gchar *
|
|
Packit |
4b6dd7 |
gdata_youtube_query_get_restriction (GDataYouTubeQuery *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_YOUTUBE_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
return self->priv->restriction;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_youtube_query_set_restriction:
|
|
Packit |
4b6dd7 |
* @self: a #GDataYouTubeQuery
|
|
Packit |
4b6dd7 |
* @restriction: (allow-none): a new restriction string, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Sets the #GDataYouTubeQuery:restriction property of the #GDataYouTubeQuery to the new restriction string, @restriction.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Set @restriction to %NULL to unset the property in the query URI.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_youtube_query_set_restriction (GDataYouTubeQuery *self, const gchar *restriction)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_YOUTUBE_QUERY (self));
|
|
Packit |
4b6dd7 |
g_free (self->priv->restriction);
|
|
Packit |
4b6dd7 |
self->priv->restriction = g_strdup (restriction);
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "restriction");
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Our current ETag will no longer be relevant */
|
|
Packit |
4b6dd7 |
gdata_query_set_etag (GDATA_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_youtube_query_get_safe_search:
|
|
Packit |
4b6dd7 |
* @self: a #GDataYouTubeQuery
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataYouTubeQuery:safe-search property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the safe search property
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
GDataYouTubeSafeSearch
|
|
Packit |
4b6dd7 |
gdata_youtube_query_get_safe_search (GDataYouTubeQuery *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_YOUTUBE_QUERY (self), GDATA_YOUTUBE_SAFE_SEARCH_MODERATE);
|
|
Packit |
4b6dd7 |
return self->priv->safe_search;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_youtube_query_set_safe_search:
|
|
Packit |
4b6dd7 |
* @self: a #GDataYouTubeQuery
|
|
Packit |
4b6dd7 |
* @safe_search: a new safe search level
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Sets the #GDataYouTubeQuery:safe-search property of the #GDataYouTubeQuery to @safe_search.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_youtube_query_set_safe_search (GDataYouTubeQuery *self, GDataYouTubeSafeSearch safe_search)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_YOUTUBE_QUERY (self));
|
|
Packit |
4b6dd7 |
self->priv->safe_search = safe_search;
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "safe-search");
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Our current ETag will no longer be relevant */
|
|
Packit |
4b6dd7 |
gdata_query_set_etag (GDATA_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_youtube_query_get_sort_order:
|
|
Packit |
4b6dd7 |
* @self: a #GDataYouTubeQuery
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataYouTubeQuery:sort-order property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the sort order property
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
* Deprecated: 0.17.0: No longer supported by Google. The value of
|
|
Packit |
4b6dd7 |
* this property will be unused in queries. There is no replacement.
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
GDataYouTubeSortOrder
|
|
Packit |
4b6dd7 |
gdata_youtube_query_get_sort_order (GDataYouTubeQuery *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_YOUTUBE_QUERY (self), GDATA_YOUTUBE_SORT_NONE);
|
|
Packit |
4b6dd7 |
return self->priv->sort_order;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_youtube_query_set_sort_order:
|
|
Packit |
4b6dd7 |
* @self: a #GDataYouTubeQuery
|
|
Packit |
4b6dd7 |
* @sort_order: the new sort order
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Sets the #GDataYouTubeQuery:sort-order property of the #GDataYouTubeQuery to @sort_order.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Set @sort_order to %GDATA_YOUTUBE_SORT_NONE to unset the property in the query URI.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
* Deprecated: 0.17.0: No longer supported by Google. The value of
|
|
Packit |
4b6dd7 |
* this property will be unused in queries. There is no replacement.
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_youtube_query_set_sort_order (GDataYouTubeQuery *self, GDataYouTubeSortOrder sort_order)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_YOUTUBE_QUERY (self));
|
|
Packit |
4b6dd7 |
self->priv->sort_order = sort_order;
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "sort-order");
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Our current ETag will no longer be relevant */
|
|
Packit |
4b6dd7 |
gdata_query_set_etag (GDATA_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
G_GNUC_END_IGNORE_DEPRECATIONS
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_youtube_query_get_age:
|
|
Packit |
4b6dd7 |
* @self: a #GDataYouTubeQuery
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataYouTubeQuery:age property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the age property
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
GDataYouTubeAge
|
|
Packit |
4b6dd7 |
gdata_youtube_query_get_age (GDataYouTubeQuery *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_YOUTUBE_QUERY (self), GDATA_YOUTUBE_AGE_ALL_TIME);
|
|
Packit |
4b6dd7 |
return self->priv->age;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_youtube_query_set_age:
|
|
Packit |
4b6dd7 |
* @self: a #GDataYouTubeQuery
|
|
Packit |
4b6dd7 |
* @age: the new age
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Sets the #GDataYouTubeQuery:age property of the #GDataYouTubeQuery to @age.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_youtube_query_set_age (GDataYouTubeQuery *self, GDataYouTubeAge age)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_YOUTUBE_QUERY (self));
|
|
Packit |
4b6dd7 |
self->priv->age = age;
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "age");
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Our current ETag will no longer be relevant */
|
|
Packit |
4b6dd7 |
gdata_query_set_etag (GDATA_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_youtube_query_get_uploader:
|
|
Packit |
4b6dd7 |
* @self: a #GDataYouTubeQuery
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataYouTubeQuery:uploader property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the uploader property
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
* Deprecated: 0.17.0: No longer supported by Google. The value of
|
|
Packit |
4b6dd7 |
* this property will be unused in queries. There is no replacement.
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
GDataYouTubeUploader
|
|
Packit |
4b6dd7 |
gdata_youtube_query_get_uploader (GDataYouTubeQuery *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_YOUTUBE_QUERY (self), GDATA_YOUTUBE_UPLOADER_ALL);
|
|
Packit |
4b6dd7 |
return self->priv->uploader;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_youtube_query_set_uploader:
|
|
Packit |
4b6dd7 |
* @self: a #GDataYouTubeQuery
|
|
Packit |
4b6dd7 |
* @uploader: the new uploader
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Sets the #GDataYouTubeQuery:uploader property of the #GDataYouTubeQuery to @uploader.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.3.0
|
|
Packit |
4b6dd7 |
* Deprecated: 0.17.0: No longer supported by Google. The value of
|
|
Packit |
4b6dd7 |
* this property will be unused in queries. There is no replacement.
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_youtube_query_set_uploader (GDataYouTubeQuery *self, GDataYouTubeUploader uploader)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_YOUTUBE_QUERY (self));
|
|
Packit |
4b6dd7 |
self->priv->uploader = uploader;
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "uploader");
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Our current ETag will no longer be relevant */
|
|
Packit |
4b6dd7 |
gdata_query_set_etag (GDATA_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
G_GNUC_END_IGNORE_DEPRECATIONS
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_youtube_query_get_license:
|
|
Packit |
4b6dd7 |
* @self: a #GDataYouTubeQuery
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataYouTubeQuery:license property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the license property, or %NULL if it is unset
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.11.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
const gchar *
|
|
Packit |
4b6dd7 |
gdata_youtube_query_get_license (GDataYouTubeQuery *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_YOUTUBE_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
return self->priv->license;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_youtube_query_set_license:
|
|
Packit |
4b6dd7 |
* @self: a #GDataYouTubeQuery
|
|
Packit |
4b6dd7 |
* @license: (allow-none): a new license value, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Sets the #GDataYouTubeQuery:license property of the #GDataYouTubeQuery to the new license value, @license.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Set @license to %NULL to unset the property in the query URI.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.11.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_youtube_query_set_license (GDataYouTubeQuery *self, const gchar *license)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_YOUTUBE_QUERY (self));
|
|
Packit |
4b6dd7 |
g_free (self->priv->license);
|
|
Packit |
4b6dd7 |
self->priv->license = g_strdup (license);
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "license");
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Our current ETag will no longer be relevant */
|
|
Packit |
4b6dd7 |
gdata_query_set_etag (GDATA_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
}
|