CLI: reject invalid player seek and volume values before connecting

オープン 初心者向け
#87 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

  • #90 @bfs2021 による — マージされずにクローズ

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
75/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
python
領域
cli

調査の方向性

spotapi player seek および spotapi player volume サブコマンドの CLI 引数解析から始め、Player.seek() と Player.volume() の既存の範囲チェックを読んで、同じ上限と下限に合わせてください。負の seek 値と 0-100 の範囲外の音量を終了ステータス 2 で拒否する小さな argparse の型バリデータを追加し、0 と 100 は有効のままにします。オフラインテストで負の seek、ゼロ未満の音量、100 を超える音量、両方の境界値を網羅できたら完了です。重複作業を避けるため、作業を始める前にコメントするよう issue に求められています。

索引モデルが issue の本文から書いたものです。

説明

bug good first issue

Problem

The Python player API correctly rejects negative seek positions and volume values outside 0–100. The CLI currently parses both as unrestricted integers, so obviously invalid input can reach account/session setup before producing an error.

Proposed change

Validate these values during argument parsing:

  • spotapi player seek MILLISECONDS: integer greater than or equal to zero.
  • spotapi player volume PERCENT: integer from zero through 100.

Acceptance criteria

  • Invalid values fail through argparse with a clear range message and exit status 2.
  • Invalid input is rejected before reading account state or opening a Spotify connection.
  • Boundary values 0 and 100 remain valid where applicable.
  • Existing valid commands retain their current behavior.
  • Offline tests cover negative seek, volume below zero, volume above 100, and boundaries.

Scope

Keep validation helpers small and local to the CLI. The existing validation inside Player.seek() and Player.volume() must remain as the library-level safety boundary.

Comment before starting so duplicate work can be avoided.

主要言語
Python
スター
493
フォーク
40
平均マージ
5分
マージ済み PR(30日)
1

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

Aran404/SpotAPI のほかの issue

Aran404/SpotAPI の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。