diff --git a/404.html b/404.html index 60c17e35..b71ef8a9 100644 --- a/404.html +++ b/404.html @@ -7,11 +7,11 @@ - + -

404

There's nothing here.
Take me home.
- +

404

That's a Four-Oh-Four.
Take me home.
+ diff --git a/assets/js/15.a0fc535e.js b/assets/js/15.d5e5b3b1.js similarity index 99% rename from assets/js/15.a0fc535e.js rename to assets/js/15.d5e5b3b1.js index 8bcaf45c..2773c07d 100644 --- a/assets/js/15.a0fc535e.js +++ b/assets/js/15.d5e5b3b1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{196:function(t,s,a){"use strict";a.r(s);var e=a(0),n=Object(e.a)({},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"follow"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#follow","aria-hidden":"true"}},[t._v("#")]),t._v(" Follow")]),t._v(" "),a("h2",{attrs:{id:"follow-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#follow-2","aria-hidden":"true"}},[t._v("#")]),t._v(" Follow")]),t._v(" "),a("blockquote",[a("p",[t._v("Add the current user as a follower of one or more artists or other Spotify users.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("followType")]),t._v(" "),a("td",[t._v("The ID type: either artist or user.")]),t._v(" "),a("td",[a("code",[t._v("FollowType.Artist")])])]),t._v(" "),a("tr",[a("td",[t._v("ids or id")]),t._v(" "),a("td",[t._v("A list of the artist or the user Spotify IDs or just a Spotify ID")]),t._v(" "),a("td",[a("code",[t._v('new List { "1KpCi9BOfviCVhmpI4G2sY" }')]),t._v(" or "),a("code",[t._v('"1KpCi9BOfviCVhmpI4G2sY"')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ErrorResponse")]),t._v(" which just contains a possible error. ("),a("code",[t._v("response.HasError()")]),t._v(" and "),a("code",[t._v("response.Error")]),t._v(")")]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("Follow")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("FollowType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Artist"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1KpCi9BOfviCVhmpI4G2sY"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//or if it's a User")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("Follow")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("FollowType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("User"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1122095781"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"unfollow"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#unfollow","aria-hidden":"true"}},[t._v("#")]),t._v(" Unfollow")]),t._v(" "),a("blockquote",[a("p",[t._v("Remove the current user as a follower of one or more artists or other Spotify users.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("followType")]),t._v(" "),a("td",[t._v("The ID type: either artist or user.")]),t._v(" "),a("td",[a("code",[t._v("FollowType.Artist")])])]),t._v(" "),a("tr",[a("td",[t._v("ids or id")]),t._v(" "),a("td",[t._v("A list of the artist or the user Spotify IDs or just a Spotify ID")]),t._v(" "),a("td",[a("code",[t._v('new List { "1KpCi9BOfviCVhmpI4G2sY" }')]),t._v(" or "),a("code",[t._v('"1KpCi9BOfviCVhmpI4G2sY"')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ErrorResponse")]),t._v(" which just contains a possible error. ("),a("code",[t._v("response.HasError()")]),t._v(" and "),a("code",[t._v("response.Error")]),t._v(")")]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("Unfollow")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("FollowType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Artist"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1KpCi9BOfviCVhmpI4G2sY"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//or if it's a User")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("Unfollow")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("FollowType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("User"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1122095781"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"isfollowing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#isfollowing","aria-hidden":"true"}},[t._v("#")]),t._v(" IsFollowing")]),t._v(" "),a("blockquote",[a("p",[t._v("Check to see if the current user is following one or more artists or other Spotify users.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("followType")]),t._v(" "),a("td",[t._v("The ID type: either artist or user.")]),t._v(" "),a("td",[a("code",[t._v("FollowType.Artist")])])]),t._v(" "),a("tr",[a("td",[t._v("ids or id")]),t._v(" "),a("td",[t._v("A list of the artist or the user Spotify IDs or just a Spotify ID")]),t._v(" "),a("td",[a("code",[t._v('new List { "1KpCi9BOfviCVhmpI4G2sY" }')]),t._v(" or "),a("code",[t._v('"1KpCi9BOfviCVhmpI4G2sY"')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ListResponse")]),t._v(" which contains the property "),a("code",[t._v("List List")])]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Are you one of my Followers? :P")]),t._v("\nListResponse"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("Boolean"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("IsFollowing")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("FollowType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("User"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1122095781"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nConsole"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("List"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("?")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Yis!"')]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"No :("')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"followplaylist"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#followplaylist","aria-hidden":"true"}},[t._v("#")]),t._v(" FollowPlaylist")]),t._v(" "),a("blockquote",[a("p",[t._v("Add the current user as a follower of a playlist.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("ownerId")]),t._v(" "),a("td",[t._v("The Spotify user ID of the person who owns the playlist.")]),t._v(" "),a("td",[a("code",[t._v('"maxloermans"')])])]),t._v(" "),a("tr",[a("td",[t._v("playlistId")]),t._v(" "),a("td",[t._v("The Spotify ID of the playlist. Any playlist can be followed, regardless of its public/private status, as long as you know its playlist ID.")]),t._v(" "),a("td",[a("code",[t._v('"3SIp2VAsKI03mReF0dFBmI"')])])]),t._v(" "),a("tr",[a("td",[t._v("[showPublic]")]),t._v(" "),a("td",[t._v("If true the playlist will be included in user's public playlists, if false it will remain private.")]),t._v(" "),a("td",[a("code",[t._v("true")])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ErrorResponse")]),t._v(" which just contains a possible error. ("),a("code",[t._v("response.HasError()")]),t._v(" and "),a("code",[t._v("response.Error")]),t._v(")")]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("FollowPlaylist")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"maxloermans"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"3SIp2VAsKI03mReF0dFBmI"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),t._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("HasError")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"unfollowplaylist"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#unfollowplaylist","aria-hidden":"true"}},[t._v("#")]),t._v(" UnfollowPlaylist")]),t._v(" "),a("blockquote",[a("p",[t._v("Remove the current user as a follower of a playlist.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("ownerId")]),t._v(" "),a("td",[t._v("The Spotify user ID of the person who owns the playlist.")]),t._v(" "),a("td",[a("code",[t._v('"maxloermans"')])])]),t._v(" "),a("tr",[a("td",[t._v("playlistId")]),t._v(" "),a("td",[t._v("The Spotify ID of the playlist that is to be no longer followed.")]),t._v(" "),a("td",[a("code",[t._v('"3SIp2VAsKI03mReF0dFBmI"')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ErrorResponse")]),t._v(" which just contains a possible error. ("),a("code",[t._v("response.HasError()")]),t._v(" and "),a("code",[t._v("response.Error")]),t._v(")")]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("UnfollowPlaylist")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"maxloermans"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"3SIp2VAsKI03mReF0dFBmI"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),t._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("HasError")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"isfollowingplaylist"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#isfollowingplaylist","aria-hidden":"true"}},[t._v("#")]),t._v(" IsFollowingPlaylist")]),t._v(" "),a("blockquote",[a("p",[t._v("Check to see if one or more Spotify users are following a specified playlist.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("ownerId")]),t._v(" "),a("td",[t._v("The Spotify user ID of the person who owns the playlist.")]),t._v(" "),a("td",[a("code",[t._v('"maxloermans"')])])]),t._v(" "),a("tr",[a("td",[t._v("playlistId")]),t._v(" "),a("td",[t._v("The Spotify ID of the playlist.")]),t._v(" "),a("td",[a("code",[t._v('"3SIp2VAsKI03mReF0dFBmI"')])])]),t._v(" "),a("tr",[a("td",[t._v("ids or id")]),t._v(" "),a("td",[t._v("A list of the artist or the user Spotify IDs or just a Spotify ID")]),t._v(" "),a("td",[a("code",[t._v('new List { "1KpCi9BOfviCVhmpI4G2sY" }')]),t._v(" or "),a("code",[t._v('"1KpCi9BOfviCVhmpI4G2sY"')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ListResponse")]),t._v(" which contains the property "),a("code",[t._v("List List")])]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Am I following the playlist?")]),t._v("\nListResponse"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("Boolean"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("IsFollowing")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"maxloermans"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"3SIp2VAsKI03mReF0dFBmI"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1122095781"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nConsole"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("List"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("?")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Yis!"')]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"No :("')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr")])},[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{197:function(t,s,a){"use strict";a.r(s);var e=a(0),n=Object(e.a)({},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"follow"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#follow","aria-hidden":"true"}},[t._v("#")]),t._v(" Follow")]),t._v(" "),a("h2",{attrs:{id:"follow-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#follow-2","aria-hidden":"true"}},[t._v("#")]),t._v(" Follow")]),t._v(" "),a("blockquote",[a("p",[t._v("Add the current user as a follower of one or more artists or other Spotify users.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("followType")]),t._v(" "),a("td",[t._v("The ID type: either artist or user.")]),t._v(" "),a("td",[a("code",[t._v("FollowType.Artist")])])]),t._v(" "),a("tr",[a("td",[t._v("ids or id")]),t._v(" "),a("td",[t._v("A list of the artist or the user Spotify IDs or just a Spotify ID")]),t._v(" "),a("td",[a("code",[t._v('new List { "1KpCi9BOfviCVhmpI4G2sY" }')]),t._v(" or "),a("code",[t._v('"1KpCi9BOfviCVhmpI4G2sY"')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ErrorResponse")]),t._v(" which just contains a possible error. ("),a("code",[t._v("response.HasError()")]),t._v(" and "),a("code",[t._v("response.Error")]),t._v(")")]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("Follow")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("FollowType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Artist"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1KpCi9BOfviCVhmpI4G2sY"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//or if it's a User")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("Follow")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("FollowType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("User"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1122095781"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"unfollow"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#unfollow","aria-hidden":"true"}},[t._v("#")]),t._v(" Unfollow")]),t._v(" "),a("blockquote",[a("p",[t._v("Remove the current user as a follower of one or more artists or other Spotify users.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("followType")]),t._v(" "),a("td",[t._v("The ID type: either artist or user.")]),t._v(" "),a("td",[a("code",[t._v("FollowType.Artist")])])]),t._v(" "),a("tr",[a("td",[t._v("ids or id")]),t._v(" "),a("td",[t._v("A list of the artist or the user Spotify IDs or just a Spotify ID")]),t._v(" "),a("td",[a("code",[t._v('new List { "1KpCi9BOfviCVhmpI4G2sY" }')]),t._v(" or "),a("code",[t._v('"1KpCi9BOfviCVhmpI4G2sY"')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ErrorResponse")]),t._v(" which just contains a possible error. ("),a("code",[t._v("response.HasError()")]),t._v(" and "),a("code",[t._v("response.Error")]),t._v(")")]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("Unfollow")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("FollowType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Artist"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1KpCi9BOfviCVhmpI4G2sY"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//or if it's a User")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("Unfollow")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("FollowType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("User"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1122095781"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"isfollowing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#isfollowing","aria-hidden":"true"}},[t._v("#")]),t._v(" IsFollowing")]),t._v(" "),a("blockquote",[a("p",[t._v("Check to see if the current user is following one or more artists or other Spotify users.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("followType")]),t._v(" "),a("td",[t._v("The ID type: either artist or user.")]),t._v(" "),a("td",[a("code",[t._v("FollowType.Artist")])])]),t._v(" "),a("tr",[a("td",[t._v("ids or id")]),t._v(" "),a("td",[t._v("A list of the artist or the user Spotify IDs or just a Spotify ID")]),t._v(" "),a("td",[a("code",[t._v('new List { "1KpCi9BOfviCVhmpI4G2sY" }')]),t._v(" or "),a("code",[t._v('"1KpCi9BOfviCVhmpI4G2sY"')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ListResponse")]),t._v(" which contains the property "),a("code",[t._v("List List")])]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Are you one of my Followers? :P")]),t._v("\nListResponse"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("Boolean"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("IsFollowing")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("FollowType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("User"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1122095781"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nConsole"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("List"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("?")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Yis!"')]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"No :("')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"followplaylist"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#followplaylist","aria-hidden":"true"}},[t._v("#")]),t._v(" FollowPlaylist")]),t._v(" "),a("blockquote",[a("p",[t._v("Add the current user as a follower of a playlist.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("ownerId")]),t._v(" "),a("td",[t._v("The Spotify user ID of the person who owns the playlist.")]),t._v(" "),a("td",[a("code",[t._v('"maxloermans"')])])]),t._v(" "),a("tr",[a("td",[t._v("playlistId")]),t._v(" "),a("td",[t._v("The Spotify ID of the playlist. Any playlist can be followed, regardless of its public/private status, as long as you know its playlist ID.")]),t._v(" "),a("td",[a("code",[t._v('"3SIp2VAsKI03mReF0dFBmI"')])])]),t._v(" "),a("tr",[a("td",[t._v("[showPublic]")]),t._v(" "),a("td",[t._v("If true the playlist will be included in user's public playlists, if false it will remain private.")]),t._v(" "),a("td",[a("code",[t._v("true")])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ErrorResponse")]),t._v(" which just contains a possible error. ("),a("code",[t._v("response.HasError()")]),t._v(" and "),a("code",[t._v("response.Error")]),t._v(")")]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("FollowPlaylist")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"maxloermans"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"3SIp2VAsKI03mReF0dFBmI"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),t._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("HasError")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"unfollowplaylist"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#unfollowplaylist","aria-hidden":"true"}},[t._v("#")]),t._v(" UnfollowPlaylist")]),t._v(" "),a("blockquote",[a("p",[t._v("Remove the current user as a follower of a playlist.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("ownerId")]),t._v(" "),a("td",[t._v("The Spotify user ID of the person who owns the playlist.")]),t._v(" "),a("td",[a("code",[t._v('"maxloermans"')])])]),t._v(" "),a("tr",[a("td",[t._v("playlistId")]),t._v(" "),a("td",[t._v("The Spotify ID of the playlist that is to be no longer followed.")]),t._v(" "),a("td",[a("code",[t._v('"3SIp2VAsKI03mReF0dFBmI"')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ErrorResponse")]),t._v(" which just contains a possible error. ("),a("code",[t._v("response.HasError()")]),t._v(" and "),a("code",[t._v("response.Error")]),t._v(")")]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorResponse")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("UnfollowPlaylist")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"maxloermans"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"3SIp2VAsKI03mReF0dFBmI"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),t._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("HasError")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n Console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr"),t._v(" "),a("h2",{attrs:{id:"isfollowingplaylist"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#isfollowingplaylist","aria-hidden":"true"}},[t._v("#")]),t._v(" IsFollowingPlaylist")]),t._v(" "),a("blockquote",[a("p",[t._v("Check to see if one or more Spotify users are following a specified playlist.")])]),t._v(" "),a("p",[a("strong",[t._v("Parameters")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")]),t._v(" "),a("th",[t._v("Example")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("ownerId")]),t._v(" "),a("td",[t._v("The Spotify user ID of the person who owns the playlist.")]),t._v(" "),a("td",[a("code",[t._v('"maxloermans"')])])]),t._v(" "),a("tr",[a("td",[t._v("playlistId")]),t._v(" "),a("td",[t._v("The Spotify ID of the playlist.")]),t._v(" "),a("td",[a("code",[t._v('"3SIp2VAsKI03mReF0dFBmI"')])])]),t._v(" "),a("tr",[a("td",[t._v("ids or id")]),t._v(" "),a("td",[t._v("A list of the artist or the user Spotify IDs or just a Spotify ID")]),t._v(" "),a("td",[a("code",[t._v('new List { "1KpCi9BOfviCVhmpI4G2sY" }')]),t._v(" or "),a("code",[t._v('"1KpCi9BOfviCVhmpI4G2sY"')])])])])]),t._v(" "),a("p",[t._v("Returns a "),a("code",[t._v("ListResponse")]),t._v(" which contains the property "),a("code",[t._v("List List")])]),t._v(" "),a("p",[a("strong",[t._v("Usage")])]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Am I following the playlist?")]),t._v("\nListResponse"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("Boolean"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" response "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("IsFollowing")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"maxloermans"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"3SIp2VAsKI03mReF0dFBmI"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1122095781"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nConsole"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("response"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("List"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("?")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Yis!"')]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"No :("')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("hr")])},[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/16.427ccfec.js b/assets/js/16.536aed8d.js similarity index 99% rename from assets/js/16.427ccfec.js rename to assets/js/16.536aed8d.js index 669c5dae..a7a40b29 100644 --- a/assets/js/16.427ccfec.js +++ b/assets/js/16.536aed8d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{197:function(t,a,s){"use strict";s.r(a);var e=s(0),r=Object(e.a)({},function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"getting-started"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getting-started","aria-hidden":"true"}},[t._v("#")]),t._v(" Getting Started")]),t._v(" "),s("p",[t._v("This API provides full access to the new SpotifyWebAPI introduced "),s("a",{attrs:{href:"https://developer.spotify.com/web-api/",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),s("OutboundLink")],1),t._v(".\nWith it, you can search for Tracks/Albums/Artists and also get User-based information.\nIt's also possible to create new playlists and add tracks to it.")]),t._v(" "),s("h2",{attrs:{id:"first-steps"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#first-steps","aria-hidden":"true"}},[t._v("#")]),t._v(" First steps")]),t._v(" "),s("h3",{attrs:{id:"imports"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#imports","aria-hidden":"true"}},[t._v("#")]),t._v(" Imports")]),t._v(" "),s("p",[t._v("So after you added the API to your project, you may want to add following imports to your files:")]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("using")]),t._v(" SpotifyAPI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Web"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Base Namespace")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("using")]),t._v(" SpotifyAPI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Web"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Enums"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Enums")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("using")]),t._v(" SpotifyAPI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Web"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Models"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Models for the JSON-responses")]),t._v("\n")])])]),s("h3",{attrs:{id:"basic-usage"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#basic-usage","aria-hidden":"true"}},[t._v("#")]),t._v(" Basic-Usage")]),t._v(" "),s("p",[t._v("Now you can actually start doing calls to the SpotifyAPI, just create a new Instance of SpotifyWebAPI:")]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SpotifyWebAPI")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Main")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("String"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" args"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n _spotify "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SpotifyWebAPI")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n AccessToken "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"XXXXXXXXXXXX"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n TokenType "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Bearer"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FullTrack")]),t._v(" track "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetTrack")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"3Hvu1pq89D4R0lyPBoujSv"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n Console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("track"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Yeay! We just printed a tracks name.")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("You may note that we used "),s("code",[t._v("AccessToken")]),t._v(" and "),s("code",[t._v("TokenType")]),t._v(". Spotify does not allow un-authorized access to their API. You will need to implement one of the auth flows. Luckily, "),s("code",[t._v("SpotifyAPI.Web.Auth")]),t._v(" exists for this reason. A simple way to receive a "),s("code",[t._v("AccessToken")]),t._v(" is via "),s("code",[t._v("CredentialAuth")]),t._v(":")]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CredentialsAuth")]),t._v(" auth "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CredentialsAuth")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"YourClientID"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"YourClientSecret"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Token")]),t._v(" token "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" auth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetToken")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n_spotify "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SpotifyWebAPI")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n AccessToken "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" token"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("AccessToken"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n TokenType "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" token"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("TokenType\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("For more info, visit the "),s("router-link",{attrs:{to:"/auth/getting_started/"}},[t._v("Getting Started of SpotifyAPI.Web.Auth")])],1),t._v(" "),s("hr"),t._v(" "),s("h2",{attrs:{id:"examples"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#examples","aria-hidden":"true"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),s("p",[t._v("A list of small examples can be found "),s("router-link",{attrs:{to:"/web/examples/"}},[t._v("here")]),t._v(". Do you think a specific example is missing? Feel free to open a PR.mdIssue!")],1),t._v(" "),s("hr"),t._v(" "),s("h2",{attrs:{id:"error-handling"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#error-handling","aria-hidden":"true"}},[t._v("#")]),t._v(" Error-Handling")]),t._v(" "),s("p",[t._v("Every API-Call returns a reponse-model which consists of base-error model. To check if a specific API-Call was successful, use the following approach:")]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("PrivateProfile")]),t._v(" profile "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetPrivateProfile")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("profile"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("HasError")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n Console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error Status: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" profile"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Status"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n Console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error Msg: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" profile"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Message"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("In case some or all of the returned values are null, consult error status and message, they can lead to an explanation!")]),t._v(" "),s("h2",{attrs:{id:"sync-vs-asynchronous"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#sync-vs-asynchronous","aria-hidden":"true"}},[t._v("#")]),t._v(" Sync vs Asynchronous")]),t._v(" "),s("p",[t._v("Every API-Call has an "),s("code",[t._v("asynchronous")]),t._v(" and "),s("code",[t._v("synchronous")]),t._v(" method.")]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("async")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Test")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" asyncProfile "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetPrivateProfileAsync")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" syncProfile "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetPrivateProfile")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("Note that the "),s("code",[t._v("synchronous")]),t._v(" call will block the current Thread!")]),t._v(" "),s("hr"),t._v(" "),s("h2",{attrs:{id:"api-reference"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#api-reference","aria-hidden":"true"}},[t._v("#")]),t._v(" API-Reference")]),t._v(" "),s("h3",{attrs:{id:"albums"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#albums","aria-hidden":"true"}},[t._v("#")]),t._v(" Albums")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/albums.html#getalbumtracks"}},[t._v("GetAlbumTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/albums.html#getalbum"}},[t._v("GetAlbum")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/albums.html#getseveralalbums"}},[t._v("GetSeveralAlbums")])],1)]),t._v(" "),s("h3",{attrs:{id:"artists"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#artists","aria-hidden":"true"}},[t._v("#")]),t._v(" Artists")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/artists.html#getartist"}},[t._v("GetArtist")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/artists.html#getrelatedartists"}},[t._v("GetRelatedArtists")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/artists.html#getartiststoptracks"}},[t._v("GetArtistsTopTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/artists.html#getartistsalbums"}},[t._v("GetArtistsAlbums")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/artists.html#getseveralartists"}},[t._v("GetSeveralArtists")])],1)]),t._v(" "),s("h3",{attrs:{id:"browse"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#browse","aria-hidden":"true"}},[t._v("#")]),t._v(" Browse")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/browse.html#getfeaturedplaylists"}},[t._v("GetFeaturedPlaylists")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/browse.html#getnewalbumreleases"}},[t._v("GetNewAlbumReleases")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/browse.html#getcategories"}},[t._v("GetCategories")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/browse.html#getcategory"}},[t._v("GetCategory")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/browse.html#getcategoryplaylists"}},[t._v("GetCategoryPlaylists")])],1)]),t._v(" "),s("h3",{attrs:{id:"follow"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#follow","aria-hidden":"true"}},[t._v("#")]),t._v(" Follow")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/follow.html#follow"}},[t._v("Follow")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/follow.html#unfollow"}},[t._v("Unfollow")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/follow.html#isfollowing"}},[t._v("IsFollowing")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/follow.html#followplaylist"}},[t._v("FollowPlaylist")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/follow.html#unfollowplaylist"}},[t._v("UnfollowPlaylist")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/follow.html#isfollowingplaylist"}},[t._v("IsFollowingPlaylist")])],1)]),t._v(" "),s("h3",{attrs:{id:"library"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#library","aria-hidden":"true"}},[t._v("#")]),t._v(" Library")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/library.html#savetracks"}},[t._v("SaveTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/library.html#savetrack"}},[t._v("SaveTrack")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/library.html#getsavedtracks"}},[t._v("GetSavedTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/library.html#removesavedtracks"}},[t._v("RemoveSavedTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/library.html#checksavedtracks"}},[t._v("CheckSavedTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/library.html#savealbums"}},[t._v("SaveAlbums")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/library.html#savealbum"}},[t._v("SaveAlbum")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/library.html#getsavedalbums"}},[t._v("GetSavedAlbums")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/library.html#removesavedalbums"}},[t._v("RemoveSavedAlbums")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/library.html#checksavedalbums"}},[t._v("CheckSavedAlbums")])],1)]),t._v(" "),s("h3",{attrs:{id:"personalization"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#personalization","aria-hidden":"true"}},[t._v("#")]),t._v(" Personalization")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/personalization.html#getuserstoptracks"}},[t._v("GetUsersTopTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/personalization.html#getuserstopartists"}},[t._v("GetUsersTopArtists")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/personalization.html#getusersrecentlyplayedtracks"}},[t._v("GetUsersRecentlyPlayedTracks")])],1)]),t._v(" "),s("h3",{attrs:{id:"player"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#player","aria-hidden":"true"}},[t._v("#")]),t._v(" Player")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/player.html#getdevices"}},[t._v("GetDevices")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/player.html#getplayback"}},[t._v("GetPlayback")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/player.html#getplayingtrack"}},[t._v("GetPlayingTrack")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/player.html#transferplayback"}},[t._v("TransferPlayback")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/player.html#resumeplayback"}},[t._v("ResumePlayback")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/player.html#pauseplayback"}},[t._v("PausePlayback")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/player.html#skipplaybacktonext"}},[t._v("SkipPlaybackToNext")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/player.html#skipplaybacktoprevious"}},[t._v("SkipPlaybackToPrevious")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/player.html#setrepeatmode"}},[t._v("SetRepeatMode")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/player.html#setvolume"}},[t._v("SetVolume")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/player.html#setshuffle"}},[t._v("SetShuffle")])],1)]),t._v(" "),s("h3",{attrs:{id:"playlists"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#playlists","aria-hidden":"true"}},[t._v("#")]),t._v(" Playlists")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/playlists.html#getuserplaylists"}},[t._v("GetUserPlaylists")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/playlists.html#getplaylist"}},[t._v("GetPlaylist")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/playlists.html#getplaylisttracks"}},[t._v("GetPlaylistTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/playlists.html#createplaylist"}},[t._v("CreatePlaylist")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/playlists.html#updateplaylist"}},[t._v("UpdatePlaylist")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/playlists.html#replaceplaylisttracks"}},[t._v("ReplacePlaylistTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/playlists.html#removeplaylisttracks"}},[t._v("RemovePlaylistTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/playlists.html#removeplaylisttrack"}},[t._v("RemovePlaylistTrack")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/playlists.html#addplaylisttracks"}},[t._v("AddPlaylistTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/playlists.html#addplaylisttrack"}},[t._v("AddPlaylistTrack")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/playlists.html#reorderplaylist"}},[t._v("ReorderPlaylist")])],1)]),t._v(" "),s("h3",{attrs:{id:"profiles"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#profiles","aria-hidden":"true"}},[t._v("#")]),t._v(" Profiles")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/profiles.html#getpublicprofile"}},[t._v("GetPublicProfile")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/profiles.html#getprivateprofile"}},[t._v("GetPrivateProfile")])],1)]),t._v(" "),s("h3",{attrs:{id:"search"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#search","aria-hidden":"true"}},[t._v("#")]),t._v(" Search")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/search.html#searchitems"}},[t._v("SearchItems")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/search.html#searchitemsescaped"}},[t._v("SearchItemsEscaped")])],1)]),t._v(" "),s("h3",{attrs:{id:"tracks"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#tracks","aria-hidden":"true"}},[t._v("#")]),t._v(" Tracks")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/tracks.html#getseveraltracks"}},[t._v("GetSeveralTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/tracks.html#gettrack"}},[t._v("GetTrack")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/tracks.html#getaudioanalysis"}},[t._v("GetAudioAnalysis")])],1)]),t._v(" "),s("h3",{attrs:{id:"util"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#util","aria-hidden":"true"}},[t._v("#")]),t._v(" Util")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/utils.html"}},[t._v("Utility-Functions")])],1)])])},[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{196:function(t,a,s){"use strict";s.r(a);var e=s(0),r=Object(e.a)({},function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"getting-started"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getting-started","aria-hidden":"true"}},[t._v("#")]),t._v(" Getting Started")]),t._v(" "),s("p",[t._v("This API provides full access to the new SpotifyWebAPI introduced "),s("a",{attrs:{href:"https://developer.spotify.com/web-api/",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),s("OutboundLink")],1),t._v(".\nWith it, you can search for Tracks/Albums/Artists and also get User-based information.\nIt's also possible to create new playlists and add tracks to it.")]),t._v(" "),s("h2",{attrs:{id:"first-steps"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#first-steps","aria-hidden":"true"}},[t._v("#")]),t._v(" First steps")]),t._v(" "),s("h3",{attrs:{id:"imports"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#imports","aria-hidden":"true"}},[t._v("#")]),t._v(" Imports")]),t._v(" "),s("p",[t._v("So after you added the API to your project, you may want to add following imports to your files:")]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("using")]),t._v(" SpotifyAPI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Web"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Base Namespace")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("using")]),t._v(" SpotifyAPI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Web"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Enums"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Enums")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("using")]),t._v(" SpotifyAPI"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Web"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Models"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Models for the JSON-responses")]),t._v("\n")])])]),s("h3",{attrs:{id:"basic-usage"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#basic-usage","aria-hidden":"true"}},[t._v("#")]),t._v(" Basic-Usage")]),t._v(" "),s("p",[t._v("Now you can actually start doing calls to the SpotifyAPI, just create a new Instance of SpotifyWebAPI:")]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SpotifyWebAPI")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("static")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Main")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("String"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" args"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n _spotify "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SpotifyWebAPI")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n AccessToken "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"XXXXXXXXXXXX"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n TokenType "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Bearer"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FullTrack")]),t._v(" track "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetTrack")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"3Hvu1pq89D4R0lyPBoujSv"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n Console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("track"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Name"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//Yeay! We just printed a tracks name.")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("You may note that we used "),s("code",[t._v("AccessToken")]),t._v(" and "),s("code",[t._v("TokenType")]),t._v(". Spotify does not allow un-authorized access to their API. You will need to implement one of the auth flows. Luckily, "),s("code",[t._v("SpotifyAPI.Web.Auth")]),t._v(" exists for this reason. A simple way to receive a "),s("code",[t._v("AccessToken")]),t._v(" is via "),s("code",[t._v("CredentialAuth")]),t._v(":")]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CredentialsAuth")]),t._v(" auth "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CredentialsAuth")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"YourClientID"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"YourClientSecret"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Token")]),t._v(" token "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" auth"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetToken")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n_spotify "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SpotifyWebAPI")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n AccessToken "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" token"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("AccessToken"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n TokenType "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" token"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("TokenType\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("For more info, visit the "),s("router-link",{attrs:{to:"/auth/getting_started/"}},[t._v("Getting Started of SpotifyAPI.Web.Auth")])],1),t._v(" "),s("hr"),t._v(" "),s("h2",{attrs:{id:"examples"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#examples","aria-hidden":"true"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),s("p",[t._v("A list of small examples can be found "),s("router-link",{attrs:{to:"/web/examples/"}},[t._v("here")]),t._v(". Do you think a specific example is missing? Feel free to open a PR.mdIssue!")],1),t._v(" "),s("hr"),t._v(" "),s("h2",{attrs:{id:"error-handling"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#error-handling","aria-hidden":"true"}},[t._v("#")]),t._v(" Error-Handling")]),t._v(" "),s("p",[t._v("Every API-Call returns a reponse-model which consists of base-error model. To check if a specific API-Call was successful, use the following approach:")]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("PrivateProfile")]),t._v(" profile "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetPrivateProfile")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("profile"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("HasError")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n Console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error Status: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" profile"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Status"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n Console"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("WriteLine")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Error Msg: "')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" profile"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Error"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Message"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("In case some or all of the returned values are null, consult error status and message, they can lead to an explanation!")]),t._v(" "),s("h2",{attrs:{id:"sync-vs-asynchronous"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#sync-vs-asynchronous","aria-hidden":"true"}},[t._v("#")]),t._v(" Sync vs Asynchronous")]),t._v(" "),s("p",[t._v("Every API-Call has an "),s("code",[t._v("asynchronous")]),t._v(" and "),s("code",[t._v("synchronous")]),t._v(" method.")]),t._v(" "),s("div",{staticClass:"language-csharp extra-class"},[s("pre",{pre:!0,attrs:{class:"language-csharp"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("async")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Test")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" asyncProfile "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetPrivateProfileAsync")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" syncProfile "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" _spotify"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetPrivateProfile")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("Note that the "),s("code",[t._v("synchronous")]),t._v(" call will block the current Thread!")]),t._v(" "),s("hr"),t._v(" "),s("h2",{attrs:{id:"api-reference"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#api-reference","aria-hidden":"true"}},[t._v("#")]),t._v(" API-Reference")]),t._v(" "),s("h3",{attrs:{id:"albums"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#albums","aria-hidden":"true"}},[t._v("#")]),t._v(" Albums")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/albums.html#getalbumtracks"}},[t._v("GetAlbumTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/albums.html#getalbum"}},[t._v("GetAlbum")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/albums.html#getseveralalbums"}},[t._v("GetSeveralAlbums")])],1)]),t._v(" "),s("h3",{attrs:{id:"artists"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#artists","aria-hidden":"true"}},[t._v("#")]),t._v(" Artists")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/artists.html#getartist"}},[t._v("GetArtist")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/artists.html#getrelatedartists"}},[t._v("GetRelatedArtists")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/artists.html#getartiststoptracks"}},[t._v("GetArtistsTopTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/artists.html#getartistsalbums"}},[t._v("GetArtistsAlbums")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/artists.html#getseveralartists"}},[t._v("GetSeveralArtists")])],1)]),t._v(" "),s("h3",{attrs:{id:"browse"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#browse","aria-hidden":"true"}},[t._v("#")]),t._v(" Browse")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/browse.html#getfeaturedplaylists"}},[t._v("GetFeaturedPlaylists")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/browse.html#getnewalbumreleases"}},[t._v("GetNewAlbumReleases")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/browse.html#getcategories"}},[t._v("GetCategories")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/browse.html#getcategory"}},[t._v("GetCategory")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/browse.html#getcategoryplaylists"}},[t._v("GetCategoryPlaylists")])],1)]),t._v(" "),s("h3",{attrs:{id:"follow"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#follow","aria-hidden":"true"}},[t._v("#")]),t._v(" Follow")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/follow.html#follow"}},[t._v("Follow")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/follow.html#unfollow"}},[t._v("Unfollow")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/follow.html#isfollowing"}},[t._v("IsFollowing")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/follow.html#followplaylist"}},[t._v("FollowPlaylist")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/follow.html#unfollowplaylist"}},[t._v("UnfollowPlaylist")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/follow.html#isfollowingplaylist"}},[t._v("IsFollowingPlaylist")])],1)]),t._v(" "),s("h3",{attrs:{id:"library"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#library","aria-hidden":"true"}},[t._v("#")]),t._v(" Library")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/library.html#savetracks"}},[t._v("SaveTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/library.html#savetrack"}},[t._v("SaveTrack")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/library.html#getsavedtracks"}},[t._v("GetSavedTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/library.html#removesavedtracks"}},[t._v("RemoveSavedTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/library.html#checksavedtracks"}},[t._v("CheckSavedTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/library.html#savealbums"}},[t._v("SaveAlbums")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/library.html#savealbum"}},[t._v("SaveAlbum")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/library.html#getsavedalbums"}},[t._v("GetSavedAlbums")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/library.html#removesavedalbums"}},[t._v("RemoveSavedAlbums")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/library.html#checksavedalbums"}},[t._v("CheckSavedAlbums")])],1)]),t._v(" "),s("h3",{attrs:{id:"personalization"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#personalization","aria-hidden":"true"}},[t._v("#")]),t._v(" Personalization")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/personalization.html#getuserstoptracks"}},[t._v("GetUsersTopTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/personalization.html#getuserstopartists"}},[t._v("GetUsersTopArtists")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/personalization.html#getusersrecentlyplayedtracks"}},[t._v("GetUsersRecentlyPlayedTracks")])],1)]),t._v(" "),s("h3",{attrs:{id:"player"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#player","aria-hidden":"true"}},[t._v("#")]),t._v(" Player")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/player.html#getdevices"}},[t._v("GetDevices")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/player.html#getplayback"}},[t._v("GetPlayback")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/player.html#getplayingtrack"}},[t._v("GetPlayingTrack")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/player.html#transferplayback"}},[t._v("TransferPlayback")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/player.html#resumeplayback"}},[t._v("ResumePlayback")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/player.html#pauseplayback"}},[t._v("PausePlayback")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/player.html#skipplaybacktonext"}},[t._v("SkipPlaybackToNext")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/player.html#skipplaybacktoprevious"}},[t._v("SkipPlaybackToPrevious")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/player.html#setrepeatmode"}},[t._v("SetRepeatMode")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/player.html#setvolume"}},[t._v("SetVolume")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/player.html#setshuffle"}},[t._v("SetShuffle")])],1)]),t._v(" "),s("h3",{attrs:{id:"playlists"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#playlists","aria-hidden":"true"}},[t._v("#")]),t._v(" Playlists")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/playlists.html#getuserplaylists"}},[t._v("GetUserPlaylists")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/playlists.html#getplaylist"}},[t._v("GetPlaylist")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/playlists.html#getplaylisttracks"}},[t._v("GetPlaylistTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/playlists.html#createplaylist"}},[t._v("CreatePlaylist")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/playlists.html#updateplaylist"}},[t._v("UpdatePlaylist")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/playlists.html#replaceplaylisttracks"}},[t._v("ReplacePlaylistTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/playlists.html#removeplaylisttracks"}},[t._v("RemovePlaylistTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/playlists.html#removeplaylisttrack"}},[t._v("RemovePlaylistTrack")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/playlists.html#addplaylisttracks"}},[t._v("AddPlaylistTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/playlists.html#addplaylisttrack"}},[t._v("AddPlaylistTrack")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/playlists.html#reorderplaylist"}},[t._v("ReorderPlaylist")])],1)]),t._v(" "),s("h3",{attrs:{id:"profiles"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#profiles","aria-hidden":"true"}},[t._v("#")]),t._v(" Profiles")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/profiles.html#getpublicprofile"}},[t._v("GetPublicProfile")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/profiles.html#getprivateprofile"}},[t._v("GetPrivateProfile")])],1)]),t._v(" "),s("h3",{attrs:{id:"search"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#search","aria-hidden":"true"}},[t._v("#")]),t._v(" Search")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/search.html#searchitems"}},[t._v("SearchItems")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/search.html#searchitemsescaped"}},[t._v("SearchItemsEscaped")])],1)]),t._v(" "),s("h3",{attrs:{id:"tracks"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#tracks","aria-hidden":"true"}},[t._v("#")]),t._v(" Tracks")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/tracks.html#getseveraltracks"}},[t._v("GetSeveralTracks")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/tracks.html#gettrack"}},[t._v("GetTrack")])],1),t._v(" "),s("li",[s("router-link",{attrs:{to:"/web/tracks.html#getaudioanalysis"}},[t._v("GetAudioAnalysis")])],1)]),t._v(" "),s("h3",{attrs:{id:"util"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#util","aria-hidden":"true"}},[t._v("#")]),t._v(" Util")]),t._v(" "),s("ul",[s("li",[s("router-link",{attrs:{to:"/web/utils.html"}},[t._v("Utility-Functions")])],1)])])},[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/5.43d454fa.js b/assets/js/5.43d454fa.js new file mode 100644 index 00000000..d60fa2f4 --- /dev/null +++ b/assets/js/5.43d454fa.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{186:function(t,e,r){"use strict";r.r(e);var a=r(0),o=Object(a.a)({},function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"spotifyapi-net-docs"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#spotifyapi-net-docs","aria-hidden":"true"}},[t._v("#")]),t._v(" SpotifyAPI-NET Docs")]),t._v(" "),r("h2",{attrs:{id:"about"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#about","aria-hidden":"true"}},[t._v("#")]),t._v(" About")]),t._v(" "),r("p",[t._v("This project, written in C#/.NET, provides 2 libraries for an easier usage of the Spotify Web API")]),t._v(" "),r("p",[r("strong",[t._v("Spotify's Web API")]),t._v(" ("),r("a",{attrs:{href:"https://developer.spotify.com/web-api/",target:"_blank",rel:"noopener noreferrer"}},[t._v("link"),r("OutboundLink")],1),t._v(")")]),t._v(" "),r("blockquote",[r("p",[t._v("Based on simple REST principles, our Web API endpoints return metadata in JSON format about artists, albums, and tracks directly from the Spotify catalogue.\nThe API also provides access to user-related data such as playlists and music saved in a β€œYour Music” library, subject to user’s authorization.")])]),t._v(" "),r("p",[r("strong",[t._v("SpotifyAPI.Web")])]),t._v(" "),r("blockquote",[r("p",[t._v("A wrapper around Spotify's Web API, providing sync and async methods to query all possible endpoints. Results are returned as typed class instances, allowing property-based access.")])]),t._v(" "),r("p",[r("strong",[t._v("SpotifyAPI.Web.Auth")])]),t._v(" "),r("blockquote",[r("p",[t._v("A library providing C# implementations of the 3 supported Authentication modes, including "),r("code",[t._v("ImplicitGrantAuth")]),t._v(", "),r("code",[t._v("AuthorizationCodeAuth")]),t._v(" and "),r("code",[t._v("CredentialsAuth")])])]),t._v(" "),r("hr"),t._v(" "),r("h2",{attrs:{id:"installing"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#installing","aria-hidden":"true"}},[t._v("#")]),t._v(" Installing")]),t._v(" "),r("ul",[r("li",[t._v("Via NuGet Package:")])]),t._v(" "),r("div",{staticClass:"language-bash extra-class"},[r("pre",{pre:!0,attrs:{class:"language-bash"}},[r("code",[t._v("Install-Package SpotifyAPI.Web\nInstall-Package SpotifyAPI.Web.Auth\n")])])]),r("ul",[r("li",[t._v("Download the latest binaries on the "),r("a",{attrs:{href:"https://github.com/JohnnyCrazy/SpotifyAPI-NET/releases",target:"_blank",rel:"noopener noreferrer"}},[t._v("GitHub Release Page"),r("OutboundLink")],1),t._v(" and add it to your Project")]),t._v(" "),r("li",[t._v("Clone the Repo and build the project yourself.")])]),t._v(" "),r("hr"),t._v(" "),r("h2",{attrs:{id:"getting-started"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#getting-started","aria-hidden":"true"}},[t._v("#")]),t._v(" Getting Started")]),t._v(" "),r("ul",[r("li",[r("router-link",{attrs:{to:"/web/getting_started/"}},[t._v("SpotifyAPI.Web")])],1),t._v(" "),r("li",[r("router-link",{attrs:{to:"/auth/getting_started/"}},[t._v("SpotifyAPI.Web.Auth")])],1)]),t._v(" "),r("h2",{attrs:{id:"projects"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#projects","aria-hidden":"true"}},[t._v("#")]),t._v(" Projects")]),t._v(" "),r("h3",{attrs:{id:"lidarr-by-lidarr"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#lidarr-by-lidarr","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/lidarr/Lidarr",target:"_blank",rel:"noopener noreferrer"}},[t._v("lidarr"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/lidarr",target:"_blank",rel:"noopener noreferrer"}},[t._v("@lidarr"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("Looks and smells like Sonarr but made for music.")])]),t._v(" "),r("h3",{attrs:{id:"botframework-solutions-by-microsoft"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#botframework-solutions-by-microsoft","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/microsoft/botframework-solutions",target:"_blank",rel:"noopener noreferrer"}},[t._v("botframework-solutions"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/microsoft",target:"_blank",rel:"noopener noreferrer"}},[t._v("@microsoft"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("home for a set of templates and solutions to help build advanced conversational experiences using Azure Bot Service and Bot Framework")])]),t._v(" "),r("h3",{attrs:{id:"spytify-by-jwallet"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#spytify-by-jwallet","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/jwallet/spy-spotify",target:"_blank",rel:"noopener noreferrer"}},[t._v("Spytify"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/jwallet",target:"_blank",rel:"noopener noreferrer"}},[t._v("@jwallet"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("Records Spotify to mp3 without ads while it plays and includes media tags to the recorded files")])]),t._v(" "),r("h3",{attrs:{id:"audio-band-by-dsafa"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#audio-band-by-dsafa","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/dsafa/audio-band",target:"_blank",rel:"noopener noreferrer"}},[t._v("audio-band"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/dsafa",target:"_blank",rel:"noopener noreferrer"}},[t._v("@dsafa"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("Display and control songs from the Windows taskbar")])]),t._v(" "),r("h3",{attrs:{id:"rocksmith-custom-song-toolkit-by-catara"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#rocksmith-custom-song-toolkit-by-catara","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/catara/rocksmith-custom-song-toolkit",target:"_blank",rel:"noopener noreferrer"}},[t._v("rocksmith-custom-song-toolkit"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/catara",target:"_blank",rel:"noopener noreferrer"}},[t._v("@catara"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("MASS Manipulation of Rocksmith DLC Library")])]),t._v(" "),r("h3",{attrs:{id:"spofy-by-eltoncezar"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#spofy-by-eltoncezar","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/eltoncezar/Spofy",target:"_blank",rel:"noopener noreferrer"}},[t._v("Spofy"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/eltoncezar",target:"_blank",rel:"noopener noreferrer"}},[t._v("@eltoncezar"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("A Spotify mini player and notifier for Windows")])]),t._v(" "),r("h3",{attrs:{id:"toastify-by-aleab"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#toastify-by-aleab","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/aleab/toastify",target:"_blank",rel:"noopener noreferrer"}},[t._v("Toastify"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/aleab",target:"_blank",rel:"noopener noreferrer"}},[t._v("@aleab"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("Toastify adds global hotkeys and toast notifications to Spotify")]),t._v(" "),r("p",[r("em",[t._v("Forked from "),r("a",{attrs:{href:"https://github.com/nachmore/toastify",target:"_blank",rel:"noopener noreferrer"}},[t._v("nachmore/toastify"),r("OutboundLink")],1)])])]),t._v(" "),r("h3",{attrs:{id:"spotify-oculus-by-captainmorgs"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#spotify-oculus-by-captainmorgs","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/CaptainMorgs/spotify-oculus-release",target:"_blank",rel:"noopener noreferrer"}},[t._v("Spotify Oculus"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/CaptainMorgs",target:"_blank",rel:"noopener noreferrer"}},[t._v("@CaptainMorgs"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("Unity project for interacting with Spotify in virtual reality for the Oculus Rift.")])]),t._v(" "),r("h3",{attrs:{id:"songify-by-inzaniity"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#songify-by-inzaniity","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/Inzaniity/Songify",target:"_blank",rel:"noopener noreferrer"}},[t._v("Songify"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/Inzaniity",target:"_blank",rel:"noopener noreferrer"}},[t._v("@Inzaniity"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("A simple tool that gets the current track from Spotify, YouTube and Nightbot.")])]),t._v(" "),r("h3",{attrs:{id:"elite-g19s-companion-app-by-magicmau"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#elite-g19s-companion-app-by-magicmau","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://forums.frontier.co.uk/threads/elite-g19s-companion-app-with-simulated-space-traffic-control.226782/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Elite G19s Companion app"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/MagicMau",target:"_blank",rel:"noopener noreferrer"}},[t._v("@MagicMau"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("Main features include: system and station overview, play radio and podcast with audio visualizations, simulated Space Traffic Control, GPS functionality (including planetary races), an orrery view, a screenshot converter, and a news ticker.")])]),t._v(" "),r("h3",{attrs:{id:"arduino-spotify-remote-control-by-nader11ndeu"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#arduino-spotify-remote-control-by-nader11ndeu","aria-hidden":"true"}},[t._v("#")]),t._v(" "),r("a",{attrs:{href:"https://github.com/NADER11NDEU/ARDUINO-Spotify-Remote-Control",target:"_blank",rel:"noopener noreferrer"}},[t._v("ARDUINO-Spotify-Remote-Control"),r("OutboundLink")],1),t._v(" by "),r("a",{attrs:{href:"https://github.com/NADER11NDEU",target:"_blank",rel:"noopener noreferrer"}},[t._v("@NADER11NDEU"),r("OutboundLink")],1)]),t._v(" "),r("blockquote",[r("p",[t._v("Well, with this project we will be able to control active spotify devices with Arduino. How we gonna do that ? We will use serial communication.")])])])},[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/5.85e9957e.js b/assets/js/5.85e9957e.js deleted file mode 100644 index fd046689..00000000 --- a/assets/js/5.85e9957e.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{186:function(t,a,e){"use strict";e.r(a);var r=e(0),o=Object(r.a)({},function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"spotifyapi-net-docs"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#spotifyapi-net-docs","aria-hidden":"true"}},[t._v("#")]),t._v(" SpotifyAPI-NET Docs")]),t._v(" "),e("h2",{attrs:{id:"about"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#about","aria-hidden":"true"}},[t._v("#")]),t._v(" About")]),t._v(" "),e("p",[t._v("This project, written in C#/.NET, provides 2 libraries for an easier usage of the Spotify Web API")]),t._v(" "),e("p",[e("strong",[t._v("Spotify's Web API")]),t._v(" ("),e("a",{attrs:{href:"https://developer.spotify.com/web-api/",target:"_blank",rel:"noopener noreferrer"}},[t._v("link"),e("OutboundLink")],1),t._v(")")]),t._v(" "),e("blockquote",[e("p",[t._v("Based on simple REST principles, our Web API endpoints return metadata in JSON format about artists, albums, and tracks directly from the Spotify catalogue.\nThe API also provides access to user-related data such as playlists and music saved in a β€œYour Music” library, subject to user’s authorization.")])]),t._v(" "),e("p",[e("strong",[t._v("SpotifyAPI.Web")])]),t._v(" "),e("blockquote",[e("p",[t._v("A wrapper around Spotify's Web API, providing sync and async methods to query all possible endpoints. Results are returned as typed class instances, allowing property-based access.")])]),t._v(" "),e("p",[e("strong",[t._v("SpotifyAPI.Web.Auth")])]),t._v(" "),e("blockquote",[e("p",[t._v("A library providing C# implementations of the 3 supported Authentication modes, including "),e("code",[t._v("ImplicitGrantAuth")]),t._v(", "),e("code",[t._v("AuthorizationCodeAuth")]),t._v(" and "),e("code",[t._v("CredentialsAuth")])])]),t._v(" "),e("hr"),t._v(" "),e("h2",{attrs:{id:"installing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#installing","aria-hidden":"true"}},[t._v("#")]),t._v(" Installing")]),t._v(" "),e("ul",[e("li",[t._v("Via NuGet Package:")])]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[t._v("Install-Package SpotifyAPI.Web\nInstall-Package SpotifyAPI.Web.Auth\n")])])]),e("ul",[e("li",[t._v("Download the latest binaries on the "),e("a",{attrs:{href:"https://github.com/JohnnyCrazy/SpotifyAPI-NET/releases",target:"_blank",rel:"noopener noreferrer"}},[t._v("GitHub Release Page"),e("OutboundLink")],1),t._v(" and add it to your Project")]),t._v(" "),e("li",[t._v("Clone the Repo and build the project yourself.")])]),t._v(" "),e("hr"),t._v(" "),e("h2",{attrs:{id:"getting-started"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#getting-started","aria-hidden":"true"}},[t._v("#")]),t._v(" Getting Started")]),t._v(" "),e("ul",[e("li",[e("router-link",{attrs:{to:"/web/getting_started/"}},[t._v("SpotifyAPI.Web")])],1),t._v(" "),e("li",[e("router-link",{attrs:{to:"/auth/getting_started/"}},[t._v("SpotifyAPI.Web.Auth")])],1)]),t._v(" "),e("h2",{attrs:{id:"projects"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#projects","aria-hidden":"true"}},[t._v("#")]),t._v(" Projects")]),t._v(" "),e("h3",{attrs:{id:"audio-band-by-dsafa"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#audio-band-by-dsafa","aria-hidden":"true"}},[t._v("#")]),t._v(" "),e("a",{attrs:{href:"https://github.com/dsafa/audio-band",target:"_blank",rel:"noopener noreferrer"}},[t._v("audio-band"),e("OutboundLink")],1),t._v(" by "),e("a",{attrs:{href:"https://github.com/dsafa",target:"_blank",rel:"noopener noreferrer"}},[t._v("@dsafa"),e("OutboundLink")],1)]),t._v(" "),e("blockquote",[e("p",[t._v("Display and control songs from the Windows taskbar")])]),t._v(" "),e("h3",{attrs:{id:"rocksmith-custom-song-toolkit-by-catara"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#rocksmith-custom-song-toolkit-by-catara","aria-hidden":"true"}},[t._v("#")]),t._v(" "),e("a",{attrs:{href:"https://github.com/catara/rocksmith-custom-song-toolkit",target:"_blank",rel:"noopener noreferrer"}},[t._v("rocksmith-custom-song-toolkit"),e("OutboundLink")],1),t._v(" by "),e("a",{attrs:{href:"https://github.com/catara",target:"_blank",rel:"noopener noreferrer"}},[t._v("@catara"),e("OutboundLink")],1)]),t._v(" "),e("blockquote",[e("p",[t._v("MASS Manipulation of Rocksmith DLC Library")])]),t._v(" "),e("h3",{attrs:{id:"spofy-by-eltoncezar"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#spofy-by-eltoncezar","aria-hidden":"true"}},[t._v("#")]),t._v(" "),e("a",{attrs:{href:"https://github.com/eltoncezar/Spofy",target:"_blank",rel:"noopener noreferrer"}},[t._v("Spofy"),e("OutboundLink")],1),t._v(" by "),e("a",{attrs:{href:"https://github.com/eltoncezar",target:"_blank",rel:"noopener noreferrer"}},[t._v("@eltoncezar"),e("OutboundLink")],1)]),t._v(" "),e("blockquote",[e("p",[t._v("A Spotify mini player and notifier for Windows")])]),t._v(" "),e("h3",{attrs:{id:"toastify-by-aleab"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#toastify-by-aleab","aria-hidden":"true"}},[t._v("#")]),t._v(" "),e("a",{attrs:{href:"https://github.com/aleab/toastify",target:"_blank",rel:"noopener noreferrer"}},[t._v("Toastify"),e("OutboundLink")],1),t._v(" by "),e("a",{attrs:{href:"https://github.com/aleab",target:"_blank",rel:"noopener noreferrer"}},[t._v("@aleab"),e("OutboundLink")],1)]),t._v(" "),e("blockquote",[e("p",[t._v("Toastify adds global hotkeys and toast notifications to Spotify")]),t._v(" "),e("p",[e("em",[t._v("Forked from "),e("a",{attrs:{href:"https://github.com/nachmore/toastify",target:"_blank",rel:"noopener noreferrer"}},[t._v("nachmore/toastify"),e("OutboundLink")],1)])])]),t._v(" "),e("h3",{attrs:{id:"spotify-oculus-by-captainmorgs"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#spotify-oculus-by-captainmorgs","aria-hidden":"true"}},[t._v("#")]),t._v(" "),e("a",{attrs:{href:"https://github.com/CaptainMorgs/spotify-oculus-release",target:"_blank",rel:"noopener noreferrer"}},[t._v("Spotify Oculus"),e("OutboundLink")],1),t._v(" by "),e("a",{attrs:{href:"https://github.com/CaptainMorgs",target:"_blank",rel:"noopener noreferrer"}},[t._v("@CaptainMorgs"),e("OutboundLink")],1)]),t._v(" "),e("blockquote",[e("p",[t._v("Unity project for interacting with Spotify in virtual reality for the Oculus Rift.")])])])},[],!1,null,null,null);a.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/7.6ce7959d.js b/assets/js/7.b671f8ec.js similarity index 98% rename from assets/js/7.6ce7959d.js rename to assets/js/7.b671f8ec.js index 3aa7136a..948688b5 100644 --- a/assets/js/7.6ce7959d.js +++ b/assets/js/7.b671f8ec.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{188:function(t,e,a){"use strict";a.r(e);var s=a(0),n=Object(s.a)({},function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"clientcredentialsauth"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#clientcredentialsauth","aria-hidden":"true"}},[t._v("#")]),t._v(" ClientCredentialsAuth")]),t._v(" "),a("p",[t._v("With this approach, you make a POST Request with a base64 encoded string (consists of ClientId + ClientSecret). You will directly get the token (Without a local HTTP Server), but it will expire and can't be refreshed.\nIf you want to use it securely, you would need to do it all server-side.\n"),a("strong",[t._v("NOTE:")]),t._v(" You will only be able to query non-user-related information e.g search for a Track.")]),t._v(" "),a("p",[t._v("More info: "),a("a",{attrs:{href:"https://developer.spotify.com/documentation/general/guides/authorization-guide/#client-credentials-flow",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),a("OutboundLink")],1)]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CredentialsAuth")]),t._v(" auth "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CredentialsAuth")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("_clientId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" _secretId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Token")]),t._v(" token "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" auth"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetToken")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SpotifyWebAPI")]),t._v(" api "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SpotifyWebAPI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n TokenType "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" token"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("TokenType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n AccessToken "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" token"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("AccessToken\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])},[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{189:function(t,e,a){"use strict";a.r(e);var s=a(0),n=Object(s.a)({},function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"clientcredentialsauth"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#clientcredentialsauth","aria-hidden":"true"}},[t._v("#")]),t._v(" ClientCredentialsAuth")]),t._v(" "),a("p",[t._v("With this approach, you make a POST Request with a base64 encoded string (consists of ClientId + ClientSecret). You will directly get the token (Without a local HTTP Server), but it will expire and can't be refreshed.\nIf you want to use it securely, you would need to do it all server-side.\n"),a("strong",[t._v("NOTE:")]),t._v(" You will only be able to query non-user-related information e.g search for a Track.")]),t._v(" "),a("p",[t._v("More info: "),a("a",{attrs:{href:"https://developer.spotify.com/documentation/general/guides/authorization-guide/#client-credentials-flow",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),a("OutboundLink")],1)]),t._v(" "),a("div",{staticClass:"language-csharp extra-class"},[a("pre",{pre:!0,attrs:{class:"language-csharp"}},[a("code",[a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CredentialsAuth")]),t._v(" auth "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("CredentialsAuth")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("_clientId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" _secretId"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Token")]),t._v(" token "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" auth"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetToken")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SpotifyWebAPI")]),t._v(" api "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("SpotifyWebAPI")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n TokenType "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" token"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("TokenType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n AccessToken "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" token"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("AccessToken\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])},[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/8.5862f417.js b/assets/js/8.ee7980d6.js similarity index 97% rename from assets/js/8.5862f417.js rename to assets/js/8.ee7980d6.js index 9d103e86..c68f5f92 100644 --- a/assets/js/8.5862f417.js +++ b/assets/js/8.ee7980d6.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{189:function(t,e,r){"use strict";r.r(e);var o=r(0),i=Object(o.a)({},function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"getting-started"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#getting-started","aria-hidden":"true"}},[t._v("#")]),t._v(" Getting Started")]),t._v(" "),r("h2",{attrs:{id:"auth-methods"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#auth-methods","aria-hidden":"true"}},[t._v("#")]),t._v(" Auth-Methods")]),t._v(" "),r("p",[t._v("Before you can use the Web API's full functionality, you need the user to authenticate your Application.\nIf you want to know more, you can read to the whole auth-process "),r("a",{attrs:{href:"https://developer.spotify.com/web-api/authorization-guide/",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),r("OutboundLink")],1),t._v(".")]),t._v(" "),r("p",[t._v("Before you start, install "),r("code",[t._v("SpotifyAPI.Web.Auth")]),t._v(" and create an application at Spotify: "),r("a",{attrs:{href:"https://developer.spotify.com/my-applications/#!/applications",target:"_blank",rel:"noopener noreferrer"}},[t._v("Your Applications"),r("OutboundLink")],1)]),t._v(" "),r("p",[t._v("After you have created your Application, you will have following important values:")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Name")]),t._v(" "),r("th",[t._v("Description")])])]),t._v(" "),r("tbody",[r("tr",[r("td",[r("strong",[t._v("Client_Id")])]),t._v(" "),r("td",[t._v("This is your client_id, you don't have to hide it")])]),t._v(" "),r("tr",[r("td",[r("strong",[t._v("Client_Secret")])]),t._v(" "),r("td",[t._v("Never use this in one of your client-side apps! Keep it secret!")])]),t._v(" "),r("tr",[r("td",[r("strong",[t._v("Redirect URIs")])]),t._v(" "),r("td",[t._v("Some of auth flows require that you set the correct redirect URI")])])])]),t._v(" "),r("p",[t._v("Now you can start with the user-authentication. Spotify provides 3 ways (4 if you consider different implementations):")]),t._v(" "),r("ul",[r("li",[r("p",[r("router-link",{attrs:{to:"/auth/implicit_grant.html"}},[t._v("ImplicitGrantAuth")])],1)]),t._v(" "),r("li",[r("p",[r("router-link",{attrs:{to:"/auth/token_swap.html"}},[t._v("TokenSwapAuth")]),t._v(" ("),r("strong",[t._v("Recommended")]),t._v(", server-side code mandatory, most secure method. The necessary code is shown here so you do not have to code it yourself.)")],1)]),t._v(" "),r("li",[r("p",[r("router-link",{attrs:{to:"/auth/authorization_code.html"}},[t._v("AutorizationCodeAuth")]),t._v(" (Not recommended, server-side code needed, else it's unsecure)")],1)]),t._v(" "),r("li",[r("p",[r("router-link",{attrs:{to:"/auth/client_credentials.html"}},[t._v("ClientCredentialsAuth")]),t._v(" (Not recommended, server-side code needed, else it's unsecure)")],1)])]),t._v(" "),r("p",[t._v("Overview:\n"),r("img",{attrs:{src:"http://i.imgur.com/uf3ahTl.png",alt:"Overview"}})])])},[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{188:function(t,e,r){"use strict";r.r(e);var o=r(0),i=Object(o.a)({},function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"getting-started"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#getting-started","aria-hidden":"true"}},[t._v("#")]),t._v(" Getting Started")]),t._v(" "),r("h2",{attrs:{id:"auth-methods"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#auth-methods","aria-hidden":"true"}},[t._v("#")]),t._v(" Auth-Methods")]),t._v(" "),r("p",[t._v("Before you can use the Web API's full functionality, you need the user to authenticate your Application.\nIf you want to know more, you can read to the whole auth-process "),r("a",{attrs:{href:"https://developer.spotify.com/web-api/authorization-guide/",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),r("OutboundLink")],1),t._v(".")]),t._v(" "),r("p",[t._v("Before you start, install "),r("code",[t._v("SpotifyAPI.Web.Auth")]),t._v(" and create an application at Spotify: "),r("a",{attrs:{href:"https://developer.spotify.com/my-applications/#!/applications",target:"_blank",rel:"noopener noreferrer"}},[t._v("Your Applications"),r("OutboundLink")],1)]),t._v(" "),r("p",[t._v("After you have created your Application, you will have following important values:")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Name")]),t._v(" "),r("th",[t._v("Description")])])]),t._v(" "),r("tbody",[r("tr",[r("td",[r("strong",[t._v("Client_Id")])]),t._v(" "),r("td",[t._v("This is your client_id, you don't have to hide it")])]),t._v(" "),r("tr",[r("td",[r("strong",[t._v("Client_Secret")])]),t._v(" "),r("td",[t._v("Never use this in one of your client-side apps! Keep it secret!")])]),t._v(" "),r("tr",[r("td",[r("strong",[t._v("Redirect URIs")])]),t._v(" "),r("td",[t._v("Some of auth flows require that you set the correct redirect URI")])])])]),t._v(" "),r("p",[t._v("Now you can start with the user-authentication. Spotify provides 3 ways (4 if you consider different implementations):")]),t._v(" "),r("ul",[r("li",[r("p",[r("router-link",{attrs:{to:"/auth/implicit_grant.html"}},[t._v("ImplicitGrantAuth")])],1)]),t._v(" "),r("li",[r("p",[r("router-link",{attrs:{to:"/auth/token_swap.html"}},[t._v("TokenSwapAuth")]),t._v(" ("),r("strong",[t._v("Recommended")]),t._v(", server-side code mandatory, most secure method. The necessary code is shown here so you do not have to code it yourself.)")],1)]),t._v(" "),r("li",[r("p",[r("router-link",{attrs:{to:"/auth/authorization_code.html"}},[t._v("AutorizationCodeAuth")]),t._v(" (Not recommended, server-side code needed, else it's unsecure)")],1)]),t._v(" "),r("li",[r("p",[r("router-link",{attrs:{to:"/auth/client_credentials.html"}},[t._v("ClientCredentialsAuth")]),t._v(" (Not recommended, server-side code needed, else it's unsecure)")],1)])]),t._v(" "),r("p",[t._v("Overview:\n"),r("img",{attrs:{src:"http://i.imgur.com/uf3ahTl.png",alt:"Overview"}})])])},[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/app.5be86410.js b/assets/js/app.6b72df3a.js similarity index 71% rename from assets/js/app.5be86410.js rename to assets/js/app.6b72df3a.js index b853a60c..75abd17f 100644 --- a/assets/js/app.5be86410.js +++ b/assets/js/app.6b72df3a.js @@ -1,14 +1,14 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function e(e){for(var r,a,s=e[0],l=e[1],c=e[2],f=0,p=[];f
'};function o(t,e,n){return tn?n:t}function i(t){return 100*(-1+t)}n.configure=function(t){var e,n;for(e in t)void 0!==(n=t[e])&&t.hasOwnProperty(e)&&(r[e]=n);return this},n.status=null,n.set=function(t){var e=n.isStarted();t=o(t,r.minimum,1),n.status=1===t?null:t;var l=n.render(!e),c=l.querySelector(r.barSelector),u=r.speed,f=r.easing;return l.offsetWidth,a(function(e){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(c,function(t,e,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+i(t)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(t)+"%,0)"}:{"margin-left":i(t)+"%"}).transition="all "+e+"ms "+n,o}(t,u,f)),1===t?(s(l,{transition:"none",opacity:1}),l.offsetWidth,setTimeout(function(){s(l,{transition:"all "+u+"ms linear",opacity:0}),setTimeout(function(){n.remove(),e()},u)},u)):setTimeout(e,u)}),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var t=function(){setTimeout(function(){n.status&&(n.trickle(),t())},r.trickleSpeed)};return r.trickle&&t(),this},n.done=function(t){return t||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(t){var e=n.status;return e?("number"!=typeof t&&(t=(1-e)*o(Math.random()*e,.1,.95)),e=o(e+t,0,.994),n.set(e)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},t=0,e=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===e&&n.start(),t++,e++,r.always(function(){0==--e?(t=0,n.done()):n.set((t-e)/t)}),this):this},n.render=function(t){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var e=document.createElement("div");e.id="nprogress",e.innerHTML=r.template;var o,a=e.querySelector(r.barSelector),l=t?"-100":i(n.status||0),u=document.querySelector(r.parent);return s(a,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(o=e.querySelector(r.spinnerSelector))&&p(o),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(e),e},n.remove=function(){u(document.documentElement,"nprogress-busy"),u(document.querySelector(r.parent),"nprogress-custom-parent");var t=document.getElementById("nprogress");t&&p(t)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var t=document.body.style,e="WebkitTransform"in t?"Webkit":"MozTransform"in t?"Moz":"msTransform"in t?"ms":"OTransform"in t?"O":"";return e+"Perspective"in t?"translate3d":e+"Transform"in t?"translate":"margin"};var a=function(){var t=[];function e(){var n=t.shift();n&&n(e)}return function(n){t.push(n),1==t.length&&e()}}(),s=function(){var t=["Webkit","O","Moz","ms"],e={};function n(n){return n=n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(t,e){return e.toUpperCase()}),e[n]||(e[n]=function(e){var n=document.body.style;if(e in n)return e;for(var r,o=t.length,i=e.charAt(0).toUpperCase()+e.slice(1);o--;)if((r=t[o]+i)in n)return r;return e}(n))}function r(t,e,r){e=n(e),t.style[e]=r}return function(t,e){var n,o,i=arguments;if(2==i.length)for(n in e)void 0!==(o=e[n])&&e.hasOwnProperty(n)&&r(t,n,o);else r(t,i[1],i[2])}}();function l(t,e){return("string"==typeof t?t:f(t)).indexOf(" "+e+" ")>=0}function c(t,e){var n=f(t),r=n+e;l(n,e)||(t.className=r.substring(1))}function u(t,e){var n,r=f(t);l(t,e)&&(n=r.replace(" "+e+" "," "),t.className=n.substring(1,n.length-1))}function f(t){return(" "+(t.className||"")+" ").replace(/\s+/gi," ")}function p(t){t&&t.parentNode&&t.parentNode.removeChild(t)}return n})?r.call(e,n,e,t):r)||(t.exports=o)},function(t,e){var n="Expected a function",r=NaN,o="[object Symbol]",i=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt,u="object"==typeof global&&global&&global.Object===Object&&global,f="object"==typeof self&&self&&self.Object===Object&&self,p=u||f||Function("return this")(),d=Object.prototype.toString,h=Math.max,v=Math.min,m=function(){return p.Date.now()};function y(t,e,r){var o,i,a,s,l,c,u=0,f=!1,p=!1,d=!0;if("function"!=typeof t)throw new TypeError(n);function y(e){var n=o,r=i;return o=i=void 0,u=e,s=t.apply(r,n)}function _(t){var n=t-c;return void 0===c||n>=e||n<0||p&&t-u>=a}function w(){var t=m();if(_(t))return k(t);l=setTimeout(w,function(t){var n=e-(t-c);return p?v(n,a-(t-u)):n}(t))}function k(t){return l=void 0,d&&o?y(t):(o=i=void 0,s)}function $(){var t=m(),n=_(t);if(o=arguments,i=this,c=t,n){if(void 0===l)return function(t){return u=t,l=setTimeout(w,e),f?y(t):s}(c);if(p)return l=setTimeout(w,e),y(c)}return void 0===l&&(l=setTimeout(w,e)),s}return e=b(e)||0,g(r)&&(f=!!r.leading,a=(p="maxWait"in r)?h(b(r.maxWait)||0,e):a,d="trailing"in r?!!r.trailing:d),$.cancel=function(){void 0!==l&&clearTimeout(l),u=0,o=c=i=l=void 0},$.flush=function(){return void 0===l?s:k(m())},$}function g(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function b(t){if("number"==typeof t)return t;if(function(t){return"symbol"==typeof t||function(t){return!!t&&"object"==typeof t}(t)&&d.call(t)==o}(t))return r;if(g(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=g(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(i,"");var n=s.test(t);return n||l.test(t)?c(t.slice(2),n?2:8):a.test(t)?r:+t}t.exports=function(t,e,r){var o=!0,i=!0;if("function"!=typeof t)throw new TypeError(n);return g(r)&&(o="leading"in r?!!r.leading:o,i="trailing"in r?!!r.trailing:i),y(t,e,{leading:o,maxWait:e,trailing:i})}},function(t,e,n){t.exports=n(8)},function(t,e,n){Promise.all([n.e(0),n.e(26)]).then(n.t.bind(null,9,7))},function(t,e,n){},function(t,e,n){"use strict";var r=n(1);n.n(r).a},function(t,e,n){"use strict";n.r(e); + * @license MIT */void 0===(o="function"==typeof(r=function(){var t,e,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function o(t,e,n){return tn?n:t}function i(t){return 100*(-1+t)}n.configure=function(t){var e,n;for(e in t)void 0!==(n=t[e])&&t.hasOwnProperty(e)&&(r[e]=n);return this},n.status=null,n.set=function(t){var e=n.isStarted();t=o(t,r.minimum,1),n.status=1===t?null:t;var l=n.render(!e),u=l.querySelector(r.barSelector),c=r.speed,f=r.easing;return l.offsetWidth,a(function(e){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,function(t,e,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+i(t)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(t)+"%,0)"}:{"margin-left":i(t)+"%"}).transition="all "+e+"ms "+n,o}(t,c,f)),1===t?(s(l,{transition:"none",opacity:1}),l.offsetWidth,setTimeout(function(){s(l,{transition:"all "+c+"ms linear",opacity:0}),setTimeout(function(){n.remove(),e()},c)},c)):setTimeout(e,c)}),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var t=function(){setTimeout(function(){n.status&&(n.trickle(),t())},r.trickleSpeed)};return r.trickle&&t(),this},n.done=function(t){return t||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(t){var e=n.status;return e?("number"!=typeof t&&(t=(1-e)*o(Math.random()*e,.1,.95)),e=o(e+t,0,.994),n.set(e)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},t=0,e=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===e&&n.start(),t++,e++,r.always(function(){0==--e?(t=0,n.done()):n.set((t-e)/t)}),this):this},n.render=function(t){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var e=document.createElement("div");e.id="nprogress",e.innerHTML=r.template;var o,a=e.querySelector(r.barSelector),l=t?"-100":i(n.status||0),c=document.querySelector(r.parent);return s(a,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(o=e.querySelector(r.spinnerSelector))&&p(o),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(e),e},n.remove=function(){c(document.documentElement,"nprogress-busy"),c(document.querySelector(r.parent),"nprogress-custom-parent");var t=document.getElementById("nprogress");t&&p(t)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var t=document.body.style,e="WebkitTransform"in t?"Webkit":"MozTransform"in t?"Moz":"msTransform"in t?"ms":"OTransform"in t?"O":"";return e+"Perspective"in t?"translate3d":e+"Transform"in t?"translate":"margin"};var a=function(){var t=[];function e(){var n=t.shift();n&&n(e)}return function(n){t.push(n),1==t.length&&e()}}(),s=function(){var t=["Webkit","O","Moz","ms"],e={};function n(n){return n=n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(t,e){return e.toUpperCase()}),e[n]||(e[n]=function(e){var n=document.body.style;if(e in n)return e;for(var r,o=t.length,i=e.charAt(0).toUpperCase()+e.slice(1);o--;)if((r=t[o]+i)in n)return r;return e}(n))}function r(t,e,r){e=n(e),t.style[e]=r}return function(t,e){var n,o,i=arguments;if(2==i.length)for(n in e)void 0!==(o=e[n])&&e.hasOwnProperty(n)&&r(t,n,o);else r(t,i[1],i[2])}}();function l(t,e){return("string"==typeof t?t:f(t)).indexOf(" "+e+" ")>=0}function u(t,e){var n=f(t),r=n+e;l(n,e)||(t.className=r.substring(1))}function c(t,e){var n,r=f(t);l(t,e)&&(n=r.replace(" "+e+" "," "),t.className=n.substring(1,n.length-1))}function f(t){return(" "+(t.className||"")+" ").replace(/\s+/gi," ")}function p(t){t&&t.parentNode&&t.parentNode.removeChild(t)}return n})?r.call(e,n,e,t):r)||(t.exports=o)},function(t,e){var n="Expected a function",r=NaN,o="[object Symbol]",i=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt,c="object"==typeof global&&global&&global.Object===Object&&global,f="object"==typeof self&&self&&self.Object===Object&&self,p=c||f||Function("return this")(),d=Object.prototype.toString,h=Math.max,v=Math.min,m=function(){return p.Date.now()};function y(t,e,r){var o,i,a,s,l,u,c=0,f=!1,p=!1,d=!0;if("function"!=typeof t)throw new TypeError(n);function y(e){var n=o,r=i;return o=i=void 0,c=e,s=t.apply(r,n)}function _(t){var n=t-u;return void 0===u||n>=e||n<0||p&&t-c>=a}function w(){var t=m();if(_(t))return k(t);l=setTimeout(w,function(t){var n=e-(t-u);return p?v(n,a-(t-c)):n}(t))}function k(t){return l=void 0,d&&o?y(t):(o=i=void 0,s)}function $(){var t=m(),n=_(t);if(o=arguments,i=this,u=t,n){if(void 0===l)return function(t){return c=t,l=setTimeout(w,e),f?y(t):s}(u);if(p)return l=setTimeout(w,e),y(u)}return void 0===l&&(l=setTimeout(w,e)),s}return e=b(e)||0,g(r)&&(f=!!r.leading,a=(p="maxWait"in r)?h(b(r.maxWait)||0,e):a,d="trailing"in r?!!r.trailing:d),$.cancel=function(){void 0!==l&&clearTimeout(l),c=0,o=u=i=l=void 0},$.flush=function(){return void 0===l?s:k(m())},$}function g(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function b(t){if("number"==typeof t)return t;if(function(t){return"symbol"==typeof t||function(t){return!!t&&"object"==typeof t}(t)&&d.call(t)==o}(t))return r;if(g(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=g(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(i,"");var n=s.test(t);return n||l.test(t)?u(t.slice(2),n?2:8):a.test(t)?r:+t}t.exports=function(t,e,r){var o=!0,i=!0;if("function"!=typeof t)throw new TypeError(n);return g(r)&&(o="leading"in r?!!r.leading:o,i="trailing"in r?!!r.trailing:i),y(t,e,{leading:o,maxWait:e,trailing:i})}},function(t,e,n){t.exports=n(8)},function(t,e,n){Promise.all([n.e(0),n.e(26)]).then(n.t.bind(null,9,7))},function(t,e,n){},function(t,e,n){"use strict";var r=n(1);n.n(r).a},function(t,e,n){"use strict";n.r(e); /*! * Vue.js v2.6.10 * (c) 2014-2019 Evan You * Released under the MIT License. */ -var r=Object.freeze({});function o(t){return null==t}function i(t){return null!=t}function a(t){return!0===t}function s(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function l(t){return null!==t&&"object"==typeof t}var c=Object.prototype.toString;function u(t){return"[object Object]"===c.call(t)}function f(t){return"[object RegExp]"===c.call(t)}function p(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function d(t){return i(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function h(t){return null==t?"":Array.isArray(t)||u(t)&&t.toString===c?JSON.stringify(t,null,2):String(t)}function v(t){var e=parseFloat(t);return isNaN(e)?t:e}function m(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o-1)return t.splice(n,1)}}var b=Object.prototype.hasOwnProperty;function _(t,e){return b.call(t,e)}function w(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var k=/-(\w)/g,$=w(function(t){return t.replace(k,function(t,e){return e?e.toUpperCase():""})}),x=w(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),C=/\B([A-Z])/g,A=w(function(t){return t.replace(C,"-$1").toLowerCase()});var S=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function O(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function P(t,e){for(var n in e)t[n]=e[n];return t}function E(t){for(var e={},n=0;n0,Z=X&&X.indexOf("edge/")>0,Q=(X&&X.indexOf("android"),X&&/iphone|ipad|ipod|ios/.test(X)||"ios"===K),tt=(X&&/chrome\/\d+/.test(X),X&&/phantomjs/.test(X),X&&X.match(/firefox\/(\d+)/)),et={}.watch,nt=!1;if(q)try{var rt={};Object.defineProperty(rt,"passive",{get:function(){nt=!0}}),window.addEventListener("test-passive",null,rt)}catch(t){}var ot=function(){return void 0===G&&(G=!q&&!W&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),G},it=q&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function at(t){return"function"==typeof t&&/native code/.test(t.toString())}var st,lt="undefined"!=typeof Symbol&&at(Symbol)&&"undefined"!=typeof Reflect&&at(Reflect.ownKeys);st="undefined"!=typeof Set&&at(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ct=T,ut=0,ft=function(){this.id=ut++,this.subs=[]};ft.prototype.addSub=function(t){this.subs.push(t)},ft.prototype.removeSub=function(t){g(this.subs,t)},ft.prototype.depend=function(){ft.target&&ft.target.addDep(this)},ft.prototype.notify=function(){var t=this.subs.slice();for(var e=0,n=t.length;e-1)if(i&&!_(o,"default"))a=!1;else if(""===a||a===A(t)){var l=zt(String,o.type);(l<0||s0&&(ue((c=t(c,(n||"")+"_"+l))[0])&&ue(f)&&(r[u]=gt(f.text+c[0].text),c.shift()),r.push.apply(r,c)):s(c)?ue(f)?r[u]=gt(f.text+c):""!==c&&r.push(gt(c)):ue(c)&&ue(f)?r[u]=gt(f.text+c.text):(a(e._isVList)&&i(c.tag)&&o(c.key)&&i(n)&&(c.key="__vlist"+n+"_"+l+"__"),r.push(c)));return r}(t):void 0}function ue(t){return i(t)&&i(t.text)&&!1===t.isComment}function fe(t,e){if(t){for(var n=Object.create(null),r=lt?Reflect.ownKeys(t):Object.keys(t),o=0;o0,a=t?!!t.$stable:!i,s=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(a&&n&&n!==r&&s===n.$key&&!i&&!n.$hasNormal)return n;for(var l in o={},t)t[l]&&"$"!==l[0]&&(o[l]=ve(e,l,t[l]))}else o={};for(var c in e)c in o||(o[c]=me(e,c));return t&&Object.isExtensible(t)&&(t._normalized=o),B(o,"$stable",a),B(o,"$key",s),B(o,"$hasNormal",i),o}function ve(t,e,n){var r=function(){var t=arguments.length?n.apply(null,arguments):n({});return(t=t&&"object"==typeof t&&!Array.isArray(t)?[t]:ce(t))&&(0===t.length||1===t.length&&t[0].isComment)?void 0:t};return n.proxy&&Object.defineProperty(t,e,{get:r,enumerable:!0,configurable:!0}),r}function me(t,e){return function(){return t[e]}}function ye(t,e){var n,r,o,a,s;if(Array.isArray(t)||"string"==typeof t)for(n=new Array(t.length),r=0,o=t.length;rdocument.createEvent("Event").timeStamp&&(un=function(){return fn.now()})}function pn(){var t,e;for(cn=un(),sn=!0,nn.sort(function(t,e){return t.id-e.id}),ln=0;lnln&&nn[n].id>t.id;)n--;nn.splice(n+1,0,t)}else nn.push(t);an||(an=!0,ee(pn))}}(this)},hn.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||l(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(t){Bt(t,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},hn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},hn.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},hn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||g(this.vm._watchers,this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1}};var vn={enumerable:!0,configurable:!0,get:T,set:T};function mn(t,e,n){vn.get=function(){return this[e][n]},vn.set=function(t){this[e][n]=t},Object.defineProperty(t,n,vn)}function yn(t){t._watchers=[];var e=t.$options;e.props&&function(t,e){var n=t.$options.propsData||{},r=t._props={},o=t.$options._propKeys=[];t.$parent&&xt(!1);var i=function(i){o.push(i);var a=Dt(i,e,n,t);St(r,i,a),i in t||mn(t,"_props",i)};for(var a in e)i(a);xt(!0)}(t,e.props),e.methods&&function(t,e){t.$options.props;for(var n in e)t[n]="function"!=typeof e[n]?T:S(e[n],t)}(t,e.methods),e.data?function(t){var e=t.$options.data;u(e=t._data="function"==typeof e?function(t,e){dt();try{return t.call(e,e)}catch(t){return Bt(t,e,"data()"),{}}finally{ht()}}(e,t):e||{})||(e={});var n=Object.keys(e),r=t.$options.props,o=(t.$options.methods,n.length);for(;o--;){var i=n[o];0,r&&_(r,i)||(a=void 0,36!==(a=(i+"").charCodeAt(0))&&95!==a&&mn(t,"_data",i))}var a;At(e,!0)}(t):At(t._data={},!0),e.computed&&function(t,e){var n=t._computedWatchers=Object.create(null),r=ot();for(var o in e){var i=e[o],a="function"==typeof i?i:i.get;0,r||(n[o]=new hn(t,a||T,T,gn)),o in t||bn(t,o,i)}}(t,e.computed),e.watch&&e.watch!==et&&function(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var o=0;o-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!f(t)&&t.test(e)}function Pn(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var i in n){var a=n[i];if(a){var s=Sn(a.componentOptions);s&&!e(s)&&En(n,i,r,o)}}}function En(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,g(n,e)}Cn.prototype._init=function(t){var e=this;e._uid=$n++,e._isVue=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=Mt(xn(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&Je(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,o=n&&n.context;t.$slots=pe(e._renderChildren,o),t.$scopedSlots=r,t._c=function(e,n,r,o){return ze(t,e,n,r,o,!1)},t.$createElement=function(e,n,r,o){return ze(t,e,n,r,o,!0)};var i=n&&n.data;St(t,"$attrs",i&&i.attrs||r,null,!0),St(t,"$listeners",e._parentListeners||r,null,!0)}(e),en(e,"beforeCreate"),function(t){var e=fe(t.$options.inject,t);e&&(xt(!1),Object.keys(e).forEach(function(n){St(t,n,e[n])}),xt(!0))}(e),yn(e),function(t){var e=t.$options.provide;e&&(t._provided="function"==typeof e?e.call(t):e)}(e),en(e,"created"),e.$options.el&&e.$mount(e.$options.el)},function(t){var e={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=Ot,t.prototype.$delete=Pt,t.prototype.$watch=function(t,e,n){if(u(e))return kn(this,t,e,n);(n=n||{}).user=!0;var r=new hn(this,t,e,n);if(n.immediate)try{e.call(this,r.value)}catch(t){Bt(t,this,'callback for immediate watcher "'+r.expression+'"')}return function(){r.teardown()}}}(Cn),function(t){var e=/^hook:/;t.prototype.$on=function(t,n){var r=this;if(Array.isArray(t))for(var o=0,i=t.length;o1?O(n):n;for(var r=O(arguments,1),o='event handler for "'+t+'"',i=0,a=n.length;iparseInt(this.max)&&En(a,s[0],s,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return F}};Object.defineProperty(t,"config",e),t.util={warn:ct,extend:P,mergeOptions:Mt,defineReactive:St},t.set=Ot,t.delete=Pt,t.nextTick=ee,t.observable=function(t){return At(t),t},t.options=Object.create(null),D.forEach(function(e){t.options[e+"s"]=Object.create(null)}),t.options._base=t,P(t.options.components,jn),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=O(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Mt(this.options,t),this}}(t),An(t),function(t){D.forEach(function(e){t[e]=function(t,n){return n?("component"===e&&u(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}})}(t)}(Cn),Object.defineProperty(Cn.prototype,"$isServer",{get:ot}),Object.defineProperty(Cn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Cn,"FunctionalRenderContext",{value:je}),Cn.version="2.6.10";var Ln=m("style,class"),Rn=m("input,textarea,option,select,progress"),In=m("contenteditable,draggable,spellcheck"),Mn=m("events,caret,typing,plaintext-only"),Un=function(t,e){return Bn(e)||"false"===e?"false":"contenteditable"===t&&Mn(e)?e:"true"},Dn=m("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Nn="http://www.w3.org/1999/xlink",Fn=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},zn=function(t){return Fn(t)?t.slice(6,t.length):""},Bn=function(t){return null==t||!1===t};function Vn(t){for(var e=t.data,n=t,r=t;i(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=Gn(r.data,e));for(;i(n=n.parent);)n&&n.data&&(e=Gn(e,n.data));return function(t,e){if(i(t)||i(e))return Hn(t,qn(e));return""}(e.staticClass,e.class)}function Gn(t,e){return{staticClass:Hn(t.staticClass,e.staticClass),class:i(t.class)?[t.class,e.class]:e.class}}function Hn(t,e){return t?e?t+" "+e:t:e||""}function qn(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,o=t.length;r-1?vr(t,e,n):Dn(e)?Bn(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):In(e)?t.setAttribute(e,Un(e,n)):Fn(e)?Bn(n)?t.removeAttributeNS(Nn,zn(e)):t.setAttributeNS(Nn,e,n):vr(t,e,n)}function vr(t,e,n){if(Bn(n))t.removeAttribute(e);else{if(J&&!Y&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var mr={create:dr,update:dr};function yr(t,e){var n=e.elm,r=e.data,a=t.data;if(!(o(r.staticClass)&&o(r.class)&&(o(a)||o(a.staticClass)&&o(a.class)))){var s=Vn(e),l=n._transitionClasses;i(l)&&(s=Hn(s,qn(l))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var gr,br={create:yr,update:yr},_r="__r",wr="__c";function kr(t,e,n){var r=gr;return function o(){var i=e.apply(null,arguments);null!==i&&Cr(t,o,n,r)}}var $r=Wt&&!(tt&&Number(tt[1])<=53);function xr(t,e,n,r){if($r){var o=cn,i=e;e=i._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=o||t.timeStamp<=0||t.target.ownerDocument!==document)return i.apply(this,arguments)}}gr.addEventListener(t,e,nt?{capture:n,passive:r}:n)}function Cr(t,e,n,r){(r||gr).removeEventListener(t,e._wrapper||e,n)}function Ar(t,e){if(!o(t.data.on)||!o(e.data.on)){var n=e.data.on||{},r=t.data.on||{};gr=e.elm,function(t){if(i(t[_r])){var e=J?"change":"input";t[e]=[].concat(t[_r],t[e]||[]),delete t[_r]}i(t[wr])&&(t.change=[].concat(t[wr],t.change||[]),delete t[wr])}(n),ae(n,r,xr,Cr,kr,e.context),gr=void 0}}var Sr,Or={create:Ar,update:Ar};function Pr(t,e){if(!o(t.data.domProps)||!o(e.data.domProps)){var n,r,a=e.elm,s=t.data.domProps||{},l=e.data.domProps||{};for(n in i(l.__ob__)&&(l=e.data.domProps=P({},l)),s)n in l||(a[n]="");for(n in l){if(r=l[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===s[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n&&"PROGRESS"!==a.tagName){a._value=r;var c=o(r)?"":String(r);Er(a,c)&&(a.value=c)}else if("innerHTML"===n&&Xn(a.tagName)&&o(a.innerHTML)){(Sr=Sr||document.createElement("div")).innerHTML=""+r+"";for(var u=Sr.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;u.firstChild;)a.appendChild(u.firstChild)}else if(r!==s[n])try{a[n]=r}catch(t){}}}}function Er(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,r=t._vModifiers;if(i(r)){if(r.number)return v(n)!==v(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var Tr={create:Pr,update:Pr},jr=w(function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach(function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}}),e});function Lr(t){var e=Rr(t.style);return t.staticStyle?P(t.staticStyle,e):e}function Rr(t){return Array.isArray(t)?E(t):"string"==typeof t?jr(t):t}var Ir,Mr=/^--/,Ur=/\s*!important$/,Dr=function(t,e,n){if(Mr.test(e))t.style.setProperty(e,n);else if(Ur.test(n))t.style.setProperty(A(e),n.replace(Ur,""),"important");else{var r=Fr(e);if(Array.isArray(n))for(var o=0,i=n.length;o-1?e.split(Vr).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function Hr(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Vr).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function qr(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&P(e,Wr(t.name||"v")),P(e,t),e}return"string"==typeof t?Wr(t):void 0}}var Wr=w(function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}}),Kr=q&&!Y,Xr="transition",Jr="animation",Yr="transition",Zr="transitionend",Qr="animation",to="animationend";Kr&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Yr="WebkitTransition",Zr="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Qr="WebkitAnimation",to="webkitAnimationEnd"));var eo=q?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function no(t){eo(function(){eo(t)})}function ro(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),Gr(t,e))}function oo(t,e){t._transitionClasses&&g(t._transitionClasses,e),Hr(t,e)}function io(t,e,n){var r=so(t,e),o=r.type,i=r.timeout,a=r.propCount;if(!o)return n();var s=o===Xr?Zr:to,l=0,c=function(){t.removeEventListener(s,u),n()},u=function(e){e.target===t&&++l>=a&&c()};setTimeout(function(){l0&&(n=Xr,u=a,f=i.length):e===Jr?c>0&&(n=Jr,u=c,f=l.length):f=(n=(u=Math.max(a,c))>0?a>c?Xr:Jr:null)?n===Xr?i.length:l.length:0,{type:n,timeout:u,propCount:f,hasTransform:n===Xr&&ao.test(r[Yr+"Property"])}}function lo(t,e){for(;t.length1}function vo(t,e){!0!==e.data.show&&uo(e)}var mo=function(t){var e,n,r={},l=t.modules,c=t.nodeOps;for(e=0;eh?b(t,o(n[y+1])?null:n[y+1].elm,n,d,y,r):d>y&&w(0,e,p,h)}(p,m,y,n,u):i(y)?(i(t.text)&&c.setTextContent(p,""),b(p,null,y,0,y.length-1,n)):i(m)?w(0,m,0,m.length-1):i(t.text)&&c.setTextContent(p,""):t.text!==e.text&&c.setTextContent(p,e.text),i(h)&&i(d=h.hook)&&i(d=d.postpatch)&&d(t,e)}}}function C(t,e,n){if(a(n)&&i(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r-1,a.selected!==i&&(a.selected=i);else if(R(wo(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));o||(t.selectedIndex=-1)}}function _o(t,e){return e.every(function(e){return!R(e,t)})}function wo(t){return"_value"in t?t._value:t.value}function ko(t){t.target.composing=!0}function $o(t){t.target.composing&&(t.target.composing=!1,xo(t.target,"input"))}function xo(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function Co(t){return!t.componentInstance||t.data&&t.data.transition?t:Co(t.componentInstance._vnode)}var Ao={model:yo,show:{bind:function(t,e,n){var r=e.value,o=(n=Co(n)).data&&n.data.transition,i=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&o?(n.data.show=!0,uo(n,function(){t.style.display=i})):t.style.display=r?i:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=Co(n)).data&&n.data.transition?(n.data.show=!0,r?uo(n,function(){t.style.display=t.__vOriginalDisplay}):fo(n,function(){t.style.display="none"})):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,o){o||(t.style.display=t.__vOriginalDisplay)}}},So={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Oo(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Oo(qe(e.children)):t}function Po(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var i in o)e[$(i)]=o[i];return e}function Eo(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var To=function(t){return t.tag||He(t)},jo=function(t){return"show"===t.name},Lo={name:"transition",props:So,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(To)).length){0;var r=this.mode;0;var o=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return o;var i=Oo(o);if(!i)return o;if(this._leaving)return Eo(t,o);var a="__transition-"+this._uid+"-";i.key=null==i.key?i.isComment?a+"comment":a+i.tag:s(i.key)?0===String(i.key).indexOf(a)?i.key:a+i.key:i.key;var l=(i.data||(i.data={})).transition=Po(this),c=this._vnode,u=Oo(c);if(i.data.directives&&i.data.directives.some(jo)&&(i.data.show=!0),u&&u.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(i,u)&&!He(u)&&(!u.componentInstance||!u.componentInstance._vnode.isComment)){var f=u.data.transition=P({},l);if("out-in"===r)return this._leaving=!0,se(f,"afterLeave",function(){e._leaving=!1,e.$forceUpdate()}),Eo(t,o);if("in-out"===r){if(He(i))return c;var p,d=function(){p()};se(l,"afterEnter",d),se(l,"enterCancelled",d),se(f,"delayLeave",function(t){p=t})}}return o}}},Ro=P({tag:String,moveClass:String},So);function Io(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function Mo(t){t.data.newPos=t.elm.getBoundingClientRect()}function Uo(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,o=e.top-n.top;if(r||o){t.data.moved=!0;var i=t.elm.style;i.transform=i.WebkitTransform="translate("+r+"px,"+o+"px)",i.transitionDuration="0s"}}delete Ro.mode;var Do={Transition:Lo,TransitionGroup:{props:Ro,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var o=Ze(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,o(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],i=this.children=[],a=Po(this),s=0;s-1?Yn[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Yn[t]=/HTMLUnknownElement/.test(e.toString())},P(Cn.options.directives,Ao),P(Cn.options.components,Do),Cn.prototype.__patch__=q?mo:T,Cn.prototype.$mount=function(t,e){return function(t,e,n){var r;return t.$el=e,t.$options.render||(t.$options.render=yt),en(t,"beforeMount"),r=function(){t._update(t._render(),n)},new hn(t,r,T,{before:function(){t._isMounted&&!t._isDestroyed&&en(t,"beforeUpdate")}},!0),n=!1,null==t.$vnode&&(t._isMounted=!0,en(t,"mounted")),t}(this,t=t&&q?function(t){if("string"==typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}(t):void 0,e)},q&&setTimeout(function(){F.devtools&&it&&it.emit("init",Cn)},0);var No=Cn; +var r=Object.freeze({});function o(t){return null==t}function i(t){return null!=t}function a(t){return!0===t}function s(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function l(t){return null!==t&&"object"==typeof t}var u=Object.prototype.toString;function c(t){return"[object Object]"===u.call(t)}function f(t){return"[object RegExp]"===u.call(t)}function p(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function d(t){return i(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function h(t){return null==t?"":Array.isArray(t)||c(t)&&t.toString===u?JSON.stringify(t,null,2):String(t)}function v(t){var e=parseFloat(t);return isNaN(e)?t:e}function m(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o-1)return t.splice(n,1)}}var b=Object.prototype.hasOwnProperty;function _(t,e){return b.call(t,e)}function w(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var k=/-(\w)/g,$=w(function(t){return t.replace(k,function(t,e){return e?e.toUpperCase():""})}),x=w(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),C=/\B([A-Z])/g,A=w(function(t){return t.replace(C,"-$1").toLowerCase()});var S=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function O(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function P(t,e){for(var n in e)t[n]=e[n];return t}function E(t){for(var e={},n=0;n0,Z=X&&X.indexOf("edge/")>0,Q=(X&&X.indexOf("android"),X&&/iphone|ipad|ipod|ios/.test(X)||"ios"===K),tt=(X&&/chrome\/\d+/.test(X),X&&/phantomjs/.test(X),X&&X.match(/firefox\/(\d+)/)),et={}.watch,nt=!1;if(q)try{var rt={};Object.defineProperty(rt,"passive",{get:function(){nt=!0}}),window.addEventListener("test-passive",null,rt)}catch(t){}var ot=function(){return void 0===G&&(G=!q&&!W&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),G},it=q&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function at(t){return"function"==typeof t&&/native code/.test(t.toString())}var st,lt="undefined"!=typeof Symbol&&at(Symbol)&&"undefined"!=typeof Reflect&&at(Reflect.ownKeys);st="undefined"!=typeof Set&&at(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ut=T,ct=0,ft=function(){this.id=ct++,this.subs=[]};ft.prototype.addSub=function(t){this.subs.push(t)},ft.prototype.removeSub=function(t){g(this.subs,t)},ft.prototype.depend=function(){ft.target&&ft.target.addDep(this)},ft.prototype.notify=function(){var t=this.subs.slice();for(var e=0,n=t.length;e-1)if(i&&!_(o,"default"))a=!1;else if(""===a||a===A(t)){var l=zt(String,o.type);(l<0||s0&&(ce((u=t(u,(n||"")+"_"+l))[0])&&ce(f)&&(r[c]=gt(f.text+u[0].text),u.shift()),r.push.apply(r,u)):s(u)?ce(f)?r[c]=gt(f.text+u):""!==u&&r.push(gt(u)):ce(u)&&ce(f)?r[c]=gt(f.text+u.text):(a(e._isVList)&&i(u.tag)&&o(u.key)&&i(n)&&(u.key="__vlist"+n+"_"+l+"__"),r.push(u)));return r}(t):void 0}function ce(t){return i(t)&&i(t.text)&&!1===t.isComment}function fe(t,e){if(t){for(var n=Object.create(null),r=lt?Reflect.ownKeys(t):Object.keys(t),o=0;o0,a=t?!!t.$stable:!i,s=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(a&&n&&n!==r&&s===n.$key&&!i&&!n.$hasNormal)return n;for(var l in o={},t)t[l]&&"$"!==l[0]&&(o[l]=ve(e,l,t[l]))}else o={};for(var u in e)u in o||(o[u]=me(e,u));return t&&Object.isExtensible(t)&&(t._normalized=o),B(o,"$stable",a),B(o,"$key",s),B(o,"$hasNormal",i),o}function ve(t,e,n){var r=function(){var t=arguments.length?n.apply(null,arguments):n({});return(t=t&&"object"==typeof t&&!Array.isArray(t)?[t]:ue(t))&&(0===t.length||1===t.length&&t[0].isComment)?void 0:t};return n.proxy&&Object.defineProperty(t,e,{get:r,enumerable:!0,configurable:!0}),r}function me(t,e){return function(){return t[e]}}function ye(t,e){var n,r,o,a,s;if(Array.isArray(t)||"string"==typeof t)for(n=new Array(t.length),r=0,o=t.length;rdocument.createEvent("Event").timeStamp&&(cn=function(){return fn.now()})}function pn(){var t,e;for(un=cn(),sn=!0,nn.sort(function(t,e){return t.id-e.id}),ln=0;lnln&&nn[n].id>t.id;)n--;nn.splice(n+1,0,t)}else nn.push(t);an||(an=!0,ee(pn))}}(this)},hn.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||l(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(t){Bt(t,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},hn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},hn.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},hn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||g(this.vm._watchers,this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1}};var vn={enumerable:!0,configurable:!0,get:T,set:T};function mn(t,e,n){vn.get=function(){return this[e][n]},vn.set=function(t){this[e][n]=t},Object.defineProperty(t,n,vn)}function yn(t){t._watchers=[];var e=t.$options;e.props&&function(t,e){var n=t.$options.propsData||{},r=t._props={},o=t.$options._propKeys=[];t.$parent&&xt(!1);var i=function(i){o.push(i);var a=Dt(i,e,n,t);St(r,i,a),i in t||mn(t,"_props",i)};for(var a in e)i(a);xt(!0)}(t,e.props),e.methods&&function(t,e){t.$options.props;for(var n in e)t[n]="function"!=typeof e[n]?T:S(e[n],t)}(t,e.methods),e.data?function(t){var e=t.$options.data;c(e=t._data="function"==typeof e?function(t,e){dt();try{return t.call(e,e)}catch(t){return Bt(t,e,"data()"),{}}finally{ht()}}(e,t):e||{})||(e={});var n=Object.keys(e),r=t.$options.props,o=(t.$options.methods,n.length);for(;o--;){var i=n[o];0,r&&_(r,i)||(a=void 0,36!==(a=(i+"").charCodeAt(0))&&95!==a&&mn(t,"_data",i))}var a;At(e,!0)}(t):At(t._data={},!0),e.computed&&function(t,e){var n=t._computedWatchers=Object.create(null),r=ot();for(var o in e){var i=e[o],a="function"==typeof i?i:i.get;0,r||(n[o]=new hn(t,a||T,T,gn)),o in t||bn(t,o,i)}}(t,e.computed),e.watch&&e.watch!==et&&function(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var o=0;o-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!f(t)&&t.test(e)}function Pn(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var i in n){var a=n[i];if(a){var s=Sn(a.componentOptions);s&&!e(s)&&En(n,i,r,o)}}}function En(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,g(n,e)}Cn.prototype._init=function(t){var e=this;e._uid=$n++,e._isVue=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=Mt(xn(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&Je(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,o=n&&n.context;t.$slots=pe(e._renderChildren,o),t.$scopedSlots=r,t._c=function(e,n,r,o){return ze(t,e,n,r,o,!1)},t.$createElement=function(e,n,r,o){return ze(t,e,n,r,o,!0)};var i=n&&n.data;St(t,"$attrs",i&&i.attrs||r,null,!0),St(t,"$listeners",e._parentListeners||r,null,!0)}(e),en(e,"beforeCreate"),function(t){var e=fe(t.$options.inject,t);e&&(xt(!1),Object.keys(e).forEach(function(n){St(t,n,e[n])}),xt(!0))}(e),yn(e),function(t){var e=t.$options.provide;e&&(t._provided="function"==typeof e?e.call(t):e)}(e),en(e,"created"),e.$options.el&&e.$mount(e.$options.el)},function(t){var e={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=Ot,t.prototype.$delete=Pt,t.prototype.$watch=function(t,e,n){if(c(e))return kn(this,t,e,n);(n=n||{}).user=!0;var r=new hn(this,t,e,n);if(n.immediate)try{e.call(this,r.value)}catch(t){Bt(t,this,'callback for immediate watcher "'+r.expression+'"')}return function(){r.teardown()}}}(Cn),function(t){var e=/^hook:/;t.prototype.$on=function(t,n){var r=this;if(Array.isArray(t))for(var o=0,i=t.length;o1?O(n):n;for(var r=O(arguments,1),o='event handler for "'+t+'"',i=0,a=n.length;iparseInt(this.max)&&En(a,s[0],s,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return F}};Object.defineProperty(t,"config",e),t.util={warn:ut,extend:P,mergeOptions:Mt,defineReactive:St},t.set=Ot,t.delete=Pt,t.nextTick=ee,t.observable=function(t){return At(t),t},t.options=Object.create(null),D.forEach(function(e){t.options[e+"s"]=Object.create(null)}),t.options._base=t,P(t.options.components,jn),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=O(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Mt(this.options,t),this}}(t),An(t),function(t){D.forEach(function(e){t[e]=function(t,n){return n?("component"===e&&c(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}})}(t)}(Cn),Object.defineProperty(Cn.prototype,"$isServer",{get:ot}),Object.defineProperty(Cn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Cn,"FunctionalRenderContext",{value:je}),Cn.version="2.6.10";var Rn=m("style,class"),Ln=m("input,textarea,option,select,progress"),In=m("contenteditable,draggable,spellcheck"),Mn=m("events,caret,typing,plaintext-only"),Un=function(t,e){return Bn(e)||"false"===e?"false":"contenteditable"===t&&Mn(e)?e:"true"},Dn=m("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Nn="http://www.w3.org/1999/xlink",Fn=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},zn=function(t){return Fn(t)?t.slice(6,t.length):""},Bn=function(t){return null==t||!1===t};function Vn(t){for(var e=t.data,n=t,r=t;i(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=Gn(r.data,e));for(;i(n=n.parent);)n&&n.data&&(e=Gn(e,n.data));return function(t,e){if(i(t)||i(e))return Hn(t,qn(e));return""}(e.staticClass,e.class)}function Gn(t,e){return{staticClass:Hn(t.staticClass,e.staticClass),class:i(t.class)?[t.class,e.class]:e.class}}function Hn(t,e){return t?e?t+" "+e:t:e||""}function qn(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,o=t.length;r-1?vr(t,e,n):Dn(e)?Bn(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):In(e)?t.setAttribute(e,Un(e,n)):Fn(e)?Bn(n)?t.removeAttributeNS(Nn,zn(e)):t.setAttributeNS(Nn,e,n):vr(t,e,n)}function vr(t,e,n){if(Bn(n))t.removeAttribute(e);else{if(J&&!Y&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var mr={create:dr,update:dr};function yr(t,e){var n=e.elm,r=e.data,a=t.data;if(!(o(r.staticClass)&&o(r.class)&&(o(a)||o(a.staticClass)&&o(a.class)))){var s=Vn(e),l=n._transitionClasses;i(l)&&(s=Hn(s,qn(l))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var gr,br={create:yr,update:yr},_r="__r",wr="__c";function kr(t,e,n){var r=gr;return function o(){var i=e.apply(null,arguments);null!==i&&Cr(t,o,n,r)}}var $r=Wt&&!(tt&&Number(tt[1])<=53);function xr(t,e,n,r){if($r){var o=un,i=e;e=i._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=o||t.timeStamp<=0||t.target.ownerDocument!==document)return i.apply(this,arguments)}}gr.addEventListener(t,e,nt?{capture:n,passive:r}:n)}function Cr(t,e,n,r){(r||gr).removeEventListener(t,e._wrapper||e,n)}function Ar(t,e){if(!o(t.data.on)||!o(e.data.on)){var n=e.data.on||{},r=t.data.on||{};gr=e.elm,function(t){if(i(t[_r])){var e=J?"change":"input";t[e]=[].concat(t[_r],t[e]||[]),delete t[_r]}i(t[wr])&&(t.change=[].concat(t[wr],t.change||[]),delete t[wr])}(n),ae(n,r,xr,Cr,kr,e.context),gr=void 0}}var Sr,Or={create:Ar,update:Ar};function Pr(t,e){if(!o(t.data.domProps)||!o(e.data.domProps)){var n,r,a=e.elm,s=t.data.domProps||{},l=e.data.domProps||{};for(n in i(l.__ob__)&&(l=e.data.domProps=P({},l)),s)n in l||(a[n]="");for(n in l){if(r=l[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===s[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n&&"PROGRESS"!==a.tagName){a._value=r;var u=o(r)?"":String(r);Er(a,u)&&(a.value=u)}else if("innerHTML"===n&&Xn(a.tagName)&&o(a.innerHTML)){(Sr=Sr||document.createElement("div")).innerHTML=""+r+"";for(var c=Sr.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;c.firstChild;)a.appendChild(c.firstChild)}else if(r!==s[n])try{a[n]=r}catch(t){}}}}function Er(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,r=t._vModifiers;if(i(r)){if(r.number)return v(n)!==v(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var Tr={create:Pr,update:Pr},jr=w(function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach(function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}}),e});function Rr(t){var e=Lr(t.style);return t.staticStyle?P(t.staticStyle,e):e}function Lr(t){return Array.isArray(t)?E(t):"string"==typeof t?jr(t):t}var Ir,Mr=/^--/,Ur=/\s*!important$/,Dr=function(t,e,n){if(Mr.test(e))t.style.setProperty(e,n);else if(Ur.test(n))t.style.setProperty(A(e),n.replace(Ur,""),"important");else{var r=Fr(e);if(Array.isArray(n))for(var o=0,i=n.length;o-1?e.split(Vr).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function Hr(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Vr).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function qr(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&P(e,Wr(t.name||"v")),P(e,t),e}return"string"==typeof t?Wr(t):void 0}}var Wr=w(function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}}),Kr=q&&!Y,Xr="transition",Jr="animation",Yr="transition",Zr="transitionend",Qr="animation",to="animationend";Kr&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Yr="WebkitTransition",Zr="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Qr="WebkitAnimation",to="webkitAnimationEnd"));var eo=q?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function no(t){eo(function(){eo(t)})}function ro(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),Gr(t,e))}function oo(t,e){t._transitionClasses&&g(t._transitionClasses,e),Hr(t,e)}function io(t,e,n){var r=so(t,e),o=r.type,i=r.timeout,a=r.propCount;if(!o)return n();var s=o===Xr?Zr:to,l=0,u=function(){t.removeEventListener(s,c),n()},c=function(e){e.target===t&&++l>=a&&u()};setTimeout(function(){l0&&(n=Xr,c=a,f=i.length):e===Jr?u>0&&(n=Jr,c=u,f=l.length):f=(n=(c=Math.max(a,u))>0?a>u?Xr:Jr:null)?n===Xr?i.length:l.length:0,{type:n,timeout:c,propCount:f,hasTransform:n===Xr&&ao.test(r[Yr+"Property"])}}function lo(t,e){for(;t.length1}function vo(t,e){!0!==e.data.show&&co(e)}var mo=function(t){var e,n,r={},l=t.modules,u=t.nodeOps;for(e=0;eh?b(t,o(n[y+1])?null:n[y+1].elm,n,d,y,r):d>y&&w(0,e,p,h)}(p,m,y,n,c):i(y)?(i(t.text)&&u.setTextContent(p,""),b(p,null,y,0,y.length-1,n)):i(m)?w(0,m,0,m.length-1):i(t.text)&&u.setTextContent(p,""):t.text!==e.text&&u.setTextContent(p,e.text),i(h)&&i(d=h.hook)&&i(d=d.postpatch)&&d(t,e)}}}function C(t,e,n){if(a(n)&&i(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r-1,a.selected!==i&&(a.selected=i);else if(L(wo(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));o||(t.selectedIndex=-1)}}function _o(t,e){return e.every(function(e){return!L(e,t)})}function wo(t){return"_value"in t?t._value:t.value}function ko(t){t.target.composing=!0}function $o(t){t.target.composing&&(t.target.composing=!1,xo(t.target,"input"))}function xo(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function Co(t){return!t.componentInstance||t.data&&t.data.transition?t:Co(t.componentInstance._vnode)}var Ao={model:yo,show:{bind:function(t,e,n){var r=e.value,o=(n=Co(n)).data&&n.data.transition,i=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&o?(n.data.show=!0,co(n,function(){t.style.display=i})):t.style.display=r?i:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=Co(n)).data&&n.data.transition?(n.data.show=!0,r?co(n,function(){t.style.display=t.__vOriginalDisplay}):fo(n,function(){t.style.display="none"})):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,o){o||(t.style.display=t.__vOriginalDisplay)}}},So={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Oo(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Oo(qe(e.children)):t}function Po(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var i in o)e[$(i)]=o[i];return e}function Eo(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var To=function(t){return t.tag||He(t)},jo=function(t){return"show"===t.name},Ro={name:"transition",props:So,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(To)).length){0;var r=this.mode;0;var o=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return o;var i=Oo(o);if(!i)return o;if(this._leaving)return Eo(t,o);var a="__transition-"+this._uid+"-";i.key=null==i.key?i.isComment?a+"comment":a+i.tag:s(i.key)?0===String(i.key).indexOf(a)?i.key:a+i.key:i.key;var l=(i.data||(i.data={})).transition=Po(this),u=this._vnode,c=Oo(u);if(i.data.directives&&i.data.directives.some(jo)&&(i.data.show=!0),c&&c.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(i,c)&&!He(c)&&(!c.componentInstance||!c.componentInstance._vnode.isComment)){var f=c.data.transition=P({},l);if("out-in"===r)return this._leaving=!0,se(f,"afterLeave",function(){e._leaving=!1,e.$forceUpdate()}),Eo(t,o);if("in-out"===r){if(He(i))return u;var p,d=function(){p()};se(l,"afterEnter",d),se(l,"enterCancelled",d),se(f,"delayLeave",function(t){p=t})}}return o}}},Lo=P({tag:String,moveClass:String},So);function Io(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function Mo(t){t.data.newPos=t.elm.getBoundingClientRect()}function Uo(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,o=e.top-n.top;if(r||o){t.data.moved=!0;var i=t.elm.style;i.transform=i.WebkitTransform="translate("+r+"px,"+o+"px)",i.transitionDuration="0s"}}delete Lo.mode;var Do={Transition:Ro,TransitionGroup:{props:Lo,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var o=Ze(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,o(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],i=this.children=[],a=Po(this),s=0;s-1?Yn[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Yn[t]=/HTMLUnknownElement/.test(e.toString())},P(Cn.options.directives,Ao),P(Cn.options.components,Do),Cn.prototype.__patch__=q?mo:T,Cn.prototype.$mount=function(t,e){return function(t,e,n){var r;return t.$el=e,t.$options.render||(t.$options.render=yt),en(t,"beforeMount"),r=function(){t._update(t._render(),n)},new hn(t,r,T,{before:function(){t._isMounted&&!t._isDestroyed&&en(t,"beforeUpdate")}},!0),n=!1,null==t.$vnode&&(t._isMounted=!0,en(t,"mounted")),t}(this,t=t&&q?function(t){if("string"==typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}(t):void 0,e)},q&&setTimeout(function(){F.devtools&&it&&it.emit("init",Cn)},0);var No=Cn; /*! * vue-router v3.1.2 * (c) 2019 Evan You * @license MIT - */function Fo(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}function zo(t,e){return e instanceof t||e&&(e.name===t.name||e._name===t._name)}function Bo(t,e){for(var n in e)t[n]=e[n];return t}var Vo={name:"RouterView",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,e){var n=e.props,r=e.children,o=e.parent,i=e.data;i.routerView=!0;for(var a=o.$createElement,s=n.name,l=o.$route,c=o._routerViewCache||(o._routerViewCache={}),u=0,f=!1;o&&o._routerRoot!==o;){var p=o.$vnode&&o.$vnode.data;p&&(p.routerView&&u++,p.keepAlive&&o._inactive&&(f=!0)),o=o.$parent}if(i.routerViewDepth=u,f)return a(c[s],i,r);var d=l.matched[u];if(!d)return c[s]=null,a();var h=c[s]=d.components[s];i.registerRouteInstance=function(t,e){var n=d.instances[s];(e&&n!==t||!e&&n===t)&&(d.instances[s]=e)},(i.hook||(i.hook={})).prepatch=function(t,e){d.instances[s]=e.componentInstance},i.hook.init=function(t){t.data.keepAlive&&t.componentInstance&&t.componentInstance!==d.instances[s]&&(d.instances[s]=t.componentInstance)};var v=i.props=function(t,e){switch(typeof e){case"undefined":return;case"object":return e;case"function":return e(t);case"boolean":return e?t.params:void 0;default:0}}(l,d.props&&d.props[s]);if(v){v=i.props=Bo({},v);var m=i.attrs=i.attrs||{};for(var y in v)h.props&&y in h.props||(m[y]=v[y],delete v[y])}return a(h,i,r)}};var Go=/[!'()*]/g,Ho=function(t){return"%"+t.charCodeAt(0).toString(16)},qo=/%2C/g,Wo=function(t){return encodeURIComponent(t).replace(Go,Ho).replace(qo,",")},Ko=decodeURIComponent;function Xo(t){var e={};return(t=t.trim().replace(/^(\?|#|&)/,""))?(t.split("&").forEach(function(t){var n=t.replace(/\+/g," ").split("="),r=Ko(n.shift()),o=n.length>0?Ko(n.join("=")):null;void 0===e[r]?e[r]=o:Array.isArray(e[r])?e[r].push(o):e[r]=[e[r],o]}),e):e}function Jo(t){var e=t?Object.keys(t).map(function(e){var n=t[e];if(void 0===n)return"";if(null===n)return Wo(e);if(Array.isArray(n)){var r=[];return n.forEach(function(t){void 0!==t&&(null===t?r.push(Wo(e)):r.push(Wo(e)+"="+Wo(t)))}),r.join("&")}return Wo(e)+"="+Wo(n)}).filter(function(t){return t.length>0}).join("&"):null;return e?"?"+e:""}var Yo=/\/?$/;function Zo(t,e,n,r){var o=r&&r.options.stringifyQuery,i=e.query||{};try{i=Qo(i)}catch(t){}var a={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:i,params:e.params||{},fullPath:ni(e,o),matched:t?ei(t):[]};return n&&(a.redirectedFrom=ni(n,o)),Object.freeze(a)}function Qo(t){if(Array.isArray(t))return t.map(Qo);if(t&&"object"==typeof t){var e={};for(var n in t)e[n]=Qo(t[n]);return e}return t}var ti=Zo(null,{path:"/"});function ei(t){for(var e=[];t;)e.unshift(t),t=t.parent;return e}function ni(t,e){var n=t.path,r=t.query;void 0===r&&(r={});var o=t.hash;return void 0===o&&(o=""),(n||"/")+(e||Jo)(r)+o}function ri(t,e){return e===ti?t===e:!!e&&(t.path&&e.path?t.path.replace(Yo,"")===e.path.replace(Yo,"")&&t.hash===e.hash&&oi(t.query,e.query):!(!t.name||!e.name)&&(t.name===e.name&&t.hash===e.hash&&oi(t.query,e.query)&&oi(t.params,e.params)))}function oi(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&n.every(function(n){var r=t[n],o=e[n];return"object"==typeof r&&"object"==typeof o?oi(r,o):String(r)===String(o)})}function ii(t,e,n){var r=t.charAt(0);if("/"===r)return t;if("?"===r||"#"===r)return e+t;var o=e.split("/");n&&o[o.length-1]||o.pop();for(var i=t.replace(/^\//,"").split("/"),a=0;a=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}(o.path||""),l=e&&e.path||"/",c=s.path?ii(s.path,l,n||o.append):l,u=function(t,e,n){void 0===e&&(e={});var r,o=n||Xo;try{r=o(t||"")}catch(t){r={}}for(var i in e)r[i]=e[i];return r}(s.query,o.query,r&&r.options.parseQuery),f=o.hash||s.hash;return f&&"#"!==f.charAt(0)&&(f="#"+f),{_normalized:!0,path:c,query:u,hash:f}}var Ai,Si=[String,Object],Oi=[String,Array],Pi=function(){},Ei={name:"RouterLink",props:{to:{type:Si,required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,event:{type:Oi,default:"click"}},render:function(t){var e=this,n=this.$router,r=this.$route,o=n.resolve(this.to,r,this.append),i=o.location,a=o.route,s=o.href,l={},c=n.options.linkActiveClass,u=n.options.linkExactActiveClass,f=null==c?"router-link-active":c,p=null==u?"router-link-exact-active":u,d=null==this.activeClass?f:this.activeClass,h=null==this.exactActiveClass?p:this.exactActiveClass,v=a.redirectedFrom?Zo(null,Ci(a.redirectedFrom),null,n):a;l[h]=ri(r,v),l[d]=this.exact?l[h]:function(t,e){return 0===t.path.replace(Yo,"/").indexOf(e.path.replace(Yo,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var n in e)if(!(n in t))return!1;return!0}(t.query,e.query)}(r,v);var m=function(t){Ti(t)&&(e.replace?n.replace(i,Pi):n.push(i,Pi))},y={click:Ti};Array.isArray(this.event)?this.event.forEach(function(t){y[t]=m}):y[this.event]=m;var g={class:l},b=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:s,route:a,navigate:m,isActive:l[d],isExactActive:l[h]});if(b){if(1===b.length)return b[0];if(b.length>1||!b.length)return 0===b.length?t():t("span",{},b)}if("a"===this.tag)g.on=y,g.attrs={href:s};else{var _=function t(e){if(e)for(var n,r=0;r-1&&(s.params[p]=n.params[p]);return s.path=xi(u.path,s.params),l(u,s,a)}if(s.path){s.params={};for(var d=0;d=t.length?n():t[o]?e(t[o],function(){r(o+1)}):r(o+1)};r(0)}function ea(t){return function(e,n,r){var o=!1,i=0,a=null;na(t,function(t,e,n,s){if("function"==typeof t&&void 0===t.cid){o=!0,i++;var l,c=ia(function(e){var o;((o=e).__esModule||oa&&"Module"===o[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:Ai.extend(e),n.components[s]=e,--i<=0&&r()}),u=ia(function(t){var e="Failed to resolve async component "+s+": "+t;a||(a=Fo(t)?t:new Error(e),r(a))});try{l=t(c,u)}catch(t){u(t)}if(l)if("function"==typeof l.then)l.then(c,u);else{var f=l.component;f&&"function"==typeof f.then&&f.then(c,u)}}}),o||r()}}function na(t,e){return ra(t.map(function(t){return Object.keys(t.components).map(function(n){return e(t.components[n],t.instances[n],t,n)})}))}function ra(t){return Array.prototype.concat.apply([],t)}var oa="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function ia(t){var e=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var aa=function(t){function e(){t.call(this,"Navigating to current location is not allowed"),this.name=this._name="NavigationDuplicated"}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Error);aa._name="NavigationDuplicated";var sa=function(t,e){this.router=t,this.base=function(t){if(!t)if(ji){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=ti,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[]};function la(t,e,n,r){var o=na(t,function(t,r,o,i){var a=function(t,e){"function"!=typeof t&&(t=Ai.extend(t));return t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map(function(t){return n(t,r,o,i)}):n(a,r,o,i)});return ra(r?o.reverse():o)}function ca(t,e){if(e)return function(){return t.apply(e,arguments)}}sa.prototype.listen=function(t){this.cb=t},sa.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},sa.prototype.onError=function(t){this.errorCbs.push(t)},sa.prototype.transitionTo=function(t,e,n){var r=this,o=this.router.match(t,this.current);this.confirmTransition(o,function(){r.updateRoute(o),e&&e(o),r.ensureURL(),r.ready||(r.ready=!0,r.readyCbs.forEach(function(t){t(o)}))},function(t){n&&n(t),t&&!r.ready&&(r.ready=!0,r.readyErrorCbs.forEach(function(e){e(t)}))})},sa.prototype.confirmTransition=function(t,e,n){var r=this,o=this.current,i=function(t){!zo(aa,t)&&Fo(t)&&(r.errorCbs.length?r.errorCbs.forEach(function(e){e(t)}):console.error(t)),n&&n(t)};if(ri(t,o)&&t.matched.length===o.matched.length)return this.ensureURL(),i(new aa(t));var a=function(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n-1?decodeURI(t.slice(0,r))+t.slice(r):decodeURI(t)}else n>-1&&(t=decodeURI(t.slice(0,n))+t.slice(n));return t}function va(t){var e=window.location.href,n=e.indexOf("#");return(n>=0?e.slice(0,n):e)+"#"+t}function ma(t){Wi?Zi(va(t)):window.location.hash=t}function ya(t){Wi?Qi(va(t)):window.location.replace(va(t))}var ga=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)},n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,function(){e.index=n,e.updateRoute(r)},function(t){zo(aa,t)&&(e.index=n)})}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(sa),ba=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Ii(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!Wi&&!1!==t.fallback,this.fallback&&(e="hash"),ji||(e="abstract"),this.mode=e,e){case"history":this.history=new ua(this,t.base);break;case"hash":this.history=new pa(this,t.base,this.fallback);break;case"abstract":this.history=new ga(this,t.base);break;default:0}},_a={currentRoute:{configurable:!0}};function wa(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}ba.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},_a.currentRoute.get=function(){return this.history&&this.history.current},ba.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null)}),!this.app){this.app=t;var n=this.history;if(n instanceof ua)n.transitionTo(n.getCurrentLocation());else if(n instanceof pa){var r=function(){n.setupListeners()};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen(function(t){e.apps.forEach(function(e){e._route=t})})}},ba.prototype.beforeEach=function(t){return wa(this.beforeHooks,t)},ba.prototype.beforeResolve=function(t){return wa(this.resolveHooks,t)},ba.prototype.afterEach=function(t){return wa(this.afterHooks,t)},ba.prototype.onReady=function(t,e){this.history.onReady(t,e)},ba.prototype.onError=function(t){this.history.onError(t)},ba.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise(function(e,n){r.history.push(t,e,n)});this.history.push(t,e,n)},ba.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise(function(e,n){r.history.replace(t,e,n)});this.history.replace(t,e,n)},ba.prototype.go=function(t){this.history.go(t)},ba.prototype.back=function(){this.go(-1)},ba.prototype.forward=function(){this.go(1)},ba.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map(function(t){return Object.keys(t.components).map(function(e){return t.components[e]})})):[]},ba.prototype.resolve=function(t,e,n){var r=Ci(t,e=e||this.history.current,n,this),o=this.match(r,e),i=o.redirectedFrom||o.fullPath;return{location:r,route:o,href:function(t,e,n){var r="hash"===n?"#"+e:e;return t?ai(t+"/"+r):r}(this.history.base,i,this.mode),normalizedTo:r,resolved:o}},ba.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==ti&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(ba.prototype,_a),ba.install=function t(e){if(!t.installed||Ai!==e){t.installed=!0,Ai=e;var n=function(t){return void 0!==t},r=function(t,e){var r=t.$options._parentVnode;n(r)&&n(r=r.data)&&n(r=r.registerRouteInstance)&&r(t,e)};e.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,r(this,this)},destroyed:function(){r(this)}}),Object.defineProperty(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",Vo),e.component("RouterLink",Ei);var o=e.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},ba.version="3.1.2",ji&&window.Vue&&window.Vue.use(ba);var ka=ba;var $a={NotFound:()=>n.e(4).then(n.bind(null,185)),Layout:()=>Promise.all([n.e(0),n.e(2)]).then(n.bind(null,184))},xa={"v-f88195a6":()=>n.e(5).then(n.bind(null,186)),"v-0f125dbb":()=>n.e(6).then(n.bind(null,187)),"v-5127c24a":()=>n.e(7).then(n.bind(null,188)),"v-79c557ae":()=>n.e(8).then(n.bind(null,189)),"v-bc26f6ca":()=>n.e(9).then(n.bind(null,190)),"v-15ae477b":()=>n.e(10).then(n.bind(null,191)),"v-e2943322":()=>n.e(11).then(n.bind(null,192)),"v-9b504b3e":()=>n.e(12).then(n.bind(null,193)),"v-3896b323":()=>n.e(13).then(n.bind(null,194)),"v-ae731ab6":()=>n.e(14).then(n.bind(null,195)),"v-545731d5":()=>n.e(15).then(n.bind(null,196)),"v-5cda54a1":()=>n.e(16).then(n.bind(null,197)),"v-24570241":()=>n.e(17).then(n.bind(null,198)),"v-7499233e":()=>n.e(18).then(n.bind(null,199)),"v-26737916":()=>n.e(19).then(n.bind(null,200)),"v-86daa2ba":()=>n.e(21).then(n.bind(null,201)),"v-700fa4e1":()=>n.e(22).then(n.bind(null,202)),"v-fe729232":()=>n.e(23).then(n.bind(null,203)),"v-2f539db2":()=>n.e(24).then(n.bind(null,204)),"v-1edba7fe":()=>n.e(25).then(n.bind(null,205)),"v-1e493801":()=>n.e(20).then(n.bind(null,206))};function Ca(t){const e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}const Aa=/-(\w)/g,Sa=Ca(t=>t.replace(Aa,(t,e)=>e?e.toUpperCase():"")),Oa=/\B([A-Z])/g,Pa=Ca(t=>t.replace(Oa,"-$1").toLowerCase()),Ea=Ca(t=>t.charAt(0).toUpperCase()+t.slice(1));function Ta(t,e){if(!e)return;if(t(e))return t(e);return e.includes("-")?t(Ea(Sa(e))):t(Ea(e))||t(Pa(e))}const ja=Object.assign({},$a,xa),La=t=>ja[t],Ra=t=>xa[t],Ia=t=>$a[t],Ma=t=>No.component(t);function Ua(t){return Ta(Ra,t)}function Da(t){return Ta(Ia,t)}function Na(t){return Ta(La,t)}function Fa(t){return Ta(Ma,t)}function za(...t){return Promise.all(t.filter(t=>t).map(async t=>{if(!Fa(t)&&Na(t)){const e=await Na(t)();No.component(t,e.default)}}))}function Ba(t,e){"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[t]=e)}var Va={created(){this.$ssrContext&&(this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.description=this.$page.description||this.$description)},mounted(){this.currentMetaTags=new Set,this.updateMeta()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const t=this.$page.frontmatter.meta||[],e=t.slice(0);0===t.filter(t=>"description"===t.name).length&&e.push({name:"description",content:this.$description});const n=document.querySelectorAll('meta[name="description"]');n.length&&n.forEach(t=>this.currentMetaTags.add(t)),this.currentMetaTags=new Set(Ga(e,this.currentMetaTags))}},watch:{$page(){this.updateMeta()}},beforeDestroy(){Ga(null,this.currentMetaTags)}};function Ga(t,e){if(e&&[...e].forEach(t=>{document.head.removeChild(t)}),t)return t.map(t=>{const e=document.createElement("meta");return Object.keys(t).forEach(n=>{e.setAttribute(n,t[n])}),document.head.appendChild(e),e})}var Ha=n(3),qa={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:n.n(Ha)()(function(){this.setActiveHash()},300),setActiveHash(){const t=[].slice.call(document.querySelectorAll(".sidebar-link")),e=[].slice.call(document.querySelectorAll(".header-anchor")).filter(e=>t.some(t=>t.hash===e.hash)),n=Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),r=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),o=window.innerHeight+n;for(let t=0;t=i.parentElement.offsetTop+10&&(!a||n{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},Wa=n(2),Ka=n.n(Wa),Xa=[Va,qa,{mounted(){Ka.a.configure({showSpinner:!1}),this.$router.beforeEach((t,e,n)=>{t.path===e.path||No.component(t.name)||Ka.a.start(),n()}),this.$router.afterEach(()=>{Ka.a.done(),this.isSidebarOpen=!1})}}],Ja={methods:{getLayout:function(){if(this.$page.path){var t=this.$page.frontmatter.layout;return t&&(this.$vuepress.getLayoutAsyncComponent(t)||this.$vuepress.getVueComponent(t))?t:"Layout"}return"NotFound"}},computed:{layout:function(){var t=this.getLayout();return Ba("layout",t),No.component(t)}}},Ya=n(0),Za=Object(Ya.a)(Ja,function(){var t=this.$createElement;return(this._self._c||t)(this.layout,{tag:"component"})},[],!1,null,null,null).exports;!function(t,e,n){switch(e){case"components":t[e]||(t[e]={}),Object.assign(t[e],n);break;case"mixins":t[e]||(t[e]=[]),t[e].push(...n);break;default:throw new Error("Unknown option name.")}}(Za,"mixins",Xa);const Qa=[{name:"v-f88195a6",path:"/",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-f88195a6").then(n)}},{path:"/index.html",redirect:"/"},{name:"v-0f125dbb",path:"/auth/authorization_code.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-0f125dbb").then(n)}},{name:"v-5127c24a",path:"/auth/client_credentials.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-5127c24a").then(n)}},{name:"v-79c557ae",path:"/auth/getting_started.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-79c557ae").then(n)}},{name:"v-bc26f6ca",path:"/auth/implicit_grant.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-bc26f6ca").then(n)}},{name:"v-15ae477b",path:"/auth/token_swap.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-15ae477b").then(n)}},{name:"v-e2943322",path:"/web/albums.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-e2943322").then(n)}},{name:"v-9b504b3e",path:"/web/artists.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-9b504b3e").then(n)}},{name:"v-3896b323",path:"/web/browse.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-3896b323").then(n)}},{name:"v-ae731ab6",path:"/web/examples.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-ae731ab6").then(n)}},{name:"v-545731d5",path:"/web/follow.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-545731d5").then(n)}},{name:"v-5cda54a1",path:"/web/getting_started.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-5cda54a1").then(n)}},{name:"v-24570241",path:"/web/library.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-24570241").then(n)}},{name:"v-7499233e",path:"/web/personalization.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-7499233e").then(n)}},{name:"v-26737916",path:"/web/player.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-26737916").then(n)}},{name:"v-86daa2ba",path:"/web/profiles.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-86daa2ba").then(n)}},{name:"v-700fa4e1",path:"/web/proxy.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-700fa4e1").then(n)}},{name:"v-fe729232",path:"/web/search.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-fe729232").then(n)}},{name:"v-2f539db2",path:"/web/tracks.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-2f539db2").then(n)}},{name:"v-1edba7fe",path:"/web/utils.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-1edba7fe").then(n)}},{name:"v-1e493801",path:"/web/playlists.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-1e493801").then(n)}},{path:"*",component:Za}],ts={title:"SpotifyAPI-NET",description:"πŸ”‰ An API for the Spotify-Client and the Spotify Web API, written in C#/.NET",base:"/SpotifyAPI-NET/",pages:[{title:"SpotifyAPI-NET Docs",frontmatter:{},regularPath:"/",relativePath:"README.md",key:"v-f88195a6",path:"/",headers:[{level:2,title:"About",slug:"about"},{level:2,title:"Installing",slug:"installing"},{level:2,title:"Getting Started",slug:"getting-started"},{level:2,title:"Projects",slug:"projects"},{level:3,title:"audio-band](https://github.com/dsafa/audio-band) by [@dsafa",slug:"audio-band-by-dsafa"},{level:3,title:"rocksmith-custom-song-toolkit](https://github.com/catara/rocksmith-custom-song-toolkit) by [@catara",slug:"rocksmith-custom-song-toolkit-by-catara"},{level:3,title:"Spofy](https://github.com/eltoncezar/Spofy) by [@eltoncezar",slug:"spofy-by-eltoncezar"},{level:3,title:"Toastify](https://github.com/aleab/toastify) by [@aleab",slug:"toastify-by-aleab"},{level:3,title:"Spotify Oculus](https://github.com/CaptainMorgs/spotify-oculus-release) by [@CaptainMorgs",slug:"spotify-oculus-by-captainmorgs"}],lastUpdated:"1/9/2020, 7:27:54 PM"},{title:"AutorizationCodeAuth",frontmatter:{sidebar:!1},regularPath:"/auth/authorization_code.html",relativePath:"auth/authorization_code.md",key:"v-0f125dbb",path:"/auth/authorization_code.html",headers:[{level:2,title:"Token Refresh",slug:"token-refresh"}],lastUpdated:"1/9/2020, 7:27:54 PM"},{title:"ClientCredentialsAuth",frontmatter:{sidebar:!1},regularPath:"/auth/client_credentials.html",relativePath:"auth/client_credentials.md",key:"v-5127c24a",path:"/auth/client_credentials.html",lastUpdated:"1/9/2020, 7:27:54 PM"},{title:"Getting Started",frontmatter:{},regularPath:"/auth/getting_started.html",relativePath:"auth/getting_started.md",key:"v-79c557ae",path:"/auth/getting_started.html",headers:[{level:2,title:"Auth-Methods",slug:"auth-methods"}],lastUpdated:"1/9/2020, 7:27:54 PM"},{title:"ImplicitGrantAuth",frontmatter:{sidebar:!1},regularPath:"/auth/implicit_grant.html",relativePath:"auth/implicit_grant.md",key:"v-bc26f6ca",path:"/auth/implicit_grant.html",lastUpdated:"1/9/2020, 7:27:54 PM"},{title:"TokenSwapAuth",frontmatter:{},regularPath:"/auth/token_swap.html",relativePath:"auth/token_swap.md",key:"v-15ae477b",path:"/auth/token_swap.html",headers:[{level:2,title:"Using TokenSwapWebAPIFactory",slug:"using-tokenswapwebapifactory"},{level:2,title:"Using TokenSwapAuth",slug:"using-tokenswapauth"},{level:2,title:"Token Swap Endpoint",slug:"token-swap-endpoint"},{level:2,title:"Remarks",slug:"remarks"}],lastUpdated:"1/9/2020, 7:27:54 PM"},{title:"Albums",frontmatter:{},regularPath:"/web/albums.html",relativePath:"web/albums.md",key:"v-e2943322",path:"/web/albums.html",headers:[{level:2,title:"GetAlbumTracks",slug:"getalbumtracks"},{level:2,title:"GetAlbum",slug:"getalbum"},{level:2,title:"GetSeveralAlbums",slug:"getseveralalbums"}],lastUpdated:"1/9/2020, 7:27:54 PM"},{title:"Artists",frontmatter:{},regularPath:"/web/artists.html",relativePath:"web/artists.md",key:"v-9b504b3e",path:"/web/artists.html",headers:[{level:2,title:"GetArtist",slug:"getartist"},{level:2,title:"GetRelatedArtists",slug:"getrelatedartists"},{level:2,title:"GetArtistsTopTracks",slug:"getartiststoptracks"},{level:2,title:"GetArtistsAlbums",slug:"getartistsalbums"},{level:2,title:"GetSeveralArtists",slug:"getseveralartists"}],lastUpdated:"1/9/2020, 7:27:54 PM"},{title:"Browse",frontmatter:{},regularPath:"/web/browse.html",relativePath:"web/browse.md",key:"v-3896b323",path:"/web/browse.html",headers:[{level:2,title:"GetFeaturedPlaylists",slug:"getfeaturedplaylists"},{level:2,title:"GetNewAlbumReleases",slug:"getnewalbumreleases"},{level:2,title:"GetCategories",slug:"getcategories"},{level:2,title:"GetCategory",slug:"getcategory"},{level:2,title:"GetCategoryPlaylists",slug:"getcategoryplaylists"}],lastUpdated:"1/9/2020, 7:27:54 PM"},{title:"Examples",frontmatter:{sidebar:!1},regularPath:"/web/examples.html",relativePath:"web/examples.md",key:"v-ae731ab6",path:"/web/examples.html",lastUpdated:"1/9/2020, 7:27:54 PM"},{title:"Follow",frontmatter:{},regularPath:"/web/follow.html",relativePath:"web/follow.md",key:"v-545731d5",path:"/web/follow.html",headers:[{level:2,title:"Follow",slug:"follow-2"},{level:2,title:"Unfollow",slug:"unfollow"},{level:2,title:"IsFollowing",slug:"isfollowing"},{level:2,title:"FollowPlaylist",slug:"followplaylist"},{level:2,title:"UnfollowPlaylist",slug:"unfollowplaylist"},{level:2,title:"IsFollowingPlaylist",slug:"isfollowingplaylist"}],lastUpdated:"1/9/2020, 7:27:54 PM"},{title:"Getting Started",frontmatter:{sidebarDepth:2},regularPath:"/web/getting_started.html",relativePath:"web/getting_started.md",key:"v-5cda54a1",path:"/web/getting_started.html",headers:[{level:2,title:"First steps",slug:"first-steps"},{level:3,title:"Imports",slug:"imports"},{level:3,title:"Basic-Usage",slug:"basic-usage"},{level:2,title:"Examples",slug:"examples"},{level:2,title:"Error-Handling",slug:"error-handling"},{level:2,title:"Sync vs Asynchronous",slug:"sync-vs-asynchronous"},{level:2,title:"API-Reference",slug:"api-reference"},{level:3,title:"Albums",slug:"albums"},{level:3,title:"Artists",slug:"artists"},{level:3,title:"Browse",slug:"browse"},{level:3,title:"Follow",slug:"follow"},{level:3,title:"Library",slug:"library"},{level:3,title:"Personalization",slug:"personalization"},{level:3,title:"Player",slug:"player"},{level:3,title:"Playlists",slug:"playlists"},{level:3,title:"Profiles",slug:"profiles"},{level:3,title:"Search",slug:"search"},{level:3,title:"Tracks",slug:"tracks"},{level:3,title:"Util",slug:"util"}],lastUpdated:"1/9/2020, 7:27:54 PM"},{title:"Library",frontmatter:{},regularPath:"/web/library.html",relativePath:"web/library.md",key:"v-24570241",path:"/web/library.html",headers:[{level:2,title:"SaveTracks",slug:"savetracks"},{level:2,title:"SaveTrack",slug:"savetrack"},{level:2,title:"GetSavedTracks",slug:"getsavedtracks"},{level:2,title:"RemoveSavedTracks",slug:"removesavedtracks"},{level:2,title:"CheckSavedTracks",slug:"checksavedtracks"},{level:2,title:"SaveAlbums",slug:"savealbums"},{level:2,title:"SaveAlbum",slug:"savealbum"},{level:2,title:"GetSavedAlbums",slug:"getsavedalbums"},{level:2,title:"RemoveSavedAlbums",slug:"removesavedalbums"},{level:2,title:"CheckSavedAlbums",slug:"checksavedalbums"}],lastUpdated:"1/9/2020, 7:27:54 PM"},{title:"Personalization",frontmatter:{},regularPath:"/web/personalization.html",relativePath:"web/personalization.md",key:"v-7499233e",path:"/web/personalization.html",headers:[{level:2,title:"GetUsersTopTracks",slug:"getuserstoptracks"},{level:2,title:"GetUsersTopArtists",slug:"getuserstopartists"},{level:2,title:"GetUsersRecentlyPlayedTracks",slug:"getusersrecentlyplayedtracks"}],lastUpdated:"1/9/2020, 7:27:54 PM"},{title:"Player",frontmatter:{},regularPath:"/web/player.html",relativePath:"web/player.md",key:"v-26737916",path:"/web/player.html",headers:[{level:2,title:"GetDevices",slug:"getdevices"},{level:2,title:"GetPlayback",slug:"getplayback"},{level:2,title:"GetPlayingTrack",slug:"getplayingtrack"},{level:2,title:"TransferPlayback",slug:"transferplayback"},{level:2,title:"ResumePlayback",slug:"resumeplayback"},{level:2,title:"PausePlayback",slug:"pauseplayback"},{level:2,title:"SkipPlaybackToNext",slug:"skipplaybacktonext"},{level:2,title:"SkipPlaybackToPrevious",slug:"skipplaybacktoprevious"},{level:2,title:"SeekPlayback",slug:"seekplayback"},{level:2,title:"SetRepeatMode",slug:"setrepeatmode"},{level:2,title:"SetVolume",slug:"setvolume"},{level:2,title:"SetShuffle",slug:"setshuffle"}],lastUpdated:"1/9/2020, 7:27:54 PM"},{title:"Profiles",frontmatter:{},regularPath:"/web/profiles.html",relativePath:"web/profiles.md",key:"v-86daa2ba",path:"/web/profiles.html",headers:[{level:2,title:"GetPrivateProfile",slug:"getprivateprofile"},{level:2,title:"GetPublicProfile",slug:"getpublicprofile"}],lastUpdated:"1/9/2020, 7:27:54 PM"},{title:"Proxy Settings",frontmatter:{sidebar:!1},regularPath:"/web/proxy.html",relativePath:"web/proxy.md",key:"v-700fa4e1",path:"/web/proxy.html",lastUpdated:"1/9/2020, 7:27:54 PM"},{title:"Search",frontmatter:{},regularPath:"/web/search.html",relativePath:"web/search.md",key:"v-fe729232",path:"/web/search.html",headers:[{level:2,title:"SearchItems",slug:"searchitems"},{level:2,title:"SearchItemsEscaped",slug:"searchitemsescaped"}],lastUpdated:"1/9/2020, 7:27:54 PM"},{title:"Tracks",frontmatter:{},regularPath:"/web/tracks.html",relativePath:"web/tracks.md",key:"v-2f539db2",path:"/web/tracks.html",headers:[{level:2,title:"GetSeveralTracks",slug:"getseveraltracks"},{level:2,title:"GetTrack",slug:"gettrack"},{level:2,title:"GetAudioAnalysis",slug:"getaudioanalysis"}],lastUpdated:"1/9/2020, 7:27:54 PM"},{title:"Utilities",frontmatter:{},regularPath:"/web/utils.html",relativePath:"web/utils.md",key:"v-1edba7fe",path:"/web/utils.html",headers:[{level:2,title:"Paging-Methods",slug:"paging-methods"}],lastUpdated:"1/9/2020, 7:27:54 PM"},{title:"Playlists",frontmatter:{},regularPath:"/web/playlists.html",relativePath:"web/playlists.md",key:"v-1e493801",path:"/web/playlists.html",headers:[{level:2,title:"GetUserPlaylists",slug:"getuserplaylists"},{level:2,title:"GetPlaylist",slug:"getplaylist"},{level:2,title:"GetPlaylistTracks",slug:"getplaylisttracks"},{level:2,title:"CreatePlaylist",slug:"createplaylist"},{level:2,title:"UpdatePlaylist",slug:"updateplaylist"},{level:2,title:"ReplacePlaylistTracks",slug:"replaceplaylisttracks"},{level:2,title:"RemovePlaylistTracks",slug:"removeplaylisttracks"},{level:2,title:"RemovePlaylistTrack",slug:"removeplaylisttrack"},{level:2,title:"AddPlaylistTracks",slug:"addplaylisttracks"},{level:2,title:"AddPlaylistTrack",slug:"addplaylisttrack"},{level:2,title:"ReorderPlaylist",slug:"reorderplaylist"}],lastUpdated:"1/9/2020, 7:27:54 PM"}],themeConfig:{repo:"JohnnyCrazy/SpotifyAPI-NET",repoLabel:"πŸš€ GitHub",docsDir:"SpotifyAPI.Docs/docs",editLinks:!0,editLinkText:"Help us improve this page!",sidebar:"auto",sidebarDepth:0,lastUpdated:"Last Updated",serviceWorker:{updatePopup:!0},nav:[{text:"Home",link:"/"},{text:"SpotifyAPI.Web",items:[{text:"Getting Started",link:"/web/getting_started"},{text:"Examples",link:"/web/examples"},{text:"Proxy",link:"/web/proxy"},{text:"- Albums",link:"/web/albums"},{text:"- Artists",link:"/web/artists"},{text:"- Browse",link:"/web/browse"},{text:"- Follow",link:"/web/follow"},{text:"- Library",link:"/web/library"},{text:"- Personalization",link:"/web/personalization"},{text:"- Player",link:"/web/player"},{text:"- Playlists",link:"/web/playlists"},{text:"- Profiles",link:"/web/profiles"},{text:"- Search",link:"/web/search"},{text:"- Tracks",link:"/web/tracks"},{text:"Utilities",link:"/web/utils"}]},{text:"SpotifyAPI.Auth",items:[{text:"Getting Started",link:"/auth/getting_started"},{text:"- ImplicitGrantAuth",link:"/auth/implicit_grant"},{text:"- TokenSwapAuth",link:"/auth/token_swap"},{text:"- AutorizationCodeAuth",link:"/auth/authorization_code"},{text:"- ClientCredentialsAuth",link:"/auth/client_credentials"}]}]}};n(5);No.component("Badge",()=>Promise.all([n.e(0),n.e(3)]).then(n.bind(null,207)));n(6);var es=[{},({Vue:t})=>{t.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},{}],ns=[];class rs{constructor(){this.store=new No({data:{state:{}}})}$get(t){return this.store.state[t]}$set(t,e){No.set(this.store.state,t,e)}$emit(...t){this.store.$emit(...t)}$on(...t){this.store.$on(...t)}}class os extends rs{}Object.assign(os.prototype,{getPageAsyncComponent:Ua,getLayoutAsyncComponent:Da,getAsyncComponent:Na,getVueComponent:Fa});var is={install(t){const e=new os;t.$vuepress=e,t.prototype.$vuepress=e}};function as(t,e){return t.options.routes.filter(t=>t.path.toLowerCase()===e.toLowerCase()).length>0}var ss={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(t){const e=this.pageKey||this.$parent.$page.key;return Ba("pageKey",e),No.component(e)||No.component(e,Ua(e)),No.component(e)?t(e):t("")}},ls={functional:!0,props:{slotKey:String,required:!0},render:(t,{props:e,slots:n})=>t("div",{class:[`content__${e.slotKey}`]},n()[e.slotKey])},cs=(n(7),Object(Ya.a)({},function(t,e){var n=e._c;return n("svg",{staticClass:"icon outbound",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"}},[n("path",{attrs:{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}}),e._v(" "),n("polygon",{attrs:{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"}})])},[],!0,null,null,null).exports),us={functional:!0,render(t,{parent:e,children:n}){if(e._isMounted)return n;e.$once("hook:mounted",()=>{e.$forceUpdate()})}};No.config.productionTip=!1,No.use(ka),No.use(is),No.mixin(function(t,e,n=No){!function(t){t.locales&&Object.keys(t.locales).forEach(e=>{t.locales[e].path=e});Object.freeze(t)}(e),n.$vuepress.$set("siteData",e);const r=new(t(n.$vuepress.$get("siteData"))),o=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),i={};return Object.keys(o).reduce((t,e)=>(e.startsWith("$")&&(t[e]=o[e].get),t),i),{computed:i}}(t=>(class{setPage(t){this.__page=t}get $site(){return t}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:t={}}=this.$site;let e,n;for(const r in t)"/"===r?n=t[r]:0===this.$page.path.indexOf(r)&&(e=t[r]);return e||n||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $title(){const t=this.$page,{metaTitle:e}=this.$page.frontmatter;if("string"==typeof e)return e;const n=this.$siteTitle,r=t.frontmatter.home?null:t.frontmatter.title||t.title;return n?r?r+" | "+n:n:r||"VuePress"}get $description(){const t=function(t){if(t){const e=t.filter(t=>"description"===t.name)[0];if(e)return e.content}}(this.$page.frontmatter.meta);return t||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}get $lang(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}get $localePath(){return this.$localeConfig.path||"/"}get $themeLocaleConfig(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}get $page(){return this.__page?this.__page:function(t,e){for(let n=0;nn||(t.hash?!No.$vuepress.$get("disableScrollBehavior")&&{selector:t.hash}:{x:0,y:0})});!function(t){t.beforeEach((e,n,r)=>{if(as(t,e.path))r();else if(/(\/|\.html)$/.test(e.path))if(/\/$/.test(e.path)){const n=e.path.replace(/\/$/,"")+".html";as(t,n)?r(n):r()}else r();else{const n=e.path+"/",o=e.path+".html";as(t,o)?r(o):as(t,n)?r(n):r()}})}(n);const r={};try{es.forEach(e=>{"function"==typeof e&&e({Vue:No,options:r,router:n,siteData:ts,isServer:t})})}catch(t){console.error(t)}return{app:new No(Object.assign(r,{router:n,render:t=>t("div",{attrs:{id:"app"}},[t("router-view",{ref:"layout"}),t("div",{class:"global-ui"},ns.map(e=>t(e)))])})),router:n}}(!1);window.__VUEPRESS__={version:"1.0.3",hash:"fd5108b"},ps.onReady(()=>{fs.$mount("#app")})}]); \ No newline at end of file + */function Fo(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}function zo(t,e){return e instanceof t||e&&(e.name===t.name||e._name===t._name)}function Bo(t,e){for(var n in e)t[n]=e[n];return t}var Vo={name:"RouterView",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,e){var n=e.props,r=e.children,o=e.parent,i=e.data;i.routerView=!0;for(var a=o.$createElement,s=n.name,l=o.$route,u=o._routerViewCache||(o._routerViewCache={}),c=0,f=!1;o&&o._routerRoot!==o;){var p=o.$vnode&&o.$vnode.data;p&&(p.routerView&&c++,p.keepAlive&&o._inactive&&(f=!0)),o=o.$parent}if(i.routerViewDepth=c,f)return a(u[s],i,r);var d=l.matched[c];if(!d)return u[s]=null,a();var h=u[s]=d.components[s];i.registerRouteInstance=function(t,e){var n=d.instances[s];(e&&n!==t||!e&&n===t)&&(d.instances[s]=e)},(i.hook||(i.hook={})).prepatch=function(t,e){d.instances[s]=e.componentInstance},i.hook.init=function(t){t.data.keepAlive&&t.componentInstance&&t.componentInstance!==d.instances[s]&&(d.instances[s]=t.componentInstance)};var v=i.props=function(t,e){switch(typeof e){case"undefined":return;case"object":return e;case"function":return e(t);case"boolean":return e?t.params:void 0;default:0}}(l,d.props&&d.props[s]);if(v){v=i.props=Bo({},v);var m=i.attrs=i.attrs||{};for(var y in v)h.props&&y in h.props||(m[y]=v[y],delete v[y])}return a(h,i,r)}};var Go=/[!'()*]/g,Ho=function(t){return"%"+t.charCodeAt(0).toString(16)},qo=/%2C/g,Wo=function(t){return encodeURIComponent(t).replace(Go,Ho).replace(qo,",")},Ko=decodeURIComponent;function Xo(t){var e={};return(t=t.trim().replace(/^(\?|#|&)/,""))?(t.split("&").forEach(function(t){var n=t.replace(/\+/g," ").split("="),r=Ko(n.shift()),o=n.length>0?Ko(n.join("=")):null;void 0===e[r]?e[r]=o:Array.isArray(e[r])?e[r].push(o):e[r]=[e[r],o]}),e):e}function Jo(t){var e=t?Object.keys(t).map(function(e){var n=t[e];if(void 0===n)return"";if(null===n)return Wo(e);if(Array.isArray(n)){var r=[];return n.forEach(function(t){void 0!==t&&(null===t?r.push(Wo(e)):r.push(Wo(e)+"="+Wo(t)))}),r.join("&")}return Wo(e)+"="+Wo(n)}).filter(function(t){return t.length>0}).join("&"):null;return e?"?"+e:""}var Yo=/\/?$/;function Zo(t,e,n,r){var o=r&&r.options.stringifyQuery,i=e.query||{};try{i=Qo(i)}catch(t){}var a={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:i,params:e.params||{},fullPath:ni(e,o),matched:t?ei(t):[]};return n&&(a.redirectedFrom=ni(n,o)),Object.freeze(a)}function Qo(t){if(Array.isArray(t))return t.map(Qo);if(t&&"object"==typeof t){var e={};for(var n in t)e[n]=Qo(t[n]);return e}return t}var ti=Zo(null,{path:"/"});function ei(t){for(var e=[];t;)e.unshift(t),t=t.parent;return e}function ni(t,e){var n=t.path,r=t.query;void 0===r&&(r={});var o=t.hash;return void 0===o&&(o=""),(n||"/")+(e||Jo)(r)+o}function ri(t,e){return e===ti?t===e:!!e&&(t.path&&e.path?t.path.replace(Yo,"")===e.path.replace(Yo,"")&&t.hash===e.hash&&oi(t.query,e.query):!(!t.name||!e.name)&&(t.name===e.name&&t.hash===e.hash&&oi(t.query,e.query)&&oi(t.params,e.params)))}function oi(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&n.every(function(n){var r=t[n],o=e[n];return"object"==typeof r&&"object"==typeof o?oi(r,o):String(r)===String(o)})}function ii(t,e,n){var r=t.charAt(0);if("/"===r)return t;if("?"===r||"#"===r)return e+t;var o=e.split("/");n&&o[o.length-1]||o.pop();for(var i=t.replace(/^\//,"").split("/"),a=0;a=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}(o.path||""),l=e&&e.path||"/",u=s.path?ii(s.path,l,n||o.append):l,c=function(t,e,n){void 0===e&&(e={});var r,o=n||Xo;try{r=o(t||"")}catch(t){r={}}for(var i in e)r[i]=e[i];return r}(s.query,o.query,r&&r.options.parseQuery),f=o.hash||s.hash;return f&&"#"!==f.charAt(0)&&(f="#"+f),{_normalized:!0,path:u,query:c,hash:f}}var Ai,Si=[String,Object],Oi=[String,Array],Pi=function(){},Ei={name:"RouterLink",props:{to:{type:Si,required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,event:{type:Oi,default:"click"}},render:function(t){var e=this,n=this.$router,r=this.$route,o=n.resolve(this.to,r,this.append),i=o.location,a=o.route,s=o.href,l={},u=n.options.linkActiveClass,c=n.options.linkExactActiveClass,f=null==u?"router-link-active":u,p=null==c?"router-link-exact-active":c,d=null==this.activeClass?f:this.activeClass,h=null==this.exactActiveClass?p:this.exactActiveClass,v=a.redirectedFrom?Zo(null,Ci(a.redirectedFrom),null,n):a;l[h]=ri(r,v),l[d]=this.exact?l[h]:function(t,e){return 0===t.path.replace(Yo,"/").indexOf(e.path.replace(Yo,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var n in e)if(!(n in t))return!1;return!0}(t.query,e.query)}(r,v);var m=function(t){Ti(t)&&(e.replace?n.replace(i,Pi):n.push(i,Pi))},y={click:Ti};Array.isArray(this.event)?this.event.forEach(function(t){y[t]=m}):y[this.event]=m;var g={class:l},b=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:s,route:a,navigate:m,isActive:l[d],isExactActive:l[h]});if(b){if(1===b.length)return b[0];if(b.length>1||!b.length)return 0===b.length?t():t("span",{},b)}if("a"===this.tag)g.on=y,g.attrs={href:s};else{var _=function t(e){if(e)for(var n,r=0;r-1&&(s.params[p]=n.params[p]);return s.path=xi(c.path,s.params),l(c,s,a)}if(s.path){s.params={};for(var d=0;d=t.length?n():t[o]?e(t[o],function(){r(o+1)}):r(o+1)};r(0)}function ea(t){return function(e,n,r){var o=!1,i=0,a=null;na(t,function(t,e,n,s){if("function"==typeof t&&void 0===t.cid){o=!0,i++;var l,u=ia(function(e){var o;((o=e).__esModule||oa&&"Module"===o[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:Ai.extend(e),n.components[s]=e,--i<=0&&r()}),c=ia(function(t){var e="Failed to resolve async component "+s+": "+t;a||(a=Fo(t)?t:new Error(e),r(a))});try{l=t(u,c)}catch(t){c(t)}if(l)if("function"==typeof l.then)l.then(u,c);else{var f=l.component;f&&"function"==typeof f.then&&f.then(u,c)}}}),o||r()}}function na(t,e){return ra(t.map(function(t){return Object.keys(t.components).map(function(n){return e(t.components[n],t.instances[n],t,n)})}))}function ra(t){return Array.prototype.concat.apply([],t)}var oa="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function ia(t){var e=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var aa=function(t){function e(){t.call(this,"Navigating to current location is not allowed"),this.name=this._name="NavigationDuplicated"}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Error);aa._name="NavigationDuplicated";var sa=function(t,e){this.router=t,this.base=function(t){if(!t)if(ji){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=ti,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[]};function la(t,e,n,r){var o=na(t,function(t,r,o,i){var a=function(t,e){"function"!=typeof t&&(t=Ai.extend(t));return t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map(function(t){return n(t,r,o,i)}):n(a,r,o,i)});return ra(r?o.reverse():o)}function ua(t,e){if(e)return function(){return t.apply(e,arguments)}}sa.prototype.listen=function(t){this.cb=t},sa.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},sa.prototype.onError=function(t){this.errorCbs.push(t)},sa.prototype.transitionTo=function(t,e,n){var r=this,o=this.router.match(t,this.current);this.confirmTransition(o,function(){r.updateRoute(o),e&&e(o),r.ensureURL(),r.ready||(r.ready=!0,r.readyCbs.forEach(function(t){t(o)}))},function(t){n&&n(t),t&&!r.ready&&(r.ready=!0,r.readyErrorCbs.forEach(function(e){e(t)}))})},sa.prototype.confirmTransition=function(t,e,n){var r=this,o=this.current,i=function(t){!zo(aa,t)&&Fo(t)&&(r.errorCbs.length?r.errorCbs.forEach(function(e){e(t)}):console.error(t)),n&&n(t)};if(ri(t,o)&&t.matched.length===o.matched.length)return this.ensureURL(),i(new aa(t));var a=function(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n-1?decodeURI(t.slice(0,r))+t.slice(r):decodeURI(t)}else n>-1&&(t=decodeURI(t.slice(0,n))+t.slice(n));return t}function va(t){var e=window.location.href,n=e.indexOf("#");return(n>=0?e.slice(0,n):e)+"#"+t}function ma(t){Wi?Zi(va(t)):window.location.hash=t}function ya(t){Wi?Qi(va(t)):window.location.replace(va(t))}var ga=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)},n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,function(){e.index=n,e.updateRoute(r)},function(t){zo(aa,t)&&(e.index=n)})}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(sa),ba=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Ii(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!Wi&&!1!==t.fallback,this.fallback&&(e="hash"),ji||(e="abstract"),this.mode=e,e){case"history":this.history=new ca(this,t.base);break;case"hash":this.history=new pa(this,t.base,this.fallback);break;case"abstract":this.history=new ga(this,t.base);break;default:0}},_a={currentRoute:{configurable:!0}};function wa(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}ba.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},_a.currentRoute.get=function(){return this.history&&this.history.current},ba.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null)}),!this.app){this.app=t;var n=this.history;if(n instanceof ca)n.transitionTo(n.getCurrentLocation());else if(n instanceof pa){var r=function(){n.setupListeners()};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen(function(t){e.apps.forEach(function(e){e._route=t})})}},ba.prototype.beforeEach=function(t){return wa(this.beforeHooks,t)},ba.prototype.beforeResolve=function(t){return wa(this.resolveHooks,t)},ba.prototype.afterEach=function(t){return wa(this.afterHooks,t)},ba.prototype.onReady=function(t,e){this.history.onReady(t,e)},ba.prototype.onError=function(t){this.history.onError(t)},ba.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise(function(e,n){r.history.push(t,e,n)});this.history.push(t,e,n)},ba.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise(function(e,n){r.history.replace(t,e,n)});this.history.replace(t,e,n)},ba.prototype.go=function(t){this.history.go(t)},ba.prototype.back=function(){this.go(-1)},ba.prototype.forward=function(){this.go(1)},ba.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map(function(t){return Object.keys(t.components).map(function(e){return t.components[e]})})):[]},ba.prototype.resolve=function(t,e,n){var r=Ci(t,e=e||this.history.current,n,this),o=this.match(r,e),i=o.redirectedFrom||o.fullPath;return{location:r,route:o,href:function(t,e,n){var r="hash"===n?"#"+e:e;return t?ai(t+"/"+r):r}(this.history.base,i,this.mode),normalizedTo:r,resolved:o}},ba.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==ti&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(ba.prototype,_a),ba.install=function t(e){if(!t.installed||Ai!==e){t.installed=!0,Ai=e;var n=function(t){return void 0!==t},r=function(t,e){var r=t.$options._parentVnode;n(r)&&n(r=r.data)&&n(r=r.registerRouteInstance)&&r(t,e)};e.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,r(this,this)},destroyed:function(){r(this)}}),Object.defineProperty(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",Vo),e.component("RouterLink",Ei);var o=e.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},ba.version="3.1.2",ji&&window.Vue&&window.Vue.use(ba);var ka=ba;var $a={NotFound:()=>n.e(4).then(n.bind(null,185)),Layout:()=>Promise.all([n.e(0),n.e(2)]).then(n.bind(null,184))},xa={"v-f88195a6":()=>n.e(5).then(n.bind(null,186)),"v-0f125dbb":()=>n.e(6).then(n.bind(null,187)),"v-79c557ae":()=>n.e(8).then(n.bind(null,188)),"v-5127c24a":()=>n.e(7).then(n.bind(null,189)),"v-bc26f6ca":()=>n.e(9).then(n.bind(null,190)),"v-15ae477b":()=>n.e(10).then(n.bind(null,191)),"v-e2943322":()=>n.e(11).then(n.bind(null,192)),"v-9b504b3e":()=>n.e(12).then(n.bind(null,193)),"v-3896b323":()=>n.e(13).then(n.bind(null,194)),"v-ae731ab6":()=>n.e(14).then(n.bind(null,195)),"v-5cda54a1":()=>n.e(16).then(n.bind(null,196)),"v-545731d5":()=>n.e(15).then(n.bind(null,197)),"v-24570241":()=>n.e(17).then(n.bind(null,198)),"v-7499233e":()=>n.e(18).then(n.bind(null,199)),"v-26737916":()=>n.e(19).then(n.bind(null,200)),"v-86daa2ba":()=>n.e(21).then(n.bind(null,201)),"v-700fa4e1":()=>n.e(22).then(n.bind(null,202)),"v-fe729232":()=>n.e(23).then(n.bind(null,203)),"v-2f539db2":()=>n.e(24).then(n.bind(null,204)),"v-1edba7fe":()=>n.e(25).then(n.bind(null,205)),"v-1e493801":()=>n.e(20).then(n.bind(null,206))};function Ca(t){const e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}const Aa=/-(\w)/g,Sa=Ca(t=>t.replace(Aa,(t,e)=>e?e.toUpperCase():"")),Oa=/\B([A-Z])/g,Pa=Ca(t=>t.replace(Oa,"-$1").toLowerCase()),Ea=Ca(t=>t.charAt(0).toUpperCase()+t.slice(1));function Ta(t,e){if(!e)return;if(t(e))return t(e);return e.includes("-")?t(Ea(Sa(e))):t(Ea(e))||t(Pa(e))}const ja=Object.assign({},$a,xa),Ra=t=>ja[t],La=t=>xa[t],Ia=t=>$a[t],Ma=t=>No.component(t);function Ua(t){return Ta(La,t)}function Da(t){return Ta(Ia,t)}function Na(t){return Ta(Ra,t)}function Fa(t){return Ta(Ma,t)}function za(...t){return Promise.all(t.filter(t=>t).map(async t=>{if(!Fa(t)&&Na(t)){const e=await Na(t)();No.component(t,e.default)}}))}function Ba(t,e){"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[t]=e)}var Va={created(){this.$ssrContext&&(this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.description=this.$page.description||this.$description)},mounted(){this.currentMetaTags=new Set,this.updateMeta()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const t=this.$page.frontmatter.meta||[],e=t.slice(0);0===t.filter(t=>"description"===t.name).length&&e.push({name:"description",content:this.$description});const n=document.querySelectorAll('meta[name="description"]');n.length&&n.forEach(t=>this.currentMetaTags.add(t)),this.currentMetaTags=new Set(Ga(e,this.currentMetaTags))}},watch:{$page(){this.updateMeta()}},beforeDestroy(){Ga(null,this.currentMetaTags)}};function Ga(t,e){if(e&&[...e].forEach(t=>{document.head.removeChild(t)}),t)return t.map(t=>{const e=document.createElement("meta");return Object.keys(t).forEach(n=>{e.setAttribute(n,t[n])}),document.head.appendChild(e),e})}var Ha=n(3),qa={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:n.n(Ha)()(function(){this.setActiveHash()},300),setActiveHash(){const t=[].slice.call(document.querySelectorAll(".sidebar-link")),e=[].slice.call(document.querySelectorAll(".header-anchor")).filter(e=>t.some(t=>t.hash===e.hash)),n=Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),r=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),o=window.innerHeight+n;for(let t=0;t=i.parentElement.offsetTop+10&&(!a||n{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},Wa=n(2),Ka=n.n(Wa),Xa=[Va,qa,{mounted(){Ka.a.configure({showSpinner:!1}),this.$router.beforeEach((t,e,n)=>{t.path===e.path||No.component(t.name)||Ka.a.start(),n()}),this.$router.afterEach(()=>{Ka.a.done(),this.isSidebarOpen=!1})}}],Ja={methods:{getLayout:function(){if(this.$page.path){var t=this.$page.frontmatter.layout;return t&&(this.$vuepress.getLayoutAsyncComponent(t)||this.$vuepress.getVueComponent(t))?t:"Layout"}return"NotFound"}},computed:{layout:function(){var t=this.getLayout();return Ba("layout",t),No.component(t)}}},Ya=n(0),Za=Object(Ya.a)(Ja,function(){var t=this.$createElement;return(this._self._c||t)(this.layout,{tag:"component"})},[],!1,null,null,null).exports;!function(t,e,n){switch(e){case"components":t[e]||(t[e]={}),Object.assign(t[e],n);break;case"mixins":t[e]||(t[e]=[]),t[e].push(...n);break;default:throw new Error("Unknown option name.")}}(Za,"mixins",Xa);const Qa=[{name:"v-f88195a6",path:"/",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-f88195a6").then(n)}},{path:"/index.html",redirect:"/"},{name:"v-0f125dbb",path:"/auth/authorization_code.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-0f125dbb").then(n)}},{name:"v-79c557ae",path:"/auth/getting_started.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-79c557ae").then(n)}},{name:"v-5127c24a",path:"/auth/client_credentials.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-5127c24a").then(n)}},{name:"v-bc26f6ca",path:"/auth/implicit_grant.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-bc26f6ca").then(n)}},{name:"v-15ae477b",path:"/auth/token_swap.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-15ae477b").then(n)}},{name:"v-e2943322",path:"/web/albums.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-e2943322").then(n)}},{name:"v-9b504b3e",path:"/web/artists.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-9b504b3e").then(n)}},{name:"v-3896b323",path:"/web/browse.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-3896b323").then(n)}},{name:"v-ae731ab6",path:"/web/examples.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-ae731ab6").then(n)}},{name:"v-5cda54a1",path:"/web/getting_started.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-5cda54a1").then(n)}},{name:"v-545731d5",path:"/web/follow.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-545731d5").then(n)}},{name:"v-24570241",path:"/web/library.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-24570241").then(n)}},{name:"v-7499233e",path:"/web/personalization.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-7499233e").then(n)}},{name:"v-26737916",path:"/web/player.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-26737916").then(n)}},{name:"v-86daa2ba",path:"/web/profiles.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-86daa2ba").then(n)}},{name:"v-700fa4e1",path:"/web/proxy.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-700fa4e1").then(n)}},{name:"v-fe729232",path:"/web/search.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-fe729232").then(n)}},{name:"v-2f539db2",path:"/web/tracks.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-2f539db2").then(n)}},{name:"v-1edba7fe",path:"/web/utils.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-1edba7fe").then(n)}},{name:"v-1e493801",path:"/web/playlists.html",component:Za,beforeEnter:(t,e,n)=>{za("Layout","v-1e493801").then(n)}},{path:"*",component:Za}],ts={title:"SpotifyAPI-NET",description:"πŸ”‰ An API for the Spotify-Client and the Spotify Web API, written in C#/.NET",base:"/SpotifyAPI-NET/",pages:[{title:"SpotifyAPI-NET Docs",frontmatter:{},regularPath:"/",relativePath:"README.md",key:"v-f88195a6",path:"/",headers:[{level:2,title:"About",slug:"about"},{level:2,title:"Installing",slug:"installing"},{level:2,title:"Getting Started",slug:"getting-started"},{level:2,title:"Projects",slug:"projects"},{level:3,title:"lidarr](https://github.com/lidarr/Lidarr) by [@lidarr",slug:"lidarr-by-lidarr"},{level:3,title:"botframework-solutions](https://github.com/microsoft/botframework-solutions) by [@microsoft",slug:"botframework-solutions-by-microsoft"},{level:3,title:"Spytify](https://github.com/jwallet/spy-spotify) by [@jwallet",slug:"spytify-by-jwallet"},{level:3,title:"audio-band](https://github.com/dsafa/audio-band) by [@dsafa",slug:"audio-band-by-dsafa"},{level:3,title:"rocksmith-custom-song-toolkit](https://github.com/catara/rocksmith-custom-song-toolkit) by [@catara",slug:"rocksmith-custom-song-toolkit-by-catara"},{level:3,title:"Spofy](https://github.com/eltoncezar/Spofy) by [@eltoncezar",slug:"spofy-by-eltoncezar"},{level:3,title:"Toastify](https://github.com/aleab/toastify) by [@aleab",slug:"toastify-by-aleab"},{level:3,title:"Spotify Oculus](https://github.com/CaptainMorgs/spotify-oculus-release) by [@CaptainMorgs",slug:"spotify-oculus-by-captainmorgs"},{level:3,title:"Songify](https://github.com/Inzaniity/Songify) by [@Inzaniity",slug:"songify-by-inzaniity"},{level:3,title:"Elite G19s Companion app](https://forums.frontier.co.uk/threads/elite-g19s-companion-app-with-simulated-space-traffic-control.226782/) by [@MagicMau",slug:"elite-g19s-companion-app-by-magicmau"},{level:3,title:"ARDUINO-Spotify-Remote-Control](https://github.com/NADER11NDEU/ARDUINO-Spotify-Remote-Control) by [@NADER11NDEU",slug:"arduino-spotify-remote-control-by-nader11ndeu"}],lastUpdated:"1/12/2020, 6:55:18 PM"},{title:"AutorizationCodeAuth",frontmatter:{sidebar:!1},regularPath:"/auth/authorization_code.html",relativePath:"auth/authorization_code.md",key:"v-0f125dbb",path:"/auth/authorization_code.html",headers:[{level:2,title:"Token Refresh",slug:"token-refresh"}],lastUpdated:"1/12/2020, 6:55:18 PM"},{title:"Getting Started",frontmatter:{},regularPath:"/auth/getting_started.html",relativePath:"auth/getting_started.md",key:"v-79c557ae",path:"/auth/getting_started.html",headers:[{level:2,title:"Auth-Methods",slug:"auth-methods"}],lastUpdated:"1/12/2020, 6:55:18 PM"},{title:"ClientCredentialsAuth",frontmatter:{sidebar:!1},regularPath:"/auth/client_credentials.html",relativePath:"auth/client_credentials.md",key:"v-5127c24a",path:"/auth/client_credentials.html",lastUpdated:"1/12/2020, 6:55:18 PM"},{title:"ImplicitGrantAuth",frontmatter:{sidebar:!1},regularPath:"/auth/implicit_grant.html",relativePath:"auth/implicit_grant.md",key:"v-bc26f6ca",path:"/auth/implicit_grant.html",lastUpdated:"1/12/2020, 6:55:18 PM"},{title:"TokenSwapAuth",frontmatter:{},regularPath:"/auth/token_swap.html",relativePath:"auth/token_swap.md",key:"v-15ae477b",path:"/auth/token_swap.html",headers:[{level:2,title:"Using TokenSwapWebAPIFactory",slug:"using-tokenswapwebapifactory"},{level:2,title:"Using TokenSwapAuth",slug:"using-tokenswapauth"},{level:2,title:"Token Swap Endpoint",slug:"token-swap-endpoint"},{level:2,title:"Remarks",slug:"remarks"}],lastUpdated:"1/12/2020, 6:55:18 PM"},{title:"Albums",frontmatter:{},regularPath:"/web/albums.html",relativePath:"web/albums.md",key:"v-e2943322",path:"/web/albums.html",headers:[{level:2,title:"GetAlbumTracks",slug:"getalbumtracks"},{level:2,title:"GetAlbum",slug:"getalbum"},{level:2,title:"GetSeveralAlbums",slug:"getseveralalbums"}],lastUpdated:"1/12/2020, 6:55:18 PM"},{title:"Artists",frontmatter:{},regularPath:"/web/artists.html",relativePath:"web/artists.md",key:"v-9b504b3e",path:"/web/artists.html",headers:[{level:2,title:"GetArtist",slug:"getartist"},{level:2,title:"GetRelatedArtists",slug:"getrelatedartists"},{level:2,title:"GetArtistsTopTracks",slug:"getartiststoptracks"},{level:2,title:"GetArtistsAlbums",slug:"getartistsalbums"},{level:2,title:"GetSeveralArtists",slug:"getseveralartists"}],lastUpdated:"1/12/2020, 6:55:18 PM"},{title:"Browse",frontmatter:{},regularPath:"/web/browse.html",relativePath:"web/browse.md",key:"v-3896b323",path:"/web/browse.html",headers:[{level:2,title:"GetFeaturedPlaylists",slug:"getfeaturedplaylists"},{level:2,title:"GetNewAlbumReleases",slug:"getnewalbumreleases"},{level:2,title:"GetCategories",slug:"getcategories"},{level:2,title:"GetCategory",slug:"getcategory"},{level:2,title:"GetCategoryPlaylists",slug:"getcategoryplaylists"}],lastUpdated:"1/12/2020, 6:55:18 PM"},{title:"Examples",frontmatter:{sidebar:!1},regularPath:"/web/examples.html",relativePath:"web/examples.md",key:"v-ae731ab6",path:"/web/examples.html",lastUpdated:"1/12/2020, 6:55:18 PM"},{title:"Getting Started",frontmatter:{sidebarDepth:2},regularPath:"/web/getting_started.html",relativePath:"web/getting_started.md",key:"v-5cda54a1",path:"/web/getting_started.html",headers:[{level:2,title:"First steps",slug:"first-steps"},{level:3,title:"Imports",slug:"imports"},{level:3,title:"Basic-Usage",slug:"basic-usage"},{level:2,title:"Examples",slug:"examples"},{level:2,title:"Error-Handling",slug:"error-handling"},{level:2,title:"Sync vs Asynchronous",slug:"sync-vs-asynchronous"},{level:2,title:"API-Reference",slug:"api-reference"},{level:3,title:"Albums",slug:"albums"},{level:3,title:"Artists",slug:"artists"},{level:3,title:"Browse",slug:"browse"},{level:3,title:"Follow",slug:"follow"},{level:3,title:"Library",slug:"library"},{level:3,title:"Personalization",slug:"personalization"},{level:3,title:"Player",slug:"player"},{level:3,title:"Playlists",slug:"playlists"},{level:3,title:"Profiles",slug:"profiles"},{level:3,title:"Search",slug:"search"},{level:3,title:"Tracks",slug:"tracks"},{level:3,title:"Util",slug:"util"}],lastUpdated:"1/12/2020, 6:55:18 PM"},{title:"Follow",frontmatter:{},regularPath:"/web/follow.html",relativePath:"web/follow.md",key:"v-545731d5",path:"/web/follow.html",headers:[{level:2,title:"Follow",slug:"follow-2"},{level:2,title:"Unfollow",slug:"unfollow"},{level:2,title:"IsFollowing",slug:"isfollowing"},{level:2,title:"FollowPlaylist",slug:"followplaylist"},{level:2,title:"UnfollowPlaylist",slug:"unfollowplaylist"},{level:2,title:"IsFollowingPlaylist",slug:"isfollowingplaylist"}],lastUpdated:"1/12/2020, 6:55:18 PM"},{title:"Library",frontmatter:{},regularPath:"/web/library.html",relativePath:"web/library.md",key:"v-24570241",path:"/web/library.html",headers:[{level:2,title:"SaveTracks",slug:"savetracks"},{level:2,title:"SaveTrack",slug:"savetrack"},{level:2,title:"GetSavedTracks",slug:"getsavedtracks"},{level:2,title:"RemoveSavedTracks",slug:"removesavedtracks"},{level:2,title:"CheckSavedTracks",slug:"checksavedtracks"},{level:2,title:"SaveAlbums",slug:"savealbums"},{level:2,title:"SaveAlbum",slug:"savealbum"},{level:2,title:"GetSavedAlbums",slug:"getsavedalbums"},{level:2,title:"RemoveSavedAlbums",slug:"removesavedalbums"},{level:2,title:"CheckSavedAlbums",slug:"checksavedalbums"}],lastUpdated:"1/12/2020, 6:55:18 PM"},{title:"Personalization",frontmatter:{},regularPath:"/web/personalization.html",relativePath:"web/personalization.md",key:"v-7499233e",path:"/web/personalization.html",headers:[{level:2,title:"GetUsersTopTracks",slug:"getuserstoptracks"},{level:2,title:"GetUsersTopArtists",slug:"getuserstopartists"},{level:2,title:"GetUsersRecentlyPlayedTracks",slug:"getusersrecentlyplayedtracks"}],lastUpdated:"1/12/2020, 6:55:18 PM"},{title:"Player",frontmatter:{},regularPath:"/web/player.html",relativePath:"web/player.md",key:"v-26737916",path:"/web/player.html",headers:[{level:2,title:"GetDevices",slug:"getdevices"},{level:2,title:"GetPlayback",slug:"getplayback"},{level:2,title:"GetPlayingTrack",slug:"getplayingtrack"},{level:2,title:"TransferPlayback",slug:"transferplayback"},{level:2,title:"ResumePlayback",slug:"resumeplayback"},{level:2,title:"PausePlayback",slug:"pauseplayback"},{level:2,title:"SkipPlaybackToNext",slug:"skipplaybacktonext"},{level:2,title:"SkipPlaybackToPrevious",slug:"skipplaybacktoprevious"},{level:2,title:"SeekPlayback",slug:"seekplayback"},{level:2,title:"SetRepeatMode",slug:"setrepeatmode"},{level:2,title:"SetVolume",slug:"setvolume"},{level:2,title:"SetShuffle",slug:"setshuffle"}],lastUpdated:"1/12/2020, 6:55:18 PM"},{title:"Profiles",frontmatter:{},regularPath:"/web/profiles.html",relativePath:"web/profiles.md",key:"v-86daa2ba",path:"/web/profiles.html",headers:[{level:2,title:"GetPrivateProfile",slug:"getprivateprofile"},{level:2,title:"GetPublicProfile",slug:"getpublicprofile"}],lastUpdated:"1/12/2020, 6:55:18 PM"},{title:"Proxy Settings",frontmatter:{sidebar:!1},regularPath:"/web/proxy.html",relativePath:"web/proxy.md",key:"v-700fa4e1",path:"/web/proxy.html",lastUpdated:"1/12/2020, 6:55:18 PM"},{title:"Search",frontmatter:{},regularPath:"/web/search.html",relativePath:"web/search.md",key:"v-fe729232",path:"/web/search.html",headers:[{level:2,title:"SearchItems",slug:"searchitems"},{level:2,title:"SearchItemsEscaped",slug:"searchitemsescaped"}],lastUpdated:"1/12/2020, 6:55:18 PM"},{title:"Tracks",frontmatter:{},regularPath:"/web/tracks.html",relativePath:"web/tracks.md",key:"v-2f539db2",path:"/web/tracks.html",headers:[{level:2,title:"GetSeveralTracks",slug:"getseveraltracks"},{level:2,title:"GetTrack",slug:"gettrack"},{level:2,title:"GetAudioAnalysis",slug:"getaudioanalysis"}],lastUpdated:"1/12/2020, 6:55:18 PM"},{title:"Utilities",frontmatter:{},regularPath:"/web/utils.html",relativePath:"web/utils.md",key:"v-1edba7fe",path:"/web/utils.html",headers:[{level:2,title:"Paging-Methods",slug:"paging-methods"}],lastUpdated:"1/12/2020, 6:55:18 PM"},{title:"Playlists",frontmatter:{},regularPath:"/web/playlists.html",relativePath:"web/playlists.md",key:"v-1e493801",path:"/web/playlists.html",headers:[{level:2,title:"GetUserPlaylists",slug:"getuserplaylists"},{level:2,title:"GetPlaylist",slug:"getplaylist"},{level:2,title:"GetPlaylistTracks",slug:"getplaylisttracks"},{level:2,title:"CreatePlaylist",slug:"createplaylist"},{level:2,title:"UpdatePlaylist",slug:"updateplaylist"},{level:2,title:"ReplacePlaylistTracks",slug:"replaceplaylisttracks"},{level:2,title:"RemovePlaylistTracks",slug:"removeplaylisttracks"},{level:2,title:"RemovePlaylistTrack",slug:"removeplaylisttrack"},{level:2,title:"AddPlaylistTracks",slug:"addplaylisttracks"},{level:2,title:"AddPlaylistTrack",slug:"addplaylisttrack"},{level:2,title:"ReorderPlaylist",slug:"reorderplaylist"}],lastUpdated:"1/12/2020, 6:55:18 PM"}],themeConfig:{repo:"JohnnyCrazy/SpotifyAPI-NET",repoLabel:"πŸš€ GitHub",docsDir:"SpotifyAPI.Docs/docs",editLinks:!0,editLinkText:"Help us improve this page!",sidebar:"auto",sidebarDepth:0,lastUpdated:"Last Updated",serviceWorker:{updatePopup:!0},nav:[{text:"Home",link:"/"},{text:"SpotifyAPI.Web",items:[{text:"Getting Started",link:"/web/getting_started"},{text:"Examples",link:"/web/examples"},{text:"Proxy",link:"/web/proxy"},{text:"- Albums",link:"/web/albums"},{text:"- Artists",link:"/web/artists"},{text:"- Browse",link:"/web/browse"},{text:"- Follow",link:"/web/follow"},{text:"- Library",link:"/web/library"},{text:"- Personalization",link:"/web/personalization"},{text:"- Player",link:"/web/player"},{text:"- Playlists",link:"/web/playlists"},{text:"- Profiles",link:"/web/profiles"},{text:"- Search",link:"/web/search"},{text:"- Tracks",link:"/web/tracks"},{text:"Utilities",link:"/web/utils"}]},{text:"SpotifyAPI.Auth",items:[{text:"Getting Started",link:"/auth/getting_started"},{text:"- ImplicitGrantAuth",link:"/auth/implicit_grant"},{text:"- TokenSwapAuth",link:"/auth/token_swap"},{text:"- AutorizationCodeAuth",link:"/auth/authorization_code"},{text:"- ClientCredentialsAuth",link:"/auth/client_credentials"}]}]}};n(5);No.component("Badge",()=>Promise.all([n.e(0),n.e(3)]).then(n.bind(null,207)));n(6);var es=[{},({Vue:t})=>{t.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},{}],ns=[];class rs{constructor(){this.store=new No({data:{state:{}}})}$get(t){return this.store.state[t]}$set(t,e){No.set(this.store.state,t,e)}$emit(...t){this.store.$emit(...t)}$on(...t){this.store.$on(...t)}}class os extends rs{}Object.assign(os.prototype,{getPageAsyncComponent:Ua,getLayoutAsyncComponent:Da,getAsyncComponent:Na,getVueComponent:Fa});var is={install(t){const e=new os;t.$vuepress=e,t.prototype.$vuepress=e}};function as(t,e){return t.options.routes.filter(t=>t.path.toLowerCase()===e.toLowerCase()).length>0}var ss={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(t){const e=this.pageKey||this.$parent.$page.key;return Ba("pageKey",e),No.component(e)||No.component(e,Ua(e)),No.component(e)?t(e):t("")}},ls={functional:!0,props:{slotKey:String,required:!0},render:(t,{props:e,slots:n})=>t("div",{class:[`content__${e.slotKey}`]},n()[e.slotKey])},us=(n(7),Object(Ya.a)({},function(t,e){var n=e._c;return n("svg",{staticClass:"icon outbound",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"}},[n("path",{attrs:{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}}),e._v(" "),n("polygon",{attrs:{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"}})])},[],!0,null,null,null).exports),cs={functional:!0,render(t,{parent:e,children:n}){if(e._isMounted)return n;e.$once("hook:mounted",()=>{e.$forceUpdate()})}};No.config.productionTip=!1,No.use(ka),No.use(is),No.mixin(function(t,e,n=No){!function(t){t.locales&&Object.keys(t.locales).forEach(e=>{t.locales[e].path=e});Object.freeze(t)}(e),n.$vuepress.$set("siteData",e);const r=new(t(n.$vuepress.$get("siteData"))),o=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),i={};return Object.keys(o).reduce((t,e)=>(e.startsWith("$")&&(t[e]=o[e].get),t),i),{computed:i}}(t=>(class{setPage(t){this.__page=t}get $site(){return t}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:t={}}=this.$site;let e,n;for(const r in t)"/"===r?n=t[r]:0===this.$page.path.indexOf(r)&&(e=t[r]);return e||n||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $title(){const t=this.$page,{metaTitle:e}=this.$page.frontmatter;if("string"==typeof e)return e;const n=this.$siteTitle,r=t.frontmatter.home?null:t.frontmatter.title||t.title;return n?r?r+" | "+n:n:r||"VuePress"}get $description(){const t=function(t){if(t){const e=t.filter(t=>"description"===t.name)[0];if(e)return e.content}}(this.$page.frontmatter.meta);return t||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}get $lang(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}get $localePath(){return this.$localeConfig.path||"/"}get $themeLocaleConfig(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}get $page(){return this.__page?this.__page:function(t,e){for(let n=0;nn||(t.hash?!No.$vuepress.$get("disableScrollBehavior")&&{selector:t.hash}:{x:0,y:0})});!function(t){t.beforeEach((e,n,r)=>{if(as(t,e.path))r();else if(/(\/|\.html)$/.test(e.path))if(/\/$/.test(e.path)){const n=e.path.replace(/\/$/,"")+".html";as(t,n)?r(n):r()}else r();else{const n=e.path+"/",o=e.path+".html";as(t,o)?r(o):as(t,n)?r(n):r()}})}(n);const r={};try{es.forEach(e=>{"function"==typeof e&&e({Vue:No,options:r,router:n,siteData:ts,isServer:t})})}catch(t){console.error(t)}return{app:new No(Object.assign(r,{router:n,render:t=>t("div",{attrs:{id:"app"}},[t("router-view",{ref:"layout"}),t("div",{class:"global-ui"},ns.map(e=>t(e)))])})),router:n}}(!1);window.__VUEPRESS__={version:"1.0.3",hash:"3de1d1d"},ps.onReady(()=>{fs.$mount("#app")})}]); \ No newline at end of file diff --git a/auth/authorization_code.html b/auth/authorization_code.html index 35f6caa5..622e2764 100644 --- a/auth/authorization_code.html +++ b/auth/authorization_code.html @@ -7,7 +7,7 @@ - + @@ -51,7 +51,7 @@ In this procedure, no HTTP Server is needed in the background and a single HTTP api.AccessToken = newToken.AccessToken api.TokenType = newToken.TokenType } -
- +
+ diff --git a/auth/client_credentials.html b/auth/client_credentials.html index a71ca469..8b96213f 100644 --- a/auth/client_credentials.html +++ b/auth/client_credentials.html @@ -7,7 +7,7 @@ - + @@ -24,7 +24,7 @@ If you want to use it securely, you would need to do it all server-side. TokenType = token.TokenType, AccessToken = token.AccessToken }; -
- +
+ diff --git a/auth/getting_started.html b/auth/getting_started.html index fc7268cf..621b9891 100644 --- a/auth/getting_started.html +++ b/auth/getting_started.html @@ -7,7 +7,7 @@ - + @@ -17,7 +17,7 @@ πŸš€ GitHub

Getting Started

Auth-Methods

Before you can use the Web API's full functionality, you need the user to authenticate your Application. If you want to know more, you can read to the whole auth-process here.

Before you start, install SpotifyAPI.Web.Auth and create an application at Spotify: Your Applications

After you have created your Application, you will have following important values:

Name Description
Client_Id This is your client_id, you don't have to hide it
Client_Secret Never use this in one of your client-side apps! Keep it secret!
Redirect URIs Some of auth flows require that you set the correct redirect URI

Now you can start with the user-authentication. Spotify provides 3 ways (4 if you consider different implementations):

Overview: -Overview

- +Overview

+ diff --git a/auth/implicit_grant.html b/auth/implicit_grant.html index 1fa8fe64..2a334dac 100644 --- a/auth/implicit_grant.html +++ b/auth/implicit_grant.html @@ -7,7 +7,7 @@ - + @@ -37,7 +37,7 @@ You won't be able to refresh the token. If you want to use the internal Http ser auth.Start(); // Starts an internal HTTP Server auth.OpenBrowser(); } -
- +
+ diff --git a/auth/token_swap.html b/auth/token_swap.html index 20cbfa80..5aea067b 100644 --- a/auth/token_swap.html +++ b/auth/token_swap.html @@ -7,7 +7,7 @@ - + @@ -67,7 +67,7 @@ auth.AuthReceived .OnAccessTokenExpired += async (sender, e) => spotify.AccessToken = (await auth.RefreshAuthAsync(lastToken.RefreshToken)).AccessToken; auth.Start(); auth.OpenBrowser(); -

Token Swap Endpoint

To keep your client secret completely secure and your client ID and redirect URI as secure as possible, use of a web server (such as a php website) is required.

To use this method, an external HTTP Server (that you may need to create) needs to be able to supply the following HTTP Endpoints to your application:

/swap - Swaps out an authorization_code with an access_token and refresh_token - The following parameters are required in the JSON POST Body:

  • grant_type (set to "authorization_code")
  • code (the authorization_code)
  • redirect_uri
    • Important The page that the redirect URI links to must return the authorization code json to your serverUri (default is 'http://localhost:4002') but to the folder 'auth', like this: 'http://localhost:4002/auth'.

/refresh - Refreshes an access_token - The following parameters are required in the JSON POST Body:

  • grant_type (set to "refresh_token")
  • refresh_token

The following open-source token swap endpoint code can be used for your website:

Remarks

It should be noted that GitHub Pages does not support hosting php scripts. Hosting php scripts through it will cause the php to render as plain HTML, potentially compromising your client secret while doing absolutely nothing.

Be sure you have whitelisted your redirect uri in the Spotify Developer Dashboard otherwise the authorization will always fail.

If you did not use the WebAPIFactory or you provided a serverUri different from its default, you must make sure your redirect uri's script at your endpoint will properly redirect to your serverUri (such as changing the areas which refer to localhost:4002 if you had changed serverUri from its default), otherwise it will never reach your new serverUri.

- +

Token Swap Endpoint

To keep your client secret completely secure and your client ID and redirect URI as secure as possible, use of a web server (such as a php website) is required.

To use this method, an external HTTP Server (that you may need to create) needs to be able to supply the following HTTP Endpoints to your application:

/swap - Swaps out an authorization_code with an access_token and refresh_token - The following parameters are required in the JSON POST Body:

  • grant_type (set to "authorization_code")
  • code (the authorization_code)
  • redirect_uri
    • Important The page that the redirect URI links to must return the authorization code json to your serverUri (default is 'http://localhost:4002') but to the folder 'auth', like this: 'http://localhost:4002/auth'.

/refresh - Refreshes an access_token - The following parameters are required in the JSON POST Body:

  • grant_type (set to "refresh_token")
  • refresh_token

The following open-source token swap endpoint code can be used for your website:

Remarks

It should be noted that GitHub Pages does not support hosting php scripts. Hosting php scripts through it will cause the php to render as plain HTML, potentially compromising your client secret while doing absolutely nothing.

Be sure you have whitelisted your redirect uri in the Spotify Developer Dashboard otherwise the authorization will always fail.

If you did not use the WebAPIFactory or you provided a serverUri different from its default, you must make sure your redirect uri's script at your endpoint will properly redirect to your serverUri (such as changing the areas which refer to localhost:4002 if you had changed serverUri from its default), otherwise it will never reach your new serverUri.

+ diff --git a/index.html b/index.html index e2911fc5..106c4be8 100644 --- a/index.html +++ b/index.html @@ -7,7 +7,7 @@ - + @@ -18,7 +18,7 @@

SpotifyAPI-NET Docs

About

This project, written in C#/.NET, provides 2 libraries for an easier usage of the Spotify Web API

Spotify's Web API (link)

Based on simple REST principles, our Web API endpoints return metadata in JSON format about artists, albums, and tracks directly from the Spotify catalogue. The API also provides access to user-related data such as playlists and music saved in a β€œYour Music” library, subject to user’s authorization.

SpotifyAPI.Web

A wrapper around Spotify's Web API, providing sync and async methods to query all possible endpoints. Results are returned as typed class instances, allowing property-based access.

SpotifyAPI.Web.Auth

A library providing C# implementations of the 3 supported Authentication modes, including ImplicitGrantAuth, AuthorizationCodeAuth and CredentialsAuth


Installing

  • Via NuGet Package:
Install-Package SpotifyAPI.Web
 Install-Package SpotifyAPI.Web.Auth
-
  • Download the latest binaries on the GitHub Release Page and add it to your Project
  • Clone the Repo and build the project yourself.

Getting Started

Projects

audio-band by @dsafa

Display and control songs from the Windows taskbar

rocksmith-custom-song-toolkit by @catara

MASS Manipulation of Rocksmith DLC Library

Spofy by @eltoncezar

A Spotify mini player and notifier for Windows

Toastify by @aleab

Toastify adds global hotkeys and toast notifications to Spotify

Forked from nachmore/toastify

Spotify Oculus by @CaptainMorgs

Unity project for interacting with Spotify in virtual reality for the Oculus Rift.

- +
  • Download the latest binaries on the GitHub Release Page and add it to your Project
  • Clone the Repo and build the project yourself.

Getting Started

Projects

lidarr by @lidarr

Looks and smells like Sonarr but made for music.

botframework-solutions by @microsoft

home for a set of templates and solutions to help build advanced conversational experiences using Azure Bot Service and Bot Framework

Spytify by @jwallet

Records Spotify to mp3 without ads while it plays and includes media tags to the recorded files

audio-band by @dsafa

Display and control songs from the Windows taskbar

rocksmith-custom-song-toolkit by @catara

MASS Manipulation of Rocksmith DLC Library

Spofy by @eltoncezar

A Spotify mini player and notifier for Windows

Toastify by @aleab

Toastify adds global hotkeys and toast notifications to Spotify

Forked from nachmore/toastify

Spotify Oculus by @CaptainMorgs

Unity project for interacting with Spotify in virtual reality for the Oculus Rift.

Songify by @Inzaniity

A simple tool that gets the current track from Spotify, YouTube and Nightbot.

Elite G19s Companion app by @MagicMau

Main features include: system and station overview, play radio and podcast with audio visualizations, simulated Space Traffic Control, GPS functionality (including planetary races), an orrery view, a screenshot converter, and a news ticker.

ARDUINO-Spotify-Remote-Control by @NADER11NDEU

Well, with this project we will be able to control active spotify devices with Arduino. How we gonna do that ? We will use serial communication.

+ diff --git a/web/albums.html b/web/albums.html index 0ec2b3fa..7f48d42a 100644 --- a/web/albums.html +++ b/web/albums.html @@ -7,7 +7,7 @@ - + @@ -22,7 +22,7 @@ Console.Writ Console.WriteLine(album.Name + "| Popularity: " + album.Popularity); //Display name and Popularity

GetSeveralAlbums

Get Spotify catalog information for multiple albums identified by their Spotify IDs.

Parameters

Name Description Example
ids A list of the Spotify IDs for the albums. Maximum: 20 IDs. new List<String>() { "5O7V8l4SeXTymVp3IesT9C" }
[market] An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. "DE"

Returns a SeveralAlbums which Property "Albums" contains a list of FullAlbum

Usage

SeveralAlbums albums = _spotify.GetSeveralAlbums(new List<String>() { "5O7V8l4SeXTymVp3IesT9C" });
 Console.WriteLine(albums.Albums[0].Name);
-

- +
+ diff --git a/web/artists.html b/web/artists.html index de99ed19..23f2e079 100644 --- a/web/artists.html +++ b/web/artists.html @@ -7,7 +7,7 @@ - + @@ -25,7 +25,7 @@ Console.Writ albums.Items.ForEach(album => Console.WriteLine(album.Name));

GetSeveralArtists

Get Spotify catalog information for several artists based on their Spotify IDs.

Parameters

Name Description Example
ids A list of the Spotify IDs for the artists. Maximum: 50 IDs. new List<String>() { "1KpCi9BOfviCVhmpI4G2sY" }

Returns a SeveralArtists object which contains the property List<FullArtist> Artists (FullArtist)

Usage

SeveralArtists artists = _spotify.GetSeveralArtists(new List<String>() {"1KpCi9BOfviCVhmpI4G2sY"});
 artists.Artists.ForEach(artist => Console.WriteLine(artist.Name));
-

- +
+ diff --git a/web/browse.html b/web/browse.html index de298c3d..080557a1 100644 --- a/web/browse.html +++ b/web/browse.html @@ -7,7 +7,7 @@ - + @@ -26,7 +26,7 @@ categoryList.Categories.WriteLine(cat.Name);

GetCategoryPlaylists

Get a list of Spotify playlists tagged with a particular category.

Parameters

Name Description Example
categoryId The Spotify category ID for the category. "party"
[country] A country: an ISO 3166-1 alpha-2 country code. "DE"
[limit] The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. 20
[offset] The index of the first item to return. Default: 0 0

Returns a CategoryPlaylist object, which has the property Paging<SimplePlaylist> Playlists

Usage

CategoryPlaylist playlists = _spotify.GetCategoryPlaylists("party");
 playlists.Playlists.Items.ForEach(playlist => Console.WriteLine(playlist.Name));
-

- +
+ diff --git a/web/examples.html b/web/examples.html index 275d76f4..009af514 100644 --- a/web/examples.html +++ b/web/examples.html @@ -7,7 +7,7 @@ - + @@ -15,7 +15,7 @@ πŸš€ GitHub

Examples

This page is currently empty. Do you have useful examples? Please open a PR

- +

Examples

This page is currently empty. Do you have useful examples? Please open a PR

+ diff --git a/web/follow.html b/web/follow.html index 378ae8bd..b0fcf303 100644 --- a/web/follow.html +++ b/web/follow.html @@ -7,7 +7,7 @@ - + @@ -33,7 +33,7 @@ Console.Writ

IsFollowingPlaylist

Check to see if one or more Spotify users are following a specified playlist.

Parameters

Name Description Example
ownerId The Spotify user ID of the person who owns the playlist. "maxloermans"
playlistId The Spotify ID of the playlist. "3SIp2VAsKI03mReF0dFBmI"
ids or id A list of the artist or the user Spotify IDs or just a Spotify ID new List<String> { "1KpCi9BOfviCVhmpI4G2sY" } or "1KpCi9BOfviCVhmpI4G2sY"

Returns a ListResponse<Boolean> which contains the property List<Boolean> List

Usage

//Am I following the playlist?
 ListResponse<Boolean> response = _spotify.IsFollowing("maxloermans", "3SIp2VAsKI03mReF0dFBmI", "1122095781");
 Console.WriteLine(response.List[0] ? "Yis!" : "No :(");
-

- +
+ diff --git a/web/getting_started.html b/web/getting_started.html index 059580bf..be67b3aa 100644 --- a/web/getting_started.html +++ b/web/getting_started.html @@ -7,7 +7,7 @@ - + @@ -50,7 +50,7 @@ _spotify = newvar asyncProfile = await _spotify.GetPrivateProfileAsync(); var syncProfile = _spotify.GetPrivateProfile(); } -

Note that the synchronous call will block the current Thread!


API-Reference

Albums

Artists

Browse

Follow

Library

Personalization

Player

Playlists

Profiles

Tracks

Util

- +

Note that the synchronous call will block the current Thread!


API-Reference

Albums

Artists

Browse

Follow

Library

Personalization

Player

Playlists

Profiles

Tracks

Util

+ diff --git a/web/library.html b/web/library.html index 4643abad..522bb815 100644 --- a/web/library.html +++ b/web/library.html @@ -7,7 +7,7 @@ - + @@ -43,7 +43,7 @@ savedAlbums.Items CheckSavedAlbums

Check if one or more albums is already saved in the current Spotify user’s β€œYour Music” library.

Parameters

Name Description Example
ids A list of the Spotify IDs. new List<String> { "1cq06d0kTUnFmJHixz1RaF" }

Returns a ListResponse<bool> which contains a property, List<bool> List

Usage

ListResponse<bool> albumsSaved = _spotify.CheckSavedAlbums(new List<String> { "1cq06d0kTUnFmJHixz1RaF" });
 if(albumsSaved.List[0])
     Console.WriteLine("The album is in your library!");
-

- +
+ diff --git a/web/personalization.html b/web/personalization.html index e0a81f91..1c4aab86 100644 --- a/web/personalization.html +++ b/web/personalization.html @@ -7,7 +7,7 @@ - + @@ -22,7 +22,7 @@ Console.WriteLine(tracks.Total.ToString()) //Display total album track count artists.Items.ForEach(item => Console.WriteLine(item.Name)); //Display all fetched Artist-Names (max 20)

GetUsersRecentlyPlayedTracks

Get tracks from the current user’s recent play history.

Parameters

Name Description Example
[limit] The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. 20
[after] Returns all items after (but not including) this cursor position. DateTime.Now.AddDays(-1)
[before] Returns all items before (but not including) this cursor position. DateTime.Now.AddDays(-1)

Returns a PlayHistory wrapped inside a CursorPaging-object

Usage

CursorPaging<PlayHistory> histories = _spotify.GetUsersRecentlyPlayedTracks();
 histories.Items.ForEach(item => Console.WriteLine(item.Track.Name));
-

- +
+ diff --git a/web/player.html b/web/player.html index b902d390..2b995271 100644 --- a/web/player.html +++ b/web/player.html @@ -7,7 +7,7 @@ - + @@ -34,7 +34,7 @@ Returning to the start of the current track should be performed using the https:

SetRepeatMode

Set the repeat mode for the user’s playback. Options are repeat-track, repeat-context, and off.

Parameters

Name Description Example
state track, context or off. RepeatState.Track
[deviceId] The id of the device this command is targeting. If not supplied, the user's currently active device is the target. "XXXX-XXXX-XXXX-XXXX"

Usage

ErrorResponse error = _spotify.SetRepeatMode(RepeatState.Track);
 

SetVolume

Set the volume for the user’s current playback device.

Parameters

Name Description Example
volumePercent Integer. The volume to set. Must be a value from 0 to 100 inclusive. 50
[deviceId] The id of the device this command is targeting. If not supplied, the user's currently active device is the target. "XXXX-XXXX-XXXX-XXXX"

Usage

ErrorResponse error = _spotify.SetVolume(50);
 

SetShuffle

Toggle shuffle on or off for user’s playback.

Parameters

Name Description Example
shuffle True or False false
[deviceId] The id of the device this command is targeting. If not supplied, the user's currently active device is the target. "XXXX-XXXX-XXXX-XXXX"

Usage

ErrorResponse error = _spotify.SetShuffle(false);
-
- +
+ diff --git a/web/playlists.html b/web/playlists.html index dcbdc7ef..2f0a878b 100644 --- a/web/playlists.html +++ b/web/playlists.html @@ -7,7 +7,7 @@ - + @@ -55,7 +55,7 @@ playlist.Items ReorderPlaylist

Reorder a track or a group of tracks in a playlist. More Info: Reorder-Playlist

Parameters

Name Description Example
userId The user's Spotify user ID. "1122095781"
playlistId The Spotify ID for the playlist. "1TtEejT1y4D1WmcOnLfha2"
rangeStart The position of the first track to be reordered. 2
insertBefore The position where the tracks should be inserted. 0
[rangeLength] The amount of tracks to be reordered. Defaults to 1 if not set. 2
[snapshotId] The playlist's snapshot ID against which you want to make the changes. ``

Returns a Snapshot-Object which contains the property String SnapshotId

Usage

Snapshot snapshot = _spotify.ReorderPlaylist("1122095781", "1TtEejT1y4D1WmcOnLfha2", 2, 0, 2);
 Console.WriteLine("New SnapshotId: " + snapshot.SnapshotId);
-

- +
+ diff --git a/web/profiles.html b/web/profiles.html index fe7fadbe..338ba3e4 100644 --- a/web/profiles.html +++ b/web/profiles.html @@ -7,7 +7,7 @@ - + @@ -17,7 +17,7 @@ πŸš€ GitHub

Profiles

GetPrivateProfile

Get detailed profile information about the current user (including the current user’s username).

Parameters

Name Description Example

Returns a PrivateProfile

Usage

PrivateUser user = _spotify.GetPrivateProfile();
 Console.WriteLine(user.DisplayName);
-

GetPublicProfile

Get public profile information about a Spotify user.

Parameters

Name Description Example
userId The user's Spotify user ID. EXAMPLE

Returns a PublicProfile

Usage


- +

GetPublicProfile

Get public profile information about a Spotify user.

Parameters

Name Description Example
userId The user's Spotify user ID. EXAMPLE

Returns a PublicProfile

Usage


+ diff --git a/web/proxy.html b/web/proxy.html index 3ae57270..a24d1aa1 100644 --- a/web/proxy.html +++ b/web/proxy.html @@ -7,7 +7,7 @@ - + @@ -23,7 +23,7 @@ }; SpotifyWebAPI api = new SpotifyWebAPI(proxyConfig); -
- +
+ diff --git a/web/search.html b/web/search.html index 0913e381..798e298d 100644 --- a/web/search.html +++ b/web/search.html @@ -7,7 +7,7 @@ - + @@ -17,7 +17,7 @@ πŸš€ GitHub

Search

SearchItems

Get Spotify catalog information about artists, albums, tracks or playlists that match a keyword string.

You may want to use SearchItemsEscaped if you're processing user-input without validation

Parameters

Name Description Example
q The search query's keywords (and optional field filters and operators), for example q=roadhouse+blues. "roadhouse+blues"
type A list of item types to search across. SearchType.Album
[limit] The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. 20
[offset] The index of the first result to return. Default: 0 0
[market] An ISO 3166-1 alpha-2 country code or the string from_token. "de"

Returns a SearchItem which contains the properties Paging<FullArtist> Artists,Paging<FullTrack> Tracks, Paging<SimpleAlbum> Albums, Paging<SimplePlaylist> Playlists. They are filled based on your search-type.

Usage

SearchItem item = _spotify.SearchItems("roadhouse+blues", SearchType.Album | SearchType.Playlist);
 Console.WriteLine(item.Albums.Total); //How many results are there in total? NOTE: item.Tracks = item.Artists = null
-

SearchItemsEscaped

Get Spotify catalog information about artists, albums, tracks or playlists that match a keyword string.

Works like SearchItems, but URL escapes all characters

- +

SearchItemsEscaped

Get Spotify catalog information about artists, albums, tracks or playlists that match a keyword string.

Works like SearchItems, but URL escapes all characters

+ diff --git a/web/tracks.html b/web/tracks.html index 321531dc..bfa86d97 100644 --- a/web/tracks.html +++ b/web/tracks.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ severalTracks.Tracks.WriteLine(track.Name);

GetAudioAnalysis

Get a detailed audio analysis for a single track identified by its unique Spotify ID.

Parameters

Name Description Example
id The Spotify ID for the track. "6Y1CLPwYe7zvI8PJiWVz6T"

Returns a AudioAnalysis. This object is currently lacking Spotify documentation but archived EchoNest documentation is relevant.

Usage

AudioAnalysis analysis = _spotify.GetAudioAnalysis("6Y1CLPwYe7zvI8PJiWVz6T");
 Console.WriteLine(analysis.Meta.DetailedStatus);
-
- +
+ diff --git a/web/utils.html b/web/utils.html index b969b761..c1ab15c9 100644 --- a/web/utils.html +++ b/web/utils.html @@ -7,7 +7,7 @@ - + @@ -24,7 +24,7 @@ Both are an easy way to receive the next/previous page of a Paging-Object.

< break; playlistTracks = _spotify.GetNextPage(playlistTracks); } -
- +
+