Renamed project to CloudSonic

This commit is contained in:
Deluan 2017-04-01 09:47:14 -04:00
parent ce863f0f35
commit c417a00e62
67 changed files with 190 additions and 196 deletions

5
.gitignore vendored
View File

@ -1,4 +1,4 @@
/gosonic
/sonic-server
/iTunes*.xml
static/Jamstash
devDb
@ -6,7 +6,6 @@ devDb
vendor/*/
wiki
TODO.md
gosonic.log
var
Artwork
gosonic.toml
sonic.toml

View File

@ -1,8 +1,8 @@
language: go
go:
- 1.7
- tip
- 1.8
# - tip
before_install:
- go get github.com/kardianos/govendor
@ -15,4 +15,4 @@ script:
notifications:
email:
- gosonic@deluan.com
- cloudsonic@deluan.com

View File

@ -1,11 +1,12 @@
GoSonic
CloudSonic Server
=======
[![Build Status](https://travis-ci.org/deluan/gosonic.svg?branch=master)](https://travis-ci.org/deluan/gosonic) [![Go Report Card](https://goreportcard.com/badge/github.com/deluan/gosonic)](https://goreportcard.com/report/github.com/deluan/gosonic)
[![Build Status](https://travis-ci.org/cloudsonic/sonic-server.svg?branch=master)](https://travis-ci.org/cloudsonic/sonic-server)
[![Go Report Card](https://goreportcard.com/badge/github.com/cloudsonic/sonic-server)](https://goreportcard.com/report/github.com/cloudsonic/sonic-server)
__This is still a work in progress, and has no releases available__
GoSonic is an application that implements the [Subsonic API](http://www.subsonic.org/pages/api.jsp), but instead of
CloudSonic is an application that implements the [Subsonic API](http://www.subsonic.org/pages/api.jsp), but instead of
having its own music library like the original [Subsonic application](http://www.subsonic.org), it interacts directly
with your iTunes library.
@ -26,14 +27,14 @@ The project's main goals are:
I'm currently trying to implement all functionality from API v1.8.0, with some exceptions.
Check the (almost) up to date [compatibility chart](https://github.com/deluan/gosonic/wiki/Compatibility) for what is working.
Check the (almost) up to date [compatibility chart](https://github.com/cloudsonic/sonic-server/wiki/Compatibility) for what is working.
### Installation
As this is a work in progress, there are no installers yet. To have GoSonic running in your computer, follow the steps in the
As this is a work in progress, there are no installers yet. To have the server running in your computer, follow the steps in the
Development Environment section below, then run it with:
```
$ export GOSONIC_MUSICFOLDER="/path/to/your/iTunes Library.xml"
$ export SONIC_MUSICFOLDER="/path/to/your/iTunes Library.xml"
$ bee run
```
The server should start listening on port 4533.
@ -60,6 +61,6 @@ $ make test
### Copying
GoSonic - Copyright (C) 2017 Deluan Cotts Quintao
CloudSonic - Copyright (C) 2017 Deluan Cotts Quintao
The source code is licensed under GNU Affero GPL v3. License is available [here](/LICENSE)

View File

@ -4,9 +4,9 @@ import (
"errors"
"github.com/astaxie/beego"
"github.com/deluan/gosonic/api/responses"
"github.com/deluan/gosonic/engine"
"github.com/deluan/gosonic/utils"
"github.com/cloudsonic/sonic-server/api/responses"
"github.com/cloudsonic/sonic-server/engine"
"github.com/cloudsonic/sonic-server/utils"
)
type AlbumListController struct {

View File

@ -3,12 +3,12 @@ package api_test
import (
"testing"
"github.com/deluan/gosonic/api/responses"
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/engine"
"github.com/deluan/gosonic/persistence"
. "github.com/deluan/gosonic/tests"
"github.com/deluan/gosonic/utils"
"github.com/cloudsonic/sonic-server/api/responses"
"github.com/cloudsonic/sonic-server/domain"
"github.com/cloudsonic/sonic-server/engine"
"github.com/cloudsonic/sonic-server/persistence"
. "github.com/cloudsonic/sonic-server/tests"
"github.com/cloudsonic/sonic-server/utils"
. "github.com/smartystreets/goconvey/convey"
)

View File

@ -7,7 +7,7 @@ import (
"strings"
"github.com/astaxie/beego"
_ "github.com/deluan/gosonic/init"
_ "github.com/cloudsonic/sonic-server/init"
)
const (

View File

@ -3,14 +3,13 @@ package api
import (
"encoding/xml"
"fmt"
"strconv"
"time"
"strconv"
"github.com/astaxie/beego"
"github.com/deluan/gosonic/api/responses"
"github.com/deluan/gosonic/engine"
"github.com/deluan/gosonic/utils"
"github.com/cloudsonic/sonic-server/api/responses"
"github.com/cloudsonic/sonic-server/engine"
"github.com/cloudsonic/sonic-server/utils"
)
type BaseAPIController struct{ beego.Controller }

View File

@ -5,11 +5,11 @@ import (
"time"
"github.com/astaxie/beego"
"github.com/deluan/gosonic/api/responses"
"github.com/deluan/gosonic/conf"
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/engine"
"github.com/deluan/gosonic/utils"
"github.com/cloudsonic/sonic-server/api/responses"
"github.com/cloudsonic/sonic-server/conf"
"github.com/cloudsonic/sonic-server/domain"
"github.com/cloudsonic/sonic-server/engine"
"github.com/cloudsonic/sonic-server/utils"
)
type BrowsingController struct {
@ -41,7 +41,7 @@ func (c *BrowsingController) getArtistIndex(ifModifiedSince time.Time) responses
}
res := responses.Indexes{
IgnoredArticles: conf.GoSonic.IgnoredArticles,
IgnoredArticles: conf.Sonic.IgnoredArticles,
LastModified: fmt.Sprint(utils.ToMillis(lastModified)),
}

View File

@ -3,12 +3,12 @@ package api_test
import (
"testing"
"github.com/deluan/gosonic/api/responses"
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/engine"
"github.com/deluan/gosonic/persistence"
. "github.com/deluan/gosonic/tests"
"github.com/deluan/gosonic/utils"
"github.com/cloudsonic/sonic-server/api/responses"
"github.com/cloudsonic/sonic-server/domain"
"github.com/cloudsonic/sonic-server/engine"
"github.com/cloudsonic/sonic-server/persistence"
. "github.com/cloudsonic/sonic-server/tests"
"github.com/cloudsonic/sonic-server/utils"
. "github.com/smartystreets/goconvey/convey"
)

View File

@ -5,10 +5,10 @@ import (
"time"
"github.com/astaxie/beego"
"github.com/deluan/gosonic/api/responses"
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/engine"
"github.com/deluan/gosonic/utils"
"github.com/cloudsonic/sonic-server/api/responses"
"github.com/cloudsonic/sonic-server/domain"
"github.com/cloudsonic/sonic-server/engine"
"github.com/cloudsonic/sonic-server/utils"
)
type MediaAnnotationController struct {

View File

@ -5,10 +5,10 @@ import (
"os"
"github.com/astaxie/beego"
"github.com/deluan/gosonic/api/responses"
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/engine"
"github.com/deluan/gosonic/utils"
"github.com/cloudsonic/sonic-server/api/responses"
"github.com/cloudsonic/sonic-server/domain"
"github.com/cloudsonic/sonic-server/engine"
"github.com/cloudsonic/sonic-server/utils"
)
type MediaRetrievalController struct {

View File

@ -1,18 +1,17 @@
package api_test
import (
"testing"
"fmt"
"net/http"
"net/http/httptest"
"testing"
"github.com/astaxie/beego"
"github.com/deluan/gosonic/api/responses"
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/persistence"
. "github.com/deluan/gosonic/tests"
"github.com/deluan/gosonic/utils"
"github.com/cloudsonic/sonic-server/api/responses"
"github.com/cloudsonic/sonic-server/domain"
"github.com/cloudsonic/sonic-server/persistence"
. "github.com/cloudsonic/sonic-server/tests"
"github.com/cloudsonic/sonic-server/utils"
. "github.com/smartystreets/goconvey/convey"
)

View File

@ -4,10 +4,10 @@ import (
"fmt"
"github.com/astaxie/beego"
"github.com/deluan/gosonic/api/responses"
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/engine"
"github.com/deluan/gosonic/utils"
"github.com/cloudsonic/sonic-server/api/responses"
"github.com/cloudsonic/sonic-server/domain"
"github.com/cloudsonic/sonic-server/engine"
"github.com/cloudsonic/sonic-server/utils"
)
type PlaylistsController struct {

View File

@ -4,8 +4,8 @@ import (
"testing"
"time"
. "github.com/deluan/gosonic/api/responses"
. "github.com/deluan/gosonic/tests"
. "github.com/cloudsonic/sonic-server/api/responses"
. "github.com/cloudsonic/sonic-server/tests"
. "github.com/smartystreets/goconvey/convey"
)
@ -163,13 +163,13 @@ func TestSubsonicResponses(t *testing.T) {
})
})
Convey("With optional fields", func() {
response.User.Email = "gosonic@deluan.com"
response.User.Email = "cloudsonic@deluan.com"
response.User.Folder = []int{1}
Convey("XML", func() {
So(response, ShouldMatchXML, `<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.0.0"><user username="deluan" email="gosonic@deluan.com" scrobblingEnabled="false" adminRole="false" settingsRole="false" downloadRole="false" uploadRole="false" playlistRole="false" coverArtRole="false" commentRole="false" podcastRole="false" streamRole="false" jukeboxRole="false" shareRole="false" videoConversionRole="false"><folder>1</folder></user></subsonic-response>`)
So(response, ShouldMatchXML, `<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.0.0"><user username="deluan" email="cloudsonic@deluan.com" scrobblingEnabled="false" adminRole="false" settingsRole="false" downloadRole="false" uploadRole="false" playlistRole="false" coverArtRole="false" commentRole="false" podcastRole="false" streamRole="false" jukeboxRole="false" shareRole="false" videoConversionRole="false"><folder>1</folder></user></subsonic-response>`)
})
Convey("JSON", func() {
So(response, ShouldMatchJSON, `{"status":"ok","user":{"adminRole":false,"commentRole":false,"coverArtRole":false,"downloadRole":false,"email":"gosonic@deluan.com","folder":[1],"jukeboxRole":false,"playlistRole":false,"podcastRole":false,"scrobblingEnabled":false,"settingsRole":false,"shareRole":false,"streamRole":false,"uploadRole":false,"username":"deluan","videoConversionRole":false},"version":"1.0.0"}`)
So(response, ShouldMatchJSON, `{"status":"ok","user":{"adminRole":false,"commentRole":false,"coverArtRole":false,"downloadRole":false,"email":"cloudsonic@deluan.com","folder":[1],"jukeboxRole":false,"playlistRole":false,"podcastRole":false,"scrobblingEnabled":false,"settingsRole":false,"shareRole":false,"streamRole":false,"uploadRole":false,"username":"deluan","videoConversionRole":false},"version":"1.0.0"}`)
})
})
})

View File

@ -4,9 +4,9 @@ import (
"fmt"
"github.com/astaxie/beego"
"github.com/deluan/gosonic/api/responses"
"github.com/deluan/gosonic/engine"
"github.com/deluan/gosonic/utils"
"github.com/cloudsonic/sonic-server/api/responses"
"github.com/cloudsonic/sonic-server/engine"
"github.com/cloudsonic/sonic-server/utils"
)
type SearchingController struct {

View File

@ -2,10 +2,10 @@ package api
import (
"github.com/astaxie/beego"
"github.com/deluan/gosonic/api/responses"
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/engine"
"github.com/deluan/gosonic/utils"
"github.com/cloudsonic/sonic-server/api/responses"
"github.com/cloudsonic/sonic-server/domain"
"github.com/cloudsonic/sonic-server/engine"
"github.com/cloudsonic/sonic-server/utils"
)
type StreamController struct {

View File

@ -1,18 +1,17 @@
package api_test
import (
"testing"
"fmt"
"net/http"
"net/http/httptest"
"testing"
"github.com/astaxie/beego"
"github.com/deluan/gosonic/api/responses"
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/persistence"
. "github.com/deluan/gosonic/tests"
"github.com/deluan/gosonic/utils"
"github.com/cloudsonic/sonic-server/api/responses"
"github.com/cloudsonic/sonic-server/domain"
"github.com/cloudsonic/sonic-server/persistence"
. "github.com/cloudsonic/sonic-server/tests"
"github.com/cloudsonic/sonic-server/utils"
. "github.com/smartystreets/goconvey/convey"
)

View File

@ -1,6 +1,6 @@
package api
import "github.com/deluan/gosonic/api/responses"
import "github.com/cloudsonic/sonic-server/api/responses"
type SystemController struct{ BaseAPIController }

View File

@ -4,8 +4,8 @@ import (
"encoding/json"
"testing"
"github.com/deluan/gosonic/api/responses"
. "github.com/deluan/gosonic/tests"
"github.com/cloudsonic/sonic-server/api/responses"
. "github.com/cloudsonic/sonic-server/tests"
. "github.com/smartystreets/goconvey/convey"
)

View File

@ -1,6 +1,6 @@
package api
import "github.com/deluan/gosonic/api/responses"
import "github.com/cloudsonic/sonic-server/api/responses"
type UsersController struct{ BaseAPIController }

View File

@ -7,8 +7,8 @@ import (
"strings"
"github.com/astaxie/beego"
"github.com/deluan/gosonic/api/responses"
"github.com/deluan/gosonic/conf"
"github.com/cloudsonic/sonic-server/api/responses"
"github.com/cloudsonic/sonic-server/conf"
)
type ControllerInterface interface {
@ -18,7 +18,7 @@ type ControllerInterface interface {
}
func Validate(controller BaseAPIController) {
if !conf.GoSonic.DisableValidation {
if !conf.Sonic.DisableValidation {
checkParameters(controller)
authenticate(controller)
// TODO Validate version
@ -41,7 +41,7 @@ func checkParameters(c BaseAPIController) {
}
func authenticate(c BaseAPIController) {
password := conf.GoSonic.Password
password := conf.Sonic.Password
user := c.GetString("u")
pass := c.GetString("p")
salt := c.GetString("s")
@ -62,7 +62,7 @@ func authenticate(c BaseAPIController) {
valid = (t == token)
}
if user != conf.GoSonic.User || !valid {
if user != conf.Sonic.User || !valid {
logWarn(c, fmt.Sprintf(`Invalid login for user "%s"`, user))
abortRequest(c, responses.ErrorAuthenticationFail)
}

View File

@ -5,8 +5,8 @@ import (
"fmt"
"testing"
"github.com/deluan/gosonic/api/responses"
"github.com/deluan/gosonic/tests"
"github.com/cloudsonic/sonic-server/api/responses"
"github.com/cloudsonic/sonic-server/tests"
. "github.com/smartystreets/goconvey/convey"
)

View File

@ -1,5 +1,5 @@
appname = github.com/deluan/gosonic
serverName = GoSonic
appname = github.com/cloudsonic/sonic-server
serverName = CloudSonic
runMode = dev
autoRender = false
copyRequestBody = true

View File

@ -7,7 +7,7 @@ import (
"github.com/koding/multiconfig"
)
type goSonic struct {
type sonic struct {
Port int `default:"4533"`
MusicFolder string `default:"./iTunes1.xml"`
DbPath string `default:"./devDb"`
@ -26,32 +26,32 @@ type goSonic struct {
RunMode string `default:"dev"`
}
var GoSonic *goSonic
var Sonic *sonic
func LoadFromFlags() {
l := &multiconfig.FlagLoader{}
l.Load(GoSonic)
l.Load(Sonic)
}
func LoadFromFile(tomlFile string) {
l := &multiconfig.TOMLLoader{Path: tomlFile}
err := l.Load(GoSonic)
err := l.Load(Sonic)
if err != nil {
fmt.Printf("Error loading %s: %v\n", tomlFile, err)
}
}
func LoadFromLocalFile() {
if _, err := os.Stat("./gosonic.toml"); err == nil {
LoadFromFile("./gosonic.toml")
if _, err := os.Stat("./sonic.toml"); err == nil {
LoadFromFile("./sonic.toml")
}
}
func init() {
GoSonic = new(goSonic)
Sonic = new(sonic)
var l multiconfig.Loader
l = &multiconfig.TagLoader{}
l.Load(GoSonic)
l.Load(Sonic)
l = &multiconfig.EnvironmentLoader{}
l.Load(GoSonic)
l.Load(Sonic)
}

View File

@ -7,8 +7,8 @@ import (
"testing"
"github.com/astaxie/beego"
_ "github.com/deluan/gosonic/init"
"github.com/deluan/gosonic/tests"
_ "github.com/cloudsonic/sonic-server/init"
"github.com/cloudsonic/sonic-server/tests"
. "github.com/smartystreets/goconvey/convey"
)

View File

@ -2,7 +2,7 @@ package controllers
import (
"github.com/astaxie/beego"
"github.com/deluan/gosonic/scanner"
"github.com/cloudsonic/sonic-server/scanner"
)
type SyncController struct{ beego.Controller }

View File

@ -1,6 +1,6 @@
package domain
import "github.com/deluan/gosonic/utils"
import "github.com/cloudsonic/sonic-server/utils"
type ArtistInfo struct {
ArtistId string

View File

@ -6,8 +6,8 @@ import (
"time"
"github.com/astaxie/beego"
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/utils"
"github.com/cloudsonic/sonic-server/domain"
"github.com/cloudsonic/sonic-server/utils"
)
type Browser interface {

View File

@ -4,7 +4,7 @@ import (
"fmt"
"time"
"github.com/deluan/gosonic/domain"
"github.com/cloudsonic/sonic-server/domain"
)
type Entry struct {

View File

@ -10,7 +10,7 @@ import (
"os"
"strings"
"github.com/deluan/gosonic/domain"
"github.com/cloudsonic/sonic-server/domain"
"github.com/dhowden/tag"
"github.com/nfnt/resize"
)

View File

@ -1,15 +1,14 @@
package engine_test
import (
"testing"
"bytes"
"image"
"testing"
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/engine"
"github.com/deluan/gosonic/persistence"
. "github.com/deluan/gosonic/tests"
"github.com/cloudsonic/sonic-server/domain"
"github.com/cloudsonic/sonic-server/engine"
"github.com/cloudsonic/sonic-server/persistence"
. "github.com/cloudsonic/sonic-server/tests"
. "github.com/smartystreets/goconvey/convey"
)

View File

@ -4,8 +4,8 @@ import (
"math/rand"
"time"
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/utils"
"github.com/cloudsonic/sonic-server/domain"
"github.com/cloudsonic/sonic-server/utils"
)
type ListGenerator interface {

View File

@ -5,8 +5,8 @@ import (
"sort"
"github.com/astaxie/beego"
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/itunesbridge"
"github.com/cloudsonic/sonic-server/domain"
"github.com/cloudsonic/sonic-server/itunesbridge"
)
type Playlists interface {

View File

@ -2,9 +2,9 @@ package engine
import (
"github.com/astaxie/beego"
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/itunesbridge"
"github.com/deluan/gosonic/utils"
"github.com/cloudsonic/sonic-server/domain"
"github.com/cloudsonic/sonic-server/itunesbridge"
"github.com/cloudsonic/sonic-server/utils"
)
type Ratings interface {

View File

@ -6,8 +6,8 @@ import (
"time"
"github.com/astaxie/beego"
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/itunesbridge"
"github.com/cloudsonic/sonic-server/domain"
"github.com/cloudsonic/sonic-server/itunesbridge"
)
const (

View File

@ -4,10 +4,10 @@ import (
"testing"
"time"
"github.com/deluan/gosonic/engine"
"github.com/deluan/gosonic/itunesbridge"
"github.com/deluan/gosonic/persistence"
. "github.com/deluan/gosonic/tests"
"github.com/cloudsonic/sonic-server/engine"
"github.com/cloudsonic/sonic-server/itunesbridge"
"github.com/cloudsonic/sonic-server/persistence"
. "github.com/cloudsonic/sonic-server/tests"
. "github.com/smartystreets/goconvey/convey"
"github.com/syndtr/goleveldb/leveldb/errors"
)

View File

@ -4,8 +4,8 @@ import (
"strings"
"github.com/astaxie/beego"
"github.com/cloudsonic/sonic-server/domain"
"github.com/deluan/gomate"
"github.com/deluan/gosonic/domain"
"github.com/kennygrant/sanitize"
)

View File

@ -8,14 +8,14 @@ import (
"strings"
"github.com/astaxie/beego"
"github.com/deluan/gosonic/conf"
"github.com/cloudsonic/sonic-server/conf"
)
// TODO Encapsulate as a io.Reader
func Stream(path string, bitRate int, maxBitRate int, w io.Writer) error {
var f io.Reader
var err error
enabled := !conf.GoSonic.DisableDownsampling
enabled := !conf.Sonic.DisableDownsampling
if enabled && maxBitRate > 0 && bitRate > maxBitRate {
f, err = downsample(path, maxBitRate)
} else {
@ -45,7 +45,7 @@ func downsample(path string, maxBitRate int) (f io.Reader, err error) {
}
func createDownsamplingCommand(path string, maxBitRate int) (string, []string) {
cmd := conf.GoSonic.DownsampleCommand
cmd := conf.Sonic.DownsampleCommand
split := strings.Split(cmd, " ")
for i, s := range split {

View File

@ -3,7 +3,7 @@ package engine
import (
"testing"
. "github.com/deluan/gosonic/tests"
. "github.com/cloudsonic/sonic-server/tests"
. "github.com/smartystreets/goconvey/convey"
)

View File

@ -1,15 +1,14 @@
package init
import (
"github.com/cloudsonic/sonic-server/domain"
"github.com/cloudsonic/sonic-server/engine"
"github.com/cloudsonic/sonic-server/itunesbridge"
"github.com/cloudsonic/sonic-server/persistence"
"github.com/cloudsonic/sonic-server/scanner"
"github.com/cloudsonic/sonic-server/utils"
"github.com/deluan/gomate"
"github.com/deluan/gomate/ledis"
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/engine"
"github.com/deluan/gosonic/persistence"
"github.com/deluan/gosonic/utils"
"github.com/deluan/gosonic/itunesbridge"
"github.com/deluan/gosonic/scanner"
)
func init() {

View File

@ -1,12 +1,11 @@
package init
import (
"github.com/deluan/gosonic/api"
"github.com/astaxie/beego"
"github.com/astaxie/beego/context"
"github.com/astaxie/beego/plugins/cors"
"github.com/deluan/gosonic/controllers"
"github.com/cloudsonic/sonic-server/api"
"github.com/cloudsonic/sonic-server/controllers"
)
func init() {

12
main.go
View File

@ -4,19 +4,19 @@ import (
"fmt"
"github.com/astaxie/beego"
"github.com/deluan/gosonic/conf"
_ "github.com/deluan/gosonic/init"
_ "github.com/deluan/gosonic/tasks"
"github.com/cloudsonic/sonic-server/conf"
_ "github.com/cloudsonic/sonic-server/init"
_ "github.com/cloudsonic/sonic-server/tasks"
)
func main() {
conf.LoadFromLocalFile()
conf.LoadFromFlags()
beego.BConfig.RunMode = conf.GoSonic.RunMode
beego.BConfig.Listen.HTTPPort = conf.GoSonic.Port
beego.BConfig.RunMode = conf.Sonic.RunMode
beego.BConfig.Listen.HTTPPort = conf.Sonic.Port
fmt.Printf("\nGoSonic v%s (%s mode)\n\n", "0.1", beego.BConfig.RunMode)
fmt.Printf("\nCloudSonic Server v%s (%s mode)\n\n", "0.1", beego.BConfig.RunMode)
if beego.BConfig.RunMode == "prod" {
beego.SetLevel(beego.LevelInformational)
}

View File

@ -4,7 +4,7 @@ import (
"errors"
"time"
"github.com/deluan/gosonic/domain"
"github.com/cloudsonic/sonic-server/domain"
)
type albumRepository struct {

View File

@ -3,7 +3,7 @@ package persistence
import (
"errors"
"github.com/deluan/gosonic/domain"
"github.com/cloudsonic/sonic-server/domain"
)
type artistRepository struct {

View File

@ -4,7 +4,7 @@ import (
"errors"
"github.com/astaxie/beego"
"github.com/deluan/gosonic/scanner"
"github.com/cloudsonic/sonic-server/scanner"
"github.com/siddontang/ledisdb/ledis"
)

View File

@ -4,7 +4,7 @@ import (
"errors"
"sort"
"github.com/deluan/gosonic/domain"
"github.com/cloudsonic/sonic-server/domain"
)
type artistIndexRepository struct {

View File

@ -4,8 +4,8 @@ import (
"strconv"
"testing"
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/tests"
"github.com/cloudsonic/sonic-server/domain"
"github.com/cloudsonic/sonic-server/tests"
. "github.com/smartystreets/goconvey/convey"
)

View File

@ -3,7 +3,7 @@ package persistence
import (
"sync"
"github.com/deluan/gosonic/conf"
"github.com/cloudsonic/sonic-server/conf"
"github.com/siddontang/ledisdb/config"
"github.com/siddontang/ledisdb/ledis"
)
@ -17,7 +17,7 @@ var (
func Db() *ledis.DB {
once.Do(func() {
config := config.NewConfigDefault()
config.DataDir = conf.GoSonic.DbPath
config.DataDir = conf.Sonic.DbPath
l, _ := ledis.Open(config)
instance, err := l.Select(0)
if err != nil {

View File

@ -8,8 +8,8 @@ import (
"strings"
"time"
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/utils"
"github.com/cloudsonic/sonic-server/domain"
"github.com/cloudsonic/sonic-server/utils"
"github.com/siddontang/ledisdb/ledis"
)

View File

@ -6,9 +6,9 @@ import (
"testing"
"time"
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/tests"
"github.com/deluan/gosonic/utils"
"github.com/cloudsonic/sonic-server/domain"
"github.com/cloudsonic/sonic-server/tests"
"github.com/cloudsonic/sonic-server/utils"
. "github.com/smartystreets/goconvey/convey"
)

View File

@ -3,10 +3,9 @@ package persistence
import (
"errors"
"sort"
"time"
"github.com/deluan/gosonic/domain"
"github.com/cloudsonic/sonic-server/domain"
)
type mediaFileRepository struct {

View File

@ -1,8 +1,8 @@
package persistence
import (
"github.com/deluan/gosonic/conf"
"github.com/deluan/gosonic/domain"
"github.com/cloudsonic/sonic-server/conf"
"github.com/cloudsonic/sonic-server/domain"
)
type mediaFolderRepository struct {
@ -14,7 +14,7 @@ func NewMediaFolderRepository() domain.MediaFolderRepository {
}
func (*mediaFolderRepository) GetAll() (domain.MediaFolders, error) {
mediaFolder := domain.MediaFolder{Id: "0", Name: "iTunes Library", Path: conf.GoSonic.MusicFolder}
mediaFolder := domain.MediaFolder{Id: "0", Name: "iTunes Library", Path: conf.Sonic.MusicFolder}
result := make(domain.MediaFolders, 1)
result[0] = mediaFolder
return result, nil

View File

@ -5,7 +5,7 @@ import (
"errors"
"fmt"
"github.com/deluan/gosonic/domain"
"github.com/cloudsonic/sonic-server/domain"
)
func CreateMockAlbumRepo() *MockAlbum {

View File

@ -5,7 +5,7 @@ import (
"errors"
"fmt"
"github.com/deluan/gosonic/domain"
"github.com/cloudsonic/sonic-server/domain"
)
func CreateMockArtistRepo() *MockArtist {

View File

@ -5,7 +5,7 @@ import (
"errors"
"fmt"
"github.com/deluan/gosonic/domain"
"github.com/cloudsonic/sonic-server/domain"
)
func CreateMockArtistIndexRepo() *MockArtistIndex {

View File

@ -5,7 +5,7 @@ import (
"errors"
"fmt"
"github.com/deluan/gosonic/domain"
"github.com/cloudsonic/sonic-server/domain"
)
func CreateMockMediaFileRepo() *MockMediaFile {

View File

@ -4,7 +4,7 @@ import (
"encoding/json"
"fmt"
"github.com/deluan/gosonic/engine"
"github.com/cloudsonic/sonic-server/engine"
)
var (

View File

@ -3,7 +3,7 @@ package persistence
import (
"errors"
"github.com/deluan/gosonic/domain"
"github.com/cloudsonic/sonic-server/domain"
)
type playlistRepository struct {

View File

@ -3,8 +3,8 @@ package persistence
import (
"errors"
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/engine"
"github.com/cloudsonic/sonic-server/domain"
"github.com/cloudsonic/sonic-server/engine"
)
type propertyRepository struct {

View File

@ -8,10 +8,10 @@ import (
"time"
"github.com/astaxie/beego"
"github.com/deluan/gosonic/conf"
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/engine"
"github.com/deluan/gosonic/utils"
"github.com/cloudsonic/sonic-server/conf"
"github.com/cloudsonic/sonic-server/domain"
"github.com/cloudsonic/sonic-server/engine"
"github.com/cloudsonic/sonic-server/utils"
)
type Scanner interface {
@ -50,7 +50,7 @@ func CheckForUpdates(force bool) {
func startImport() {
go func() {
itunesLibrary = conf.GoSonic.MusicFolder
itunesLibrary = conf.Sonic.MusicFolder
info, err := os.Stat(itunesLibrary)
if err != nil {
@ -264,7 +264,7 @@ func (i *Importer) importArtists() domain.Artists {
}
func (i *Importer) importArtistIndex() {
indexGroups := utils.ParseIndexGroups(conf.GoSonic.IndexGroups)
indexGroups := utils.ParseIndexGroups(conf.Sonic.IndexGroups)
artistIndex := make(map[string]tempIndex)
for _, ar := range i.scanner.Artists() {
@ -281,7 +281,7 @@ func (i *Importer) importPlaylists() domain.Playlists {
j := 0
for _, pl := range i.scanner.Playlists() {
pl.Public = true
pl.Owner = conf.GoSonic.User
pl.Owner = conf.Sonic.User
pl.Comment = "Original: " + pl.FullPath
pls[j] = *pl
j++

View File

@ -1,11 +1,12 @@
package scanner
import (
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/tests"
"github.com/deluan/gosonic/utils"
. "github.com/smartystreets/goconvey/convey"
"testing"
"github.com/cloudsonic/sonic-server/domain"
"github.com/cloudsonic/sonic-server/tests"
"github.com/cloudsonic/sonic-server/utils"
. "github.com/smartystreets/goconvey/convey"
)
func TestCollectIndex(t *testing.T) {

View File

@ -14,8 +14,8 @@ import (
"time"
"github.com/astaxie/beego"
"github.com/deluan/gosonic/conf"
"github.com/deluan/gosonic/domain"
"github.com/cloudsonic/sonic-server/conf"
"github.com/cloudsonic/sonic-server/domain"
"github.com/deluan/itl"
"github.com/dhowden/tag"
)
@ -103,8 +103,8 @@ func (s *ItunesScanner) ScanLibrary(lastModifiedSince time.Time, path string) (i
beego.Debug("Saved", len(s.newSums), "checksums")
}
ignFolders := conf.GoSonic.PlsIgnoreFolders
ignPatterns := strings.Split(conf.GoSonic.PlsIgnoredPatterns, ";")
ignFolders := conf.Sonic.PlsIgnoreFolders
ignPatterns := strings.Split(conf.Sonic.PlsIgnoredPatterns, ";")
for _, p := range l.Playlists {
rel := plsRelation{pID: p.PlaylistPersistentID, parentPID: p.ParentPersistentID, name: unescape(p.Name)}
s.pplaylists[p.PlaylistPersistentID] = rel

View File

@ -5,7 +5,7 @@ import (
"github.com/astaxie/beego"
"github.com/astaxie/beego/toolbox"
"github.com/deluan/gosonic/scanner"
"github.com/cloudsonic/sonic-server/scanner"
)
const TaskItunesScan = "iTunes Library Scanner"

View File

@ -7,12 +7,12 @@ import (
"testing"
"github.com/astaxie/beego"
"github.com/deluan/gosonic/conf"
"github.com/deluan/gosonic/utils"
"github.com/cloudsonic/sonic-server/conf"
"github.com/cloudsonic/sonic-server/utils"
)
func Init(t *testing.T, skipOnShort bool) {
conf.LoadFromFile("../tests/gosonic-test.toml")
conf.LoadFromFile("../tests/sonic-test.toml")
if skipOnShort && testing.Short() {
t.Skip("skipping test in short mode.")
}

View File

@ -7,7 +7,7 @@ import (
"encoding/xml"
"fmt"
"github.com/deluan/gosonic/api/responses"
"github.com/cloudsonic/sonic-server/api/responses"
"github.com/smartystreets/goconvey/convey"
)

View File

@ -3,11 +3,11 @@ package utils
import (
"strings"
"github.com/deluan/gosonic/conf"
"github.com/cloudsonic/sonic-server/conf"
)
func NoArticle(name string) string {
articles := strings.Split(conf.GoSonic.IgnoredArticles, " ")
articles := strings.Split(conf.Sonic.IgnoredArticles, " ")
for _, a := range articles {
n := strings.TrimPrefix(name, a+" ")
if n != name {