youtubereporting

package
v2.3.0+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 4, 2016 License: BSD-3-Clause, Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

Package youtubereporting provides access to the YouTube Reporting API.

See https://developers.google.com/youtube/reporting/v1/reports/

Usage example:

import "google.golang.org/api/youtubereporting/v1"
...
youtubereportingService, err := youtubereporting.New(oauthHttpClient)

Index

Constants

View Source
const (
	// View monetary and non-monetary YouTube Analytics reports for your
	// YouTube content
	YtAnalyticsMonetaryReadonlyScope = "https://www.googleapis.com/auth/yt-analytics-monetary.readonly"

	// View YouTube Analytics reports for your YouTube content
	YtAnalyticsReadonlyScope = "https://www.googleapis.com/auth/yt-analytics.readonly"
)

OAuth2 scopes used by this API.

Variables

This section is empty.

Functions

This section is empty.

Types

type Empty

type Empty struct {
	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`
}

Empty: A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.

type Job

type Job struct {
	// CreateTime: The creation date/time of the job.
	CreateTime string `json:"createTime,omitempty"`

	// Id: The server-generated ID of the job (max. 40 characters).
	Id string `json:"id,omitempty"`

	// Name: The name of the job (max. 100 characters). TODO(lanthaler)
	// Clarify what this will actually be used for
	Name string `json:"name,omitempty"`

	// ReportTypeId: The type of reports this job creates. Corresponds to
	// the ID of a ReportType.
	ReportTypeId string `json:"reportTypeId,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with
	// empty values are omitted from API requests. However, any non-pointer,
	// non-interface field appearing in ForceSendFields will be sent to the
	// server regardless of whether the field is empty or not. This may be
	// used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`
}

Job: A job creating reports of a specific type.

func (*Job) MarshalJSON

func (s *Job) MarshalJSON() ([]byte, error)

type JobsCreateCall

type JobsCreateCall struct {
	// contains filtered or unexported fields
}

func (*JobsCreateCall) Context

func (c *JobsCreateCall) Context(ctx context.Context) *JobsCreateCall

Context sets the context to be used in this call's Do method. Any pending HTTP request will be aborted if the provided context is canceled.

func (*JobsCreateCall) Do

func (c *JobsCreateCall) Do() (*Job, error)

Do executes the "youtubereporting.jobs.create" call. Exactly one of *Job or error will be non-nil. Any non-2xx status code is an error. Response headers are in either *Job.ServerResponse.Header or (if a response was returned at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check whether the returned error was because http.StatusNotModified was returned.

func (*JobsCreateCall) Fields

func (c *JobsCreateCall) Fields(s ...googleapi.Field) *JobsCreateCall

Fields allows partial responses to be retrieved. See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more information.

func (*JobsCreateCall) OnBehalfOfContentOwner

func (c *JobsCreateCall) OnBehalfOfContentOwner(onBehalfOfContentOwner string) *JobsCreateCall

OnBehalfOfContentOwner sets the optional parameter "onBehalfOfContentOwner": The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).

type JobsDeleteCall

type JobsDeleteCall struct {
	// contains filtered or unexported fields
}

func (*JobsDeleteCall) Context

func (c *JobsDeleteCall) Context(ctx context.Context) *JobsDeleteCall

Context sets the context to be used in this call's Do method. Any pending HTTP request will be aborted if the provided context is canceled.

func (*JobsDeleteCall) Do

func (c *JobsDeleteCall) Do() (*Empty, error)

Do executes the "youtubereporting.jobs.delete" call. Exactly one of *Empty or error will be non-nil. Any non-2xx status code is an error. Response headers are in either *Empty.ServerResponse.Header or (if a response was returned at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check whether the returned error was because http.StatusNotModified was returned.

func (*JobsDeleteCall) Fields

func (c *JobsDeleteCall) Fields(s ...googleapi.Field) *JobsDeleteCall

Fields allows partial responses to be retrieved. See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more information.

func (*JobsDeleteCall) OnBehalfOfContentOwner

func (c *JobsDeleteCall) OnBehalfOfContentOwner(onBehalfOfContentOwner string) *JobsDeleteCall

OnBehalfOfContentOwner sets the optional parameter "onBehalfOfContentOwner": The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).

type JobsGetCall

type JobsGetCall struct {
	// contains filtered or unexported fields
}

