Compare commits

..

1 Commits

Author SHA1 Message Date
5e2fe35427 Check homography
All checks were successful
Tests / Tests (pull_request) Successful in 10s
2024-11-07 11:06:07 +01:00
7 changed files with 455 additions and 419 deletions

View File

@ -184,7 +184,6 @@ export type DoesNotOwnShotErrOtherErrorNeedsNote =
export type EditUserInputGql = { export type EditUserInputGql = {
fargoRating?: InputMaybe<Scalars["Int"]["input"]>; fargoRating?: InputMaybe<Scalars["Int"]["input"]>;
username?: InputMaybe<Scalars["String"]["input"]>; username?: InputMaybe<Scalars["String"]["input"]>;
videosPrivateByDefault?: InputMaybe<Scalars["Boolean"]["input"]>;
}; };
export type EnumAggregation = { export type EnumAggregation = {
@ -1943,7 +1942,6 @@ export type HomographyInfoGql = {
crop: BoundingBoxGql; crop: BoundingBoxGql;
destPoints: PocketPointsGql; destPoints: PocketPointsGql;
frameIndex: Scalars["Int"]["output"]; frameIndex: Scalars["Int"]["output"];
id: Scalars["Int"]["output"];
pockets: Array<BoundingBoxGql>; pockets: Array<BoundingBoxGql>;
sourcePoints: PocketPointsGql; sourcePoints: PocketPointsGql;
}; };
@ -2004,13 +2002,13 @@ export type MustHaveSetForUploadLinkErrSegmentAlreadyUploadedErrProcessingFailed
export type Mutation = { export type Mutation = {
__typename?: "Mutation"; __typename?: "Mutation";
addAnnotationToShot: AddShotAnnotationReturn; addAnnotationToShot: AddShotAnnotationReturn;
checkHomographyIsValid?: Maybe<HomographyInfoGql>;
createBucketSet: BucketSetGql; createBucketSet: BucketSetGql;
createUploadStream: CreateUploadStreamReturn; createUploadStream: CreateUploadStreamReturn;
deleteVideo: Scalars["Boolean"]["output"]; deleteVideo: Scalars["Boolean"]["output"];
editProfileImageUri: UserGql; editProfileImageUri: UserGql;
editUploadStream: Scalars["Boolean"]["output"]; editUploadStream: Scalars["Boolean"]["output"];
editUser: UserGql; editUser: UserGql;
findPrerecordTableLayout?: Maybe<HomographyInfoGql>;
followUser: UserGql; followUser: UserGql;
getHlsInitUploadLink: GetUploadLinkReturn; getHlsInitUploadLink: GetUploadLinkReturn;
getProfileImageUploadLink: GetProfileUploadLinkReturn; getProfileImageUploadLink: GetProfileUploadLinkReturn;
@ -2027,6 +2025,11 @@ export type MutationAddAnnotationToShotArgs = {
shotId: Scalars["Int"]["input"]; shotId: Scalars["Int"]["input"];
}; };
export type MutationCheckHomographyIsValidArgs = {
b64Image: Scalars["String"]["input"];
videoId: Scalars["Int"]["input"];
};
export type MutationCreateBucketSetArgs = { export type MutationCreateBucketSetArgs = {
params: CreateBucketSetInput; params: CreateBucketSetInput;
}; };
@ -2052,11 +2055,6 @@ export type MutationEditUserArgs = {
input: EditUserInputGql; input: EditUserInputGql;
}; };
export type MutationFindPrerecordTableLayoutArgs = {
b64Image: Scalars["String"]["input"];
videoId: Scalars["Int"]["input"];
};
export type MutationFollowUserArgs = { export type MutationFollowUserArgs = {
followedUserId: Scalars["Int"]["input"]; followedUserId: Scalars["Int"]["input"];
}; };
@ -2210,7 +2208,6 @@ export type QueryGetBucketSetArgs = {
export type QueryGetFeedVideosArgs = { export type QueryGetFeedVideosArgs = {
after?: InputMaybe<Scalars["String"]["input"]>; after?: InputMaybe<Scalars["String"]["input"]>;
filters?: InputMaybe<VideoFilterInput>; filters?: InputMaybe<VideoFilterInput>;
includeCallersVideos?: InputMaybe<Scalars["Boolean"]["input"]>;
limit?: Scalars["Int"]["input"]; limit?: Scalars["Int"]["input"];
}; };
@ -2228,7 +2225,6 @@ export type QueryGetOrderedShotsArgs = {
}; };
export type QueryGetPlayTimeArgs = { export type QueryGetPlayTimeArgs = {
filters?: InputMaybe<VideoFilterInput>;
userId: Scalars["Int"]["input"]; userId: Scalars["Int"]["input"];
}; };
@ -2587,7 +2583,6 @@ export type UserGql = {
profileImageUri?: Maybe<Scalars["String"]["output"]>; profileImageUri?: Maybe<Scalars["String"]["output"]>;
updatedAt?: Maybe<Scalars["DateTime"]["output"]>; updatedAt?: Maybe<Scalars["DateTime"]["output"]>;
username: Scalars["String"]["output"]; username: Scalars["String"]["output"];
videosPrivateByDefault?: Maybe<Scalars["Boolean"]["output"]>;
}; };
export type UserPlayTimeGql = { export type UserPlayTimeGql = {
@ -2609,8 +2604,6 @@ export type UserRelationshipsResult = {
}; };
export type VideoFilterInput = { export type VideoFilterInput = {
createdAt?: InputMaybe<DateRangeFilter>;
excludeVideosWithNoShots?: InputMaybe<Scalars["Boolean"]["input"]>;
isStreamCompleted?: InputMaybe<Scalars["Boolean"]["input"]>; isStreamCompleted?: InputMaybe<Scalars["Boolean"]["input"]>;
requireCursorCompletion?: Scalars["Boolean"]["input"]; requireCursorCompletion?: Scalars["Boolean"]["input"];
}; };
@ -2631,7 +2624,6 @@ export type VideoGql = {
name?: Maybe<Scalars["String"]["output"]>; name?: Maybe<Scalars["String"]["output"]>;
owner?: Maybe<UserGql>; owner?: Maybe<UserGql>;
playlist?: Maybe<HlsPlaylistGql>; playlist?: Maybe<HlsPlaylistGql>;
private: Scalars["Boolean"]["output"];
screenshotUri?: Maybe<Scalars["String"]["output"]>; screenshotUri?: Maybe<Scalars["String"]["output"]>;
shots: Array<ShotGql>; shots: Array<ShotGql>;
startTime?: Maybe<Scalars["DateTime"]["output"]>; startTime?: Maybe<Scalars["DateTime"]["output"]>;
@ -2655,7 +2647,6 @@ export type VideoMetadataInput = {
framesPerSecond?: InputMaybe<Scalars["Float"]["input"]>; framesPerSecond?: InputMaybe<Scalars["Float"]["input"]>;
gameType?: InputMaybe<Scalars["String"]["input"]>; gameType?: InputMaybe<Scalars["String"]["input"]>;
lastIntendedSegmentBound?: InputMaybe<Scalars["Int"]["input"]>; lastIntendedSegmentBound?: InputMaybe<Scalars["Int"]["input"]>;
private?: InputMaybe<Scalars["Boolean"]["input"]>;
resolution?: InputMaybe<VideoResolution>; resolution?: InputMaybe<VideoResolution>;
startTime?: InputMaybe<Scalars["DateTime"]["input"]>; startTime?: InputMaybe<Scalars["DateTime"]["input"]>;
streamSegmentType?: InputMaybe<StreamSegmentTypeEnum>; streamSegmentType?: InputMaybe<StreamSegmentTypeEnum>;
@ -2673,7 +2664,6 @@ export type VideoProcessingErrorGql = {
export type VideoProcessingGql = { export type VideoProcessingGql = {
__typename?: "VideoProcessingGQL"; __typename?: "VideoProcessingGQL";
errors: Array<VideoProcessingErrorGql>; errors: Array<VideoProcessingErrorGql>;
id: Scalars["Int"]["output"];
status: ProcessingStatusEnum; status: ProcessingStatusEnum;
statuses: Array<VideoProcessingStatusGql>; statuses: Array<VideoProcessingStatusGql>;
}; };
@ -2744,6 +2734,51 @@ export type GetAggregatedShotMetricsQuery = {
}>; }>;
}; };
export type CheckHomographyIsValidMutationVariables = Exact<{
b64Image: Scalars["String"]["input"];
videoId: Scalars["Int"]["input"];
}>;
export type CheckHomographyIsValidMutation = {
__typename?: "Mutation";
checkHomographyIsValid?: {
__typename?: "HomographyInfoGQL";
frameIndex: number;
crop: {
__typename?: "BoundingBoxGQL";
left: number;
top: number;
width: number;
height: number;
};
pockets: Array<{
__typename?: "BoundingBoxGQL";
left: number;
top: number;
width: number;
height: number;
}>;
sourcePoints: {
__typename?: "PocketPointsGQL";
topLeft: { __typename?: "IntPoint2D"; x: number; y: number };
topSide: { __typename?: "IntPoint2D"; x: number; y: number };
topRight: { __typename?: "IntPoint2D"; x: number; y: number };
bottomLeft: { __typename?: "IntPoint2D"; x: number; y: number };
bottomSide: { __typename?: "IntPoint2D"; x: number; y: number };
bottomRight: { __typename?: "IntPoint2D"; x: number; y: number };
};
destPoints: {
__typename?: "PocketPointsGQL";
topLeft: { __typename?: "IntPoint2D"; x: number; y: number };
topSide: { __typename?: "IntPoint2D"; x: number; y: number };
topRight: { __typename?: "IntPoint2D"; x: number; y: number };
bottomLeft: { __typename?: "IntPoint2D"; x: number; y: number };
bottomSide: { __typename?: "IntPoint2D"; x: number; y: number };
bottomRight: { __typename?: "IntPoint2D"; x: number; y: number };
};
} | null;
};
export type GetDeployedConfigQueryVariables = Exact<{ [key: string]: never }>; export type GetDeployedConfigQueryVariables = Exact<{ [key: string]: never }>;
export type GetDeployedConfigQuery = { export type GetDeployedConfigQuery = {
@ -2780,15 +2815,9 @@ export type GetFeedQuery = {
updatedAt?: any | null; updatedAt?: any | null;
startTime?: any | null; startTime?: any | null;
endTime?: any | null; endTime?: any | null;
private: boolean;
elapsedTime?: number | null; elapsedTime?: number | null;
tableSize: number; tableSize: number;
owner?: { owner?: { __typename?: "UserGQL"; username: string } | null;
__typename?: "UserGQL";
id: number;
username: string;
profileImageUri?: string | null;
} | null;
stream?: { stream?: {
__typename?: "UploadStreamGQL"; __typename?: "UploadStreamGQL";
id: string; id: string;
@ -2799,19 +2828,6 @@ export type GetFeedQuery = {
name: string; name: string;
tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>; tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>;
}>; }>;
currentProcessing?: {
__typename?: "VideoProcessingGQL";
id: number;
status: ProcessingStatusEnum;
errors: Array<{
__typename?: "VideoProcessingErrorGQL";
message: string;
}>;
statuses: Array<{
__typename?: "VideoProcessingStatusGQL";
status: ProcessingStatusEnum;
}>;
} | null;
}>; }>;
pageInfo: { pageInfo: {
__typename?: "PageInfoGQL"; __typename?: "PageInfoGQL";
@ -2833,7 +2849,6 @@ export type VideoCardFieldsFragment = {
updatedAt?: any | null; updatedAt?: any | null;
startTime?: any | null; startTime?: any | null;
endTime?: any | null; endTime?: any | null;
private: boolean;
elapsedTime?: number | null; elapsedTime?: number | null;
tableSize: number; tableSize: number;
owner?: { owner?: {
@ -2854,7 +2869,6 @@ export type VideoCardFieldsFragment = {
}>; }>;
currentProcessing?: { currentProcessing?: {
__typename?: "VideoProcessingGQL"; __typename?: "VideoProcessingGQL";
id: number;
status: ProcessingStatusEnum; status: ProcessingStatusEnum;
errors: Array<{ __typename?: "VideoProcessingErrorGQL"; message: string }>; errors: Array<{ __typename?: "VideoProcessingErrorGQL"; message: string }>;
statuses: Array<{ statuses: Array<{
@ -2868,7 +2882,6 @@ export type GetVideoFeedQueryVariables = Exact<{
limit?: Scalars["Int"]["input"]; limit?: Scalars["Int"]["input"];
after?: InputMaybe<Scalars["String"]["input"]>; after?: InputMaybe<Scalars["String"]["input"]>;
filters?: InputMaybe<VideoFilterInput>; filters?: InputMaybe<VideoFilterInput>;
includeCallersVideos?: InputMaybe<Scalars["Boolean"]["input"]>;
}>; }>;
export type GetVideoFeedQuery = { export type GetVideoFeedQuery = {
@ -2887,7 +2900,6 @@ export type GetVideoFeedQuery = {
updatedAt?: any | null; updatedAt?: any | null;
startTime?: any | null; startTime?: any | null;
endTime?: any | null; endTime?: any | null;
private: boolean;
elapsedTime?: number | null; elapsedTime?: number | null;
tableSize: number; tableSize: number;
owner?: { owner?: {
@ -2908,7 +2920,6 @@ export type GetVideoFeedQuery = {
}>; }>;
currentProcessing?: { currentProcessing?: {
__typename?: "VideoProcessingGQL"; __typename?: "VideoProcessingGQL";
id: number;
status: ProcessingStatusEnum; status: ProcessingStatusEnum;
errors: Array<{ errors: Array<{
__typename?: "VideoProcessingErrorGQL"; __typename?: "VideoProcessingErrorGQL";
@ -3032,14 +3043,12 @@ export type GetShotsWithJustIdsQueryVariables = Exact<{
filterInput: FilterInput; filterInput: FilterInput;
shotsOrdering?: InputMaybe<GetShotsOrdering>; shotsOrdering?: InputMaybe<GetShotsOrdering>;
limit?: InputMaybe<Scalars["Int"]["input"]>; limit?: InputMaybe<Scalars["Int"]["input"]>;
countRespectsLimit?: InputMaybe<Scalars["Boolean"]["input"]>;
}>; }>;
export type GetShotsWithJustIdsQuery = { export type GetShotsWithJustIdsQuery = {
__typename?: "Query"; __typename?: "Query";
getOrderedShots: { getOrderedShots: {
__typename?: "GetShotsResult"; __typename?: "GetShotsResult";
count?: number | null;
shots: Array<{ __typename?: "ShotGQL"; id: number; videoId: number }>; shots: Array<{ __typename?: "ShotGQL"; id: number; videoId: number }>;
}; };
}; };
@ -3338,13 +3347,11 @@ export type GetLoggedInUserQuery = {
activeVideoId?: number | null; activeVideoId?: number | null;
createdAt?: any | null; createdAt?: any | null;
updatedAt?: any | null; updatedAt?: any | null;
videosPrivateByDefault?: boolean | null;
} | null; } | null;
}; };
export type GetUserPlayTimeQueryVariables = Exact<{ export type GetUserPlayTimeQueryVariables = Exact<{
userId: Scalars["Int"]["input"]; userId: Scalars["Int"]["input"];
filters?: InputMaybe<VideoFilterInput>;
}>; }>;
export type GetUserPlayTimeQuery = { export type GetUserPlayTimeQuery = {
@ -3467,25 +3474,6 @@ export type DoesUsernameExistQuery = {
doesUsernameExist: boolean; doesUsernameExist: boolean;
}; };
export type EditUserMutationVariables = Exact<{
username?: InputMaybe<Scalars["String"]["input"]>;
fargoRating?: InputMaybe<Scalars["Int"]["input"]>;
videosPrivateByDefault?: InputMaybe<Scalars["Boolean"]["input"]>;
}>;
export type EditUserMutation = {
__typename?: "Mutation";
editUser: {
__typename?: "UserGQL";
id: number;
firebaseUid?: string | null;
username: string;
fargoRating?: number | null;
updatedAt?: any | null;
videosPrivateByDefault?: boolean | null;
};
};
export type GetStreamMonitoringDetailsQueryVariables = Exact<{ export type GetStreamMonitoringDetailsQueryVariables = Exact<{
videoId: Scalars["Int"]["input"]; videoId: Scalars["Int"]["input"];
debuggingJson?: InputMaybe<Scalars["JSON"]["input"]>; debuggingJson?: InputMaybe<Scalars["JSON"]["input"]>;
@ -3501,7 +3489,6 @@ export type GetStreamMonitoringDetailsQuery = {
elapsedTime?: number | null; elapsedTime?: number | null;
currentHomography?: { currentHomography?: {
__typename?: "HomographyInfoGQL"; __typename?: "HomographyInfoGQL";
frameIndex: number;
crop: { crop: {
__typename?: "BoundingBoxGQL"; __typename?: "BoundingBoxGQL";
left: number; left: number;
@ -3539,7 +3526,6 @@ export type GetStreamMonitoringDetailsQuery = {
} | null; } | null;
currentProcessing?: { currentProcessing?: {
__typename?: "VideoProcessingGQL"; __typename?: "VideoProcessingGQL";
id: number;
errors: Array<{ errors: Array<{
__typename?: "VideoProcessingErrorGQL"; __typename?: "VideoProcessingErrorGQL";
message: string; message: string;
@ -3917,70 +3903,6 @@ export type GetHeaderInfoByVideoIdQuery = {
}; };
}; };
export type FindPrerecordTableLayoutMutationVariables = Exact<{
b64Image: Scalars["String"]["input"];
videoId: Scalars["Int"]["input"];
}>;
export type FindPrerecordTableLayoutMutation = {
__typename?: "Mutation";
findPrerecordTableLayout?: {
__typename?: "HomographyInfoGQL";
frameIndex: number;
crop: {
__typename?: "BoundingBoxGQL";
left: number;
top: number;
width: number;
height: number;
};
pockets: Array<{
__typename?: "BoundingBoxGQL";
left: number;
top: number;
width: number;
height: number;
}>;
sourcePoints: {
__typename?: "PocketPointsGQL";
topLeft: { __typename?: "IntPoint2D"; x: number; y: number };
topSide: { __typename?: "IntPoint2D"; x: number; y: number };
topRight: { __typename?: "IntPoint2D"; x: number; y: number };
bottomLeft: { __typename?: "IntPoint2D"; x: number; y: number };
bottomSide: { __typename?: "IntPoint2D"; x: number; y: number };
bottomRight: { __typename?: "IntPoint2D"; x: number; y: number };
};
} | null;
};
export type HomographyInfoFragment = {
__typename?: "HomographyInfoGQL";
frameIndex: number;
crop: {
__typename?: "BoundingBoxGQL";
left: number;
top: number;
width: number;
height: number;
};
pockets: Array<{
__typename?: "BoundingBoxGQL";
left: number;
top: number;
width: number;
height: number;
}>;
sourcePoints: {
__typename?: "PocketPointsGQL";
topLeft: { __typename?: "IntPoint2D"; x: number; y: number };
topSide: { __typename?: "IntPoint2D"; x: number; y: number };
topRight: { __typename?: "IntPoint2D"; x: number; y: number };
bottomLeft: { __typename?: "IntPoint2D"; x: number; y: number };
bottomSide: { __typename?: "IntPoint2D"; x: number; y: number };
bottomRight: { __typename?: "IntPoint2D"; x: number; y: number };
};
};
export type CreateUploadStreamMutationVariables = Exact<{ export type CreateUploadStreamMutationVariables = Exact<{
videoMetadataInput: VideoMetadataInput; videoMetadataInput: VideoMetadataInput;
}>; }>;
@ -4170,7 +4092,6 @@ export const VideoCardFieldsFragmentDoc = gql`
updatedAt updatedAt
startTime startTime
endTime endTime
private
elapsedTime elapsedTime
screenshotUri screenshotUri
stream { stream {
@ -4185,7 +4106,6 @@ export const VideoCardFieldsFragmentDoc = gql`
name name
} }
currentProcessing { currentProcessing {
id
errors { errors {
message message
} }
@ -4314,49 +4234,6 @@ export const VideoDurationDataFragmentDoc = gql`
${PlaylistWithSegmentStartTimesFragmentDoc} ${PlaylistWithSegmentStartTimesFragmentDoc}
${StreamWithEndFramesFragmentDoc} ${StreamWithEndFramesFragmentDoc}
`; `;
export const HomographyInfoFragmentDoc = gql`
fragment HomographyInfo on HomographyInfoGQL {
frameIndex
crop {
left
top
width
height
}
pockets {
left
top
width
height
}
sourcePoints {
topLeft {
x
y
}
topSide {
x
y
}
topRight {
x
y
}
bottomLeft {
x
y
}
bottomSide {
x
y
}
bottomRight {
x
y
}
}
}
`;
export const GetAggregatedShotMetricsDocument = gql` export const GetAggregatedShotMetricsDocument = gql`
query GetAggregatedShotMetrics($aggregateInput: AggregateInputGQL!) { query GetAggregatedShotMetrics($aggregateInput: AggregateInputGQL!) {
getAggregatedShotMetrics(aggregateInput: $aggregateInput) { getAggregatedShotMetrics(aggregateInput: $aggregateInput) {
@ -4437,6 +4314,121 @@ export type GetAggregatedShotMetricsQueryResult = Apollo.QueryResult<
GetAggregatedShotMetricsQuery, GetAggregatedShotMetricsQuery,
GetAggregatedShotMetricsQueryVariables GetAggregatedShotMetricsQueryVariables
>; >;
export const CheckHomographyIsValidDocument = gql`
mutation checkHomographyIsValid($b64Image: String!, $videoId: Int!) {
checkHomographyIsValid(b64Image: $b64Image, videoId: $videoId) {
frameIndex
crop {
left
top
width
height
}
pockets {
left
top
width
height
}
sourcePoints {
topLeft {
x
y
}
topSide {
x
y
}
topRight {
x
y
}
bottomLeft {
x
y
}
bottomSide {
x
y
}
bottomRight {
x
y
}
}
destPoints {
topLeft {
x
y
}
topSide {
x
y
}
topRight {
x
y
}
bottomLeft {
x
y
}
bottomSide {
x
y
}
bottomRight {
x
y
}
}
}
}
`;
export type CheckHomographyIsValidMutationFn = Apollo.MutationFunction<
CheckHomographyIsValidMutation,
CheckHomographyIsValidMutationVariables
>;
/**
* __useCheckHomographyIsValidMutation__
*
* To run a mutation, you first call `useCheckHomographyIsValidMutation` within a React component and pass it any options that fit your needs.
* When your component renders, `useCheckHomographyIsValidMutation` returns a tuple that includes:
* - A mutate function that you can call at any time to execute the mutation
* - An object with fields that represent the current status of the mutation's execution
*
* @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
*
* @example
* const [checkHomographyIsValidMutation, { data, loading, error }] = useCheckHomographyIsValidMutation({
* variables: {
* b64Image: // value for 'b64Image'
* videoId: // value for 'videoId'
* },
* });
*/
export function useCheckHomographyIsValidMutation(
baseOptions?: Apollo.MutationHookOptions<
CheckHomographyIsValidMutation,
CheckHomographyIsValidMutationVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useMutation<
CheckHomographyIsValidMutation,
CheckHomographyIsValidMutationVariables
>(CheckHomographyIsValidDocument, options);
}
export type CheckHomographyIsValidMutationHookResult = ReturnType<
typeof useCheckHomographyIsValidMutation
>;
export type CheckHomographyIsValidMutationResult =
Apollo.MutationResult<CheckHomographyIsValidMutation>;
export type CheckHomographyIsValidMutationOptions = Apollo.BaseMutationOptions<
CheckHomographyIsValidMutation,
CheckHomographyIsValidMutationVariables
>;
export const GetDeployedConfigDocument = gql` export const GetDeployedConfigDocument = gql`
query getDeployedConfig { query getDeployedConfig {
getDeployedConfig { getDeployedConfig {
@ -4521,7 +4513,32 @@ export const GetFeedDocument = gql`
) { ) {
getUserVideos(limit: $limit, after: $after, filters: $filters) { getUserVideos(limit: $limit, after: $after, filters: $filters) {
videos { videos {
...VideoCardFields id
owner {
username
}
name
screenshotUri
totalShotsMade
totalShots
makePercentage
createdAt
updatedAt
startTime
endTime
elapsedTime
screenshotUri
stream {
id
isCompleted
}
tableSize
tags {
tagClasses {
name
}
name
}
} }
pageInfo { pageInfo {
hasNextPage hasNextPage
@ -4529,7 +4546,6 @@ export const GetFeedDocument = gql`
} }
} }
} }
${VideoCardFieldsFragmentDoc}
`; `;
/** /**
@ -4597,14 +4613,8 @@ export const GetVideoFeedDocument = gql`
$limit: Int! = 5 $limit: Int! = 5
$after: String = null $after: String = null
$filters: VideoFilterInput = null $filters: VideoFilterInput = null
$includeCallersVideos: Boolean = null
) { ) {
getFeedVideos( getFeedVideos(limit: $limit, after: $after, filters: $filters) {
limit: $limit
after: $after
filters: $filters
includeCallersVideos: $includeCallersVideos
) {
videos { videos {
...VideoCardFields ...VideoCardFields
} }
@ -4632,7 +4642,6 @@ export const GetVideoFeedDocument = gql`
* limit: // value for 'limit' * limit: // value for 'limit'
* after: // value for 'after' * after: // value for 'after'
* filters: // value for 'filters' * filters: // value for 'filters'
* includeCallersVideos: // value for 'includeCallersVideos'
* }, * },
* }); * });
*/ */
@ -5081,15 +5090,12 @@ export const GetShotsWithJustIdsDocument = gql`
$filterInput: FilterInput! $filterInput: FilterInput!
$shotsOrdering: GetShotsOrdering $shotsOrdering: GetShotsOrdering
$limit: Int $limit: Int
$countRespectsLimit: Boolean
) { ) {
getOrderedShots( getOrderedShots(
filterInput: $filterInput filterInput: $filterInput
shotsOrdering: $shotsOrdering shotsOrdering: $shotsOrdering
limit: $limit limit: $limit
countRespectsLimit: $countRespectsLimit
) { ) {
count
shots { shots {
id id
videoId videoId
@ -5113,7 +5119,6 @@ export const GetShotsWithJustIdsDocument = gql`
* filterInput: // value for 'filterInput' * filterInput: // value for 'filterInput'
* shotsOrdering: // value for 'shotsOrdering' * shotsOrdering: // value for 'shotsOrdering'
* limit: // value for 'limit' * limit: // value for 'limit'
* countRespectsLimit: // value for 'countRespectsLimit'
* }, * },
* }); * });
*/ */
@ -5557,7 +5562,6 @@ export const GetLoggedInUserDocument = gql`
activeVideoId activeVideoId
createdAt createdAt
updatedAt updatedAt
videosPrivateByDefault
} }
} }
`; `;
@ -5627,8 +5631,8 @@ export type GetLoggedInUserQueryResult = Apollo.QueryResult<
GetLoggedInUserQueryVariables GetLoggedInUserQueryVariables
>; >;
export const GetUserPlayTimeDocument = gql` export const GetUserPlayTimeDocument = gql`
query GetUserPlayTime($userId: Int!, $filters: VideoFilterInput) { query GetUserPlayTime($userId: Int!) {
getPlayTime(userId: $userId, filters: $filters) { getPlayTime(userId: $userId) {
totalSeconds totalSeconds
} }
} }
@ -5647,7 +5651,6 @@ export const GetUserPlayTimeDocument = gql`
* const { data, loading, error } = useGetUserPlayTimeQuery({ * const { data, loading, error } = useGetUserPlayTimeQuery({
* variables: { * variables: {
* userId: // value for 'userId' * userId: // value for 'userId'
* filters: // value for 'filters'
* }, * },
* }); * });
*/ */
@ -6210,70 +6213,6 @@ export type DoesUsernameExistQueryResult = Apollo.QueryResult<
DoesUsernameExistQuery, DoesUsernameExistQuery,
DoesUsernameExistQueryVariables DoesUsernameExistQueryVariables
>; >;
export const EditUserDocument = gql`
mutation editUser(
$username: String
$fargoRating: Int
$videosPrivateByDefault: Boolean
) {
editUser(
input: {
username: $username
fargoRating: $fargoRating
videosPrivateByDefault: $videosPrivateByDefault
}
) {
id
firebaseUid
username
fargoRating
updatedAt
videosPrivateByDefault
}
}
`;
export type EditUserMutationFn = Apollo.MutationFunction<
EditUserMutation,
EditUserMutationVariables
>;
/**
* __useEditUserMutation__
*
* To run a mutation, you first call `useEditUserMutation` within a React component and pass it any options that fit your needs.
* When your component renders, `useEditUserMutation` returns a tuple that includes:
* - A mutate function that you can call at any time to execute the mutation
* - An object with fields that represent the current status of the mutation's execution
*
* @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
*
* @example
* const [editUserMutation, { data, loading, error }] = useEditUserMutation({
* variables: {
* username: // value for 'username'
* fargoRating: // value for 'fargoRating'
* videosPrivateByDefault: // value for 'videosPrivateByDefault'
* },
* });
*/
export function useEditUserMutation(
baseOptions?: Apollo.MutationHookOptions<
EditUserMutation,
EditUserMutationVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useMutation<EditUserMutation, EditUserMutationVariables>(
EditUserDocument,
options,
);
}
export type EditUserMutationHookResult = ReturnType<typeof useEditUserMutation>;
export type EditUserMutationResult = Apollo.MutationResult<EditUserMutation>;
export type EditUserMutationOptions = Apollo.BaseMutationOptions<
EditUserMutation,
EditUserMutationVariables
>;
export const GetStreamMonitoringDetailsDocument = gql` export const GetStreamMonitoringDetailsDocument = gql`
query GetStreamMonitoringDetails($videoId: Int!, $debuggingJson: JSON) { query GetStreamMonitoringDetails($videoId: Int!, $debuggingJson: JSON) {
getVideo(videoId: $videoId, debuggingJson: $debuggingJson) { getVideo(videoId: $videoId, debuggingJson: $debuggingJson) {
@ -6282,7 +6221,44 @@ export const GetStreamMonitoringDetailsDocument = gql`
makePercentage makePercentage
elapsedTime elapsedTime
currentHomography { currentHomography {
...HomographyInfo crop {
left
top
width
height
}
pockets {
left
top
width
height
}
sourcePoints {
topLeft {
x
y
}
topSide {
x
y
}
topRight {
x
y
}
bottomLeft {
x
y
}
bottomSide {
x
y
}
bottomRight {
x
y
}
}
} }
stream { stream {
id id
@ -6295,7 +6271,6 @@ export const GetStreamMonitoringDetailsDocument = gql`
initPlaylistUploadStatus initPlaylistUploadStatus
} }
currentProcessing { currentProcessing {
id
errors { errors {
message message
startSegmentIndex startSegmentIndex
@ -6304,7 +6279,6 @@ export const GetStreamMonitoringDetailsDocument = gql`
} }
} }
} }
${HomographyInfoFragmentDoc}
`; `;
/** /**
@ -6754,7 +6728,45 @@ export const GetVideoDocument = gql`
segmentDurations segmentDurations
} }
homographyHistory { homographyHistory {
...HomographyInfo frameIndex
crop {
left
top
width
height
}
pockets {
left
top
width
height
}
sourcePoints {
topLeft {
x
y
}
topSide {
x
y
}
topRight {
x
y
}
bottomLeft {
x
y
}
bottomSide {
x
y
}
bottomRight {
x
y
}
}
} }
stream { stream {
id id
@ -6771,7 +6783,6 @@ export const GetVideoDocument = gql`
} }
} }
} }
${HomographyInfoFragmentDoc}
`; `;
/** /**
@ -7205,59 +7216,6 @@ export type GetHeaderInfoByVideoIdQueryResult = Apollo.QueryResult<
GetHeaderInfoByVideoIdQuery, GetHeaderInfoByVideoIdQuery,
GetHeaderInfoByVideoIdQueryVariables GetHeaderInfoByVideoIdQueryVariables
>; >;
export const FindPrerecordTableLayoutDocument = gql`
mutation FindPrerecordTableLayout($b64Image: String!, $videoId: Int!) {
findPrerecordTableLayout(b64Image: $b64Image, videoId: $videoId) {
...HomographyInfo
}
}
${HomographyInfoFragmentDoc}
`;
export type FindPrerecordTableLayoutMutationFn = Apollo.MutationFunction<
FindPrerecordTableLayoutMutation,
FindPrerecordTableLayoutMutationVariables
>;
/**
* __useFindPrerecordTableLayoutMutation__
*
* To run a mutation, you first call `useFindPrerecordTableLayoutMutation` within a React component and pass it any options that fit your needs.
* When your component renders, `useFindPrerecordTableLayoutMutation` returns a tuple that includes:
* - A mutate function that you can call at any time to execute the mutation
* - An object with fields that represent the current status of the mutation's execution
*
* @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
*
* @example
* const [findPrerecordTableLayoutMutation, { data, loading, error }] = useFindPrerecordTableLayoutMutation({
* variables: {
* b64Image: // value for 'b64Image'
* videoId: // value for 'videoId'
* },
* });
*/
export function useFindPrerecordTableLayoutMutation(
baseOptions?: Apollo.MutationHookOptions<
FindPrerecordTableLayoutMutation,
FindPrerecordTableLayoutMutationVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useMutation<
FindPrerecordTableLayoutMutation,
FindPrerecordTableLayoutMutationVariables
>(FindPrerecordTableLayoutDocument, options);
}
export type FindPrerecordTableLayoutMutationHookResult = ReturnType<
typeof useFindPrerecordTableLayoutMutation
>;
export type FindPrerecordTableLayoutMutationResult =
Apollo.MutationResult<FindPrerecordTableLayoutMutation>;
export type FindPrerecordTableLayoutMutationOptions =
Apollo.BaseMutationOptions<
FindPrerecordTableLayoutMutation,
FindPrerecordTableLayoutMutationVariables
>;
export const CreateUploadStreamDocument = gql` export const CreateUploadStreamDocument = gql`
mutation CreateUploadStream($videoMetadataInput: VideoMetadataInput!) { mutation CreateUploadStream($videoMetadataInput: VideoMetadataInput!) {
createUploadStream(videoMetadata: $videoMetadataInput) { createUploadStream(videoMetadata: $videoMetadataInput) {

View File

@ -0,0 +1,69 @@
mutation checkHomographyIsValid($b64Image: String!, $videoId: Int!) {
checkHomographyIsValid(b64Image: $b64Image, videoId: $videoId) {
frameIndex
crop {
left
top
width
height
}
pockets {
left
top
width
height
}
sourcePoints {
topLeft {
x
y
}
topSide {
x
y
}
topRight {
x
y
}
bottomLeft {
x
y
}
bottomSide {
x
y
}
bottomRight {
x
y
}
}
destPoints {
topLeft {
x
y
}
topSide {
x
y
}
topRight {
x
y
}
bottomLeft {
x
y
}
bottomSide {
x
y
}
bottomRight {
x
y
}
}
}
}

View File

@ -6,7 +6,32 @@ query GetFeed(
) { ) {
getUserVideos(limit: $limit, after: $after, filters: $filters) { getUserVideos(limit: $limit, after: $after, filters: $filters) {
videos { videos {
...VideoCardFields id
owner {
username
}
name
screenshotUri
totalShotsMade
totalShots
makePercentage
createdAt
updatedAt
startTime
endTime
elapsedTime
screenshotUri
stream {
id
isCompleted
}
tableSize
tags {
tagClasses {
name
}
name
}
} }
pageInfo { pageInfo {
hasNextPage hasNextPage
@ -31,7 +56,6 @@ fragment VideoCardFields on VideoGQL {
updatedAt updatedAt
startTime startTime
endTime endTime
private
elapsedTime elapsedTime
screenshotUri screenshotUri
stream { stream {
@ -46,7 +70,6 @@ fragment VideoCardFields on VideoGQL {
name name
} }
currentProcessing { currentProcessing {
id
errors { errors {
message message
} }
@ -61,14 +84,8 @@ query GetVideoFeed(
$limit: Int! = 5 $limit: Int! = 5
$after: String = null $after: String = null
$filters: VideoFilterInput = null $filters: VideoFilterInput = null
$includeCallersVideos: Boolean = null
) { ) {
getFeedVideos( getFeedVideos(limit: $limit, after: $after, filters: $filters) {
limit: $limit
after: $after
filters: $filters
includeCallersVideos: $includeCallersVideos
) {
videos { videos {
...VideoCardFields ...VideoCardFields
} }

View File

@ -66,15 +66,12 @@ query GetShotsWithJustIds(
$filterInput: FilterInput! $filterInput: FilterInput!
$shotsOrdering: GetShotsOrdering $shotsOrdering: GetShotsOrdering
$limit: Int $limit: Int
$countRespectsLimit: Boolean
) { ) {
getOrderedShots( getOrderedShots(
filterInput: $filterInput filterInput: $filterInput
shotsOrdering: $shotsOrdering shotsOrdering: $shotsOrdering
limit: $limit limit: $limit
countRespectsLimit: $countRespectsLimit
) { ) {
count
shots { shots {
id id
videoId videoId

View File

@ -41,12 +41,11 @@ query getLoggedInUser {
activeVideoId activeVideoId
createdAt createdAt
updatedAt updatedAt
videosPrivateByDefault
} }
} }
query GetUserPlayTime($userId: Int!, $filters: VideoFilterInput) { query GetUserPlayTime($userId: Int!) {
getPlayTime(userId: $userId, filters: $filters) { getPlayTime(userId: $userId) {
totalSeconds totalSeconds
} }
} }
@ -136,24 +135,3 @@ query getUserFollowingFollowers {
query doesUsernameExist($candidateUsername: String!) { query doesUsernameExist($candidateUsername: String!) {
doesUsernameExist(candidateUsername: $candidateUsername) doesUsernameExist(candidateUsername: $candidateUsername)
} }
mutation editUser(
$username: String
$fargoRating: Int
$videosPrivateByDefault: Boolean
) {
editUser(
input: {
username: $username
fargoRating: $fargoRating
videosPrivateByDefault: $videosPrivateByDefault
}
) {
id
firebaseUid
username
fargoRating
updatedAt
videosPrivateByDefault
}
}

View File

@ -5,7 +5,44 @@ query GetStreamMonitoringDetails($videoId: Int!, $debuggingJson: JSON) {
makePercentage makePercentage
elapsedTime elapsedTime
currentHomography { currentHomography {
...HomographyInfo crop {
left
top
width
height
}
pockets {
left
top
width
height
}
sourcePoints {
topLeft {
x
y
}
topSide {
x
y
}
topRight {
x
y
}
bottomLeft {
x
y
}
bottomSide {
x
y
}
bottomRight {
x
y
}
}
} }
stream { stream {
id id
@ -18,7 +55,6 @@ query GetStreamMonitoringDetails($videoId: Int!, $debuggingJson: JSON) {
initPlaylistUploadStatus initPlaylistUploadStatus
} }
currentProcessing { currentProcessing {
id
errors { errors {
message message
startSegmentIndex startSegmentIndex
@ -118,7 +154,45 @@ query GetVideo($videoId: Int!) {
segmentDurations segmentDurations
} }
homographyHistory { homographyHistory {
...HomographyInfo frameIndex
crop {
left
top
width
height
}
pockets {
left
top
width
height
}
sourcePoints {
topLeft {
x
y
}
topSide {
x
y
}
topRight {
x
y
}
bottomLeft {
x
y
}
bottomSide {
x
y
}
bottomRight {
x
y
}
}
} }
stream { stream {
id id
@ -214,51 +288,3 @@ query GetHeaderInfoByVideoId($videoId: Int!) {
startTime startTime
} }
} }
mutation FindPrerecordTableLayout($b64Image: String!, $videoId: Int!) {
findPrerecordTableLayout(b64Image: $b64Image, videoId: $videoId) {
...HomographyInfo
}
}
fragment HomographyInfo on HomographyInfoGQL {
frameIndex
crop {
left
top
width
height
}
pockets {
left
top
width
height
}
sourcePoints {
topLeft {
x
y
}
topSide {
x
y
}
topRight {
x
y
}
bottomLeft {
x
y
}
bottomSide {
x
y
}
bottomRight {
x
y
}
}
}

View File

@ -46,7 +46,7 @@ type Query {
limit: Int = 100 limit: Int = 100
after: String = null after: String = null
): UserRelationshipsResult! ): UserRelationshipsResult!
getPlayTime(userId: Int!, filters: VideoFilterInput = null): UserPlayTimeGQL! getPlayTime(userId: Int!): UserPlayTimeGQL!
getUserVideos( getUserVideos(
userId: Int = null userId: Int = null
limit: Int! = 5 limit: Int! = 5
@ -59,7 +59,6 @@ type Query {
getFeedVideos( getFeedVideos(
limit: Int! = 5 limit: Int! = 5
after: String = null after: String = null
includeCallersVideos: Boolean = true
filters: VideoFilterInput = null filters: VideoFilterInput = null
): VideoHistoryGQL! ): VideoHistoryGQL!
} }
@ -401,7 +400,6 @@ type UserGQL {
profileImageUri: String profileImageUri: String
createdAt: DateTime createdAt: DateTime
updatedAt: DateTime updatedAt: DateTime
videosPrivateByDefault: Boolean
following: [UserGQL!] following: [UserGQL!]
followers: [UserGQL!] followers: [UserGQL!]
} }
@ -439,7 +437,6 @@ type VideoGQL {
elapsedTime: Float elapsedTime: Float
framesPerSecond: Float! framesPerSecond: Float!
tableSize: Float! tableSize: Float!
private: Boolean!
stream: UploadStreamGQL stream: UploadStreamGQL
playlist: HLSPlaylistGQL playlist: HLSPlaylistGQL
tags: [VideoTag!]! tags: [VideoTag!]!
@ -512,7 +509,6 @@ type VideoTagClass {
} }
type HomographyInfoGQL { type HomographyInfoGQL {
id: Int!
frameIndex: Int! frameIndex: Int!
crop: BoundingBoxGQL! crop: BoundingBoxGQL!
pockets: [BoundingBoxGQL!]! pockets: [BoundingBoxGQL!]!
@ -542,7 +538,6 @@ type IntPoint2D {
} }
type VideoProcessingGQL { type VideoProcessingGQL {
id: Int!
errors: [VideoProcessingErrorGQL!]! errors: [VideoProcessingErrorGQL!]!
status: ProcessingStatusEnum! status: ProcessingStatusEnum!
statuses: [VideoProcessingStatusGQL!]! statuses: [VideoProcessingStatusGQL!]!
@ -625,13 +620,6 @@ type UserPlayTimeGQL {
totalSeconds: Float! totalSeconds: Float!
} }
input VideoFilterInput {
isStreamCompleted: Boolean = null
requireCursorCompletion: Boolean! = true
createdAt: DateRangeFilter = null
excludeVideosWithNoShots: Boolean = null
}
type VideoHistoryGQL { type VideoHistoryGQL {
videos: [VideoGQL!]! videos: [VideoGQL!]!
pageInfo: PageInfoGQL! pageInfo: PageInfoGQL!
@ -642,6 +630,11 @@ type PageInfoGQL {
endCursor: String endCursor: String
} }
input VideoFilterInput {
isStreamCompleted: Boolean = null
requireCursorCompletion: Boolean! = true
}
type TagGQL { type TagGQL {
name: String! name: String!
id: Int! id: Int!
@ -675,7 +668,7 @@ type Mutation {
editUser(input: EditUserInputGQL!): UserGQL! editUser(input: EditUserInputGQL!): UserGQL!
followUser(followedUserId: Int!): UserGQL! followUser(followedUserId: Int!): UserGQL!
unfollowUser(followedUserId: Int!): UserGQL! unfollowUser(followedUserId: Int!): UserGQL!
findPrerecordTableLayout(b64Image: String!, videoId: Int!): HomographyInfoGQL checkHomographyIsValid(b64Image: String!, videoId: Int!): HomographyInfoGQL
createUploadStream( createUploadStream(
videoMetadata: VideoMetadataInput! videoMetadata: VideoMetadataInput!
): CreateUploadStreamReturn! ): CreateUploadStreamReturn!
@ -764,7 +757,6 @@ type TooManyProfileImageUploadsErr {
input EditUserInputGQL { input EditUserInputGQL {
username: String = null username: String = null
fargoRating: Int = null fargoRating: Int = null
videosPrivateByDefault: Boolean = null
} }
type CreateUploadStreamReturn { type CreateUploadStreamReturn {
@ -779,7 +771,6 @@ input VideoMetadataInput {
tableSize: Float = null tableSize: Float = null
lastIntendedSegmentBound: Int = null lastIntendedSegmentBound: Int = null
streamSegmentType: StreamSegmentTypeEnum = null streamSegmentType: StreamSegmentTypeEnum = null
private: Boolean = null
endStream: Boolean! = false endStream: Boolean! = false
resolution: VideoResolution = null resolution: VideoResolution = null
framesPerSecond: Float = null framesPerSecond: Float = null