2016-02-26 17:39:14 +01:00
|
|
|
GoSonic
|
2016-02-25 00:28:23 +01:00
|
|
|
=======
|
|
|
|
|
2016-02-26 16:56:57 +01:00
|
|
|
[![Build Status](https://travis-ci.org/deluan/gosonic.svg?branch=master)](https://travis-ci.org/deluan/gosonic)
|
|
|
|
|
|
|
|
__This is still a work in progress, and has no releases available__
|
2016-02-25 19:51:20 +01:00
|
|
|
|
2016-02-25 00:28:23 +01:00
|
|
|
GoSonic 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.
|
|
|
|
|
2016-02-25 01:23:04 +01:00
|
|
|
The project's main goals are:
|
2016-02-26 07:45:04 +01:00
|
|
|
|
2016-02-25 00:28:23 +01:00
|
|
|
* Full compatibility with the available [Subsonic clients](http://www.subsonic.org/pages/apps.jsp)
|
2016-02-26 16:56:57 +01:00
|
|
|
(only being tested with
|
2016-03-10 18:03:08 +01:00
|
|
|
[DSub](http://www.subsonic.org/pages/apps.jsp#dsub) and
|
2016-02-26 16:56:57 +01:00
|
|
|
[Jamstash](http://www.subsonic.org/pages/apps.jsp#jamstash))
|
2016-02-29 20:16:51 +01:00
|
|
|
* Use all metadata from iTunes, so that you can keep using iTunes to manage your music
|
|
|
|
* Keep iTunes stats (play counts, last played dates, ratings, etc..) updated, at least on Mac OS X
|
2016-02-26 16:56:57 +01:00
|
|
|
* Learning Go ;) [![Gopher](https://blog.golang.org/favicon.ico)](https://golang.org)
|
2016-02-25 00:28:23 +01:00
|
|
|
|
2016-02-26 07:45:04 +01:00
|
|
|
|
2016-03-10 00:28:11 +01:00
|
|
|
### Supported Subsonic API version
|
2016-02-29 20:16:51 +01:00
|
|
|
|
2016-03-11 05:30:00 +01:00
|
|
|
I'm currently trying to implement all functionality from API v1.4.0, with some exceptions.
|
2016-03-10 18:03:08 +01:00
|
|
|
|
2016-03-10 00:28:11 +01:00
|
|
|
Check the (almost) up to date [compatibility chart](https://github.com/deluan/gosonic/wiki/Compatibility) for what is working.
|
2016-02-25 00:28:23 +01:00
|
|
|
|
2016-02-26 17:39:14 +01:00
|
|
|
### Development Environment
|
|
|
|
|
|
|
|
You will need to install [Go 1.6](https://golang.org/dl/)
|
2016-02-29 20:16:51 +01:00
|
|
|
|
2016-02-26 17:39:14 +01:00
|
|
|
Then install dependencies:
|
|
|
|
```
|
|
|
|
$ go get github.com/beego/bee
|
|
|
|
$ go get github.com/gpmgo/gopm
|
|
|
|
$ gopm get -v -g
|
|
|
|
```
|
|
|
|
|
2016-02-29 20:16:51 +01:00
|
|
|
From here it's a normal [BeeGo](http://beego.me) development cycle. Some useful commands:
|
2016-02-26 17:39:14 +01:00
|
|
|
|
2016-02-27 09:35:01 +01:00
|
|
|
```bash
|
|
|
|
# Start local server (with hot reload)
|
|
|
|
$ bee run
|
|
|
|
|
|
|
|
# Start test runner on the browser
|
|
|
|
$ NOLOG=1 goconvey --port 9090
|
2016-02-29 20:16:51 +01:00
|
|
|
|
|
|
|
# Run all tests
|
2016-02-27 09:35:01 +01:00
|
|
|
$ go test ./... -v
|
|
|
|
```
|
2016-02-26 17:39:14 +01:00
|
|
|
|
2016-02-25 00:28:23 +01:00
|
|
|
|
2016-02-26 16:56:57 +01:00
|
|
|
### Useful Links
|
2016-02-25 00:28:23 +01:00
|
|
|
|
2016-02-26 07:45:04 +01:00
|
|
|
#### Frameworks/Projects
|
2016-02-26 17:39:14 +01:00
|
|
|
* https://github.com/golang/go/wiki/Projects
|
|
|
|
* https://golanglibs.com/
|
2016-02-24 00:41:35 +01:00
|
|
|
|
2016-02-26 07:45:04 +01:00
|
|
|
#### REST/Web
|
2016-02-26 17:39:14 +01:00
|
|
|
* http://beego.me/
|
2016-02-24 00:41:35 +01:00
|
|
|
|
2016-02-25 00:28:23 +01:00
|
|
|
#### DB
|
2016-02-29 20:16:51 +01:00
|
|
|
* http://ledisdb.com
|
2016-02-24 00:41:35 +01:00
|
|
|
|
2016-02-26 07:45:04 +01:00
|
|
|
#### Search
|
2016-02-29 20:16:51 +01:00
|
|
|
* https://github.com/sunfmin/redisgosearch
|
2016-03-08 20:18:17 +01:00
|
|
|
* http://patshaughnessy.net/2011/11/29/two-ways-of-using-redis-to-build-a-nosql-autocomplete-search-index
|
2016-02-26 22:56:05 +01:00
|
|
|
|
|
|
|
#### Testing
|
|
|
|
* http://goconvey.co/
|