Compare commits

...

28 Commits

Author SHA1 Message Date
9f26b5aa0f Revert "Merge pull request 'Add functionality for retiring tags' (#165) from mk/retire-tags-gql into master"
All checks were successful
Tests / Tests (pull_request) Successful in 8s
This reverts commit 70303b9363, reversing
changes made to 7a9d2545c4.
2025-03-19 14:05:41 -07:00
70303b9363 Merge pull request 'Add functionality for retiring tags' (#165) from mk/retire-tags-gql into master
Reviewed-on: #165
2025-03-17 15:09:54 -06:00
9ee1422d3e Add functionality for retiring tags
All checks were successful
Tests / Tests (pull_request) Successful in 7s
2025-03-17 14:09:19 -07:00
7a9d2545c4 Merge pull request 'Add average time field to video in feed operation' (#164) from loewy/add-average-time-per-shot-in-feed-operation into master
Reviewed-on: #164
2025-03-11 14:42:24 -06:00
c561ea20ab add average difficulty
All checks were successful
Tests / Tests (pull_request) Successful in 7s
2025-03-11 13:41:37 -07:00
7ce0c058b7 add average time field to video in feed operation
All checks were successful
Tests / Tests (pull_request) Successful in 8s
2025-03-11 13:10:34 -07:00
c399edd882 Merge pull request 'Add average difficulty in VideoGql' (#163) from loewy/average-difficulty-in-video-gql into master
Reviewed-on: #163
2025-03-07 17:18:36 -07:00
32d8cb0d41 add average diff in videogql
All checks were successful
Tests / Tests (pull_request) Successful in 20s
2025-03-07 16:16:42 -08:00
9d912ed21e Add time to segment information 2025-02-26 20:30:39 -07:00
0bcfd32b14 Add start segment and end segment client side fields 2025-02-26 19:29:15 -07:00
9b27d288da Merge pull request 'Add shots to runs operation to get the id' (#162) from loewy/add-shots-in-runs into master
Reviewed-on: #162
2025-02-20 15:02:43 -07:00
b0f94f5ea8 add shots to runs to get id
All checks were successful
Tests / Tests (pull_request) Successful in 9s
2025-02-20 12:37:52 -08:00
de653ba54c Merge pull request 'Add tagClasses to getUserTags operation' (#161) from loewy/getUserTags-operation into master
Reviewed-on: #161
2025-02-05 13:51:14 -07:00
2657628a54 add tagClasses to operation
All checks were successful
Tests / Tests (pull_request) Successful in 8s
2025-02-05 12:48:56 -08:00
cd20cfcb40 Add get runs for highlights 2025-02-04 20:57:22 -07:00
2657a9baf7 Merge pull request 'Return tag classes with tag' (#160) from kat/return-tag-classes-with-tag into master
Reviewed-on: #160
2025-02-04 19:16:15 -07:00
9bb4b7c513 Return tag classes with tag
All checks were successful
Tests / Tests (pull_request) Successful in 15s
2025-02-04 19:14:55 -07:00
a5050ed08d Merge pull request 'Revert previous commit 021cd35278ea74f6971ae021b33ddc1bba020e6d' (#159) from loewy/revert-adding-group into master
Reviewed-on: #159
2025-02-04 15:42:41 -07:00
b9e26243e9 revert
All checks were successful
Tests / Tests (pull_request) Successful in 9s
2025-02-04 14:41:11 -08:00
021cd35278 Merge pull request 'Add group in return for user tags' (#158) from loewy/add-group-to-get-user-tags into master
Reviewed-on: #158
2025-02-04 14:48:11 -07:00
8dda81236a add group to return for user tags
All checks were successful
Tests / Tests (pull_request) Successful in 16s
2025-02-04 13:44:58 -08:00
c7ff615fe4 Create tags in video metadata (#157)
Reviewed-on: #157
2025-02-03 16:43:25 -07:00
365cbb5f70 Merge pull request 'Create upload stream named fragment' (#156) from kat/named-fragment-mini-video into master
Reviewed-on: #156
Reviewed-by: Ivan Malison <ivanmalison@gmail.com>
2025-01-28 21:31:23 -07:00
194d0dcd22 Create upload stream named fragment
All checks were successful
Tests / Tests (pull_request) Successful in 9s
2025-01-28 21:28:31 -07:00
8fcaa1397a Merge pull request 'Add query to get info for banner component' (#155) from loewy/get-banner-info-by-video-id into master
Reviewed-on: #155
2025-01-21 14:20:42 -07:00
e8e318b919 add query to get info for banner component
All checks were successful
Tests / Tests (pull_request) Successful in 8s
2025-01-20 15:04:23 -08:00
ff0a11ea0d Merge pull request 'Add last intended segment bound in fragment for VideoFeed stream obj' (#154) from loewy/add-last-intended-segment-bound-to-stream into master
Reviewed-on: #154
2025-01-16 23:03:42 -07:00
84192d1387 add last intended segment bound
All checks were successful
Tests / Tests (pull_request) Successful in 9s
2025-01-16 22:01:57 -08:00
9 changed files with 411 additions and 24 deletions

View File

@@ -1,9 +1,16 @@
# see: https://www.apollographql.com/docs/react/local-state/managing-state-with-field-policies/
directive @client on FIELD
type SegmentInfo {
index: Int!
time: Float!
}
extend type ShotGQL {
startTime: Float!
endTime: Float!
startSegment: SegmentInfo!
endSegment: SegmentInfo!
}
extend type UploadStreamGQL {

View File

@@ -2556,6 +2556,12 @@ export type SegmentEndFramesGql = {
segmentEndFrames: Array<Scalars["Int"]["output"]>;
};
export type SegmentInfo = {
__typename?: "SegmentInfo";
index: Scalars["Int"]["output"];
time: Scalars["Float"]["output"];
};
export type SegmentStartTimesGql = {
__typename?: "SegmentStartTimesGQL";
id: Scalars["Int"]["output"];
@@ -2608,6 +2614,7 @@ export type ShotGql = {
createdAt?: Maybe<Scalars["DateTime"]["output"]>;
cueObjectFeatures?: Maybe<CueObjectFeaturesGql>;
endFrame: Scalars["Int"]["output"];
endSegment: SegmentInfo;
endTime: Scalars["Float"]["output"];
falsePositiveScore?: Maybe<Scalars["Float"]["output"]>;
id: Scalars["Int"]["output"];
@@ -2617,6 +2624,7 @@ export type ShotGql = {
runFeatures?: Maybe<RunFeaturesGql>;
serializedShotPaths?: Maybe<SerializedShotPathsGql>;
startFrame: Scalars["Int"]["output"];
startSegment: SegmentInfo;
startTime: Scalars["Float"]["output"];
updatedAt?: Maybe<Scalars["DateTime"]["output"]>;
user?: Maybe<UserGql>;
@@ -2708,13 +2716,19 @@ export type SuccessfulAddAddShotAnnotationErrors =
| AddShotAnnotationErrors
| SuccessfulAdd;
export type TagGql = {
__typename?: "TagGQL";
group?: Maybe<Scalars["String"]["output"]>;
export type TagClassGql = {
__typename?: "TagClassGQL";
id: Scalars["Int"]["output"];
name: Scalars["String"]["output"];
};
export type TagGql = {
__typename?: "TagGQL";
id: Scalars["Int"]["output"];
name: Scalars["String"]["output"];
tagClasses?: Maybe<Array<TagClassGql>>;
};
export type TargetMetricsGql = {
__typename?: "TargetMetricsGQL";
averageDifficulty?: Maybe<Scalars["Float"]["output"]>;
@@ -2869,6 +2883,7 @@ export type VideoFilterInput = {
export type VideoGql = {
__typename?: "VideoGQL";
averageDifficulty?: Maybe<Scalars["Float"]["output"]>;
averageTimeBetweenShots?: Maybe<Scalars["Float"]["output"]>;
createdAt?: Maybe<Scalars["DateTime"]["output"]>;
currentHomography?: Maybe<HomographyInfoGql>;
@@ -2906,6 +2921,7 @@ export type VideoMetadataInput = {
endStream?: Scalars["Boolean"]["input"];
endTime?: InputMaybe<Scalars["DateTime"]["input"]>;
framesPerSecond?: InputMaybe<Scalars["Float"]["input"]>;
/** @deprecated `game_type` is deprecated. Use `tags` instead. */
gameType?: InputMaybe<Scalars["String"]["input"]>;
lastIntendedSegmentBound?: InputMaybe<Scalars["Int"]["input"]>;
private?: InputMaybe<Scalars["Boolean"]["input"]>;
@@ -2913,6 +2929,8 @@ export type VideoMetadataInput = {
startTime?: InputMaybe<Scalars["DateTime"]["input"]>;
streamSegmentType?: InputMaybe<StreamSegmentTypeEnum>;
tableSize?: InputMaybe<Scalars["Float"]["input"]>;
/** A list of tags associated with the video. Replace `game_type` */
tags?: InputMaybe<Array<VideoTagInput>>;
videoName?: InputMaybe<Scalars["String"]["input"]>;
};
@@ -3029,6 +3047,8 @@ export type GetFeedQuery = {
totalShotsMade: number;
totalShots: number;
makePercentage: number;
averageTimeBetweenShots?: number | null;
averageDifficulty?: number | null;
createdAt?: any | null;
updatedAt?: any | null;
startTime?: any | null;
@@ -3045,6 +3065,7 @@ export type GetFeedQuery = {
stream?: {
__typename?: "UploadStreamGQL";
id: string;
lastIntendedSegmentBound?: number | null;
isCompleted: boolean;
} | null;
tags: Array<{
@@ -3082,6 +3103,8 @@ export type VideoCardFieldsFragment = {
totalShotsMade: number;
totalShots: number;
makePercentage: number;
averageTimeBetweenShots?: number | null;
averageDifficulty?: number | null;
createdAt?: any | null;
updatedAt?: any | null;
startTime?: any | null;
@@ -3098,6 +3121,7 @@ export type VideoCardFieldsFragment = {
stream?: {
__typename?: "UploadStreamGQL";
id: string;
lastIntendedSegmentBound?: number | null;
isCompleted: boolean;
} | null;
tags: Array<{
@@ -3138,6 +3162,8 @@ export type GetVideoFeedQuery = {
totalShotsMade: number;
totalShots: number;
makePercentage: number;
averageTimeBetweenShots?: number | null;
averageDifficulty?: number | null;
createdAt?: any | null;
updatedAt?: any | null;
startTime?: any | null;
@@ -3154,6 +3180,7 @@ export type GetVideoFeedQuery = {
stream?: {
__typename?: "UploadStreamGQL";
id: string;
lastIntendedSegmentBound?: number | null;
isCompleted: boolean;
} | null;
tags: Array<{
@@ -3377,6 +3404,29 @@ export type GetMedalsQuery = {
};
};
export type GetRunsForHighlightsQueryVariables = Exact<{
filterInput: RunFilterInput;
runIds?: InputMaybe<Array<Scalars["Int"]["input"]> | Scalars["Int"]["input"]>;
runsOrdering?: InputMaybe<GetRunsOrdering>;
}>;
export type GetRunsForHighlightsQuery = {
__typename?: "Query";
getRuns: {
__typename?: "GetRunsResult";
count?: number | null;
runIds: Array<number>;
runs: Array<{
__typename?: "RunGQL";
id: number;
runLength: number;
userId: number;
videoId: number;
shots: Array<{ __typename?: "ShotGQL"; videoId: number; id: number }>;
}>;
};
};
export type GetSerializedShotPathsQueryVariables = Exact<{
filterInput: FilterInput;
}>;
@@ -3504,6 +3554,8 @@ export type GetShotsWithMetadataFilterResultQuery = {
falsePositiveScore?: number | null;
createdAt?: any | null;
updatedAt?: any | null;
startSegment: { __typename?: "SegmentInfo"; index: number; time: number };
endSegment: { __typename?: "SegmentInfo"; index: number; time: number };
user?: { __typename?: "UserGQL"; id: number } | null;
cueObjectFeatures?: {
__typename?: "CueObjectFeaturesGQL";
@@ -3571,6 +3623,8 @@ export type GetShotsWithMetadataQuery = {
falsePositiveScore?: number | null;
createdAt?: any | null;
updatedAt?: any | null;
startSegment: { __typename?: "SegmentInfo"; index: number; time: number };
endSegment: { __typename?: "SegmentInfo"; index: number; time: number };
user?: { __typename?: "UserGQL"; id: number } | null;
cueObjectFeatures?: {
__typename?: "CueObjectFeaturesGQL";
@@ -3631,6 +3685,8 @@ export type GetShotsByIdsQuery = {
falsePositiveScore?: number | null;
createdAt?: any | null;
updatedAt?: any | null;
startSegment: { __typename?: "SegmentInfo"; index: number; time: number };
endSegment: { __typename?: "SegmentInfo"; index: number; time: number };
user?: { __typename?: "UserGQL"; id: number } | null;
cueObjectFeatures?: {
__typename?: "CueObjectFeaturesGQL";
@@ -3680,6 +3736,8 @@ export type ShotWithAllFeaturesFragment = {
falsePositiveScore?: number | null;
createdAt?: any | null;
updatedAt?: any | null;
startSegment: { __typename?: "SegmentInfo"; index: number; time: number };
endSegment: { __typename?: "SegmentInfo"; index: number; time: number };
user?: { __typename?: "UserGQL"; id: number } | null;
cueObjectFeatures?: {
__typename?: "CueObjectFeaturesGQL";
@@ -3742,6 +3800,8 @@ export type EditShotMutation = {
falsePositiveScore?: number | null;
createdAt?: any | null;
updatedAt?: any | null;
startSegment: { __typename?: "SegmentInfo"; index: number; time: number };
endSegment: { __typename?: "SegmentInfo"; index: number; time: number };
user?: { __typename?: "UserGQL"; id: number } | null;
cueObjectFeatures?: {
__typename?: "CueObjectFeaturesGQL";
@@ -3924,7 +3984,16 @@ export type GetUserTagsQueryVariables = Exact<{ [key: string]: never }>;
export type GetUserTagsQuery = {
__typename?: "Query";
getUserTags: Array<{ __typename?: "TagGQL"; id: number; name: string }>;
getUserTags: Array<{
__typename?: "TagGQL";
id: number;
name: string;
tagClasses?: Array<{
__typename?: "TagClassGQL";
id: number;
name: string;
}> | null;
}>;
};
export type FollowUserMutationVariables = Exact<{
@@ -4474,6 +4543,30 @@ export type GetHeaderInfoByVideoIdQuery = {
};
};
export type GetBannerInfoByVideoIdQueryVariables = Exact<{
videoId: Scalars["Int"]["input"];
}>;
export type GetBannerInfoByVideoIdQuery = {
__typename?: "Query";
getVideo: {
__typename?: "VideoGQL";
id: number;
name?: string | null;
stream?: {
__typename?: "UploadStreamGQL";
id: string;
lastIntendedSegmentBound?: number | null;
} | null;
owner?: { __typename?: "UserGQL"; id: number } | null;
currentProcessing?: {
__typename?: "VideoProcessingGQL";
id: number;
status: ProcessingStatusEnum;
} | null;
};
};
export type FindPrerecordTableLayoutMutationVariables = Exact<{
b64Image: Scalars["String"]["input"];
videoId: Scalars["Int"]["input"];
@@ -4681,6 +4774,20 @@ export type GetUploadStreamsQuery = {
};
};
export type UploadStreamWithDetailsFragment = {
__typename?: "VideoGQL";
id: number;
name?: string | null;
startTime?: any | null;
stream?: {
__typename?: "UploadStreamGQL";
isCompleted: boolean;
lastIntendedSegmentBound?: number | null;
uploadCompletionCursor: number;
uploadsCompleted: number;
} | null;
};
export type GetUploadStreamsWithDetailsQueryVariables = Exact<{
limit?: Scalars["Int"]["input"];
after?: InputMaybe<Scalars["String"]["input"]>;
@@ -4725,6 +4832,8 @@ export const VideoCardFieldsFragmentDoc = gql`
totalShotsMade
totalShots
makePercentage
averageTimeBetweenShots
averageDifficulty
createdAt
updatedAt
startTime
@@ -4734,6 +4843,7 @@ export const VideoCardFieldsFragmentDoc = gql`
screenshotUri
stream {
id
lastIntendedSegmentBound
isCompleted
}
tableSize
@@ -4769,6 +4879,14 @@ export const ShotWithAllFeaturesFragmentDoc = gql`
endFrame
startTime @client
endTime @client
startSegment @client {
index
time
}
endSegment @client {
index
time
}
user {
id
}
@@ -4938,6 +5056,19 @@ export const HomographyInfoFragmentDoc = gql`
}
}
`;
export const UploadStreamWithDetailsFragmentDoc = gql`
fragment UploadStreamWithDetails on VideoGQL {
id
name
startTime
stream {
isCompleted
lastIntendedSegmentBound
uploadCompletionCursor
uploadsCompleted
}
}
`;
export const GetAggregatedShotMetricsDocument = gql`
query GetAggregatedShotMetrics($aggregateInput: AggregateInputGQL!) {
getAggregatedShotMetrics(aggregateInput: $aggregateInput) {
@@ -5657,6 +5788,100 @@ export type GetMedalsQueryResult = Apollo.QueryResult<
GetMedalsQuery,
GetMedalsQueryVariables
>;
export const GetRunsForHighlightsDocument = gql`
query GetRunsForHighlights(
$filterInput: RunFilterInput!
$runIds: [Int!] = null
$runsOrdering: GetRunsOrdering
) {
getRuns(
filterInput: $filterInput
runIds: $runIds
runsOrdering: $runsOrdering
) {
count
runs {
id
runLength
userId
videoId
shots {
videoId
id
}
}
runIds
}
}
`;
/**
* __useGetRunsForHighlightsQuery__
*
* To run a query within a React component, call `useGetRunsForHighlightsQuery` and pass it any options that fit your needs.
* When your component renders, `useGetRunsForHighlightsQuery` returns an object from Apollo Client that contains loading, error, and data properties
* you can use to render your UI.
*
* @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
*
* @example
* const { data, loading, error } = useGetRunsForHighlightsQuery({
* variables: {
* filterInput: // value for 'filterInput'
* runIds: // value for 'runIds'
* runsOrdering: // value for 'runsOrdering'
* },
* });
*/
export function useGetRunsForHighlightsQuery(
baseOptions: Apollo.QueryHookOptions<
GetRunsForHighlightsQuery,
GetRunsForHighlightsQueryVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useQuery<
GetRunsForHighlightsQuery,
GetRunsForHighlightsQueryVariables
>(GetRunsForHighlightsDocument, options);
}
export function useGetRunsForHighlightsLazyQuery(
baseOptions?: Apollo.LazyQueryHookOptions<
GetRunsForHighlightsQuery,
GetRunsForHighlightsQueryVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useLazyQuery<
GetRunsForHighlightsQuery,
GetRunsForHighlightsQueryVariables
>(GetRunsForHighlightsDocument, options);
}
export function useGetRunsForHighlightsSuspenseQuery(
baseOptions?: Apollo.SuspenseQueryHookOptions<
GetRunsForHighlightsQuery,
GetRunsForHighlightsQueryVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useSuspenseQuery<
GetRunsForHighlightsQuery,
GetRunsForHighlightsQueryVariables
>(GetRunsForHighlightsDocument, options);
}
export type GetRunsForHighlightsQueryHookResult = ReturnType<
typeof useGetRunsForHighlightsQuery
>;
export type GetRunsForHighlightsLazyQueryHookResult = ReturnType<
typeof useGetRunsForHighlightsLazyQuery
>;
export type GetRunsForHighlightsSuspenseQueryHookResult = ReturnType<
typeof useGetRunsForHighlightsSuspenseQuery
>;
export type GetRunsForHighlightsQueryResult = Apollo.QueryResult<
GetRunsForHighlightsQuery,
GetRunsForHighlightsQueryVariables
>;
export const GetSerializedShotPathsDocument = gql`
query GetSerializedShotPaths($filterInput: FilterInput!) {
getShots(filterInput: $filterInput) {
@@ -6877,6 +7102,10 @@ export const GetUserTagsDocument = gql`
getUserTags {
id
name
tagClasses {
id
name
}
}
}
`;
@@ -8211,6 +8440,91 @@ export type GetHeaderInfoByVideoIdQueryResult = Apollo.QueryResult<
GetHeaderInfoByVideoIdQuery,
GetHeaderInfoByVideoIdQueryVariables
>;
export const GetBannerInfoByVideoIdDocument = gql`
query GetBannerInfoByVideoId($videoId: Int!) {
getVideo(videoId: $videoId) {
id
name
stream {
id
lastIntendedSegmentBound
}
owner {
id
}
currentProcessing {
id
status
}
}
}
`;
/**
* __useGetBannerInfoByVideoIdQuery__
*
* To run a query within a React component, call `useGetBannerInfoByVideoIdQuery` and pass it any options that fit your needs.
* When your component renders, `useGetBannerInfoByVideoIdQuery` returns an object from Apollo Client that contains loading, error, and data properties
* you can use to render your UI.
*
* @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
*
* @example
* const { data, loading, error } = useGetBannerInfoByVideoIdQuery({
* variables: {
* videoId: // value for 'videoId'
* },
* });
*/
export function useGetBannerInfoByVideoIdQuery(
baseOptions: Apollo.QueryHookOptions<
GetBannerInfoByVideoIdQuery,
GetBannerInfoByVideoIdQueryVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useQuery<
GetBannerInfoByVideoIdQuery,
GetBannerInfoByVideoIdQueryVariables
>(GetBannerInfoByVideoIdDocument, options);
}
export function useGetBannerInfoByVideoIdLazyQuery(
baseOptions?: Apollo.LazyQueryHookOptions<
GetBannerInfoByVideoIdQuery,
GetBannerInfoByVideoIdQueryVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useLazyQuery<
GetBannerInfoByVideoIdQuery,
GetBannerInfoByVideoIdQueryVariables
>(GetBannerInfoByVideoIdDocument, options);
}
export function useGetBannerInfoByVideoIdSuspenseQuery(
baseOptions?: Apollo.SuspenseQueryHookOptions<
GetBannerInfoByVideoIdQuery,
GetBannerInfoByVideoIdQueryVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useSuspenseQuery<
GetBannerInfoByVideoIdQuery,
GetBannerInfoByVideoIdQueryVariables
>(GetBannerInfoByVideoIdDocument, options);
}
export type GetBannerInfoByVideoIdQueryHookResult = ReturnType<
typeof useGetBannerInfoByVideoIdQuery
>;
export type GetBannerInfoByVideoIdLazyQueryHookResult = ReturnType<
typeof useGetBannerInfoByVideoIdLazyQuery
>;
export type GetBannerInfoByVideoIdSuspenseQueryHookResult = ReturnType<
typeof useGetBannerInfoByVideoIdSuspenseQuery
>;
export type GetBannerInfoByVideoIdQueryResult = Apollo.QueryResult<
GetBannerInfoByVideoIdQuery,
GetBannerInfoByVideoIdQueryVariables
>;
export const FindPrerecordTableLayoutDocument = gql`
mutation FindPrerecordTableLayout($b64Image: String!, $videoId: Int!) {
findPrerecordTableLayout(b64Image: $b64Image, videoId: $videoId) {
@@ -8669,15 +8983,7 @@ export const GetUploadStreamsWithDetailsDocument = gql`
) {
getUserVideos(limit: $limit, after: $after, filters: $filters) {
videos {
id
name
startTime
stream {
isCompleted
lastIntendedSegmentBound
uploadCompletionCursor
uploadsCompleted
}
...UploadStreamWithDetails
}
pageInfo {
hasNextPage
@@ -8685,6 +8991,7 @@ export const GetUploadStreamsWithDetailsDocument = gql`
}
}
}
${UploadStreamWithDetailsFragmentDoc}
`;
/**

View File

@@ -27,6 +27,8 @@ fragment VideoCardFields on VideoGQL {
totalShotsMade
totalShots
makePercentage
averageTimeBetweenShots
averageDifficulty
createdAt
updatedAt
startTime
@@ -36,6 +38,7 @@ fragment VideoCardFields on VideoGQL {
screenshotUri
stream {
id
lastIntendedSegmentBound
isCompleted
}
tableSize

24
src/operations/runs.gql Normal file
View File

@@ -0,0 +1,24 @@
query GetRunsForHighlights(
$filterInput: RunFilterInput!
$runIds: [Int!] = null
$runsOrdering: GetRunsOrdering
) {
getRuns(
filterInput: $filterInput
runIds: $runIds
runsOrdering: $runsOrdering
) {
count
runs {
id
runLength
userId
videoId
shots {
videoId
id
}
}
runIds
}
}

View File

@@ -139,6 +139,14 @@ fragment ShotWithAllFeatures on ShotGQL {
endFrame
startTime @client
endTime @client
startSegment @client {
index
time
}
endSegment @client {
index
time
}
user {
id
}

View File

@@ -79,6 +79,10 @@ query GetUserTags {
getUserTags {
id
name
tagClasses {
id
name
}
}
}

View File

@@ -216,6 +216,23 @@ query GetHeaderInfoByVideoId($videoId: Int!) {
startTime
}
}
query GetBannerInfoByVideoId($videoId: Int!) {
getVideo(videoId: $videoId) {
id
name
stream {
id
lastIntendedSegmentBound
}
owner {
id
}
currentProcessing {
id
status
}
}
}
mutation FindPrerecordTableLayout($b64Image: String!, $videoId: Int!) {
findPrerecordTableLayout(b64Image: $b64Image, videoId: $videoId) {

View File

@@ -101,6 +101,19 @@ query GetUploadStreams(
}
}
}
fragment UploadStreamWithDetails on VideoGQL {
id
name
startTime
stream {
isCompleted
lastIntendedSegmentBound
uploadCompletionCursor
uploadsCompleted
}
}
query GetUploadStreamsWithDetails(
$limit: Int! = 5
$after: String = null
@@ -108,15 +121,7 @@ query GetUploadStreamsWithDetails(
) {
getUserVideos(limit: $limit, after: $after, filters: $filters) {
videos {
id
name
startTime
stream {
isCompleted
lastIntendedSegmentBound
uploadCompletionCursor
uploadsCompleted
}
...UploadStreamWithDetails
}
pageInfo {
hasNextPage

View File

@@ -462,6 +462,7 @@ type VideoGQL {
makePercentage: Float!
medianRun: Float
averageTimeBetweenShots: Float
averageDifficulty: Float
createdAt: DateTime
updatedAt: DateTime
shots: [ShotGQL!]!
@@ -714,9 +715,14 @@ type PageInfoGQL {
}
type TagGQL {
name: String!
id: Int!
group: String
name: String!
tagClasses: [TagClassGQL!]
}
type TagClassGQL {
id: Int!
name: String!
}
"""
@@ -895,6 +901,12 @@ input VideoMetadataInput {
startTime: DateTime = null
endTime: DateTime = null
gameType: String = null
@deprecated(reason: "`game_type` is deprecated. Use `tags` instead.")
"""
A list of tags associated with the video. Replace `game_type`
"""
tags: [VideoTagInput!] = null
tableSize: Float = null
lastIntendedSegmentBound: Int = null
streamSegmentType: StreamSegmentTypeEnum = null