refactor: move shared packages up a level
This commit is contained in:
@@ -18,7 +18,7 @@ import (
|
|||||||
|
|
||||||
"go.senan.xyz/gonic"
|
"go.senan.xyz/gonic"
|
||||||
"go.senan.xyz/gonic/server"
|
"go.senan.xyz/gonic/server"
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import (
|
|||||||
// TODO: remove this dep
|
// TODO: remove this dep
|
||||||
|
|
||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/specid"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/specid"
|
||||||
"go.senan.xyz/gonic/server/mime"
|
"go.senan.xyz/gonic/mime"
|
||||||
)
|
)
|
||||||
|
|
||||||
func splitInt(in, sep string) []int {
|
func splitInt(in, sep string) []int {
|
||||||
@@ -14,7 +14,7 @@ import (
|
|||||||
"github.com/faiface/beep/mp3"
|
"github.com/faiface/beep/mp3"
|
||||||
"github.com/faiface/beep/speaker"
|
"github.com/faiface/beep/speaker"
|
||||||
|
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Status struct {
|
type Status struct {
|
||||||
@@ -1,8 +1,5 @@
|
|||||||
package mime
|
package mime
|
||||||
|
|
||||||
// this package is at such a high level in the hierarchy because
|
|
||||||
// it's used by both `server/db` and `server/scanner`
|
|
||||||
|
|
||||||
func FromExtension(ext string) (string, bool) {
|
func FromExtension(ext string) (string, bool) {
|
||||||
types := map[string]string{
|
types := map[string]string{
|
||||||
"mp3": "audio/mpeg",
|
"mp3": "audio/mpeg",
|
||||||
@@ -12,9 +12,9 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/mattn/go-sqlite3"
|
"github.com/mattn/go-sqlite3"
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
"go.senan.xyz/gonic/server/scanner"
|
"go.senan.xyz/gonic/scanner"
|
||||||
"go.senan.xyz/gonic/server/scanner/tags"
|
"go.senan.xyz/gonic/scanner/tags"
|
||||||
)
|
)
|
||||||
|
|
||||||
var ErrPathNotFound = errors.New("path not found")
|
var ErrPathNotFound = errors.New("path not found")
|
||||||
@@ -19,9 +19,9 @@ import (
|
|||||||
"github.com/mmcdole/gofeed"
|
"github.com/mmcdole/gofeed"
|
||||||
|
|
||||||
"go.senan.xyz/gonic/multierr"
|
"go.senan.xyz/gonic/multierr"
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
gmime "go.senan.xyz/gonic/server/mime"
|
gmime "go.senan.xyz/gonic/mime"
|
||||||
"go.senan.xyz/gonic/server/scanner/tags"
|
"go.senan.xyz/gonic/scanner/tags"
|
||||||
)
|
)
|
||||||
|
|
||||||
const downloadAllWaitInterval = 3 * time.Second
|
const downloadAllWaitInterval = 3 * time.Second
|
||||||
@@ -18,9 +18,9 @@ import (
|
|||||||
"github.com/rainycape/unidecode"
|
"github.com/rainycape/unidecode"
|
||||||
|
|
||||||
"go.senan.xyz/gonic/multierr"
|
"go.senan.xyz/gonic/multierr"
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
"go.senan.xyz/gonic/server/mime"
|
"go.senan.xyz/gonic/mime"
|
||||||
"go.senan.xyz/gonic/server/scanner/tags"
|
"go.senan.xyz/gonic/scanner/tags"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -4,7 +4,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"go.senan.xyz/gonic/server/mockfs"
|
"go.senan.xyz/gonic/mockfs"
|
||||||
)
|
)
|
||||||
|
|
||||||
func BenchmarkScanIncremental(b *testing.B) {
|
func BenchmarkScanIncremental(b *testing.B) {
|
||||||
@@ -11,7 +11,7 @@ import (
|
|||||||
|
|
||||||
_ "github.com/jinzhu/gorm/dialects/sqlite"
|
_ "github.com/jinzhu/gorm/dialects/sqlite"
|
||||||
"github.com/matryer/is"
|
"github.com/matryer/is"
|
||||||
"go.senan.xyz/gonic/server/mockfs"
|
"go.senan.xyz/gonic/mockfs"
|
||||||
)
|
)
|
||||||
|
|
||||||
func FuzzScanner(f *testing.F) {
|
func FuzzScanner(f *testing.F) {
|
||||||
@@ -14,9 +14,9 @@ import (
|
|||||||
"github.com/matryer/is"
|
"github.com/matryer/is"
|
||||||
|
|
||||||
"go.senan.xyz/gonic/multierr"
|
"go.senan.xyz/gonic/multierr"
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
"go.senan.xyz/gonic/server/mockfs"
|
"go.senan.xyz/gonic/mockfs"
|
||||||
"go.senan.xyz/gonic/server/scanner"
|
"go.senan.xyz/gonic/scanner"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestMain(m *testing.M) {
|
func TestMain(m *testing.M) {
|
||||||
@@ -12,8 +12,8 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
"go.senan.xyz/gonic/server/scrobble"
|
"go.senan.xyz/gonic/scrobble"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -10,8 +10,8 @@ import (
|
|||||||
"net/http/httputil"
|
"net/http/httputil"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
"go.senan.xyz/gonic/server/scrobble"
|
"go.senan.xyz/gonic/scrobble"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -3,7 +3,7 @@ package scrobble
|
|||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Scrobbler interface {
|
type Scrobbler interface {
|
||||||
@@ -23,8 +23,8 @@ import (
|
|||||||
"go.senan.xyz/gonic"
|
"go.senan.xyz/gonic"
|
||||||
"go.senan.xyz/gonic/server/assets"
|
"go.senan.xyz/gonic/server/assets"
|
||||||
"go.senan.xyz/gonic/server/ctrlbase"
|
"go.senan.xyz/gonic/server/ctrlbase"
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
"go.senan.xyz/gonic/server/podcasts"
|
"go.senan.xyz/gonic/podcasts"
|
||||||
)
|
)
|
||||||
|
|
||||||
type CtxKey int
|
type CtxKey int
|
||||||
|
|||||||
@@ -9,11 +9,11 @@ import (
|
|||||||
|
|
||||||
"github.com/mmcdole/gofeed"
|
"github.com/mmcdole/gofeed"
|
||||||
|
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
"go.senan.xyz/gonic/server/scanner"
|
"go.senan.xyz/gonic/scanner"
|
||||||
"go.senan.xyz/gonic/server/scrobble/lastfm"
|
"go.senan.xyz/gonic/scrobble/lastfm"
|
||||||
"go.senan.xyz/gonic/server/scrobble/listenbrainz"
|
"go.senan.xyz/gonic/scrobble/listenbrainz"
|
||||||
"go.senan.xyz/gonic/server/transcode"
|
"go.senan.xyz/gonic/transcode"
|
||||||
)
|
)
|
||||||
|
|
||||||
func doScan(scanner *scanner.Scanner, opts scanner.ScanOptions) {
|
func doScan(scanner *scanner.Scanner, opts scanner.ScanOptions) {
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import (
|
|||||||
|
|
||||||
"github.com/jinzhu/gorm"
|
"github.com/jinzhu/gorm"
|
||||||
|
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
"github.com/gorilla/sessions"
|
"github.com/gorilla/sessions"
|
||||||
|
|
||||||
"go.senan.xyz/gonic"
|
"go.senan.xyz/gonic"
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (c *Controller) WithSession(next http.Handler) http.Handler {
|
func (c *Controller) WithSession(next http.Handler) http.Handler {
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"path"
|
"path"
|
||||||
|
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
"go.senan.xyz/gonic/server/scanner"
|
"go.senan.xyz/gonic/scanner"
|
||||||
)
|
)
|
||||||
|
|
||||||
type statusWriter struct {
|
type statusWriter struct {
|
||||||
|
|||||||
@@ -12,10 +12,10 @@ import (
|
|||||||
"go.senan.xyz/gonic/server/ctrlbase"
|
"go.senan.xyz/gonic/server/ctrlbase"
|
||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/params"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/params"
|
||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/spec"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/spec"
|
||||||
"go.senan.xyz/gonic/server/jukebox"
|
"go.senan.xyz/gonic/jukebox"
|
||||||
"go.senan.xyz/gonic/server/podcasts"
|
"go.senan.xyz/gonic/podcasts"
|
||||||
"go.senan.xyz/gonic/server/scrobble"
|
"go.senan.xyz/gonic/scrobble"
|
||||||
"go.senan.xyz/gonic/server/transcode"
|
"go.senan.xyz/gonic/transcode"
|
||||||
)
|
)
|
||||||
|
|
||||||
type CtxKey int
|
type CtxKey int
|
||||||
|
|||||||
@@ -18,9 +18,9 @@ import (
|
|||||||
|
|
||||||
"go.senan.xyz/gonic/server/ctrlbase"
|
"go.senan.xyz/gonic/server/ctrlbase"
|
||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/params"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/params"
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
"go.senan.xyz/gonic/server/mockfs"
|
"go.senan.xyz/gonic/mockfs"
|
||||||
"go.senan.xyz/gonic/server/transcode"
|
"go.senan.xyz/gonic/transcode"
|
||||||
)
|
)
|
||||||
|
|
||||||
var testCamelExpr = regexp.MustCompile("([a-z0-9])([A-Z])")
|
var testCamelExpr = regexp.MustCompile("([a-z0-9])([A-Z])")
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import (
|
|||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/params"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/params"
|
||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/spec"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/spec"
|
||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/specid"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/specid"
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (c *Controller) ServeGetBookmarks(r *http.Request) *spec.Response {
|
func (c *Controller) ServeGetBookmarks(r *http.Request) *spec.Response {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import (
|
|||||||
|
|
||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/params"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/params"
|
||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/spec"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/spec"
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
)
|
)
|
||||||
|
|
||||||
// the subsonic spec mentions "artist" a lot when talking about the
|
// the subsonic spec mentions "artist" a lot when talking about the
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ import (
|
|||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/params"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/params"
|
||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/spec"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/spec"
|
||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/specid"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/specid"
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
"go.senan.xyz/gonic/server/scrobble/lastfm"
|
"go.senan.xyz/gonic/scrobble/lastfm"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (c *Controller) ServeGetArtists(r *http.Request) *spec.Response {
|
func (c *Controller) ServeGetArtists(r *http.Request) *spec.Response {
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ import (
|
|||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/params"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/params"
|
||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/spec"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/spec"
|
||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/specid"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/specid"
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
"go.senan.xyz/gonic/server/scanner"
|
"go.senan.xyz/gonic/scanner"
|
||||||
)
|
)
|
||||||
|
|
||||||
func lowerUDecOrHash(in string) string {
|
func lowerUDecOrHash(in string) string {
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import (
|
|||||||
|
|
||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/params"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/params"
|
||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/spec"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/spec"
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
)
|
)
|
||||||
|
|
||||||
func playlistRender(c *Controller, playlist *db.Playlist) *spec.Playlist {
|
func playlistRender(c *Controller, playlist *db.Playlist) *spec.Playlist {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/params"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/params"
|
||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/spec"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/spec"
|
||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/specid"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/specid"
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (c *Controller) ServeGetPodcasts(r *http.Request) *spec.Response {
|
func (c *Controller) ServeGetPodcasts(r *http.Request) *spec.Response {
|
||||||
|
|||||||
@@ -17,8 +17,8 @@ import (
|
|||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/params"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/params"
|
||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/spec"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/spec"
|
||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/specid"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/specid"
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
"go.senan.xyz/gonic/server/transcode"
|
"go.senan.xyz/gonic/transcode"
|
||||||
)
|
)
|
||||||
|
|
||||||
// "raw" handlers are ones that don't always return a spec response.
|
// "raw" handlers are ones that don't always return a spec response.
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/matryer/is"
|
"github.com/matryer/is"
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
"go.senan.xyz/gonic/server/transcode"
|
"go.senan.xyz/gonic/transcode"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestServeStreamRaw(t *testing.T) {
|
func TestServeStreamRaw(t *testing.T) {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package spec
|
|||||||
import (
|
import (
|
||||||
"path"
|
"path"
|
||||||
|
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
)
|
)
|
||||||
|
|
||||||
func NewAlbumByFolder(f *db.Album) *Album {
|
func NewAlbumByFolder(f *db.Album) *Album {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import (
|
|||||||
"path"
|
"path"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
)
|
)
|
||||||
|
|
||||||
func NewAlbumByTags(a *db.Album, artist *db.Artist) *Album {
|
func NewAlbumByTags(a *db.Album, artist *db.Artist) *Album {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package spec
|
package spec
|
||||||
|
|
||||||
import "go.senan.xyz/gonic/server/db"
|
import "go.senan.xyz/gonic/db"
|
||||||
|
|
||||||
func NewPodcastChannel(p *db.Podcast) *PodcastChannel {
|
func NewPodcastChannel(p *db.Podcast) *PodcastChannel {
|
||||||
ret := &PodcastChannel{
|
ret := &PodcastChannel{
|
||||||
|
|||||||
@@ -15,15 +15,15 @@ import (
|
|||||||
"go.senan.xyz/gonic/server/ctrladmin"
|
"go.senan.xyz/gonic/server/ctrladmin"
|
||||||
"go.senan.xyz/gonic/server/ctrlbase"
|
"go.senan.xyz/gonic/server/ctrlbase"
|
||||||
"go.senan.xyz/gonic/server/ctrlsubsonic"
|
"go.senan.xyz/gonic/server/ctrlsubsonic"
|
||||||
"go.senan.xyz/gonic/server/db"
|
"go.senan.xyz/gonic/db"
|
||||||
"go.senan.xyz/gonic/server/jukebox"
|
"go.senan.xyz/gonic/jukebox"
|
||||||
"go.senan.xyz/gonic/server/podcasts"
|
"go.senan.xyz/gonic/podcasts"
|
||||||
"go.senan.xyz/gonic/server/scanner"
|
"go.senan.xyz/gonic/scanner"
|
||||||
"go.senan.xyz/gonic/server/scanner/tags"
|
"go.senan.xyz/gonic/scanner/tags"
|
||||||
"go.senan.xyz/gonic/server/scrobble"
|
"go.senan.xyz/gonic/scrobble"
|
||||||
"go.senan.xyz/gonic/server/scrobble/lastfm"
|
"go.senan.xyz/gonic/scrobble/lastfm"
|
||||||
"go.senan.xyz/gonic/server/scrobble/listenbrainz"
|
"go.senan.xyz/gonic/scrobble/listenbrainz"
|
||||||
"go.senan.xyz/gonic/server/transcode"
|
"go.senan.xyz/gonic/transcode"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Options struct {
|
type Options struct {
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/matryer/is"
|
"github.com/matryer/is"
|
||||||
"go.senan.xyz/gonic/server/transcode"
|
"go.senan.xyz/gonic/transcode"
|
||||||
)
|
)
|
||||||
|
|
||||||
// FuzzGuessExpectedSize makes sure all of our profile's estimated transcode
|
// FuzzGuessExpectedSize makes sure all of our profile's estimated transcode
|
||||||
Reference in New Issue
Block a user