func (*JobsGetCall) Context

func (c *JobsGetCall) Context(ctx context.Context) *JobsGetCall

Context sets the context to be used in this call's Do method. Any pending HTTP request will be aborted if the provided context is canceled.

func (*JobsGetCall) Do

func (c *JobsGetCall) Do() (*Job, error)

Do executes the "youtubereporting.jobs.get" call. Exactly one of *Job or error will be non-nil. Any non-2xx status code is an error. Response headers are in either *Job.ServerResponse.Header or (if a response was returned at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check whether the returned error was because http.StatusNotModified was returned.

func (*JobsGetCall) Fields

func (c *JobsGetCall) Fields(s ...googleapi.Field) *JobsGetCall

Fields allows partial responses to be retrieved. See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more information.

func (*JobsGetCall) IfNoneMatch

func (c *JobsGetCall) IfNoneMatch(entityTag string) *JobsGetCall

IfNoneMatch sets the optional parameter which makes the operation fail if the object's ETag matches the given value. This is useful for getting updates only after the object has changed since the last request. Use googleapi.IsNotModified to check whether the response error from Do is the result of In-None-Match.

func (*JobsGetCall) OnBehalfOfContentOwner

func (c *JobsGetCall) OnBehalfOfContentOwner(onBehalfOfContentOwner string) *JobsGetCall

OnBehalfOfContentOwner sets the optional parameter "onBehalfOfContentOwner": The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).

type JobsListCall

type JobsListCall struct {
	// contains filtered or unexported fields
}

func (*JobsListCall) Context

func (c *JobsListCall) Context(ctx context.Context) *JobsListCall

Context sets the context to be used in this call's Do method. Any pending HTTP request will be aborted if the provided context is canceled.

func (*JobsListCall) Do

func (c *JobsListCall) Do() (*ListJobsResponse, error)

Do executes the "youtubereporting.jobs.list" call. Exactly one of *ListJobsResponse or error will be non-nil. Any non-2xx status code is an error. Response headers are in either *ListJobsResponse.ServerResponse.Header or (if a response was returned at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check whether the returned error was because http.StatusNotModified was returned.

func (*JobsListCall) Fields

func (c *JobsListCall) Fields(s ...googleapi.Field) *JobsListCall

Fields allows partial responses to be retrieved. See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more information.

func (*JobsListCall) IfNoneMatch

func (c *JobsListCall) IfNoneMatch(entityTag string) *JobsListCall

IfNoneMatch sets the optional parameter which makes the operation fail if the object's ETag matches the given value. This is useful for getting updates only after the object has changed since the last request. Use googleapi.IsNotModified to check whether the response error from Do is the result of In-None-Match.

func (*JobsListCall) OnBehalfOfContentOwner

func (c *JobsListCall) OnBehalfOfContentOwner(onBehalfOfContentOwner string) *JobsListCall

OnBehalfOfContentOwner sets the optional parameter "onBehalfOfContentOwner": The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).

func (*JobsListCall) PageSize

func (c *JobsListCall) PageSize(pageSize int64) *JobsListCall

PageSize sets the optional parameter "pageSize": Requested page size. Server may return fewer jobs than requested. If unspecified, server will pick an appropriate default.

func (*JobsListCall) PageToken

func (c *JobsListCall) PageToken(pageToken string) *JobsListCall

PageToken sets the optional parameter "pageToken": A token identifying a page of results the server should return. Typically, this is the value of ListReportTypesResponse.next_page_token returned in response to the previous call to the `ListJobs` method.

type JobsReportsGetCall

type JobsReportsGetCall struct {
	// contains filtered or unexported fields
}

func (*JobsReportsGetCall) Context

Context sets the context to be used in this call's Do method. Any pending HTTP request will be aborted if the provided context is canceled.

func (*JobsReportsGetCall) Do

func (c *JobsReportsGetCall) Do() (*Report, error)

