CLI: reject invalid player seek and volume values before connecting

Offen Anfängerfreundlich
#87 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

  • #90 von @bfs2021 — ohne Merge geschlossen

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
75/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
python
Bereich
cli

Rechercherichtung

Beginne in der CLI-Argumentanalyse für die Unterbefehle spotapi player seek und spotapi player volume und lies die vorhandenen Bereichsprüfungen in Player.seek() und Player.volume(), um deren Grenzen zu übernehmen. Füge kleine argparse-Typvalidatoren hinzu, die negative Seek-Werte und Lautstärken außerhalb von 0-100 mit Exit-Status 2 ablehnen, wobei 0 und 100 gültig bleiben. Fertig ist es, wenn Offline-Tests negative Seek-Werte, Lautstärke unter null, Lautstärke über 100 sowie beide Grenzwerte abdecken, und das Issue bittet, vor Beginn einen Kommentar zu hinterlassen, um doppelte Arbeit zu vermeiden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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.

Vorherrschende Sprache
Python
Sterne
493
Forks
40
Ø Merge
5 Min.
Gemergte PRs (30 T.)
1

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus Aran404/SpotAPI

Alle Issues in Aran404/SpotAPI

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.