Commit Graph
397 Commits
Author SHA1 Message Date
sentriz b2388e6d85 feat: log all folders while scanning 2021-11-10 00:22:25 +00:00
Senan KellyandGitHub 96f693f4e4 make musicFolderIds ints (#169)
* make `musicFolderId`s ints

https://github.com/sentriz/gonic/issues/50#issuecomment-963257103
https://github.com/einsteinx2/iSubMusicStreamer/blob/006c1dafee6b926fde9d775cb0e64011a4662853/Classes/Models/API%20Models/MediaFolder.swift#L16

related #50

* add a test for multi folders and reused artists
2021-11-09 00:23:32 +00:00
sentriz a59c030385 add a hint about regenerating ctrlsubsonic tests 2021-11-08 19:32:27 +00:00
sentriz 40cd031b05 feat: add multi folder support
closes #50
2021-11-06 21:56:01 +00:00
sentriz fa587fc7de refactor: update scanner, scanner tests, mockfs
closes #165
closes #163
2021-11-06 21:55:46 +00:00
sentriz b07b9a8be6 fix: don't send listenbrainz playing_now and submitted_at at the same time
fixes #168
2021-11-06 16:19:13 +00:00
sentriz 4781a744ca log listenbrainz scrobble response 2021-11-06 15:21:33 +00:00
sentriz 98cab93557 add some logging to ServeScrobble 2021-11-05 17:37:55 +00:00
sentriz c31b3b8d1f use time.Time in scrobbler interface 2021-10-13 06:30:14 +01:00
sentriz df85d82137 params: add time helper 2021-10-13 06:30:14 +01:00
sentriz 82d8a57aab log scrobbling errors
related https://github.com/sentriz/gonic/issues/162
2021-10-12 19:00:35 +01:00
Duncan OverbruckandGitHub 848d85d26a feat: add CreatedAt to albums (#159)
This change will make the GetAlbumList views with the "newest" type
work as expected.
2021-10-04 19:12:49 +01:00
sentriz f50817a3dc fix(scanner): update changed cover files when scanning
fixes: #158
2021-10-03 21:00:37 +01:00
sentriz 0edee132ed refactor(encode): use a replaygain enum 2021-09-13 17:02:05 +01:00
Serge Tkatchoukandsentriz b9f8ea7048 feat(encode): use "true" (unconstrained) VBR for Opus profiles 2021-09-13 16:56:50 +01:00
Serge Tkatchoukandsentriz 616b152fed feat(encode): add hi-gain RG and upsampling support 2021-09-13 16:56:43 +01:00
sentriz 93608d04b4 fix(scanner): refactor a bit and fix the issue of repeatedly adding and removing tracks 😎
fixes #26
fixes #63
2021-09-10 21:00:10 +01:00
sentriz 569f62c08c refactor(scanner): don't be fancy with the clean funcs 2021-09-09 22:04:14 +01:00
alexandGitHub 393813665a feat(jukebox): reduce complexity and update dependencies (#154)
* feat(jukebox): reduce jukebox code complexity

This removes an unessecary channel, but this is still pretty bad

* feat(jukebox): update flac/beep/oto so flac seeking works
2021-09-09 19:08:05 +01:00
sentriz 212a13395d fix: return early before type switch in ServeStream
related #152
2021-08-23 21:31:49 +01:00
sentriz b56f00e9ac feat: support filter by genre in browse by folder mode 2021-08-23 21:31:38 +01:00
sentriz 6e2d4f73c5 feat: support filter by year in browse by folder mode 2021-08-23 21:31:31 +01:00
sentriz c0ca6aaf03 fix(scanner): spawn interval scans in a goroutine
this way, if the average scan takes longer than the tick interval, the ticker will be unblocked and scans won't stack on top of each other

related #63
2021-06-28 21:37:32 +01:00
4109b5b66c feat(encode): add mime-type headers to cache handlers
* feat(encode): add mime-type headers to cache handlers

This commit adds a simple MIME-type guessing logic to `onCacheHit` and
`onCacheMiss` handlers, which sets `Content-Type` HTTP response header based on
format specified by transcoding profile.

* Make cacheFile stat() error fatal

Co-authored-by: Senan Kelly <senan@senan.xyz>

* Make linter happy

Good morning to you too, mister linter!

Co-authored-by: Senan Kelly <senan@senan.xyz>

Co-authored-by: Senan Kelly <senan@senan.xyz>
2021-06-21 23:36:17 +01:00
Serge TkatchoukandGitHub 5444d40018 fix(encode): Strip EBU R128 gain tags when using forced-RG transcoding (#145) 2021-06-20 18:42:06 +01:00
George HilliardandGitHub 7100b2b241 feat: Support WMA files, including those with embedded album art (#143)
The tag library supports WMA, so add the mimetype.

Some wma files have embedded album art encoded as a video stream
alongside the audio:

```
Input #0, asf, from '01. Emergency Pulloff.wma':
  Metadata:
    (snip)
  Duration: 00:03:11.47, start: 0.000000, bitrate: 129 kb/s
    Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 200x200 [SAR 96:96 DAR 1:1], 90k tbr, 90k tbn, 90k tbc
    Metadata:
      comment         : Cover (front)
    Stream #0:1: Audio: wmav2 (a[1][0][0] / 0x0161), 44100 Hz, stereo, fltp, 128 kb/s
Output #0, opus, to '/tmp/output.opus':
Output file #0 does not contain any stream
```

The `-map 0:0` passed to ffmpeg is selecting the video stream to
transcode, then `-vn` says not to transcode video, so the whole process
returns an error code:

```
2021/05/28 18:59:09 transcoding according to transcoding profile of 96k
2021/05/28 18:59:09 serving transcode `02. Cotton Patch Rag.wma`: cache [opus/96k] miss!
2021/05/28 18:59:09 serving transcode `02. Cotton Patch Rag.wma`: error: starting transcode: running ffmpeg: exit status 1
```

I believe the correct solution here is to use an _audio_ stream
specifier, as in `-map 0:a:0`.  Doing this selects the audio and
successfully performs the transcode.
2021-06-04 19:03:19 +01:00
sentriz 58624f07dc feat(subsonic)!: don't return gonic version from responses 2021-05-08 18:37:55 +01:00
sentriz 0c871d888b refactor(admin): use go1.16 embed for templates and assets 2021-05-08 18:37:55 +01:00
sentriz 6a99cdf299 bump to v0.12.3
generated by `_do_bump_version` script in project root
2021-04-20 23:17:05 +01:00
sentriz 61e11471b3 Fix non-folder folder empty parent ids
fixes #134
introduced by 711ffe144f

id          updated_at                           modified_at                          left_path   right_path  right_path_u_dec  parent_id   cover       tag_artist_id  tag_title   tag_title_u_dec  tag_brainz_id  tag_year
----------  -----------------------------------  -----------------------------------  ----------  ----------  ----------------  ----------  ----------  -------------  ----------  ---------------  -------------  ----------
1           2021-04-20 22:04:31.437318349+01:00  2021-04-20 21:35:55.423563144+01:00              .
2           2021-04-20 22:04:31.437920005+01:00  2021-04-20 21:35:50.766896425+01:00              luke
3           2021-04-20 22:04:31.475871668+01:00  2021-04-20 21:35:11.526895985+01:00  luke/       (2003) Yos                    2           folder.jpe  1              YosepH                       cf497d42-736a  2003
4           2021-04-20 22:04:31.476325505+01:00  2021-04-20 21:35:55.423563144+01:00              beng
5           2021-04-20 22:04:31.511647498+01:00  2021-04-20 21:35:27.060229492+01:00  beng/       (2013) Cha                    4           folder.jpg  2              Chapter II                   bcafa993-f065  2013

->

id          updated_at                           modified_at                          left_path   right_path  right_path_u_dec  parent_id   cover       tag_artist_id  tag_title   tag_title_u_dec  tag_brainz_id  tag_year
----------  -----------------------------------  -----------------------------------  ----------  ----------  ----------------  ----------  ----------  -------------  ----------  ---------------  -------------  ----------
1           2021-04-20 22:22:55.368005558+01:00  2021-04-20 21:35:55.423563144+01:00              .                                                                                                                0
2           2021-04-20 22:22:55.331985959+01:00  2021-04-20 21:35:50.766896425+01:00              luke                          1                                                                                  0
3           2021-04-20 22:22:55.33148277+01:00   2021-04-20 21:35:11.526895985+01:00  luke/       (2003) Yos                    2           folder.jpe  1              YosepH                       cf497d42-736a  2003
4           2021-04-20 22:22:55.367693081+01:00  2021-04-20 21:35:55.423563144+01:00              beng                          1                                                                                  0
5           2021-04-20 22:22:55.36711045+01:00   2021-04-20 21:35:27.060229492+01:00  beng/       (2013) Cha                    4           folder.jpg  2              Chapter II                   bcafa993-f065  2013
2021-04-20 23:12:15 +01:00
Duncan Overbruck ef86f5b094 scanner/tags: fix original date
Real tag is `originaldate` and matches TDOR from taglib in id3v2:
https://github.com/taglib/taglib/blob/1644c0dd/taglib/mpeg/id3v2/id3v2frame.cpp#L338

originalyear does not exist.
2021-04-19 16:18:12 +02:00
Duncan Overbruck 482c6f0e19 scanner/tags: prefer original_date over date 2021-04-18 23:58:56 +02:00
sentriz b17ce76a72 Set getUser.view jukebox/podcast role
closes #130
2021-04-18 12:34:54 +01:00
sentrizandAlex McGrath e9cc2e8ea6 fix podcast nil ITunesExt and escape cover path with slash
Co-authored-by: Alex McGrath <amk@amk.ie>
2021-03-30 21:41:22 +01:00
sentriz e7d4b857f7 sanitise password in logs 2021-03-23 21:15:56 +00:00
sentriz 51dc407f2e Add PodcastEpisodeStatusError 2021-03-04 19:38:34 +00:00
sentriz 3c926aab99 use enum for PodcastEpisodeStatus and PodcastAutoDownload 2021-03-04 19:38:34 +00:00
Alex McGrathandSenan Kelly 512d967dfa Add updated assets 2021-03-04 19:38:34 +00:00
Alex McGrathandSenan Kelly 10fca91785 Add download all button and include options to automatically download new episodes 2021-03-04 19:38:34 +00:00
Duncan OverbruckandSenan Kelly 2a11017d54 add flag (-http-log) to disable http request logging 2021-02-27 18:26:37 +00:00
sentriz 7d420f61a9 bump to v0.12.2
generated by `_do_bump_version` script in project root
2021-02-19 00:11:20 +00:00
sentriz bcd7886484 fix download episode 2021-02-19 00:10:47 +00:00
sentriz 07f77bf107 bump to v0.12.1
generated by `_do_bump_version` script in project root
2021-02-18 12:26:35 +00:00
Alex McGrathandSenan Kelly f7772303b0 Fix podcasts with / in the name 2021-02-18 12:18:35 +00:00
sentriz 524ea5a476 Fix podcats GetPodcastEpisodes 2021-02-06 22:06:58 +00:00
Alex McGrathandSenan Kelly 76875de87b Fix feeds not updating if they dont contain a feedurl 2021-02-06 16:19:20 +00:00
Alex McGrathandSenan Kelly b57860a967 make podcast audio finding more robust
this will check that if there is no type field in an enclosure that
the url ends with an audio filename, if none of these are true, itll
then check audio:content for an item and do those checks again.
2021-02-06 16:19:20 +00:00
sentriz 6c69bd3be6 bump to v0.12.0
generated by `_do_bump_version` script in project root
2021-02-03 23:57:54 +00:00
sentriz 33455cab26 check ctrl_test json error 2021-02-03 23:16:18 +00:00
sentriz e69cd4c71b gen assets 2021-02-03 23:00:06 +00:00