Do executes the "youtubereporting.jobs.reports.get" call. Exactly one of *Report or error will be non-nil. Any non-2xx status code is an error. Response headers are in either *Report.ServerResponse.Header or (if a response was returned at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check whether the returned error was because http.StatusNotModified was returned.

func (*JobsReportsGetCall) Fields

Fields allows partial responses to be retrieved. See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more information.

func (*JobsReportsGetCall) IfNoneMatch

func (c *JobsReportsGetCall) IfNoneMatch(entityTag string) *JobsReportsGetCall

IfNoneMatch sets the optional parameter which makes the operation fail if the object's ETag matches the given value. This is useful for getting updates only after the object has changed since the last request. Use googleapi.IsNotModified to check whether the response error from Do is the result of In-None-Match.

func (*JobsReportsGetCall) OnBehalfOfContentOwner

func (c *JobsReportsGetCall) OnBehalfOfContentOwner(onBehalfOfContentOwner string) *JobsReportsGetCall

OnBehalfOfContentOwner sets the optional parameter "onBehalfOfContentOwner": The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).

type JobsReportsListCall

type JobsReportsListCall struct {
	// contains filtered or unexported fields
}

func (*JobsReportsListCall) Context

Context sets the context to be used in this call's Do method. Any pending HTTP request will be aborted if the provided context is canceled.

func (*JobsReportsListCall) Do

Do executes the "youtubereporting.jobs.reports.list" call. Exactly one of *ListReportsResponse or error will be non-nil. Any non-2xx status code is an error. Response headers are in either *ListReportsResponse.ServerResponse.Header or (if a response was returned at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check whether the returned error was because http.StatusNotModified was returned.

func (*JobsReportsListCall) Fields

Fields allows partial responses to be retrieved. See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more information.

func (*JobsReportsListCall) IfNoneMatch

func (c *JobsReportsListCall) IfNoneMatch(entityTag string) *JobsReportsListCall

IfNoneMatch sets the optional parameter which makes the operation fail if the object's ETag matches the given value. This is useful for getting updates only after the object has changed since the last request. Use googleapi.IsNotModified to check whether the response error from Do is the result of In-None-Match.

func (*JobsReportsListCall) OnBehalfOfContentOwner

func (c *JobsReportsListCall) OnBehalfOfContentOwner(onBehalfOfContentOwner string) *JobsReportsListCall

OnBehalfOfContentOwner sets the optional parameter "onBehalfOfContentOwner": The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).

func (*JobsReportsListCall) PageSize

func (c *JobsReportsListCall) PageSize(pageSize int64) *JobsReportsListCall

PageSize sets the optional parameter "pageSize": Requested page size. Server may return fewer report types than requested. If unspecified, server will pick an appropriate default.

func (*JobsReportsListCall) PageToken

func (c *JobsReportsListCall) PageToken(pageToken string) *JobsReportsListCall

PageToken sets the optional parameter "pageToken": A token identifying a page of results the server should return. Typically, this is the value of ListReportsResponse.next_page_token returned in response to the previous call to the `ListReports` method.

type JobsReportsService

type JobsReportsService struct {
	// contains filtered or unexported fields
}

func NewJobsReportsService

func NewJobsReportsService(s *Service) *JobsReportsService

func (*JobsReportsService) Get

func (r *JobsReportsService) Get(jobId string, reportId string) *JobsReportsGetCall

Get: Gets the metadata of a specific report.

func (*JobsReportsService) List

List: Lists reports created by a specific job. Returns NOT_FOUND if the job does not exist.

type JobsService

type JobsService struct {
	Reports *JobsReportsService
	// contains filtered or unexported fields
}

func NewJobsService

func NewJobsService(s *Service) *JobsService

func (*JobsService) Create

func (r *JobsService) Create(job *Job) *JobsCreateCall

Create: Creates a job and returns it.

func (*JobsService) Delete

func (r *JobsService) Delete(jobId string) *JobsDeleteCall

Delete: Deletes a job.

func (*JobsService) Get

func (r *JobsService) Get(jobId string) *JobsGetCall

Get: Gets a job.

func (*JobsService) List

func (r *JobsService) List() *JobsListCall

List: Lists jobs.

type ListJobsResponse

type ListJobsResponse struct {
	// Jobs: The list of jobs.
	Jobs []*Job `json:"jobs,omitempty"`

	// NextPageToken: A token to retrieve next page of results. Pass this
	// value in the ListJobsRequest.page_token field in the subsequent call
	// to `ListJobs` method to retrieve the next page of results.
	NextPageToken string `json:"nextPageToken,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "Jobs") to
	// unconditionally include in API requests. By default, fields with
	// empty values are omitted from API requests. However, any non-pointer,
	// non-interface field appearing in ForceSendFields will be sent to the
	// server regardless of whether the field is empty or not. This may be
	// used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`
}

