Update /v1/submit integration to match revised API spec#74
Merged
AbandonedCart merged 4 commits intomasterfrom Apr 2, 2026
Merged
Update /v1/submit integration to match revised API spec#74AbandonedCart merged 4 commits intomasterfrom
AbandonedCart merged 4 commits intomasterfrom
Conversation
Agent-Logs-Url: https://github.com/intro-skipper/segment-editor/sessions/95995d49-a25f-4201-a89b-d67d3fc38d14 Co-authored-by: AbandonedCart <1173913+AbandonedCart@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Add share button before copy button in segment boxes
Add SkipMe.db share button to segment boxes
Mar 29, 2026
Reviewer's GuideAdds a SkipMe.db integration that lets users share validated segments from the player editor via a new share button in each SegmentSlider, backed by a typed API service and localized notifications. Class diagram for SkipMe.db API service and segment sharing integrationclassDiagram
class SkipMeApiService {
<<module>>
+toSkipMeSegmentType(type string) string
+submitSegmentToSkipMe(request SkipMeSubmitRequest) SkipMeSubmitResponse
-SKIPME_BASE_URL string
}
class SkipMeSubmitRequest {
+tmdb_id number
+tvdb_season_id number
+tvdb_id number
+segment string
+season number
+episode number
+duration_ms number
+start_ms number
+end_ms number
}
class SkipMeSubmitResponse {
+ok boolean
+submission SkipMeSubmission
}
class SkipMeSubmission {
+id string
+status string
}
class SegmentSliderProps {
+segments MediaSegmentDto[]
+activeIndex number
+onSetActive(index number) void
+getPlayerTime() number
+onCopyAllAsJson() void
+onShare(segment MediaSegmentDto) Promise~void~
+onEdit(index number) void
+vibrantColors unknown
}
class SegmentSliderComponent {
<<ReactComponent>>
-isDragging string
-isSharing boolean
-copyMenuOpen boolean
-activeInput string
+handleShare() Promise~void~
+handleDelete() void
+handleCopyAllAsJsonClick() void
}
class PlayerEditorHook {
<<ReactHook>>
+useRenderPlayerEditor() PlayerEditorRenderResult
-handleShareSegment(segment MediaSegmentDto) Promise~void~
-handleSaveAll() Promise~void~
}
class PlayerEditorRenderResult {
+render() ReactNode
}
class MediaSegmentDto {
+Type string
+StartTicks number
+EndTicks number
}
class MediaItem {
+ProviderIds Record~string,string~
+RunTimeTicks number
+ParentIndexNumber number
+IndexNumber number
}
class NotificationService {
+showNotification(type string, message string) void
}
SkipMeApiService --> SkipMeSubmitRequest : uses
SkipMeApiService --> SkipMeSubmitResponse : returns
SkipMeSubmitResponse --> SkipMeSubmission : contains
SegmentSliderComponent --> SegmentSliderProps : uses
SegmentSliderComponent --> MediaSegmentDto : shares
SegmentSliderComponent --> PlayerEditorHook : calls onShare via props
PlayerEditorHook --> MediaItem : validates
PlayerEditorHook --> MediaSegmentDto : validates
PlayerEditorHook --> SkipMeApiService : calls submitSegmentToSkipMe
PlayerEditorHook --> NotificationService : calls showNotification
MediaItem --> "1" MediaSegmentDto : context
NotificationService <.. SegmentSliderComponent : indirectly notifies via PlayerEditorHook
NotificationService <.. PlayerEditorHook : uses
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Hey - I've left some high level feedback:
- Consider moving
SKIPME_BASE_URLto a configuration/env setting so the SkipMe endpoint can be customized per environment (staging, self-hosted mirrors, etc.) rather than being hardcoded. - The
handleShareSegmentcallback omitsshowNotification,toSkipMeSegmentType, andsubmitSegmentToSkipMefrom its dependency array; either include them or explicitly document/disable the exhaustive-deps rule for this hook to avoid stale captures.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- Consider moving `SKIPME_BASE_URL` to a configuration/env setting so the SkipMe endpoint can be customized per environment (staging, self-hosted mirrors, etc.) rather than being hardcoded.
- The `handleShareSegment` callback omits `showNotification`, `toSkipMeSegmentType`, and `submitSegmentToSkipMe` from its dependency array; either include them or explicitly document/disable the exhaustive-deps rule for this hook to avoid stale captures.Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
Contributor
Code Review SummaryStatus: No Issues Found | Recommendation: Merge OverviewIncremental review of commit that updates the SkipMe.db integration to match the revised Changes Reviewed
Security Assessment
Implementation Quality
Files Reviewed (4 files)
Note: This is an incremental review. Full feature review was completed at commit |
Copilot
AI
changed the title
Add SkipMe.db share button to segment boxes
No changes: incomplete problem statement
Mar 30, 2026
…ot-supported handling Agent-Logs-Url: https://github.com/intro-skipper/segment-editor/sessions/8b1d7ad3-46c5-491d-a297-9325a6bfc7d9 Co-authored-by: AbandonedCart <1173913+AbandonedCart@users.noreply.github.com>
Copilot
AI
changed the title
No changes: incomplete problem statement
Update /v1/submit integration to match revised API spec
Mar 30, 2026
Copilot stopped work on behalf of
AbandonedCart due to an error
April 2, 2026 19:44
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
/v1/submitAPI spec droppedtvdb_season_idand added explicit403semantics for unsupported clients (e.g. Infuse).Changes
SkipMeSubmitRequest— removedtvdb_season_idfieldPlayerEditorsubmit handler — droppedtvdb_season_idfrom the call; catch block now differentiates403viaaxios.isAxiosError()and surfaces a dedicated "client not supported" message instead of the generic failure stringeditor.share.clientNotSupportedkeySkipMeSubmitResponsealready matched the updated spec (submission.id/submission.status) and needed no changes.📍 Connect Copilot coding agent with Jira, Azure Boards or Linear to delegate work to Copilot in one click without leaving your project management tool.
Summary by Sourcery
Add the ability to share validated media segments from the player editor to the external SkipMe.db service directly from each segment box.
New Features:
Enhancements:
Documentation: