Add X share action for game-list updates #14

Open
opened 2024-01-14 14:21:38 -06:00 by jimmyb · 0 comments
Owner

MyVideoGameList should let users share meaningful game-list activity to X without building a long-lived X connector or storing X posting credentials.

The original issue proposed a Twitter/X integration that would post when someone adds or updates a game on their list. Because full X API posting requires developer access, OAuth token storage, rate-limit handling, and ongoing platform maintenance, this issue now tracks a simpler user-initiated share action. Users should be able to choose an X share action after relevant game-list activity, review the generated post on X, edit it if desired, and decide whether to publish it themselves.

Scope

  • User-facing X share action for supported game-list activity.
  • Supported initial activity types: adding a game to a list, updating list status, rating a game, and publishing a review where those flows exist.
  • Share links should use an X Web Intent-style URL with generated text and the relevant public MVGL URL.
  • Share copy should be generated by MVGL but remain editable on X before posting.
  • No X API app, OAuth token storage, automatic background posting, or account-level connector settings.
  • Shared URLs should point to the relevant public MVGL page, such as the game profile, review, or user game-list entry when available.
  • Share controls should follow existing Laravel/Tailwind layout patterns and respect light/dark mode.

Acceptance Criteria

  • Authenticated users see an X share action after supported game-list actions complete successfully.
  • Users are never required to connect an X account to use the share action.
  • Clicking the share action opens X with generated post text and the appropriate MVGL URL.
  • The share action is user-initiated and does not automatically publish anything to X.
  • Share URLs use named routes and include canonical public URLs where possible.
  • Generated post text fits within X character limits after accounting for the shared URL.
  • The share action is not shown for private or unavailable content that should not be shared publicly.
  • Failed or unavailable share URL generation does not break the underlying game-list action.
  • The UI copy makes clear that the user is sharing manually, not connecting an X account.

Test Coverage Required

  • Feature tests confirming supported game-list actions expose the X share action after success.
  • Feature tests confirming guests or unauthorized users cannot trigger protected list actions just to reach a share prompt.
  • Tests confirming private or non-public content does not expose an X share action.
  • Tests confirming generated X share URLs include the expected text and public MVGL target URL.
  • Tests confirming generated X post text stays within the configured character budget.
  • Regression tests confirming the game-list action still succeeds if share text or URL generation is unavailable.
  • Tests should use Pest and focused feature coverage.
  • Run the focused affected tests, then run vendor/bin/pint --dirty before closing the issue.

Progress Checklist

  • Public game profile pages exist
  • User profile social fields exist for displaying Twitter/X handles
  • Identify supported game-list activity completion points
  • Add reusable share URL/copy generation for X
  • Add X share controls after supported successful actions
  • Confirm generated post text fits within the X character budget
  • Confirm private or unavailable content suppresses the share action
  • Add tests for share visibility, URL generation, text length, and privacy suppression
  • Confirm no X API connector, OAuth flow, token storage, or automatic posting is introduced
MyVideoGameList should let users share meaningful game-list activity to X without building a long-lived X connector or storing X posting credentials. The original issue proposed a Twitter/X integration that would post when someone adds or updates a game on their list. Because full X API posting requires developer access, OAuth token storage, rate-limit handling, and ongoing platform maintenance, this issue now tracks a simpler user-initiated share action. Users should be able to choose an X share action after relevant game-list activity, review the generated post on X, edit it if desired, and decide whether to publish it themselves. ## Scope - User-facing X share action for supported game-list activity. - Supported initial activity types: adding a game to a list, updating list status, rating a game, and publishing a review where those flows exist. - Share links should use an X Web Intent-style URL with generated text and the relevant public MVGL URL. - Share copy should be generated by MVGL but remain editable on X before posting. - No X API app, OAuth token storage, automatic background posting, or account-level connector settings. - Shared URLs should point to the relevant public MVGL page, such as the game profile, review, or user game-list entry when available. - Share controls should follow existing Laravel/Tailwind layout patterns and respect light/dark mode. ## Acceptance Criteria - Authenticated users see an X share action after supported game-list actions complete successfully. - Users are never required to connect an X account to use the share action. - Clicking the share action opens X with generated post text and the appropriate MVGL URL. - The share action is user-initiated and does not automatically publish anything to X. - Share URLs use named routes and include canonical public URLs where possible. - Generated post text fits within X character limits after accounting for the shared URL. - The share action is not shown for private or unavailable content that should not be shared publicly. - Failed or unavailable share URL generation does not break the underlying game-list action. - The UI copy makes clear that the user is sharing manually, not connecting an X account. ## Test Coverage Required - Feature tests confirming supported game-list actions expose the X share action after success. - Feature tests confirming guests or unauthorized users cannot trigger protected list actions just to reach a share prompt. - Tests confirming private or non-public content does not expose an X share action. - Tests confirming generated X share URLs include the expected text and public MVGL target URL. - Tests confirming generated X post text stays within the configured character budget. - Regression tests confirming the game-list action still succeeds if share text or URL generation is unavailable. - Tests should use Pest and focused feature coverage. - Run the focused affected tests, then run `vendor/bin/pint --dirty` before closing the issue. ## Progress Checklist - [x] Public game profile pages exist - [x] User profile social fields exist for displaying Twitter/X handles - [ ] Identify supported game-list activity completion points - [ ] Add reusable share URL/copy generation for X - [ ] Add X share controls after supported successful actions - [ ] Confirm generated post text fits within the X character budget - [ ] Confirm private or unavailable content suppresses the share action - [ ] Add tests for share visibility, URL generation, text length, and privacy suppression - [ ] Confirm no X API connector, OAuth flow, token storage, or automatic posting is introduced
Codex changed title from Add Connector to Twitter/X to Add X share action for game-list updates 2026-06-01 23:10:27 -05:00
Sign in to join this conversation.
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
MyVideoGameList/myvideogamelist.com#14
No description provided.