Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
2469592
Update .gitignore
itsbrex Apr 5, 2025
15d01f2
"feat: implement config file support and download functionality" -m "…
itsbrex Apr 5, 2025
d84feeb
"chore: add example config and improve gitignore" -m "- Add example c…
itsbrex Apr 5, 2025
64b1adf
"feat: add support for downloading by name instead of ID" -m "- Imple…
itsbrex Apr 5, 2025
28f8630
Fix track filenames to use template from config and prevent duplicates
itsbrex Apr 6, 2025
b313725
chore: update .gitignore to include .env file
itsbrex May 28, 2025
ee3e4cf
chore: add .env.example file for environment configuration
itsbrex May 28, 2025
9ae5c05
feat: add Spotify authentication command - Implement OAuth2 flow for …
itsbrex May 6, 2025
1434270
feat: add download command for Spotify integration - Implement comman…
itsbrex May 6, 2025
24e5e15
feat: add models for music data representation - Introduce models for…
itsbrex May 6, 2025
9abcc9d
feat: implement URL parsing for music services - Add a new utility fo…
itsbrex May 6, 2025
6600bc1
feat: implement Spotify service and authentication - Introduce AuthSe…
itsbrex May 6, 2025
c95da86
feat: update dependencies in go.mod and go.sum - Add new dependencies…
itsbrex May 6, 2025
794a8d8
feat: update README.md to reflect project transition to GoFi - Revise…
itsbrex May 6, 2025
3f5bcb6
chore: add .tool-versions file for Go version management - Introduce …
itsbrex May 6, 2025
d82f427
📝 docs(guidance): add CLAUDE.md file with project documentation
itsbrex May 6, 2025
e304697
✨ feat(spotify): complete Spotify integration with Deezer download su…
itsbrex May 6, 2025
352884a
📝 docs(spotify): update CLAUDE.md with Spotify integration details
itsbrex May 6, 2025
ceb6306
chore: update .gitignore and add gofi binary
itsbrex May 28, 2025
33e7464
feat: add automatic URL detection for both Deezer and Spotify
itsbrex May 28, 2025
2dd1679
feat: add beautiful CLI interface with progress bars and colored output
itsbrex May 28, 2025
2a9632e
fix: update progress bars to display on single line
itsbrex May 28, 2025
1ab04bf
fix: skip tests when DEEZER_ARL is not provided
itsbrex May 31, 2025
15090f3
docs: add comprehensive Product Requirements Document
itsbrex May 31, 2025
7f944e8
feat: add automatic Deezer ARL authentication from browser cookies
itsbrex May 31, 2025
8151663
feat: add Arc browser support for Deezer ARL authentication
itsbrex May 31, 2025
7b2ed55
fix: improve browser cookie extraction and ARL token handling
itsbrex May 31, 2025
9869df0
chore: update .gitignore to exclude editor and IDE files
itsbrex May 31, 2025
c3db168
feat: add GitHub Actions workflow for automated releases
itsbrex May 31, 2025
58a9d7e
refactor: remove DEEZER_ARL environment variable requirement from tests
itsbrex May 31, 2025
821f2c6
feat: add automated installation scripts and build improvements
itsbrex May 31, 2025
ccd1bb3
docs: update CLAUDE.md with latest project improvements
itsbrex May 31, 2025
d2e5974
feat: add environment variable support for default configuration
itsbrex Jun 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified .DS_Store
Binary file not shown.
9 changes: 9 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Spotify API credentials
# Create an application at https://developer.spotify.com/dashboard
# Set the redirect URI to http://localhost:8888/callback in your application settings
SPOTIFY_CLIENT_ID=
SPOTIFY_CLIENT_SECRET=

# Deezer authentication
# Find your ARL token in the cookies after logging into Deezer in your browser
DEEZER_ARL=
54 changes: 54 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Release

on:
push:
tags:
- 'v*'

permissions:
contents: write

jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: "1.23"

- name: Build binaries
run: |
# Get version from tag
VERSION=${GITHUB_REF#refs/tags/}
LDFLAGS="-s -w -X github.com/d-fi/GoFi/cmd/gofi/cmd.version=$VERSION"

# Build for multiple platforms
GOOS=darwin GOARCH=amd64 go build -ldflags "$LDFLAGS" -o gofi-darwin-amd64 ./cmd/gofi
GOOS=darwin GOARCH=arm64 go build -ldflags "$LDFLAGS" -o gofi-darwin-arm64 ./cmd/gofi
GOOS=linux GOARCH=amd64 go build -ldflags "$LDFLAGS" -o gofi-linux-amd64 ./cmd/gofi
GOOS=linux GOARCH=arm64 go build -ldflags "$LDFLAGS" -o gofi-linux-arm64 ./cmd/gofi
GOOS=windows GOARCH=amd64 go build -ldflags "$LDFLAGS" -o gofi-windows-amd64.exe ./cmd/gofi

# Create archives
tar -czf gofi-darwin-amd64.tar.gz gofi-darwin-amd64
tar -czf gofi-darwin-arm64.tar.gz gofi-darwin-arm64
tar -czf gofi-linux-amd64.tar.gz gofi-linux-amd64
tar -czf gofi-linux-arm64.tar.gz gofi-linux-arm64
zip gofi-windows-amd64.zip gofi-windows-amd64.exe

- name: Create Release
uses: softprops/action-gh-release@v1
with:
files: |
gofi-darwin-amd64.tar.gz
gofi-darwin-arm64.tar.gz
gofi-linux-amd64.tar.gz
gofi-linux-arm64.tar.gz
gofi-windows-amd64.zip
draft: false
prerelease: false
generate_release_notes: true
2 changes: 0 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,4 @@ jobs:
run: go mod tidy

- name: Run tests
env:
DEEZER_ARL: ${{ secrets.DEEZER_ARL }}
run: go test -v ./...
50 changes: 50 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
*.dll
*.so
*.dylib
d-fi
gofi

# Test binary, built with `go test -c`
*.test
Expand All @@ -17,5 +19,53 @@
# Dependency directories (remove the comment below to include it)
# vendor/

# Config files that may contain credentials
d-fi.config.json
*.env

# Build and output directories
bin/
downloads/
build/
.DS_Store

# Go workspace file
go.work
d-fi-core.txt
**/.claude/settings.local.json

.env

# Added by Claude Task Master
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
dev-debug.log
# Dependency directories
node_modules/
# Environment variables
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
# OS specific
# Task files
tasks.json
tasks/

# Editor/IDE specific files
.cursor/
.taskmasterconfig
.roo/
.roomodes
.windsurfrules

# Example/template files
scripts/example_prd.txt
1 change: 1 addition & 0 deletions .tool-versions
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
golang 1.23.1
Loading
Loading