From d9ce6f3b51d168aba2409e356b58848adb291484 Mon Sep 17 00:00:00 2001
From: Deluan <deluan@deluan.com>
Date: Mon, 20 Jan 2020 22:55:59 -0500
Subject: [PATCH] Add the Compatibility table to the main git repo

---
 API_COMPATIBILITY.md | 57 ++++++++++++++++++++++++++++++++++++++++++++
 README.md            |  6 ++---
 2 files changed, 59 insertions(+), 4 deletions(-)
 create mode 100644 API_COMPATIBILITY.md

diff --git a/API_COMPATIBILITY.md b/API_COMPATIBILITY.md
new file mode 100644
index 000000000..ca0d11e99
--- /dev/null
+++ b/API_COMPATIBILITY.md
@@ -0,0 +1,57 @@
+
+###  Supported Subsonic API endpoints
+
+CloudSonic is currently compatible (to some extent) with [Subsonic API](subsonic.org/pages/api.jsp) v1.8.0, with some exceptions.
+
+This is an (almost) up to date list of all Subsonic API endpoints implemented by CloudSonic. 
+Check the "Notes" column for limitations/missing behaviour. Also keep in mind these differences between 
+CloudSonic and Subsonic:
+
+* Right now, CloudSonic only works with a single Music Library (Music Folder)
+* CloudSonic does not mark songs as played by calls to `stream`, only when 
+ `scrobble` is called with `submission=true`
+* Next features to be implemented: Playlists (WIP), MultiUser (WIP), Jukebox, Sharing, Podcasts, Bookmarks, Internet Radio. 
+
+
+| ENDPOINT               | NOTES |
+|------------------------|-------|
+| _SYSTEM_               ||
+| `ping`                 | |
+| `getLicense`           | Always valid ;) |    
+| ||
+| _BROWSING_             ||
+| `getMusicFolders`      | Hardcoded to just one, configured in `app.conf` |
+| `getIndexes`           | Doesn't support shortcuts, nor direct children |
+| `getMusicDirectory`    | |
+| `getSong`              | |
+| `getArtists`           | |
+| `getArtist`            | |
+| `getAlbum`             | |
+| `getGenres`            | |
+| ||
+| _ALBUM/SONGS LISTS_    ||
+| `getAlbumList`         | `byYear` and `byGenre` are not implemented |
+| `getAlbumList2`        | `byYear` and `byGenre` are not implemented |
+| `getStarred`           | Doesn't return any artists, as iTunes does not support starred (loved) artists |
+| `getStarred2`          | Doesn't return any artists, as iTunes does not support starred (loved) artists |
+| `getNowPlaying`        | |
+| `getRandomSongs`       | Ignores `genre` and `year` parameters |
+| ||
+| _SEARCHING_            ||
+| `search2`              | Doesn't support Lucene queries, only simple auto complete queries |
+| `search3`              | Doesn't support Lucene queries, only simple auto complete queries |
+| ||
+| _MEDIA RETRIEVAL_      ||
+| `stream`               | Returns wrong content-length when downsampling |
+| `download`             | |
+| `getCoverArt`          | Only gets embedded artwork |
+| `getAvatar`            | Always returns the same image |
+| ||
+| _MEDIA ANNOTATION_     ||
+| `star`                 | |
+| `unstar`               | |
+| `setRating`            | Doesn't work with artists |
+| `scrobble`             | No Last.FM support yet. It is used to update play count, last played, skip count and last skipped |
+| ||
+| _USER MANAGEMENT_      ||
+| `getUser`              | Hardcoded all roles, ignores `username` parameter|
diff --git a/README.md b/README.md
index becd88ddb..180e9bcf4 100644
--- a/README.md
+++ b/README.md
@@ -20,9 +20,7 @@ Version 1.0 main goals are:
 
 ### Supported Subsonic API version
 
-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/cloudsonic/sonic-server/wiki/Compatibility) 
+Check the (almost) up to date [compatibility chart](API_COMPATIBILITY.md) 
 for what is working.
 
 ### Installation
@@ -48,7 +46,7 @@ To change any configuration, create a file named `sonic.toml` in the project fol
 
 ### Development Environment
 
-You will need to install [Go 1.13](https://golang.org/dl/)
+You will need to install [Go 1.13](https://golang.org/dl/) and [Node 12.14.1](http://nodejs.org)
 
 Then install dependencies: