Compare commits

..

3 Commits

Author SHA1 Message Date
5030ff560d index change from just gql
All checks were successful
Tests / Tests (pull_request) Successful in 10s
2026-02-18 16:50:20 -08:00
1c6fef9de0 add expectedDurationSeconds to create upload stream mutation 2026-02-18 16:46:11 -08:00
d31d171ac3 getQuotaStatus, expectedDurationSeconds in createUploadStream
All checks were successful
Tests / Tests (pull_request) Successful in 40s
2026-02-03 16:30:56 -08:00
8 changed files with 65 additions and 832 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -31,32 +31,41 @@ fragment VideoCardFields on VideoGQL {
}
name
screenshotUri
totalShotsMade
totalShots
makePercentage
averageTimeBetweenShots
averageDifficulty
createdAt
updatedAt
startTime
endTime
private
elapsedTime
screenshotUri
stream {
id
lastIntendedSegmentBound
isCompleted
streamSegmentType
}
tableSize
pocketSize
tags {
name
tagClasses {
name
}
}
playerSummaries {
...PlayerSummaryFields
name
}
currentProcessing {
id
errors {
message
}
status
statuses {
status
}
}
reactions {
videoId

View File

@@ -20,15 +20,8 @@ mutation CreateSubscription($priceId: String!) {
}
}
mutation CreateCustomerPortalSession {
createCustomerPortalSession {
portalUrl
}
}
query GetAvailableSubscriptionOptions {
getAvailableSubscriptionOptions {
trialPeriodDays
products {
id
name

View File

@@ -1,52 +0,0 @@
fragment PlayerSummaryFields on PlayerSummaryGQL {
clusterId
userId
username
profileImageUri
representativeFullFrameUrl
totalShots
totalShotsMade
makePercentage
score
longestRun
averageDifficulty
averageTimeBetweenShots
}
fragment PlayerClusterShotFields on PlayerClusterShotGQL {
shotId
bboxX1
bboxY1
bboxX2
bboxY2
confidence
isConfirmed
cropUrl
fullFrameUrl
}
fragment PlayerClusterFields on PlayerClusterGQL {
videoId
clusterId
nShots
userId
username
profileImageUri
confirmed
score
shots {
...PlayerClusterShotFields
}
}
query VideoPlayerClusters($videoId: Int!) {
videoPlayerClusters(videoId: $videoId) {
...PlayerClusterFields
}
}
mutation FinalizePlayerAssignments($input: FinalizePlayerAssignmentsInput!) {
finalizePlayerAssignments(input: $input) {
...PlayerClusterFields
}
}

View File

@@ -92,17 +92,6 @@ query GetUserTags {
}
}
query GetGameTypeTagMetrics($input: GameTypeTagMetricsInput!) {
getGameTypeTagMetrics(input: $input) {
tagName
tagLabel
tableSize
shotCount
madeShots
makeRate
}
}
mutation followUser($followedUserId: Int!) {
followUser(followedUserId: $followedUserId) {
id

View File

@@ -10,7 +10,6 @@ query GetStreamMonitoringDetails($videoId: Int!, $debuggingJson: JSON) {
stream {
id
linksRequested
lowestUnuploadedSegmentIndex
uploadsCompleted
segmentProcessingCursor
isCompleted
@@ -83,9 +82,6 @@ query GetVideoDetails($videoId: Int!) {
}
name
}
playerSummaries {
...PlayerSummaryFields
}
}
}

View File

@@ -1,6 +1,6 @@
mutation CreateUploadStream(
$videoMetadataInput: VideoMetadataInput!
$expectedDurationSeconds: Float = null
$expectedDurationSeconds: Float
) {
createUploadStream(
videoMetadata: $videoMetadataInput

View File

@@ -28,7 +28,7 @@ type Query {
getLongestRunsLeaderboard(
interval: TimeInterval = null
when: DateTime = null
limit: Int! = 50
limit: Int! = 100
requiredTags: [String!] = null
): RunLeaderboardGQL!
getMakesLeaderboard(
@@ -49,7 +49,6 @@ type Query {
limit: Int! = 500
countRespectsLimit: Boolean! = false
): GetRunsResult!
videoPlayerClusters(videoId: Int!): [PlayerClusterGQL!]!
getShotAnnotationTypes(errorTypes: Boolean = false): [ShotAnnotationTypeGQL!]!
getTableState(
b64Image: String!
@@ -107,7 +106,6 @@ type Query {
filters: VideoFilterInput = null
): VideoHistoryGQL!
getUserTags(includeRetiredTags: Boolean = false): [TagGQL!]!
getGameTypeTagMetrics(input: GameTypeTagMetricsInput!): [GameTypeTagMetric!]!
getVideo(videoId: Int!, debuggingJson: JSON = null): VideoGQL!
getVideos(videoIds: [Int!]!): [VideoGQL!]!
}
@@ -406,7 +404,6 @@ type VideoGQL {
currentProcessing: VideoProcessingGQL
reactions: [ReactionGQL!]!
comments: [CommentGQL!]!
playerSummaries: [PlayerSummaryGQL!]!
}
type ShotGQL {
@@ -609,8 +606,6 @@ type IntPoint2D {
type VideoProcessingGQL {
id: Int!
parentProcessingId: Int
labels: [String!]!
errors: [VideoProcessingErrorGQL!]!
status: ProcessingStatusEnum!
statuses: [VideoProcessingStatusGQL!]!
@@ -666,21 +661,6 @@ type CommentGQL {
replies: [CommentGQL!]!
}
type PlayerSummaryGQL {
clusterId: Int!
userId: Int
username: String
profileImageUri: String
representativeFullFrameUrl: String
totalShots: Int!
totalShotsMade: Int!
makePercentage: Float!
score: Int
longestRun: Int!
averageDifficulty: Float
averageTimeBetweenShots: Float
}
type DeployedConfigGQL {
allowNewUsers: Boolean!
firebase: Boolean!
@@ -877,30 +857,6 @@ input DatetimeOrdering {
startingAt: DateTime = null
}
type PlayerClusterGQL {
videoId: Int!
clusterId: Int!
nShots: Int!
userId: Int
username: String
profileImageUri: String
confirmed: Boolean!
score: Int
shots: [PlayerClusterShotGQL!]!
}
type PlayerClusterShotGQL {
shotId: Int!
bboxX1: Int!
bboxY1: Int!
bboxX2: Int!
bboxY2: Int!
confidence: Float!
isConfirmed: Boolean!
cropUrl: String
fullFrameUrl: String
}
type TableStateGQL {
identifierToPosition: [[Float!]!]!
homography: HomographyInfoGQL
@@ -981,7 +937,6 @@ type UserRelationship {
type StripeSubscriptionOptionsGQL {
products: [StripeProductGQL!]!
trialPeriodDays: Int
}
type StripeProductGQL {
@@ -1004,9 +959,6 @@ type StripePriceGQL {
type UserSubscriptionStatusGQL {
hasActiveSubscription: Boolean!
entitlementSource: EntitlementSourceTypeEnum
entitlementStartsAt: DateTime
entitlementEndsAt: DateTime
subscriptionStatus: StripeSubscriptionStatusEnum
currentPeriodStart: DateTime
currentPeriodEnd: DateTime
@@ -1015,13 +967,6 @@ type UserSubscriptionStatusGQL {
stripeSubscriptionId: String
}
enum EntitlementSourceTypeEnum {
ADMIN
MANUAL
STRIPE
ALPHA_LEGACY
}
enum StripeSubscriptionStatusEnum {
INCOMPLETE
INCOMPLETE_EXPIRED
@@ -1060,25 +1005,6 @@ type TagClassGQL {
name: String!
}
type GameTypeTagMetric {
tagName: String!
tagLabel: String!
tableSize: Float
shotCount: Int!
madeShots: Int!
makeRate: Float!
}
input GameTypeTagMetricsInput {
userId: Int!
createdAt: DateRangeFilter = null
maxTags: Int = null
groupByTableSize: Boolean! = true
includeUnknown: Boolean! = true
tagClass: String = "game_type"
includePrivate: IncludePrivateEnum! = MINE
}
"""
The `JSON` scalar type represents JSON values as specified by [ECMA-404](https://ecma-international.org/wp-content/uploads/ECMA-404_2nd_edition_december_2017.pdf).
"""
@@ -1135,9 +1061,6 @@ type Mutation {
markAllNotificationsAsRead: Boolean!
markNotificationsAsRead(notificationIds: [Int!]!): Boolean!
deleteNotification(notificationId: Int!): Boolean!
finalizePlayerAssignments(
input: FinalizePlayerAssignmentsInput!
): [PlayerClusterGQL!]!
addAnnotationToShot(
shotId: Int!
annotationName: String!
@@ -1162,16 +1085,7 @@ type Mutation {
ensureStripeCustomerExists: UserGQL!
deleteUser: Boolean!
createSubscription(priceId: String!): CreateSubscriptionResultGQL!
createCustomerPortalSession: CreateCustomerPortalSessionResultGQL!
cancelSubscription: UserSubscriptionStatusGQL!
grantManualEntitlement(
userId: Int!
tierName: String! = "pro"
startsAt: DateTime = null
endsAt: DateTime = null
reason: String = null
): UserSubscriptionStatusGQL!
revokeManualEntitlement(userId: Int!): UserSubscriptionStatusGQL!
submitCancellationFeedback(
reasons: [CancellationReasonEnum!] = null
feedback: String = null
@@ -1209,23 +1123,6 @@ enum ReportReasonEnum {
OTHER
}
input FinalizePlayerAssignmentsInput {
videoId: Int!
clusterAssignments: [ClusterAssignmentInput!]! = []
shotMoves: [ShotMoveInput!]! = []
}
input ClusterAssignmentInput {
clusterId: Int!
userId: Int = null
score: Int = null
}
input ShotMoveInput {
shotId: Int!
newClusterId: Int!
}
type AddShotAnnotationReturn {
value: SuccessfulAddAddShotAnnotationErrors!
}
@@ -1319,10 +1216,6 @@ type CreateSubscriptionResultGQL {
sessionId: String!
}
type CreateCustomerPortalSessionResultGQL {
portalUrl: String!
}
enum CancellationReasonEnum {
DONT_PLAY_ENOUGH
TOO_EXPENSIVE