Skip to content

feat: add batch import for bulk scrobbling#2

Merged
dotMavriQ merged 1 commit intomasterfrom
feature/batch-import
Nov 30, 2025
Merged

feat: add batch import for bulk scrobbling#2
dotMavriQ merged 1 commit intomasterfrom
feature/batch-import

Conversation

@dotMavriQ
Copy link
Owner

Description

Adds bulk import functionality to scrobble multiple tracks at once from a file.

Changes

  • New batch module supporting CSV and JSON formats
  • --import <file> flag to import scrobbles from file
  • --create-import flag to generate example import files
  • Rate limiting (1 second delay between scrobbles to respect API limits)
  • Automatic stats and history recording for imported tracks
  • Confirmation prompt before starting import
  • Progress indicator showing success/failure per track

File Formats

CSV Format

artist,title,album,timestamp
Pink Floyd,Comfortably Numb,The Wall,
Led Zeppelin,Stairway to Heaven,Led Zeppelin IV,

JSON Format

[
  {"artist": "Pink Floyd", "title": "Comfortably Numb", "album": "The Wall"},
  {"artist": "Led Zeppelin", "title": "Stairway to Heaven", "album": "Led Zeppelin IV"}
]

Testing

  • CSV import tested
  • JSON import tested
  • Rate limiting verified
  • Stats recording verified

Type of Change

  • New feature (non-breaking change which adds functionality)

- New batch module for importing scrobbles from files
- Support CSV and JSON formats
- Add --import <file> flag to import from file
- Add --create-import flag to generate example files
- Rate limiting (1 second between scrobbles)
- Automatic stats and history recording
- Confirmation prompt before importing

Example usage:
  demel --create-import  # creates example files
  demel --import songs.csv  # imports from CSV
@dotMavriQ dotMavriQ merged commit 049e51a into master Nov 30, 2025
1 check failed
@dotMavriQ dotMavriQ deleted the feature/batch-import branch November 30, 2025 22:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant