Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e699c7ea5d | |||
| c4e55c0870 | |||
| 58d1b0c3de |
15
CHANGELOG.md
15
CHANGELOG.md
@@ -2,17 +2,18 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [v1.0.1] - 2023-11-24
|
||||
|
||||
- Fix crash on migrating a config that had > 1 destinations
|
||||
|
||||
## [v1.0.0] - 2023-11-23
|
||||
|
||||
- Don't start downloads until "start download" is pressed
|
||||
- Add "download option" for more per-download customisability, especially
|
||||
for destinations
|
||||
- Removed "destinations" as that is now possible more flexibly with download
|
||||
options. Configurations using destinations automatically migrated to an
|
||||
appropriate `yt-dlp -o ...` download options
|
||||
- Add "download option" for more per-download customisability, especially for destinations
|
||||
- Removed "destinations" as that is now possible more flexibly with download options.
|
||||
- Existing configurations using destinations are automatically migrated to an appropriate `yt-dlp -o ...` download options
|
||||
- Gropple now available via docker
|
||||
- Clean up web interface display on index page, especially when a playlist
|
||||
with many files is downloading
|
||||
- Clean up web interface display on index page, especially when a playlist with many files is downloading
|
||||
|
||||
## [v0.6.0] - 2023-03-15
|
||||
|
||||
|
||||
@@ -300,8 +300,8 @@ func (cs *ConfigService) LoadConfig() error {
|
||||
Args: []string{"-o", fmt.Sprintf("%s/%%(title)s [%%(id)s].%%(ext)s", c.Destinations[i].Path)},
|
||||
}
|
||||
c.DownloadOptions = append(c.DownloadOptions, newDownloadOption)
|
||||
c.Destinations = nil
|
||||
}
|
||||
c.Destinations = nil
|
||||
configMigrated = true
|
||||
log.Print("migrated config from version 3 => 4")
|
||||
}
|
||||
|
||||
@@ -102,6 +102,66 @@ profiles:
|
||||
os.Remove(cs.ConfigPath)
|
||||
}
|
||||
|
||||
func TestMigrateV3toV4CrashBug(t *testing.T) {
|
||||
v3Config := `config_version: 3
|
||||
server:
|
||||
port: 6123
|
||||
address: https://superaddress.here.com
|
||||
download_path: /home/path/gropple
|
||||
maximum_active_downloads_per_domain: 2
|
||||
ui:
|
||||
popup_width: 500
|
||||
popup_height: 500
|
||||
destinations:
|
||||
- name: somegifs
|
||||
path: /home/path/somegifs
|
||||
- name: otherstuff
|
||||
path: /home/path/otherstuff
|
||||
profiles:
|
||||
- name: standard video
|
||||
command: yt-dlp
|
||||
args:
|
||||
- --newline
|
||||
- --write-info-json
|
||||
- -f
|
||||
- bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best
|
||||
- --verbose
|
||||
- --embed-metadata
|
||||
- --embed-subs
|
||||
- --embed-thumbnail
|
||||
- name: standard mp3
|
||||
command: yt-dlp
|
||||
args:
|
||||
- --extract-audio
|
||||
- --audio-format
|
||||
- mp3
|
||||
- --prefer-ffmpeg
|
||||
`
|
||||
cs := configServiceFromString(v3Config)
|
||||
err := cs.LoadConfig()
|
||||
if err != nil {
|
||||
t.Errorf("got error when loading config: %s", err)
|
||||
}
|
||||
if cs.Config.ConfigVersion != 4 {
|
||||
t.Errorf("did not migrate version (it is '%d')", cs.Config.ConfigVersion)
|
||||
}
|
||||
if cs.Config.Server.MaximumActiveDownloads != 2 {
|
||||
t.Error("did not add MaximumActiveDownloads")
|
||||
}
|
||||
if len(cs.Config.Destinations) != 0 {
|
||||
t.Error("incorrect number of destinations from migrated file")
|
||||
}
|
||||
if assert.Len(t, cs.Config.DownloadOptions, 2) {
|
||||
if assert.Len(t, cs.Config.DownloadOptions[0].Args, 2) {
|
||||
assert.Equal(t, "-o", cs.Config.DownloadOptions[0].Args[0])
|
||||
assert.Equal(t, "/home/path/somegifs/%(title)s [%(id)s].%(ext)s", cs.Config.DownloadOptions[0].Args[1])
|
||||
assert.Equal(t, "-o", cs.Config.DownloadOptions[1].Args[0])
|
||||
assert.Equal(t, "/home/path/otherstuff/%(title)s [%(id)s].%(ext)s", cs.Config.DownloadOptions[1].Args[1])
|
||||
}
|
||||
}
|
||||
os.Remove(cs.ConfigPath)
|
||||
}
|
||||
|
||||
func configServiceFromString(configString string) *ConfigService {
|
||||
tmpFile, _ := os.CreateTemp("", "gropple_test_*.yml")
|
||||
tmpFile.Write([]byte(configString))
|
||||
|
||||
2
main.go
2
main.go
@@ -15,7 +15,7 @@ import (
|
||||
|
||||
func main() {
|
||||
versionInfo := &version.Manager{
|
||||
VersionInfo: version.Info{CurrentVersion: "v1.0.0"},
|
||||
VersionInfo: version.Info{CurrentVersion: "v1.0.1"},
|
||||
}
|
||||
log.Printf("Starting gropple %s - https://github.com/tardisx/gropple", versionInfo.GetInfo().CurrentVersion)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user