ListJobsResponse: Response message for ReportingService.ListJobs.

func (*ListJobsResponse) MarshalJSON

func (s *ListJobsResponse) MarshalJSON() ([]byte, error)

type ListReportTypesResponse

type ListReportTypesResponse struct {
	// NextPageToken: A token to retrieve next page of results. Pass this
	// value in the ListReportTypesRequest.page_token field in the
	// subsequent call to `ListReportTypes` method to retrieve the next page
	// of results.
	NextPageToken string `json:"nextPageToken,omitempty"`

	// ReportTypes: The list of report types.
	ReportTypes []*ReportType `json:"reportTypes,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
	// unconditionally include in API requests. By default, fields with
	// empty values are omitted from API requests. However, any non-pointer,
	// non-interface field appearing in ForceSendFields will be sent to the
	// server regardless of whether the field is empty or not. This may be
	// used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`
}

ListReportTypesResponse: Response message for ReportingService.ListReportTypes.

func (*ListReportTypesResponse) MarshalJSON

func (s *ListReportTypesResponse) MarshalJSON() ([]byte, error)

type ListReportsResponse

type ListReportsResponse struct {
	// NextPageToken: A token to retrieve next page of results. Pass this
	// value in the ListReportsRequest.page_token field in the subsequent
	// call to `ListReports` method to retrieve the next page of results.
	NextPageToken string `json:"nextPageToken,omitempty"`

	// Reports: The list of report types.
	Reports []*Report `json:"reports,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
	// unconditionally include in API requests. By default, fields with
	// empty values are omitted from API requests. However, any non-pointer,
	// non-interface field appearing in ForceSendFields will be sent to the
	// server regardless of whether the field is empty or not. This may be
	// used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`
}

ListReportsResponse: Response message for ReportingService.ListReports.

func (*ListReportsResponse) MarshalJSON

func (s *ListReportsResponse) MarshalJSON() ([]byte, error)

type Media

type Media struct {
	// ResourceName: Name of the media resource.
	ResourceName string `json:"resourceName,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with
	// empty values are omitted from API requests. However, any non-pointer,
	// non-interface field appearing in ForceSendFields will be sent to the
	// server regardless of whether the field is empty or not. This may be
	// used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`
}

Media: Media resource.

func (*Media) MarshalJSON

func (s *Media) MarshalJSON() ([]byte, error)

type MediaDownloadCall

type MediaDownloadCall struct {
	// contains filtered or unexported fields
}

func (*MediaDownloadCall) Context

Context sets the context to be used in this call's Do and Download methods. Any pending HTTP request will be aborted if the provided context is canceled.

func (*MediaDownloadCall) Do

func (c *MediaDownloadCall) Do() (*Media, error)

Do executes the "youtubereporting.media.download" call. Exactly one of *Media or error will be non-nil. Any non-2xx status code is an error. Response headers are in either *Media.ServerResponse.Header or (if a response was returned at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check whether the returned error was because http.StatusNotModified was returned.

func (*MediaDownloadCall) Download

func (c *MediaDownloadCall) Download() (*http.Response, error)

Download fetches the API endpoint's "media" value, instead of the normal API response value. If the returned error is nil, the Response is guaranteed to have a 2xx status code. Callers must close the Response.Body as usual.

func (*MediaDownloadCall) Fields

Fields allows partial responses to be retrieved. See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more information.

func (*MediaDownloadCall) IfNoneMatch

func (c *MediaDownloadCall) IfNoneMatch(entityTag string) *MediaDownloadCall

IfNoneMatch sets the optional parameter which makes the operation fail if the object's ETag matches the given value. This is useful for getting updates only after the object has changed since the last request. Use googleapi.IsNotModified to check whether the response error from Do is the result of In-None-Match.

type MediaService

type MediaService struct {
	// contains filtered or unexported fields
}

func NewMediaService

func NewMediaService(s *Service) *MediaService

func (*MediaService) Download

func (r *MediaService) Download(resourceName string) *MediaDownloadCall

Download: Method for media download. Download is supported on the URI `/v1/media/{+name}?alt=media`.

type Report

type Report struct {
	// CreateTime: The date/time when this report was created.
	CreateTime string `json:"createTime,omitempty"`

	// DownloadUrl: The URL from which the report can be downloaded (max.
	// 1000 characters).
	DownloadUrl string `json:"downloadUrl,omitempty"`

	// EndTime: The end of the time period that the report instance covers.
	// The value is exclusive.
	EndTime string `json:"endTime,omitempty"`

	// Id: The server-generated ID of the report.
	Id string `json:"id,omitempty"`

	// JobId: The ID of the job that created this report.
	JobId string `json:"jobId,omitempty"`

	// StartTime: The start of the time period that the report instance
	// covers. The value is inclusive.
	StartTime string `json:"startTime,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with
	// empty values are omitted from API requests. However, any non-pointer,
	// non-interface field appearing in ForceSendFields will be sent to the
	// server regardless of whether the field is empty or not. This may be
	// used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`
}

Report: A report's metadata including the URL from which the report itself can be downloaded.

func (*Report) MarshalJSON

func (s *Report) MarshalJSON() ([]byte, error)

type ReportType

type ReportType struct {
	// Id: The ID of the report type (max. 100 characters).
	Id string `json:"id,omitempty"`

	// Name: The name of the report type (max. 100 characters).
	Name string `json:"name,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Id") to
	// unconditionally include in API requests. By default, fields with
	// empty values are omitted from API requests. However, any non-pointer,
	// non-interface field appearing in ForceSendFields will be sent to the
	// server regardless of whether the field is empty or not. This may be
	// used to include empty fields in Patch requests.
	ForceSendFields []string `json:"-"`
}

ReportType: A report type.

func (*ReportType) MarshalJSON

func (s *ReportType) MarshalJSON() ([]byte, error)

type ReportTypesListCall

type ReportTypesListCall struct {
	// contains filtered or unexported fields
}

func (*ReportTypesListCall) Context

Context sets the context to be used in this call's Do method. Any pending HTTP request will be aborted if the provided context is canceled.

func (*ReportTypesListCall) Do

Do executes the "youtubereporting.reportTypes.list" call. Exactly one of *ListReportTypesResponse or error will be non-nil. Any non-2xx status code is an error. Response headers are in either *ListReportTypesResponse.ServerResponse.Header or (if a response was returned at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check whether the returned error was because http.StatusNotModified was returned.

func (*ReportTypesListCall) Fields

Fields allows partial responses to be retrieved. See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more information.

func (*ReportTypesListCall) IfNoneMatch

func (c *ReportTypesListCall) IfNoneMatch(entityTag string) *ReportTypesListCall

IfNoneMatch sets the optional parameter which makes the operation fail if the object's ETag matches the given value. This is useful for getting updates only after the object has changed since the last request. Use googleapi.IsNotModified to check whether the response error from Do is the result of In-None-Match.

func (*ReportTypesListCall) OnBehalfOfContentOwner

func (c *ReportTypesListCall) OnBehalfOfContentOwner(onBehalfOfContentOwner string) *ReportTypesListCall

OnBehalfOfContentOwner sets the optional parameter "onBehalfOfContentOwner": The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).

func (*ReportTypesListCall) PageSize

func (c *ReportTypesListCall) PageSize(pageSize int64) *ReportTypesListCall

PageSize sets the optional parameter "pageSize": Requested page size. Server may return fewer report types than requested. If unspecified, server will pick an appropriate default.

func (*ReportTypesListCall) PageToken

func (c *ReportTypesListCall) PageToken(pageToken string) *ReportTypesListCall

PageToken sets the optional parameter "pageToken": A token identifying a page of results the server should return. Typically, this is the value of ListReportTypesResponse.next_page_token returned in response to the previous call to the `ListReportTypes` method.

type ReportTypesService

type ReportTypesService struct {
	// contains filtered or unexported fields
}

func NewReportTypesService

func NewReportTypesService(s *Service) *ReportTypesService

func (*ReportTypesService) List

List: Lists report types.

type Service

type Service struct {
	BasePath  string // API endpoint base URL
	UserAgent string // optional additional User-Agent fragment

	Jobs *JobsService

	Media *MediaService

	ReportTypes *ReportTypesService
	// contains filtered or unexported fields
}

func New

func New(client *http.Client) (*Service, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL