From 770528a7e74375ee526ac35968dfd34456d42443 Mon Sep 17 00:00:00 2001 From: zkhcohen Date: Mon, 3 Jun 2019 17:34:20 -0400 Subject: [PATCH] First. --- .gitignore | 351 ++ CHANGELOG.txt | 4 + PluginPanel.png | Bin 0 -> 13340 bytes Plugins/Newtonsoft.Json.dll | Bin 0 -> 675240 bytes Plugins/SpotifyAPI.Web.Auth.dll | Bin 0 -> 252928 bytes Plugins/SpotifyAPI.Web.dll | Bin 0 -> 135168 bytes Plugins/Unosquare.Labs.EmbedIO.dll | Bin 0 -> 252416 bytes Plugins/Unosquare.Swan.Lite.dll | Bin 0 -> 164864 bytes Plugins/mb_Spotify-Plugin.dll | Bin 0 -> 55808 bytes README.txt | 16 + Source Files/MusicBeeInterface.cs | 825 +++++ Source Files/PanelInterface.cs | 362 ++ Source Files/Properties/AssemblyInfo.cs | 36 + Source Files/SpotifyAPI.Web.Auth/AuthUtil.cs | 69 + .../AuthorizationCodeAuth.cs | 134 + .../SpotifyAPI.Web.Auth/CredentialsAuth.cs | 42 + .../SpotifyAPI.Web.Auth/ImplicitGrantAuth.cs | 65 + .../AuthorizationCodeAuth/css/bulma.min.css | 1 + .../AuthorizationCodeAuth/images/1.png | Bin 0 -> 38997 bytes .../AuthorizationCodeAuth/images/2.png | Bin 0 -> 16049 bytes .../AuthorizationCodeAuth/start.html | 77 + .../Resources/ImplicitGrantAuth/index.html | 45 + .../SpotifyAPI.Web.Auth.csproj | 51 + .../SpotifyAPI.Web.Auth.nuspec | 31 + .../SpotifyAPI.Web.Auth/SpotifyAuthServer.cs | 101 + .../SpotifyAPI.Web.Auth/TokenSwapAuth.cs | 217 ++ .../TokenSwapWebAPIFactory.cs | 282 ++ .../SpotifyAPI.Web/Enums/AlbumType.cs | 23 + .../SpotifyAPI.Web/Enums/FollowType.cs | 14 + .../SpotifyAPI.Web/Enums/RepeatState.cs | 17 + Source Files/SpotifyAPI.Web/Enums/Scope.cs | 68 + .../SpotifyAPI.Web/Enums/SearchType.cs | 23 + .../SpotifyAPI.Web/Enums/TimeRangeType.cs | 20 + .../SpotifyAPI.Web/Enums/TrackType.cs | 20 + Source Files/SpotifyAPI.Web/IClient.cs | 125 + .../SpotifyAPI.Web/Models/AnalysisMeta.cs | 28 + .../SpotifyAPI.Web/Models/AnalysisSection.cs | 43 + .../SpotifyAPI.Web/Models/AnalysisSegment.cs | 35 + .../Models/AnalysisTimeSlice.cs | 16 + .../SpotifyAPI.Web/Models/AnalysisTrack.cs | 86 + .../SpotifyAPI.Web/Models/ArrayResponse.cs | 9 + .../SpotifyAPI.Web/Models/AudioAnalysis.cs | 29 + .../SpotifyAPI.Web/Models/AudioFeatures.cs | 61 + .../SpotifyAPI.Web/Models/AvailabeDevices.cs | 11 + .../SpotifyAPI.Web/Models/BasicModel.cs | 23 + .../SpotifyAPI.Web/Models/Category.cs | 20 + .../SpotifyAPI.Web/Models/CategoryList.cs | 10 + .../SpotifyAPI.Web/Models/CategoryPlaylist.cs | 10 + .../SpotifyAPI.Web/Models/CursorPaging.cs | 26 + Source Files/SpotifyAPI.Web/Models/Device.cs | 25 + .../Models/FeaturedPlaylists.cs | 13 + .../SpotifyAPI.Web/Models/FollowedArtists.cs | 10 + .../SpotifyAPI.Web/Models/FullAlbum.cs | 65 + .../SpotifyAPI.Web/Models/FullArtist.cs | 38 + .../SpotifyAPI.Web/Models/FullPlaylist.cs | 50 + .../SpotifyAPI.Web/Models/FullTrack.cs | 71 + .../SpotifyAPI.Web/Models/GeneralModels.cs | 159 + .../SpotifyAPI.Web/Models/NewAlbumReleases.cs | 10 + Source Files/SpotifyAPI.Web/Models/Paging.cs | 39 + .../SpotifyAPI.Web/Models/PlayHistory.cs | 17 + .../SpotifyAPI.Web/Models/PlaybackContext.cs | 38 + .../SpotifyAPI.Web/Models/PrivateProfile.cs | 44 + .../SpotifyAPI.Web/Models/PublicProfile.cs | 32 + .../Models/RecommendationSeed .cs | 25 + .../Models/RecommendationSeedGenres.cs | 11 + .../SpotifyAPI.Web/Models/Recommendations.cs | 14 + .../SpotifyAPI.Web/Models/ResponseInfo.cs | 13 + .../SpotifyAPI.Web/Models/SearchItem.cs | 19 + .../SpotifyAPI.Web/Models/SeveralAlbums.cs | 11 + .../SpotifyAPI.Web/Models/SeveralArtists.cs | 11 + .../Models/SeveralAudioFeatures.cs | 11 + .../SpotifyAPI.Web/Models/SeveralTracks.cs | 11 + .../SpotifyAPI.Web/Models/SimpleAlbum.cs | 50 + .../SpotifyAPI.Web/Models/SimpleArtist.cs | 26 + .../SpotifyAPI.Web/Models/SimplePlaylist.cs | 44 + .../SpotifyAPI.Web/Models/SimpleTrack.cs | 50 + .../SpotifyAPI.Web/Models/Snapshot.cs | 10 + Source Files/SpotifyAPI.Web/Models/Token.cs | 47 + .../SpotifyAPI.Web/Models/TuneableTrack.cs | 69 + Source Files/SpotifyAPI.Web/ProxyConfig.cs | 77 + .../SpotifyAPI.Web/SpotifyAPI.Web.csproj | 30 + .../SpotifyAPI.Web/SpotifyAPI.Web.nuspec | 30 + Source Files/SpotifyAPI.Web/SpotifyWebAPI.cs | 2958 +++++++++++++++++ .../SpotifyAPI.Web/SpotifyWebBuilder.cs | 1129 +++++++ .../SpotifyAPI.Web/SpotifyWebClient.cs | 223 ++ Source Files/SpotifyAPI.Web/Util.cs | 41 + Source Files/SpotifyIntegration.cs | 244 ++ Source Files/mb_Spotify-Plugin.csproj | 64 + Source Files/mb_Spotify-Plugin.sln | 39 + 89 files changed, 9294 insertions(+) create mode 100644 .gitignore create mode 100644 CHANGELOG.txt create mode 100644 PluginPanel.png create mode 100644 Plugins/Newtonsoft.Json.dll create mode 100644 Plugins/SpotifyAPI.Web.Auth.dll create mode 100644 Plugins/SpotifyAPI.Web.dll create mode 100644 Plugins/Unosquare.Labs.EmbedIO.dll create mode 100644 Plugins/Unosquare.Swan.Lite.dll create mode 100644 Plugins/mb_Spotify-Plugin.dll create mode 100644 README.txt create mode 100644 Source Files/MusicBeeInterface.cs create mode 100644 Source Files/PanelInterface.cs create mode 100644 Source Files/Properties/AssemblyInfo.cs create mode 100644 Source Files/SpotifyAPI.Web.Auth/AuthUtil.cs create mode 100644 Source Files/SpotifyAPI.Web.Auth/AuthorizationCodeAuth.cs create mode 100644 Source Files/SpotifyAPI.Web.Auth/CredentialsAuth.cs create mode 100644 Source Files/SpotifyAPI.Web.Auth/ImplicitGrantAuth.cs create mode 100644 Source Files/SpotifyAPI.Web.Auth/Resources/AuthorizationCodeAuth/css/bulma.min.css create mode 100644 Source Files/SpotifyAPI.Web.Auth/Resources/AuthorizationCodeAuth/images/1.png create mode 100644 Source Files/SpotifyAPI.Web.Auth/Resources/AuthorizationCodeAuth/images/2.png create mode 100644 Source Files/SpotifyAPI.Web.Auth/Resources/AuthorizationCodeAuth/start.html create mode 100644 Source Files/SpotifyAPI.Web.Auth/Resources/ImplicitGrantAuth/index.html create mode 100644 Source Files/SpotifyAPI.Web.Auth/SpotifyAPI.Web.Auth.csproj create mode 100644 Source Files/SpotifyAPI.Web.Auth/SpotifyAPI.Web.Auth.nuspec create mode 100644 Source Files/SpotifyAPI.Web.Auth/SpotifyAuthServer.cs create mode 100644 Source Files/SpotifyAPI.Web.Auth/TokenSwapAuth.cs create mode 100644 Source Files/SpotifyAPI.Web.Auth/TokenSwapWebAPIFactory.cs create mode 100644 Source Files/SpotifyAPI.Web/Enums/AlbumType.cs create mode 100644 Source Files/SpotifyAPI.Web/Enums/FollowType.cs create mode 100644 Source Files/SpotifyAPI.Web/Enums/RepeatState.cs create mode 100644 Source Files/SpotifyAPI.Web/Enums/Scope.cs create mode 100644 Source Files/SpotifyAPI.Web/Enums/SearchType.cs create mode 100644 Source Files/SpotifyAPI.Web/Enums/TimeRangeType.cs create mode 100644 Source Files/SpotifyAPI.Web/Enums/TrackType.cs create mode 100644 Source Files/SpotifyAPI.Web/IClient.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/AnalysisMeta.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/AnalysisSection.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/AnalysisSegment.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/AnalysisTimeSlice.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/AnalysisTrack.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/ArrayResponse.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/AudioAnalysis.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/AudioFeatures.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/AvailabeDevices.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/BasicModel.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/Category.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/CategoryList.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/CategoryPlaylist.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/CursorPaging.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/Device.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/FeaturedPlaylists.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/FollowedArtists.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/FullAlbum.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/FullArtist.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/FullPlaylist.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/FullTrack.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/GeneralModels.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/NewAlbumReleases.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/Paging.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/PlayHistory.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/PlaybackContext.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/PrivateProfile.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/PublicProfile.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/RecommendationSeed .cs create mode 100644 Source Files/SpotifyAPI.Web/Models/RecommendationSeedGenres.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/Recommendations.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/ResponseInfo.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/SearchItem.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/SeveralAlbums.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/SeveralArtists.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/SeveralAudioFeatures.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/SeveralTracks.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/SimpleAlbum.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/SimpleArtist.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/SimplePlaylist.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/SimpleTrack.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/Snapshot.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/Token.cs create mode 100644 Source Files/SpotifyAPI.Web/Models/TuneableTrack.cs create mode 100644 Source Files/SpotifyAPI.Web/ProxyConfig.cs create mode 100644 Source Files/SpotifyAPI.Web/SpotifyAPI.Web.csproj create mode 100644 Source Files/SpotifyAPI.Web/SpotifyAPI.Web.nuspec create mode 100644 Source Files/SpotifyAPI.Web/SpotifyWebAPI.cs create mode 100644 Source Files/SpotifyAPI.Web/SpotifyWebBuilder.cs create mode 100644 Source Files/SpotifyAPI.Web/SpotifyWebClient.cs create mode 100644 Source Files/SpotifyAPI.Web/Util.cs create mode 100644 Source Files/SpotifyIntegration.cs create mode 100644 Source Files/mb_Spotify-Plugin.csproj create mode 100644 Source Files/mb_Spotify-Plugin.sln diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8debf01 --- /dev/null +++ b/.gitignore @@ -0,0 +1,351 @@ + +# Created by https://www.gitignore.io/api/visualstudio +# Edit at https://www.gitignore.io/?templates=visualstudio + +### VisualStudio ### +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- Backup*.rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# End of https://www.gitignore.io/api/visualstudio \ No newline at end of file diff --git a/CHANGELOG.txt b/CHANGELOG.txt new file mode 100644 index 0000000..df7a88f --- /dev/null +++ b/CHANGELOG.txt @@ -0,0 +1,4 @@ +CHANGE LOG: + +Beta 2.0: Improved performance. Removed 500 album restriction. Added automatic prompt to re-authenticate if computer resumes from sleep. +Beta 2.0.2: Fixed error log spam. \ No newline at end of file diff --git a/PluginPanel.png b/PluginPanel.png new file mode 100644 index 0000000000000000000000000000000000000000..77942e80c5634ab70997c9a5746b44b487337ce7 GIT binary patch literal 13340 zcmb7rWmMfylP2yKEV#SF#oZ;rodCfu7k9Uy!JQx%mjrircPd(XRF&n>QHW5WprFtd|)?E_GQ1YIDVP#ndxr0yp9V`Tm zqZj3}Z^0{?1S#H1|8{h4mI1_P13)qRyC?X%qryN3MnDWfp`$FRZ%0EpG9dWp z6dt}Rd=k1AGSmblHo~;w$YjDkT(~Q9Y>-!gTAVR(9=qhpqFJo1{5?sieXqBa2tdruGZkkdOX^9Z&IV7fWKKq5VSD9 z%mqVpcShY9aoT^$bqF1+Gf&3D2f=V8c&)-Xd8Ur$RCSPWu>h)mVE_l7Sj&CfFH(#7L3>1tuPq|$Oe$Q77;T!T1?=?A?F zHTiJ$qWC`7q>ef(emNJ2RS(sp1oZsrmfm$k4Y?{X026*4^o^Z#YNn1_G!vLeX9m|MFgc5#%gntM=mD;eGV)5Ct)q|0MP8)6q${LIzoMrHm#EzPIQ|n+(lT29O z0Ymi$w9LJpS5nN*X2Qr52^#i!@xP3LdR7I_K=45ZX~V+!F&H1YJ4Vl2#4=WGZ~`mR z!>oU&^y!^sLm1Y7uP(%r;L{?r*m46w5-3Lh64Xx-SB0XhrMd+PR|YX4m;a)@w2*R? z6b+L39&wEQgU}{ebu_fR1p-8VeZVqM<47wEn|113c z-=SN;WhN0Qu1fR|W)rFZ0XxY*P~S#+2Rg0XKQI^g2jn9k{(*SxKLB_Be>8;$-X73@ zoE%4Yf{bUi-H#NpG+Byv$VWpAL(+Xc$$XtLY!-SZAZ_eXyu}9i9E!Z<583EFJ2GFv zgrbhI59>ua9CyNZ$T1(w(guG1Nr5&vj!@tMy_|uK9G|23-&Lw=4IfA5GJspYf~Yf0?_t=6(TphvtuHamJhD|><{VDP zcT&MKI_WzH9oiCe+R?TsM^$o|C+2}JA1g2jTVydI0!gq!V}henCvES2EvOq$SsGZM zv#Q205{FJFr&)9>@8xe~tOH_$eCI1e+sC>|zzd&=?WUifLoF4C*-TZvye+v$D#S!W zt$u_c8M}AW0ZjYd6uGIIGZ`IG;VOAn*^R$RaCVHIB8IYqCD)xFf*vx%yuiO`QK!l6 zbnnFPckLz)Wv7Bi1CJ=zs0Pf^1n>o@Cn}xw;JvAuqZt?g7^fJd9oM{K93%*ZNU&cB zYDJzgmDa^h-Q)I1=YsCUP+Y@i&8$GkMMt}|Z@C<&Gg8{|M~OomF0B)^{7<8)Zny8_ z;vxrs@a(F72n1h5Krj6=eC{86g9viaf6&>?f&|*&uMq+U9RZv04nwEQvaz2r^&~1O z<4m007z|+6YN^MjaC*$6n;^~|;p+#80y`}RofID@_WYF%>U8rr!dX5!)^WZ`?9`9a zZZD3CDHf#iQcnnXO6aS=r2-y60QZp%L1KMhGw@(#d*4(vLpgDUKE=cLF~Krsr4qf4v!o^g*Xal1^)HrqDjd8`WotXy;B9@T;jtArnY&QHm1a1@bGW z7i+f!;2_U6<3qNUvakuwy>Gk`$mM>5VDC5=AyLyBOlkTB+t;3fqAu!QxaHujm@83o zdF?MWJCZLHDL6UGK7*z085g@vn(mr*@z$d=PDZJY+a(5(17G zm4~_5S`O&D8Ye*J5aZLb?)#cxLX+=@R4qtB2I{t+s{ni_#zRU858|SJdS4OBESUh`ix|^@S6A6umiO0J-u3ja0Y!FN9~ZI{ACJ zAM62(lB2`F8YU1Tr`x9=y=p6H1_+$Q&s}h4Z4=ia*CZFnghAxB%B4*ImYV!no~<4= zrOPpPEe!vcE$_QM%mp^h=7o&-?ojNluxl?%7GrO2dR9cLJ;Ev#t;BkuVglFppB~!H z>9COSk^iS2ZaV?IB_QSNX@#U=i`oD2`!qJDsN8@U&VZPi3{fx8M?aRnu3YZp-b#(H zuXC)32Ds{OEbNK~Yq{0ReeGtOC#RZbY7VlDme~s{DliSD#lFSOcbgG86iAG~ zxAMIJBG?gx3j1`GnKm;BbWwd4 zg4Om)Ikx;$fwDL3{Soamw9fw}?V@o_qNcl|^ zU3t3`N(o^n>S<9RfqS=iQV}dSxXu!R)0hB?g}6UpjFwKEjvUWZRUEVpm*l}x!Q7o= z%VO5WO9N7Imu0Ms2nTPp7b3)_Uz4iJq5BX5c5QK)&z*t_;_EQ_#x%1R`A2lG2tRx9 zImGmDv3OpioF4|1DFF8C_YyYD4dPQbZ$X|DEjD(Bbayu0hO$9N0~EZ5YzbNmR)Z9C z2KIfcq+^st$YC$byIAZR6UrG43g4HFxSdk?IR128uK2)jpFoYTM|$#_(ajS(b7yEM zt$%XjD%hJA&YK;%X-0^R+6df5zVmR{S`4fbw9jz+MG-6yxC``SqFO01ktDPAxrGRt@S;*o z2+xt_WzOlx=}b>r0=bNoVz?Tv=o;s$G>-@Lh1?^EVMdATzb~eX9(+ry6ca}0 z<>7*M3gRK*nyz~2dGs136w*qXRy4|@cnW`L;6*o7X@CDhgGRxX3rt|Smj;hG>(U;o zZwD|1hpcNLf*GAv;o+Hb`NSBM23&`Kab1;RlN7VX6Oz=bq^en^qp?0xKyjgtsv|uf zUp@Fy@V*n@OAT>Qo~kfzEPX!MlYtC*5GF6}-9||@9$bw+tXOLkq$FyRY3d7On#!<( z9(fibrI3OPM;5|}BFP$QiWH^wyo{%qR=OBHjb%?lt)_NeA84R#5?z!&{m9=97T zB^_CUpZX zQxxf)pM`^Xv`k}!N}or$h$FW!su!tj0*N22`L zO%*qGmPTNoGmT7Ff8o?qDE{K0VQ8eWqUy8dDCeHrkk`@bTivvExI!G}BP9DI#9NiY z?|3t7qip13YQI)_LR>f)<}Fm4VL``NnNwT=spr#lZ<@VnoN;UV>uO%6e>7$@ic^zI z4u^mk&idh;-j%;Tyfg%tF@M-eH7mbglNRUqpKq*rrG#B6+IYO!fyNK-oZ(PY$*r_j zI7LBLoztL?)--{JZJg>lJdD~2sh@fTh&$_b4-Wig%mTmR%Ayyz0rV2q0xQmGYHH2! z{+;=I| z2#tIsU!GhnPd9x5S5BN%qsxT_(2A}&sj}vs}v=NGUDeLQz7#wIBYjoQVcC= zNxVFYawgc)d}frEs&GWeXNh)HDtJxgv!HldDu`i8E*YxjMJ~DMMtE;t8Arx|$>^U3 z2HfD@NVF@0a^kIOQ_USXWcm#a79#jmsPFhO-ZWd72!77pMctdf&yw7bVXotY6Y~{B zXTt7&2PdKtp?-EI0m^E}F^H*Vl?SZ4>J8duz(}emN{Eo60b!uqKUB$kdL%5np_Nq^ zz>YJhbrDT%hZly3`+UR8H{o~Xk=8^M;+BtonE6>r%Z*;zy^6M^zRe(@3PK_IggslC z7!NjnVC2vE-d9WabiUiMnZ%tFjkpjOxGFDBb>K-)3PfmSx;xV9F;<_ZN<@Q^>i7UJ zD`B=Bp3htVqmmx>n;66}5-oy)SCy!xERXK_3yJHm&8!zFOF9z85UCM)tXOFpEYyPw zRf-QN-OmU(hU#~6xvc0vBJK>u-8fPUyMIsxL-Iu<{$ptrb^cbS%xcUT95G9Q-T0ae zT&_KJr$KX*nzTt}gW5se>DD&(A})`p7L&dk*9Wc?o<}1%cPqY+gMDGOHI`ER%ZcGU zbem0?t+$0XRbX(Ybd1%PMqxkWq1#8Gsjnpz5P`_1wDQ<~!kzc8jx6=udm3N}eAHGK z^S)FtuM;V)czu3;S**b#b}xn%eSTR5!7Cjn<6C`xIMgp@exwx*S~Dg6jvhmY3E6p- zvz@brd9#DF>7%QKq0QT@fXmOnPFWTwscU&7tB2l#I87!l5Q9ETXOrQtd1X_fvqA26 zK0$*^65DOuuf(2D3oQAmQXj~kH&@oa?d)iBoX1$?5FT1~?A;1!<~STZzPl8F4y^Mh z+TGjZ%rjH6Gn7eQ`yBkI zw2Yo!_`XIxHsn%?d7qI!H8}{lT=wG_eJd7PQpJn&z52dqd<5@PeUl``jL^!fqGG#N zZGATD_U;Pk!UT73?S$&hb_+GankLH^JMDL_@8$h%+?QHME?z5F3m*-S=#tF+GVZ4_*A3DiQUFr zsr-`csS>-owzOD!@mTq#@Ml8lD2`kh$p@gznJwV7y(op4^zCg`>4-NrhFiApWaR$z zBG0JfX(g4s^L54vY0na`4sbs3HfD^aQ;NKvc3*dXy!Q2c`WI|r0dSn2Y6IvuZ5 z5xbCfal1L;Te)s{A6wtX9($(I)U?|hsmEbry@&f2=GwQb<={K}tgrewQNmaEeQR&0 zM;0pC<#8cLl6iyjo@174ldE1Qy&o}NwkA8D&fcza-p-Hi{O@<05Yw%Ve0NJkG724p zT+Cdw1T=F94!fLA_X|rRy53&(RYV@o9W8`bF{T1)y_gad=$W}jN?mIO zlit0j&7YA)#agzc@~Sdo@Z$37?5d{LssY&Q6D?8Vg)P^G9uNd!Kv=(+CC|u(==oPc zz;g6-tF;&U{cPC-krF9Sf>ULNX4pV{yFc9Dp3+`6Bwy*Hvv#5QJobbfuH*Z*5R+F_ z=<;-fuLQ3qdeOGl=$8cacu|H~C>RkvPM52#4`-@G{Jl>-{e9?%S#Z$B?zWSdz1vPZ zPk6gj7Q5_j&rer4l4*fAzZ)xfHXOZF{f|4BCP{=ANuu0;;)Knrw7YMVO|JP}=ZHPN zcD>!GygjbHU3ES0#9{hv>>Bx>f91vVf4WIkAzf}Wx#{me?{<^JR6)BQ;D+b@a`v)* zQg~PzetMR^xF}fLnBU0xb93b_zHqj|6<&)+v6J5Nkf7ZDu-y7o`Dd9R9q$}Zqa08G zMZ*S+d#5lW6A!)$A{s~|PC~WhM|ZwJ;2D5x(nb?Eu;WxSk?6$gr6d3C*uSXC)PSU`c zty_?oHJ`1RwDNCTy$|WS#}O`ZmB(i-Tf6$=AUSt?v3eJJ79z96%SD$x;-ry~(%3s! zVfVL=n+;VXbMLwBeUGl!zn?Kl-iC5IAN^nF{9oqYZgXBYUd}Sx9_|NpI#-wedR}C( zcY40oC^B#eaC!DkNmX^-H>8C&5t@LO+CfZYf9JmX`1|SmH+qzNc*{LSx{*@bJkFkA zFn)5Glz-Z9&E^r3%#$~F(YYE{JX>6`d)cbUk~$%UHGE+fY8}Ft0JSp*>My>Pvj#L6 zM5-%VNQ#@WEZ{r`vwR#O7pDx8BKvqOAv_<7R;fZ#A zlQGxqP8L>pVBynGzojN+73JGTV9x8I4z=h5xGJ+OQl{&1Kb0QA+yA;F>Tbn-=|PSx zsO7YgxUy^OI_8OYJoD``SZJ=wf1_9DNnf8UeKtwqG?U<=Xs!J&<4o*r&i`@d?S2UJ z?XK(jAk{(4?o+)QMPaqVNf5DzKxy_5wFG0m}&{IC|Lg`$yaOK@IX;%?tZs2Ps0)C~qY!3=*U9HF|JxHp|BKzNvrgADW=!%9^U3YfLZWzP(NB`AViMw&^QgedpVwd~@r$N^H+4yirRE8&UMn!8aCKXt)z zF*M|-*&9wyl+Ydh^NRDCp}QBH6I^wB?lUnc_mezI>nM9Rsm2eQ%0>&J1AUndJY#dr zi34GzdKi%qQxjfb0d@VX?}V?iN#vM-o-)elF;g=q!PeRw=s@+??I`) z8^x9nIY+s=VYm@S}feB3gk63@Wb+o$;~X~eBNwXzoUzrl?|C0EGSqRsX_>o9qNY5ocPqg9V?Y^cA%Le~ce&#U zA*|ggrvsYmE8YWiwDYayoN@ zjt6w_UHcdy5LrBTzXFYh$j$R}Bk5@>mwYzlyxUE+tbd9!=6Z?mN| zIB)(v@Ycch0xg;61wf1+gG!>wia8%6!a`t@Xb3?7E_ew+e!+hbt^E;0Yv23R3=?c% zcI00$DbD0_%iV(yhR9oYO_;+%oqykOXG}0+Q*`C2?Qs>ON|h z=077FtCf|rw*ERx^8R=8sz&}Ea^`{&rhRiT>(dse&cb4F(hBBe#aj=6 zujA=vY0dB8v?-_SWSLcHud!;rv(=)uBCm-FZ%#{>GpM*5qopqB6X1K8!*2#>@dOhl zR4anPkALJ%kwh=>pl#ZUQy+4ZJca&-;ShaN{&zTJE{oY}2`3g>9gWELaip~-T2RoC z`wtY`hVei#1D-@j856pGtq?|)&slQYx2HZ-|GPhi4#Hk1SuWE$RVP`emd7QEJwfq` zrp3&~GBQyqBPacuEW*6=s7oC4iRibk8ya3k%On=_qf`jxAs$BC!{=%_AV~hxDz-Bx zj=gfTgSp)NGLFjE`EZTyk)_*IQ{~mjC#0GLo!1MkB@W0{fiJKGD_c_VItzuoT9R}k zM4BvTztcX%YQQxw8pP@xQ=(WACQxQ{odGpDf;=9FMGPK@a0oN>t4Z8ArF#JlPJ6fS zqsT}Ih>5kZ_=7@dNwhM1btbC3`r?_!@1)M zk`T8p-)3NxEK*$p65N;^C3qt=tb*7iOqP_W5aTxi2?H;b1#f0ERV@r4O|kQ-*ASm& z3D^9^ck^TA*vJg+ zDzqj8QptQb^GY+k*s;eI`-CBOk%N#KIHL36-`N?@Df!tL{=5=%9Y%9=1`cxT=wY;8 zX=kAJ$o}KCv5smmD;{{$w>YqJ@e#?GAo2F~voICfhG^_FV zZ-1ajC;-EyB}_&FT=Po{qVr2Lvxzb>CTu7f#bYpw>g(P9sMSrfIo~00V=B<#4HqpS zh++xgYHGll2>TaaBg|A9R@8`>Y^4r#zP_tQx=Y@ea`hePr6uPld$*Mx!@ycTjI30F z0?!oe?L|15#gOH8rp!I{V4qYAL41sStQLrAo<`2yVJl2MyyDF;^NcSfd$~rKc zL@P?pH{`kan+OKmvi%hdeq&f!HyKO~t2Fu9u$=>-zlw#25321*>!SWst6*;r6wAj5 zh+~U9F!Uvm!EpJp$}~!LQG^%UVgHWh7BQJ(#QR4PPz5_4F^FXL<8toIp6R(IC<5Wz zzkAG+9OxG|5M~dMqK6D_^gZ+hlaw4yyezt_DjZ~ zzWN1h+0$v4iGz5;OYIMg!yY)PoVJteDOM>`^r0q|=kpyOBk#@GQ2F}_DFD0hH=F({ zbndw`(zBydc|bxuF(U{E>U$1H8BuvQ~!S z!cD~$-}5HoUXIuL?_fUL_PxKM6&f!$HRnn`Mc?j6Qxl>6HRw2J49Kr+>hT#+#lVC6 zJwQ+dI=8GQyo{PB7F=~De7$mPnK2>~SAmcMFE(cJXlCb8{DREZgX0mSN887A&M#A* z+T@C9aVc%c!CG|-o76u~mzM=D1$k_UuNbwj;HpI18f_h>^Uu2#B3xWUEW2;10_193 zZU==IUxhV1c>yEIVCHJ*j8hx0n+qGGZ_j@dN=|zg6?K$|{F^kVd2fOK*N4F-N*czT zC4Kf7l+JlvTY(Jz@|vJ(10Z94EvYVF;tRnH!4U^>gwQNr6A1*r2WFl98a+nkV#aI& zRY`}_O!q_ZMCt7&0*DDgcgtPlmd^5nz6z`G)A5%@+rikP5Bf(~KM%MEQKn4GE0#@V z>F>|+`hZl8^yV57eHpTGRpcZU%tL!c!*onk%r@yZZ+&+;=z$PbM*QNehwjoH zaUZ0^{4n)Uqr#em=3XJ)j_?K zlgbTuVv!qHR!<2aH<@Ih+*0|4Iml}mg6d+T5SV6^sNUMu#3b-nH~G@0j`T*#4Nt4J z(?MqL%>U9^h6XMPo7t`#4hS*44M4BtkSyDiOiuCVmC|uucg1FRs4L3gT#ab&#pk6a z2&9tzqKppcdGGjmijVlTBwM!q%MgKd%mJhn$POCFI?zG-eh0c<-_U@-fKZ@Jlu|qt z-R*P8LM;8LE|>j=W^bC-+FdTiUXL5JNN?&1FmaS9@11So51?1~*(vHsbO1Ok7LFIZ z*bPN(n%5Zm{LyBATd6mP>lK@qHWNi2L46`K(?}x}YWhbLmAc890yLP{mT4`$@4>;C zR>G0VE`p}{xr_GRlgTd^5Kz(U`H%OLaey-e~`HARPtI90oc*LPNuO30TjMW+_oxprHp z5%)TQ7_4OtQrTQMyU?Sk4!1I$_`WQ}CS^&zXSx1gGm~Pd2Hfeb`Ott*5!Q$DQZu&x zOVk#P6-M82h-iN@EeR5(C#vC3g8Q8{mh+O4E7f7$@V;=j-a~gU51!h&490_LX z9sC0p&oQ8#$X82s=3!!l+A)$K+?!3YLNQQ8eeNf>$9|2FR&JPh_hV!8whv8#LUN`r za47D$LG`Rn&`X2v<~8pLsDL>FRl=D1lp^gW9#TUg$D`Mq8b>7TJS3!_f&^%#OsohB znmi9qiuUD|(CM_!rfS%QFu{{lo!OoJBQLARweY_@%uCDHSIf)0Ph`IF0`Q=o@|~X} z&Ww4P8q;G$7HS-X)XSL&I<}%aBl;MKgrPD0&;p)UO|M1;&!^`F< z<$d}`0X48?xT?8|J2H__-B?=+4E;^ds;neZrWZ@wSKY^4rnjo-#oL0brIWQR?J@ug zT+UEDVQO-tiDrtUX@!dvP=Ai6avAepOSX=k#{gFIH}|IImzLu}==Lv@+GxoFBshB3 zH*LL;w?99AR^ge^8sh0-!#6W8HdxjUmI+|@?xhjX)(}{lPMmey&p=L2u@;7x^qG*Q z!eV)Mma=39K|H!(cf8kI4yKsa1}O`;QmF0qu`yobO@$Q9q|>x5L%sYtt3btTMN6eqVV*`Fb! zt$Yy+>JLaMalLhf_iSL2QJTlY`Vwv_9o$yqK5?+a&qCka5|lz_r35#<1s;Ict^AJzPHd{w-z!U5_8c?yDASjsMc z_ZOfS4NOK;^@Xu$_ur6n6Q}}?2(`eT4~fZXrGb#m`$UFUUDD!VOq;*P>)q04!9$Jh zu4gqL$@pi$kqJg{HDAL_{&Q@@kV-nNENbXLLZ*N!uBG`-?`F;qn8ida56@i3rPTxs z=;T}H3OwK+jBE^wVjl?M=p>S>%Yo0{W;E%u*C_tEbOb>%)IbTh8TuIRS;;^ShTrtG znhmsMKF5D!bA(+UBQh}iaRs1lKI_5M{F|e^XRmcO>T|KIC~fWQjC&~n#1LK8z$|?a`aOqVb5(VY$IySRm75{mr)=H+=#$0ajIo#+wA`|Gmm@vda zY^^&J_Ps}pBlUhcE>!HElubl@-u%JQC5NlqAag%D(*YZ0v6ckSy>a;ipYp9`i}*{B z(*=u@%jx@JZY83d)>{3y7dyT+<8f04fQqIdSz|E0xK)!a-Oh-U2NK-?Xq#sK!o-lCafD_7K0RNe|JuK5_?75W zBs=0D_V^6!lkK7n4t|wrte*6^Da{-8{1MZSddTatOCHwvJhc0&oSSy?Skokqw!44y z!iz(eeXszX;b&n{{bQ=|A{9~*1}-1kWptU%NEPsc;@z-ZSs=ujL<@0SIL3C5#N8e; zz4N(aD#z;-wo9~G^|@CaaEl(3g9h8pJMZ_8)a~U6rz-p`F^2TfBn%e=D`D>q+OJeP zt=x+fs-of<64F?MWv#r$wdzWMf&@RO;tTyQ&QqE?FXY8jBn*E;k<>c4W zZOxlBaxQ|c;Rh129Uf8;)R}kh3?cCVs}etFW6YQCx(=Gm55y)6v?rWlNQ>^gUUD-Y z{K+&49NG^jHC>*noJm>n%&z>RrHk;F=g&P-Cj3OWRzefzfXiUBEpGh6;E5ccgOKk= z?{u8#rLmjWuM#TZVIV?a>0;sFE*sG^zPK8BGK{ViH^BHWW;G3u>qDU4j#78!-LB4A}!Q%&2eqn+>$z88I@Hg;@p7CMLEQ zcRmMrEcoZbcITI;wBa!)+ALGul@o05>N2*=uw@oS66XFw-u2znBs5O3*j*WFHh8yj zH;bOvR;bo&t_IWpasqSB+i74pSBfUkxVW^?WZ-Z-5i%P#*aNrg6+k7QD-ZFZ5vE}3 z$`e7-7!ILB=hN)XL{Q_!=9~XD68JUWfV|p>Qy=YZVf*c8YmMTVf5Me}xAx2eVO6?r z=FUdz%oKbP-W@by8ONNckdp4ZVY?5Zm)BvFKrgoKv3{d7YUnslHXL|hqy6n6*iNpH z&%p0wr0(sxXzlqqxM}MmjTUcY?#KA!%j56+*2W3SF0$>~?i12pDfIb#O$ymoX8y5- z4GjulDe7-|eDH5yVx8-$BK3KBgY))bZpIwU?LiiZ8_F!iC*jKD-7vi$=FVD5!jbt| z!g_EiDvoEhpL5WiUCMDg^Mqe&2u&pVaWRANKJq^A6a+x1YPOG0w}>0bR~s!(XLP>a z7m4{gZvQ6x%A}!DRwdw7-(~@Hb(T6i*VMAB%by~SE`;pY%kHsVMo0!QB8rYk^@Lhe z*g&6i6(H=NaW@ui-sDk8FUUKObPPg$cD;js!W(n@=z~xKKBM}$A5dYftXJ^CY!*_2 zXinMpSGb{XM{fy#7OuA(>h`N%vwOO!TcC7BBZOlO5qm=8`w<#wiAsB9dBa6^d8nBL zH=fXvPD8Kh<`AbXcG+=%_{RVFMa7}@R$fEvdts@<47tYN+snUzxRpA0(Dd+j=xfbE zW#CBcYK?TMdj1`qr`i<96EM&KY$7NCaSg#-+Axia#6 zEN$W>)u6e@@)EW3X}P320lbj$l7F)+g5Ox<8`oKb3Bu<(S6RR~nBj_vC8Y_KeLXX;@44=M)<`P2T;=yRxTj%sb zUh^Z#?NrHo7U$;U0g8y-UAcsxy7S&j88OnTxR4_eEp0fC?~uFC)$p1v?e9et4f>cN z`N-$TyA!WUJ}Sq8o-0pherMYWFC(6|EA!p1Msul+(N&~G!kyL}N#z9Dx^sN3jUGUy z$@S9P*q+^#)x-4id?F+DtxUQC&+x(1mY4aZwTDsSHG#MOq`QU&-as;4&M%2@&YWYO zluy2lUD|jk_vTC*>m5JSV={> zZkw~C%jfZfgM@?F<1L?}Lyd!p)4(Y$zzelT2P_WjLgno4Y0B>DU~5V-XGIV8#qZOb zI5AK6;-Z^lH=l1WbvpiUQ$lB5Pn$0 z+c@_#V(T?7uHRqhICxv!EnR22_ceWd{B1s~$nB~6eD=_Hv0zGoMpulxBb%@5Y-qUH z<`Ft;J^3xy<@wUo^>|9||K>sNcfTm)Ai9ul-X*KJBaNA~j7uihN~hqqVT}6lo%}zm zUB<&Ia~Ax3O;<3y->~p~wvIq?Ii2rH9xg%;v;a0kZA8{*OB@EN3TwPGZCv^*D*$dT z(UobT*~AlDt5a*6qccl#c{;9YuO#!Gg&_y8_3R_2F%9Fr*}A8153i_QPdEDH&-Vje z&lerofsPM$FpZ4%8PO>EBKI zT?B@$zO0TZ-Js9K)lXu$9}^$8gW5exf4Nr|*x25LX1`v{&aS4Ue4Wp0Xu9L!sh`#6 z>o*UU$a|WhCSG zyzgH&&?P@i{F|YyRL?gnOJ%j9a`g_R_lmOs2pmk0#s9dP|G%r6`|s`uTs3vQoV>w~ YDZJnZH804&-|&G_kWrSdlr#?dUsemgCjbBd literal 0 HcmV?d00001 diff --git a/Plugins/Newtonsoft.Json.dll b/Plugins/Newtonsoft.Json.dll new file mode 100644 index 0000000000000000000000000000000000000000..d0aaed9c60aceb7f84579e7072481e0ab28577a9 GIT binary patch literal 675240 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 z%0D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
    svtUd&hbL`>jj+ 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[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

    R6qb}T^guQJ(7$&7w88_K) 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

    |Rc;+W_*I#ja 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

    Gn>?lKn27?{A8xkfP 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%0Avq2D%_lMNCA6CIXZ5sgN{U3 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 h>Zwqm8W=*1Z?33s%nk3+kK?C@Dg^D1UJh=-C7) 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

    r z*AJR?w$20DJI#0XA8_ocRWE)S#b%%S-K%=|09K)LkbtkD1WnJ_qZ?k#(*o@{S9IbS z@Xq73=E`HvUzhgfq;xc!*QojEtby?Wcx?+{JOEzT0vHbfG}cBj9@bRoLU^NXS!tA0 zSVhAKN7Oi?u}zmoT6-fxqevRZFGY`@g&x_LH<}MZ*EQ*CzMgQrjl2)8)#$~+wrdIS z9!K?FGRw`K>r^h9ahh?U`aui59%%d=K6dc!;J@C%>k6G6r(SP5!?z(+?FQmZObes; zlq2(aMHhQ-&?GAM&4+rUzr7P(n2^q8Ui39x(cjn`{T-d?!sub?xzW4U)hLH1GOYiF zhJ0=s%@!VS5BXi!h~`nPD_2(0aZ#7JAITL1@j<_C)5(B=akP=?vE^aYJ@HG^@G~f9+KQoB_a$=d7GKmy7<@hTd!3 zk4v=Ih)U6#uf=E5ejOh33UsdapkUL≥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 a{r7+W#3}IAn6+|jIGJm||NH-r0{;uFX~nz% literal 0 HcmV?d00001 diff --git a/Plugins/mb_Spotify-Plugin.dll b/Plugins/mb_Spotify-Plugin.dll new file mode 100644 index 0000000000000000000000000000000000000000..b79f436441a764a76972133a88f349ebba15a906 GIT binary patch literal 55808 zcmdqK34B~t`9FN-&XV;`GU>jg4e6FPX_};K=$dXc&?Ph}6ey(AWZDi*GGS)Yh0>aq zMG#OxKu}On5D-LAP&O3=6cm5bpQ50kpui9Oqk!UqVtK#c=bn3J?j&t_|NP(g^M2mK z`ObNs=RD6j=Q;bicP492ze4$yQUQbyKUC@geDdEC!J|Vz#NqJ|h1GopKRxaN-|C+p z*S0;Ls_0E7wk4z86&=x@odhkV*M}=2Meo z;a>`N*GbH$o~0vl|5f-@F?eZ|ZeFhJXmo{A`C0OO(5tfO+H`Dp8uT;I0w9yR>T-jU ze-%n?u1%(r9iW`Dp>AxbUx?Vi64bgj8S6?QAzX7R!ECW%CrD7DnfQR+6-pZ{1k zO9j>Q4NBeci1xBb{_jDh8s1-mQci=~kUC2RP!#+hQPz1Z{NZ8nvE{`5RpZ!h)?PN_ zh<(2TI`Je@_U?NjLr)_8>kNH>^lvisjig^R^yq!4xVANN-%BPweBW7{=m3YWAAZ@CO(bgCm%-MRil(D>_-<2ScgM-;HE}{Q8fmj zt5;a9LeqxS1=KC@3+fwDmGo<&`c%tNgMIz2*f%5)3Dj8C(?6O~Ye+B>oc=&o0Vb9DimO$=)5n79`xXiyeatBe_=Rq< zsu3^BE3Vl5t8uETh9wFlrsE@&s0E^RSoo?Lh$rgE*w4;8Vy3-6!q3A#l(yP8oCR+D zp%1=rwD%83%-YLV8Z*8yRS(U)DvX>$S3XkYY^pKi#|lc5GhPa;5dZ>zi@nu7)vyQuOh+3@%*&*qkjgfP^Qq3 z{78PyBwflRhET7ymz`#O%lHl1#Zc7~+(ZRFCSp|vB(nCSp9k3cLqiH81sTILMMoQs zAHi@m+pss0wI5?APzCFuA%&5`jNwbO4evXG;fJ#gdlRX7?9jTA3*AO$3l~L-YUa6h z{)1SMew{r$mpDUk%=newoR^D1cI@Ivam^gpir=E=23XnbSQ$Ou)9`8<=1adq^J5mq zcuUPk(-kJqfQ{4wM2qq;h|vmq5HDoIhVl}Na#t)ZW;z|37JHJe@%N;Dx2IHgJkL{VN%#gR>^ zc^oU+%L8DGVo;0qin=)pC697!p8ig~WoIH@>C5K}U6&Ip53}rxR9O z275C~UFsmH!xmc=L#Jku+CLO^<-n;Kp{y#nh^vmY%Mw^os(KjMNRz`>^A5vMrUW&E zlwhRJbNucZEI&&sRr%p1srD??6Rm?y0&BpqC;s&{?FVsvJT zak^6sj-N)gzl_CTC#MUB4a}b|K$@IlDRc|;i-39%oIBgJaBx6Zd3Zlnuti|!8{Ute=q{+M5FOu?_?iz(DmDbY zdYu(^g|Mp-FYL$I2sj<Ycw1Sgp1B^Hvz?6j1)&{<^v}6M$`|0?^DNJ}O zz*)$uu!M&CWnoJ`EV+oKob>Q>;r!j%;Chs4P$l=gNxF&TP1e5wHslpUeU3G>S zMwbaVhOzntj!=e8NSZh^Cp|`KVDKWJg_QlM_YuTmt(|GOI1O%swHTh*3`|6slB><& zDaG0rN#4QaolHI!$yIf}ZZkF1u2u!QzhGYG9^7qn7Bdlpj&5o+2wK}tJ_ZL@Z3TaF zbwoF}G^em&O8Q=oEmkM7ZJ@2+9NU&(VV%e-*9ci(6Wa$G``a;$aW23R$+DG-!^$Mt zVkFK+R3&x{G&{n7%=#X|uGHGG+cnVc>|@(KLfyLu8f!gQ-h9d~+vkVEY_V!wXZVVNNK@ zlRBk#!_>Z!m>E>{na*4|z9Hnyf_oq;&QF|+kG#F3WLgP$?<2n; zaUKYjpV)_wq524sr$WOv7Gm`djc?dk2rmqi4ZEBduFc!aEED^wrhYrjA!~{?+wsse z<@jQhI`0~VrAeu^R;mJq_F)dgqV)+XPn+YeS4hEwE&cT@(!z~6*ZN0Sq0(G;a6AiP zfa45QX89|g!mR5^=6w~39WhQ6=oAzOkb@R~(uhaOqE-U&DkHAm;i!%}?6V7MC~M2e z);Y4#+98x~%1G-S=@>|Hq7dDSGtwcJ-#Q1oAgc;c?UV)UmZdI5dC(zIx4q*~o zTTZnC!;7j@nmJyW=#POBMb&3%=5fMAF#{uus+%=)vM}Y$7Z_Dk-Jsdk4x0rFj4rAk zquDbYHaBj8F-6sZv2qlxblbv2P)3%O^BM+KB!!K#tk2`n=pp~UvHS?^E9Zx^T909L z*uK&H*h|7$tuc72r)8{;!MgnzZNsLumrHx0l{y)=_YFfF9^prF4`zzw!!A_xV^<;l zIduRXW?uwJoP>Kb(Ziwj?9vC3AaOpsRaT0`1vw0BFSi+q3&|cK_bDS}=k(i=Mb`Mk zvg5GMLRB3?NBef3SCOJFw(!dqrd!WH4<}|FEp(-bt($d&!sz4?{WUb#ZbvG zwpcQJ{E17zPJD`hZULJaSE(@=2N1Brc;?>T=*DYcHFF*CvID z&yekMt{~@1a{4hB26QcH&^nJT<*8+c?becGm~}j1ty@Q2bhVzi)W@4A{KI;zcFwA; ztDRXlv%Zm>pu$?B&ck9p0rSHf_~gVsp*5Y1_iV$Y3*M~=7#9;Zw5n(CaPABzoUoyJ zIb<(`egvIv!qTq97AD3&3@hKMD7>Mpb_!a`ZqRvD(Hy~*hYAZX% z3VfokNm{07Koa?6wOk%tsqWP>r7o=|pR>+;6MeHnDmsbyoe3LemZ;-qk^j31l`}%> zsfolp1XoRBe5l}b!6m}~$%Nm}L>j@%gmcEkyeT2|*T%PN3f0%DU!5CPSIxg0oPG7T zPcBm%1M`DnHDdDJQwr7jb0|Hr;qEEJ)qBV1A0JjbYg= zo*LpGBE?QP6JM<&o?icU zO;{bC!7~4O{_T^|f2Y3+JFg%fR?pewf2V{gKaEn2R-div#UbgNlGnmgmNPYj(zKNJ zUfprCMYF}7=cJbX)!s^X1y|TT@fZu7l@US6g)z#4nuP^T;cGGF56kF)RUNBD})MRk$F-*4XO}&zn{TD_$w`|z=q^W^{P5fQbr`@A2szE zqXG)sB1NKr|5k_Q&$Le zlcplrr#-1|)l{YA_XABW5$Z`zoiTwapVm}ArlBX*&oospDSxi1Utv~yQa!J!;`yXr z(-dyvK>bluRU-S7rhYh;vUfFgj^ywUOY{QdQ-I%bATzA_>xH^n*XTx}uEaT-rM_7x3rh{D zTZQ^pr9<5z)P7yRuM4$J>)k8VuXW1%g{sjddr+t!V~OM`45~@h2EEnp1?WN;{s?aGX300=^n<~_7UBBrQYTL3AI@Fr4>SL)Ks%jt-9B(5o)KVP8MpErZxyQM^mQ>b&amknL>R>Q&FL| z=-v|(>P=0>h5DQ>b+=GI)1Ej-s28-AKB2DH`Rx&^L(dxfg!+W04hZ!HOxKGrmR}{X+dvx9x*MrFAd(u2A37J^3-AinQL7LT%Ktr-k~G_U=!G3h0s@5~|uA ze?raFIlLg$>$;pT2{laD?-ilGrS)DDs!-?frck$Oy*~*xN4MX*LbYk?Z$j<@8O&4mC)~grl-&!_XsGZtMqfjsEHd-iDul8V*P=|C6Ss~Q7 zw9RIr{-}HT8q1G;7K(!16V^YW{5ZKZsWPk8@*h{KZo|H(Ne#D75!oq{a-?;dP=68G zXzL8P^QNMgf<854;VZyXt6vL-RP*s~1|#b4HE#iDRlNm%py+Mj{yJh9@rX*)|223@ zf4cS`z}12aff04l;(q~et)hj!(}^3V5X%FHfl~zQ1>Y$m=l5ael9*1MvXHnSKwKfX zR&XmYq}IWH2(LU4r%myNLh6a45O7EpKGf*iQs5&E!+=GFqk+FzG9I{p@;&*(I}NZ+Gw%lmr#%F0ulqi5veaUz)Z(RuPk^&X zFtUL0XA78SdgIf;yBGWy@TADkflFpT51b`h*V->3-Zc03z>8}C2l#Z&Tfh&(?*jia z>+iq^1fLgdo%U~VzFVyFLTYhQ5ZFJz5ct0)mjG{FG!*!^>QTV^my82;PM!dKCr|}^ zZOU}uS7tT<-zwz+3BEfPc>40KC57bl{NUcHoraPT<<& zIB;8W5Ae@(QosvKcLSeav=8`|$U)$1Q|YBI9REqg-)x}YYNlR>_#2b11lCTw7C0&N z1>l(_Hv#uAxD{A5`)k0H8@~aZYTpOEbJByr%?rN=oVI}Y){@78`x>7DUeowf;8lVD z2G$n+3Ro3<5m+?&72x+HuLGZ{{$Id@OWpy_pZqsqsNi3~%VvEDJiUg!abGZyk5;H* zna2rk3KoFVu^Bl_^!5$fEO>S0iGh5TvU(vt+VC;-&;5z zc>UBRz%xX5Q)mU^=Y~!ME)1;$J~OEe`2OP4fY&ZK3pga$0sPnO?ZBsIcLRSnI|;nB zco*aLdB8~N0pNc7B4FdpOMx|ut^hVIx(4`Y?dO3H)qe^2V(l%!pDers_~V&(179fm z7BH{&f&5VDQ-L=zhYVHU%|E68KEb-h&SX=goT(x^a=k-R$zc!EfJ;Ar8GycBd8+nZPOMJrQL&pB@n&-ejy@>d` zM&gLc#PxHDrDeq76NuO46Ay)m?-UY$GN1UMU}y&8JH^5iix@v+DzSa~b0)7}g5Y8xx#~R6hP|~LbZxOs)aPl-t9}qi->KT7Vuwp*rUv40t?IVt` zh@Tbwx8P1cInN2cF8B|@;sE(Yig>5srDCB;wC)g`C@C)%{J{*Syg_n&tB&zcMu@k~ zCXQS}JZ=i{{+Yyl!9J;DgTy~wME zTv|u`P6_c`aNL^iFL)Q6M@xuL))DVpOuTblu+!=hFQ5 z!8yK=I1lKi^cDUGoChZppPoWIK{$0lH%&L*J3OVox0+}p?(%m|4T2LYBYsBW!|H-Y z`p}F5@b6wooHLnNy_opTYT}f+#P=o5omGr)3lsk&oVP=a2kQ!qwVSJLa25%Ee;VVH z5qC?n>G%jZx8_F-=e@dN;G~L(?LaqWaM37mrd1Qei-|$OvEaCArcW*h|Fctx@#)0h z%r7_64~mZi=kfW(dx5Ujp&64*{J6zaA$>vc+jUcgUkgrmX+7|5oA~5nVyKw-gvV@7pdnXI}0q;g;SPN7pb!f z&nxh&u{c+e8dG+#AfO%<>VR5PeF-dGHp!9wYVH*U`Pc)II-r8~^`PF?vfYbs!lRwy z$&T#dsW%lAtBF;P-sfv?D+sH%G%sa9*bFe>BxFW^Bi`2W3Zx!IxBTc2N zv4^KX^{Xp4FJAIs0dD9;cBQ(Y>IVhG)JC21g(*LRZ&p_`?L}(%)DRvoU8kw4>7-uO z)PEL`s;hBQR!GW=HPs*~U)EINLZ+;l?xb8f^(AY#I!{w4PJhW7p#r$AXMV3Oc*z>6 zR%z;F+g8H)MUd-7{AIaJzK;VeUy z+xdmF4Mn|q9=%2*tF(s}&No!KJ+5$(p@!Jg3zvEHmK#~6J-cwFp~~&$g(n$mh<#e& zdXHYKkyYB83pW_5+}>Vzs-alUGdy~mjI7e$S$LMA%I*Hb&4!|0r>2~Ch#6U>eMR9m zLzUZKC_LLx)Ju5udX0?zC21(Od&*GM+v(BUWn`81U4?rLRc_x`c&?#_*pC+O^XTn2 zvP%2u!hS=Q+y7m7zM<&Pi#6rc?-C=cv|lN_)KKO29}DqV9RJwshS>isyi!w+-c?3c zX{(~E4OMQ3imovf>vx?;?|LJvw9AUVV5o9?WYLX=8e&f@y4j=mWh1M!@AlndD2|5= z#rl2Kqj#H0S!q`n-C?M5yP@b#Ls9P=9=&^vtkPaw^i4yR+iQv*FckG3)s*9x$BeAf zjut&`sB(K-(UXRv-qRkv9~)Vvoho|9Q04Z%qGt_7yXDy8Q04aY;xUF| zKO5)K8*gNl_T#?e48?wyp{O^(qc_o{q~2shQ7=PLk8j}86Hfi6nv|7xW3lt%gfq`C zE3P%NA$DsqzO|60H_OO49_AQ|`DG~jWu8Z`(WI=jPg3&@MZF9)#6G=vp+|3#Nm*%c zDPCeI`m@PUL+p6*a*y5$BcoqVFckC4Q1nZ)NAE$SUox7Izw|-2Qs;Rzp$m zY>(a!BdfF@D(*H^x&2si!cf#pdGz=ewL6aft9YlO%Iz15_ZVu3{m0_{9=(1etF+%M zK4_?N`-9>O4aNTQDUaTzMpkJT+Ls%u+>Y3vF%--BS&!b;MpkK$v#&K&xjosw-cZc% ziypl%8Cj)0%f8uA<@RFx7DKUqcX;&fG_p$jCF|>k;(B|xp_t#j9=&fGS*6`#-)E?D z`&9eehGP95^5{KmWR-TO{ar(q+q=^~T)+Ng8Cj)W6}AmkZr6uP4aIiH zD~?%uc%@$`?yr}G@h+~W*zR~2PgBefZ}$o1%)5N!%`N9kR)wLccbuVEzlk2bNk+zb zX^NpZFJ&m^H`Svz&7`DWjiIQQp{Q5u(VJmXR@y7V^@hSeBs|kl^vhh2UZas!+Gm94 z8>-xnh8G%&`89d;mKs^5-5p+TsB$|UKEY7*%W99_8Y5#ntTPn-**Xq&Z+rn-; zd|I7iDEcKsas9*hI3%Uhey5p~mG*(~8HOsiFADP=W5*`T+3wNXY-E-8mEkRhVtyHF zh<$Ci)1wzNDJ$(ShPN52+`c8e-B8SLhexl=$hc1T7>fC2DC+fk^v*FUEA4y2DMPV- zX+zO3yF7ZkjjYnXKYXsCm|un(Vm}x@&!e}`q^z_b4S&K=<@S@|enYXG_6nW3on8IRr-M#lWEG8FU6P}IBHqj!x- z$^1TNDCT#ap{Vx-kKPSNR%yQ+{-U9nUxpfDzZSm9qj$4OS!w?%jPFHB-FbfhYxovJ zF~8e9dbb-H>-RN7F~1B&y}LYmUpFaPzi$|d^}EMV)ccl4?>-}Ae&03}^UF}wd%&aj zph?O69yS#7d&E%GOJAnd(xz2em^o4^Lxrr)cc7??-?Uw ze*a}C=9i(U_pC?nkV#3spBsvL8H#$(dGvm1Qc~}ELs2h7QSa9tz2BIW)O*QL)XPxR z`<+McWs{P6zc&>1G8FY*_2|83Qc~}K3`M;RMZGsYdVe%2srQzlsF$Ir_h*mZ+a@L3 z?_EQ&{r+Mo>ix~5_je`h`Zci!6Hx%dHut%@N$SUnQB@siF+lxwu8jAUi^5~5=vPye($yh^` z+Z#&88ES~#SyJiIn`C6%?@lok*IRyLCbRxkd-Q6IjQfyUL(!iZit9AKK9S{@dXuu! z{`UPKl%hH=;QdZi%CG!kbZtpBarsih8Gd z^fsE5mG%uKryGjv`x%C!-dP^Kb|b5_Z!U=%3g?HC4nwhi+dO)4BV##t7>ec0P|UB} zqt|0na=iB%ih3D}{W|HatAdGszfGWz8+hGKphihjA$ zqj!}_NxiELMZF9~y=y&spED`hU#>S4%lUajvHfoJ=zY=1D(#<@++?V7`e0K+$SUnWl-yw`+zXf7X(;M_!=rbPkyYCNDEX$L%5AIkenYW;KIGAR#K`EE?-`1I z$x!smqaMA-OiIp!j~j~f;1hO?;gE>n3TNV zecw>L-~G3tnBRvUJ^31%a-OTbWLW`sW?=pNhN50bQ_i_D&&YV5#=}-UqwqXkWGME} z5|3WQ$SUmaFwWwHO)u*?L2oo!@zo>SUosB-)2(uAS- zTrC~Ar;hE(ejQSMfk%WoU!~Q}rG0^rJl=I=y8@*`z2Z9+Pt|t?-qBP`=@d|Z5z2Ww zzB_O@OK*1|uYoz7ua>AgN_PiJgmP@|35?XTOVmB3djj=YvU39qgmUsbH}DHhF+YC8 z)Thp#K)eflzROL#VxM4kb8zW9;o~9MhEfVg}LaIdwxKnBDwh+G8U>G7l0vcY%@SIef%hr`ss?s~YP?uG znlvPq^NwhFy|jo^s!ZH3T7e^K{YA=imE@j@e>ANx;dKSS%GS+rj^&5fi|IY$v3&kZ zw5(4NkCl?W-BNd96!_Ij^mC{GXLF8KD#wD8VNP!9mn4{?6S+uex!)Ung#N$<)(V(;20y=#Mv z>rDJuWjn8iWvhgiUpNo~t!BQ{b?L?o-#J&Ef)EcDqAIExasf|mhn~8gM2lkolJwPV@ z(X zhzC?TN)l9OB932_0Q%Ii(|A`9TCl`|Un~R$>BCM5ojqG7eyq|uDc{3uldew~|L9tN z_21Z61k_pRZ$UK#D-^yJCHw7+){z!0vEUaAN3Nq&!hyMv^xjR{}BKGW#{PovHx#M z=gY~L`0?7}^J0g1EIZD*sZr*i$~vwc|B>-BI6rd&VxJi}7dcv+BAm^(NI%cz9Bnq^ zX{B3ED-oP`GV$zLG?zcH43#A;8}V3m|2Tc%qu&dC^qoKVv6kN1X5!uz#s7PKl6zx!zfCV4{S5NaQnH+G zX^&x3#@da}p5Mfe<(b|Z+9w{Xy*_%%qxX=bOP!M3Ei+yw{(rU>minyhhaLNjd+n1m z*nW7r%)mWBzqXLe@%EyDz4xR0FjF?Sbq1DmaQnxq-I27Mp62AsxYs8~()ym9+?`(M z=w>+o=e%+BKJ(GnqmQ1_>4C&!jSDBu3pnTc)eEvq$>j{@2j{8NeR9*gS@tJ?bVlNI zj>pZV_b8w5TL=Z}8eCXMfc*aHH4TMoDzH@53pNTi2{sF!EO?q=6gW)9C4P?J9>Iu@ z){X;?R#PQ@09dMs$KjVEDScDWXYo0o&*Jm8h(&(Abz9?1)rfebYO*4Ei`6A+*Zh<4 z-Q>?KZUJ7?aEf45ohE56QQPLn)xEIRh?MtE?Nw3h7T+!vxArf*NZp~V)<5v`mc^3(6=11)LCRLF9tlnI zy{T3d*ZD3{6U$I{-|aJ2`3_jKW~>G0@bPWF0^k0?r;+akzQpMSx{zMIug=HBdk%-Ys)H}K4cZ~C6Ll8vnIZH*83Ua)4Ceh-{`iy!wj z`EHo=Bi~SUaN4KUQ1#f{-}uI=+iKqOHTwP@h`rK$g5GkV)>2_S@qVm+A6Ej zmp6T;^{(ZlDGWXCd)Fe?i0*L`f7hBntI3)rocFD7S3izY4WD|t<@1kN6vb~QR!u)0 zICjx?Yk~M=f%xHOb=#cX;J-hYI04d|)q`_BZ7o-;7W~GyTC9!o-#Gi*R-5`{!;h>@ zYT5kfQK}j9Ub2q!pStjF-&8;Se6#xQl;2xZ;j2=_i{|C~JEeAAQkS$kG^Gxl*$W@{ z)%)K?`U6siM*rB!%l+@7)z0ysCn+yb&lY~#e}VGjo7oqrU)K+VpL=Iq@2~fL>Ui{L z@jx8jxXFK-pB||9&nzuP%3=6>7&nW}_kFLFvhHt#|Gw|K>5Sh#y%e`wHR=IBe$7Tb z44kFD=g(L9{>OmD{vQHM{XYQ?^*;+7>32CC0{QAb zN%MfDc|>x2R8l@6IX)#hJ|j6k>(4{_UxZ&c;Ilv#ybc%$-U!SOei>LCybV|yybCxqcrS2d@Y}$#!H0nr z!AF4;gHHmhfqUU~h0DFddu<+#Re1o)?@6><`WZUJzUe zyg0ZNcv->V9-@709Z_v%9Id$U69b@M{(Eek>%O-n)?iK`@+)sjn# z{P52Z=Z6nMoF7yk=Z8QZ=ZE4v*0(f|x+5h%Hjn%We;y2~iu~t*6Z3xstjd1@Sd;%7 zlxwNVPeiY_X#3uyEX$pQ;%_%#8 zUu$S9yBU}&dklDe*&l}838{ZLaf0A7!6hf2uilC*Igu7_I`MJhNyJ*UQk|!+Q#Sr+ z;cVZTzCPa`-?hG0>wN1D>uqbkzr}xs|7^b>J8AwF`*%t$H6FY3d(`cL>At;!Y=*_bQ$id3oRP-;HM}-0Nrmn?H!|+c+2Grt7UD&ztY% zxTEA5gzr`GFP!3!Um)Zm!r2Hr5V{b$5qc032)zjBAS4k|2x){q zgq;Yx5OyQ%K{yv-FT!~U`w;dcd;*~#;Q+!xg!2(DK)4X$B7{#OT#RrD!lw`}MYs&% za)eJKdinex@U<*R4;>QS_L?f7V3(bLxry)9j_&Gm|E>tm_jL{ExjOLQCl9t$E( z9qD+Y2N9h!vu%wfcgB+7xhB#HQZ#{&t?^h_r<*4Vx;oyoV{NoMhTNlFefV&^^#9 z>fNAL_VsjZZg9%ipqhGnyJE{@JL4TO*MM6j6c#EhY_7xCl7S`oAWEHkSosdXu z>x!|SCSmsPDRJ*jl8yS90qTHe~Cw#Cxz8wF2ux@vp7TC=phHI{CP z_QbkcF%G)AIJTRTv8YN3DbZ8AqiT6#S5H?W+POTMjw;DOV#yf(3R7%ntR>!&?n}mm zhrcJ^yIo>yjr-b9h^1S5V;$*aU$=<1ZcWSQ>iCvqG`UCQdwM#S$GTu2rCQe;>scA^ zO2?ATJ#En~ZWWtanrqQqYGpFf-IUz6MRlh-63MRk7Uj*WNnE2#)waE_dkf|olhYv5 zm5Hv-Skg&}iC8s75xM{?1>#+?Wr@yM2gWE-J9ZfyhB{%kOV!GZ8t+hR`clN+4#mF( zzhJQGcTuObLUX5r@6(va5KEbu=Fuaoqp9@D?hPq8q0^LqWxS`;nS@$m$rO4=tS6l% zhT2i2Fg}R1HJ#{Po7f-?tU97S9kDLAy;W~?58GWeb)pD+lJSm|D~fe0G+_(^#4_&Z zoW7!myfriXR_sRc7)M*iQtNeZ>0Guw+OrMZXlG}8OJY|ni9rx^naNmpVrOh1pOaxM z$!@v@ozzXOx!e1;ZuK%-(XbwmR<1RD8IGg3;v6i;aX5Hg&$_K!-PG%&Y!#Q1 zMb{-9L#xr{yIj`#ST9O;LNwl!;h@g^>tv3vQ!c+Py3NFy|FT414|=$V7fZrkESh$8 z*fvdDk!o3AGKr>k`Cf;+TrN@Z4irDpgXOFG4CF6Q_2w|y zZwD}8*|gul^aDi8xEJV1I|W_|H|nEw; zmcyZ1xA&#dr+Qo|hc9<`>th|U_)aN;hvfVv?(S6aPG=XTx}wQ#v89-8RjNDM)g>_& zqMhZ$ydhKLswg5@1)6(yCU#)v?e5l$^|5W7@scj9LyJyAXIHF7q6d9fX}S8^`u9mfRZch&fX^oZ)3IZRdm#%iaxU z4T5!j>E1p)$Ex;ZU(Y(srmD|rqSiPG?rz%>t%<%Q2t9nz^Oj*7n%WxeG(5C#hKEt7 zrQ5KKbGpn@&CEdA0_f)moS8+^z`2;X+mf-^TH5L+EKf#vHFNLa_F8F+HL+BRJZGzr zabsIFwZoOglF3BUCAzhOcgkOzaHb-3QGlB<*W>^}Q);)UZe<~yy$)uX^mgnQwkDD|z^zYs1?ywo@!bR2C-lW| z!plkP*c0wD?0YDc1+p!kMzlRGA1f1FK=y#a-pZq#J6qA!D|y@#CZ=P|8_p^zj7~XS zNp!31$TW9rw680DN<5`kYvJznlEzW=9&_x~o)ZES7@X*}7Tcxm=tyr@AG#o2*F$}} zPa@pqw8g=p2u;UxZc8$Tm0)KKg9*!~v*Jn`-OEr2XRDCab2MY8>_spRa-6~~W)Duu zX+61No`|Valks#+V$Dq{Oq0&C9PQXnA$uctIcqeX$|lxgDpaipd2ZQ@C?p*GZ#$oK1p|&i>O#WLTgY!sy^$N@Cc`cO`Z?Q8ZXf z5-v!l_Xs1+Ot4i?!Vk{jXc^WDWZSbfz6}SMtbHsU zAuM$EIm;w*Ckx8mbCwZe;>tO18Ijkt#~*T7G6}OXI7+Il&X;|-8DM4bL(YI?sEyN6 zvyVapQX$i$q{<9fchy+o?DdQtodRZ#k%Ao~d#jsk0dmilcMy4ImzyhOEzA};R|w0w z``z3m&_7lZSUJM}*BFBpnLP&Iw`P)M?dS{>-ORJ0%NFEp?6O6&-7<_!V`Oi&a>b~L z**oRRP=zDPpy%B)4WfL61gKrsj>_nPjSL6fHkmZ;*vZ}Qm;}1gxmy<_M<&_(7sJo$ z+soR`xE&@ZCb@?qCKa$lZ^a1a9Aflg$>u2w7BjLg%vV5yX<5*qrq< zR{*Oy0#81Jt*XXER!Vm*G_vdhaqTdIqfCh=jq5Cw+A|xP1eum$OjhwhWW2D*Wuwd< zwwsmf_N?u)EZ9artFm4}rYx=76T6(tkJY$>F`7;vc6wNA{M?M71(!Q|FQNBFM#t-= zBTH9vZ!0}Q_EtvUt=3UQs8Ft5Z&kPDf54nrct0ii)9xG=wg;TC`Ni+B|%Jbt1 za+m3@vsoU@EI9gv-x5u4H-+~W!||x>l1+*%_cW()7VPOv^ZIu%xzmSmNX_~;*~To`8_=-mKiGmgn@S_gYAIf+7(R4b(Py*wo!K%JFLTIf?%`=k z?$UD7IGLRikL?;PjkmhX`;vp1Se@wLhS4k1-Nt!X4ME18Mv~JuE1dgA+@<42#3ag8nv;XRcy`BOR`<`5 z=+Zh@VkFF|CS^>cWH2eccPR&6Mv`$u_TIuPN28_L9qH(dBvV{zqcs>F-UKu)sslxC zZQKdGsjKSyhp5z9<#i&Fg|pR4<^f47hg1|ntJv)XEMyf zG7DzxXpf`#eK-f{b zoXE7I_}irh8WC}8ygQEDPRCj%O{PHN9%n9X!U;vMLatTRhqG*s#Mucs7kM5P2+%!p z1bPr=vTRE6iBYsClU>$mTpp8a7GB;M)8=Xx11XtdufcT;&h4oT#}vCc)!f6H852gL z*Cjm?2Fl4v%QJ6|l!0>bDjJb@W3Ew?N>?>AH5-YWRPN{D3M23~IakpYy9Ws2AGBbO z(3q4W$>179bx>iZEu{HT9sOXZ8P5hX*$+&{T6@#D<=3-OTS7BT9dg!W_a?;1Gnu&a zz)_O8#bs>=By)?R=Ys+AtX_u4w-E2%V@k0!j;#-FG4N=Fw|tzjad(>a6iRhCkG>p< z-iAslwu3Vw7<1$c7S*@6r*g#HF=ySx3CX)A)FtV@3)9(@#(r=MQ=ZTl&!U#cw)Ab= z#{1<=3MgY~i+gw&T(RygU3=szG?R3|yVoatC^8=m;|ZQGs^ znhcV7Owb)o?#PJR_*f;ql3PCZ)r`P3xGLV+8SBaLU0ZC1Y@X-UF3tfoF;YA7@St%8?%o|oIPc}aVV0|O5(_~E{Q=e#si%V)DL53{h4&A5S%cf`{u zVh=Abx8waHBHrC-N_E8JZbRZZ9i(`Q?=mpiCiQKnYK!h*$8W&_R>^GVJ`_-CJR~#( zdqL7rIRD6l1Kfh|j7d*Y&W^{4dpnTRevV|>_81;F@U$$W#Z~Ra3c!~zJnFQ9M>RX+ ziN4eT0asLqnY9pRpT_0=lx2KV0MFdX@T1P;t-vu*ly z9EVuPjVhOp4A(hZWoVwHn|tthTk5_#x+T`7mPYZq6Q3w|x#NYCuRMi!xG11|h2V^8 zb9LZ89~EmTaJ1*81F+^j%R?*qi=bEPDj_^oRP%l ziI2opOGmeK65h06a^hn?iMAyYT}Tq|70PK;_eKWq%xamQ$mW!O$kpMg00>BYz4%N*cDxnjDB-8sOaoi`=rodMO3HkCqt;eN~LWA;IHVgeBFNFcus9J8>&!i&m1coAhi<}#NwZ>s1ORO;cr!Q=9r40uoFa*%!Q z9T;X_d4nhWUJNq?x0G3LlqqPUXJ)Q+vTnb$%*ie1W-Mo5xHn>2CHp4KokOrp>K7}e zPVUWum=^ZhgI?R?8*7&?%p3$zybufI4A;1q* zyWM$Er*Is=D{7cUcJ$!ICpKiq+Jv*-<8y6vXPi%9+Y)%Ow=DaZ@PP4u0Z=0~{&voKIVlRkp9!^$T7EI7dahc18E3 zxUIr=2G6>eMw99^46!UX%S^Kj`==zfEqWK^yl;i)Y<;+tP;2o@Y%J-l)~6)mxLxHt zQA_*cd<_KP<_8h7WOSlumd%buQ39~!2kR{p_*oKY3dMP%`gGrN@DcQH0?5bpBx;}W}2hh zWUy;pcW5k+N4NDP`2I=?FB_(uw+&O=H1x`Awr!ZV(cN&|Llslf%7gKpDNgnk&gHN= zDYggOB3i^d=eU5uw?7P5Uh+y|35<5~MXQwaeh?Dzb*GeSMz>0e9ULUK;ytKkwas z*6bjD66LHreJG-K&bQX|_dROmEP=}8-14JfQM@mW^qB&2#>qTT)$eX$2b`NmA1%!O zJC(DE#(>FI#{OB4LTqhOKC?Auf5CF*Je-8Ud9BR3*-6!M!|U;AlbqzKBmUH6PIWmw z!|Tp6MfCx@GfWOn$+>-!Z=fiBl*lm58*b)XDo$^3wl>*48*WUdG7A@K(U;;>!BOgd zNdcuuVbSogoW&)jQhl;}#{MaVWie&mGnams;#pJ2GA9ttaLT9&+Kwf&2$_du0&wRG zrwyF8%e0sz@jh?ClHBJc#vUq-Xr_lquXCTSWac}=f#2a%xBsH0oTn--1A|U8lJZRr zV}WfAJ^ez!inH-zuv)i8J`&DHE2d>Ib;GQUrH!YY%{J~!xRX+ety@$0KtbfSL}}m_ zd6hZFn^65)vlHL$d}Lpk>jyc?d1aLC)`gt#hGGI|ej%g|5_6i&-QZ-LgzHy~0PNKC z{sYIK4(z%HET}Hu^b5Vvx_n$T;o5|nEjZJp+Y*|}+C(UL1-DwPZ?}Bvx|o{;`DUct zDabYhy^i06G3}A_4H@TKMV#lHEcJE@q@FHiPm+1orM6<6$!hl=2N#A> zyeQ)CA`Hh=7iD8g-0UWipS$(LWp1Z)eJVS6w7C9;gF~WWcjBGY+&(E&CHL2Z3b>f0 zM2arb&Q8pg%KJ55(-+&_$8gSmI}zNM>4%>MA-9!<4J9jnnTiN3V79&;YlCnDfR<%lW7 zYfdt>WM4AI&A$7rN#eZVl}NMmmMEuProj~`Zjf;E;1p|pbeD4r$kVMmUNYz1+~U#O z7)=>3x{Ry?wX;Ylo-A-PLVw_(={P25F>;%^7GcT-+;z9i$)x}qG z*7YDJgS4+#;!fksE8{6)V2_Be@2pF1i^{jL_;|{>`_W#_u8+%d9iIE7R-MByxHucm zWzM#KkK4$G##+Sv{vLR)caL*fr%%@>b5on%gIfchwOwizmIyblR~q*rSMIH)`H+tJH*U{JumxexITjzZsFn?@4UMZ$h-=w<~ZziC>wB zg1ztA$-yp57*<>cDSf zRG@xQ{O$#wXd})#RjAeY+#)HMubP^jdac+!Ldxk)@WB?;r28Y;%}#w(yEB?l8n!?R zSb<+2=>i=?xjV%#D^aE{{Fi_~Sr0YEo8GlOAl-OMD)8$gY$L}TOw$K1bmI3_)T#6; z^GN~e|1N1EdTkXrEJFoKL>q-DRUhI``>?DX&||yP!`{|VKSkK{P7=W;y;-STX! z8{nxF%H;GPO0z8wkWTVir+h2wmfd!+(KHvoK{FS>LDPWWrHSIVYUaXQG4!ih_^q0H za2vtF?_A)&*$5qw;g^vhCC))m)!X4IY&_wO8TgMqgRRkp)=8keY4B&kZXK-P_j`Wu zqvkKnZ(aAz+NZC5ujG_@Dp29`<@+m?FNjDaLNZLSLV&XV%Yzk`FYFKpe1SY)*~p-> z!r?IaV@L7_EXxj*2lA}q{6K{&YYqYqOe(DKgFUG@a$ss6(lILL4or8fz7SBp{NjSV zkQLbw&bO>Q#YkB*%8?Jl;r#sJd3NMX=Rd0~S{^KmS^S4QB4-AbFLEZ*A*V(uH8_Yj zIaxHZWcm4F6-2%(U^LQyA#^HyvNdNVsbA4W&&*v*0r-Fq(unY47W&Jl>R$2dz z#T7wB!;u4LqE7G+b1FL!V%m~SHF#ZmA)sYU;dsKyYL zU*NFI4nzuul^w7xM8cy>Eek}SZ=BEhfF?xa)Hq+LP*N1K(M1L)q5yjwqcGx{+ow7E zLa15)t?V-R2&0EY4qO;6s30?P;F55Vr9puyb)xio{~bO!(yl=MjEVr>XIvDl;yirz zf87@jBVB=V${7wL4T=r(tpC?hKPn*=+6gUI;j_ZU6|hD-%zR{CD8KCBQ((|n_v7%;pQkrdj8_oLh_;)C=gy082Tm0}2uQ-MNXq_{9I&x*jC_$Mv=3|p9O z`V8EXUv?l^SP?`W(4IFlmjibo`~NUJi# z;V!~Gg!>2&5FQ~sN_c|s6yX`b!F)n7p_DL`FqXig9o$6NOxR60kB}y?Ed5s#Sd9J~ z2rNebdw>I7jIkK~_YtI2%;>A~fMRe%F8 z5?&^}N_d0t7U3O&WPUYc#ejoL2onMQ&ye>E!t*5WVXPEzu$OQdLDbR|>?TN6I~f~F z>2`wD@)5-PpC!;A@N5R33fPU)szevGY!aoTg5LyUrfc}>WuM*xMyahO@ z2mzAspnsPl3`H1=P=PQJp$ee}p$=gd!aRfp2ul!_BdkJLjnIP7hOiM~6T)VMPK50U zT?oAhX@uPf=LJHM{(dVI0-RSzTuEQt;s$TXtH$UQW9my3hI8$B%HNf(shee36Oy%I_}a--x;2$GzJ~OuCU$Y{JU=4~5J6pBpQSN&g{#g&HXf@gdC|i3DP0gywU<2EYyAnP^DF#T*^0;p%PF%& zodjTm>UB!Mn6?GBQ~R4w1n zIZQg5Rxj3$MvN&VY$;FD5l&-ycuYzEVO!FFvD@a_0^9*UIti+%9bd=v=p^}(&dByi zSBbQf6Q=~7jc#CPX%@HnBFiInAS26#4KJ=Lh3D8I7;|#BEXG)kaAa0wo)#nKm}J>% z9M>a~;nlf3DHM8-6)um|v35?^bqJ5GZVi|i&TzgB%%cH%>5|eU? zq+~9UCCI|fMH3k-3tTG;$Qy!AQV!R?8(BaV`G1sjm0T`UV?;>fN-~rd-41ncaV@qm zjr397slw8!(3Nm(ve0QRK=&yR4io#?9An!};(8*#Jg7Z^7*mBRa7xL~my^dKM97ow z!E)*D;kfd-v6ybcVd;C2>Ar`UDWt6jlC2G+F4&Pfvx=nRl$P&IRgw{>t~Pd-Hk1$D z&Wdc(-EI?2AbCEIt2|HQ5O#>_#f~~ikz1BSWBMVjA{%LLqib%XHV1|yPE(wA#c3@D zgS8IiO7<$vtK&B z)R_x2J(j-Br*En4_||nh9Ft#O?3gK+iqlo)@Ctf?J5Uf|VI7_xDESdHQ1Y_}iYAy| zEMWrV>fy8`XTEZF2v!Rbohq^!E$@qL1``fJ!?Ki4(`NL*)Lqx~3KUTs2unJ>wuz31 zy9T#^SmHd?AM0ZOf6(4x995l_?0%dKBBl90{PZyYjl-5#wOPYY#aDvy+bZV8GJZ>A zSIUQUc|N8aj=yx0c{>naI^s)a_%VDDmid%@I$qkq!;Xq&iS026M)*{j`Hn-y5ALX_ zXsD~lpAVesQxlgrG|rs6a(UhKnR8aonm((pY3cN)r7IhzD5uxw@B+@|F#Rwz}B ztQ%_UY7vxL<5Od6*RE(YUj?brZwW2jIjeR~E&dKmTX?7u@~27opaO4645e0ukyJ?P zdY`Is-#l{H8+pfTWgYWe%N)kpe?L{*MIXO5p+tH`=x&OG#B zb9kiL&obcZNj^26%13!Pf>h&uY7|qMM`Jlw*q->eAbsf1{In2$gmBl}2#3hY{432w zCAPkGd8?|tzv(My+_3WMyQ`|MFX~vwF0kzQO~^5s+N8U|CjIK)CjJmj1#jLrtxMx= zxJ~k+9G=`KQx$lhtpYFV^GB|F(iN>~{MO+n*T*P3J6HvtUB$W*y?lPUY59s%R;*sv zvS!8FwoRF?s9$v6gqI`mC|9yd{a@{!F-yZh7=|y{!NJMFIfITCEe;MYLM#SE#i2L| zMQJHQN=t~l|HB{P+Qre`AK?GcU!XqkU1KguvF&WXkmizn_uhTqrKP;@^?HLaO%M2e zQ{AyS?%kQE&myiDmBZrPFFkvH#&iiLN)pZKb}MxD`*wb{t?|7BNHtwP)~dWv1_GNz z7?Q`byFRB3OlMeYG8xCLWe>`QW<+p8XIR;$JcY>$5{t-UTCXIJM1IyK? z++lw145W$m5d-bE1K4eHzhjgAHo0Oi6R-7HNdVGG5|8(LW;vz@+$^KA_P;@q_ zn@1E;gXwt0cn?SJ_kRJ!i+-+qSRJrZ(25+iP?+}E-O revision 25 are not available + CopyMemory(ref this, apiInterfacePtr, 456); + else if (MusicBeeVersion == MusicBeeVersion.v2_1) + CopyMemory(ref this, apiInterfacePtr, 516); + else if (MusicBeeVersion == MusicBeeVersion.v2_2) + CopyMemory(ref this, apiInterfacePtr, 584); + else if (MusicBeeVersion == MusicBeeVersion.v2_3) + CopyMemory(ref this, apiInterfacePtr, 596); + else if (MusicBeeVersion == MusicBeeVersion.v2_4) + CopyMemory(ref this, apiInterfacePtr, 604); + else if (MusicBeeVersion == MusicBeeVersion.v2_5) + CopyMemory(ref this, apiInterfacePtr, 648); + else + CopyMemory(ref this, apiInterfacePtr, Marshal.SizeOf(this)); + } + public MusicBeeVersion MusicBeeVersion + { + get { + if (ApiRevision <= 25) + return MusicBeeVersion.v2_0; + else if (ApiRevision <= 31) + return MusicBeeVersion.v2_1; + else if (ApiRevision <= 33) + return MusicBeeVersion.v2_2; + else if (ApiRevision <= 38) + return MusicBeeVersion.v2_3; + else if (ApiRevision <= 43) + return MusicBeeVersion.v2_4; + else if (ApiRevision <= 47) + return MusicBeeVersion.v2_5; + else + return MusicBeeVersion.v3_0; + } + } + public short InterfaceVersion; + public short ApiRevision; + public MB_ReleaseStringDelegate MB_ReleaseString; + public MB_TraceDelegate MB_Trace; + public Setting_GetPersistentStoragePathDelegate Setting_GetPersistentStoragePath; + public Setting_GetSkinDelegate Setting_GetSkin; + public Setting_GetSkinElementColourDelegate Setting_GetSkinElementColour; + public Setting_IsWindowBordersSkinnedDelegate Setting_IsWindowBordersSkinned; + public Library_GetFilePropertyDelegate Library_GetFileProperty; + public Library_GetFileTagDelegate Library_GetFileTag; + public Library_SetFileTagDelegate Library_SetFileTag; + public Library_CommitTagsToFileDelegate Library_CommitTagsToFile; + public Library_GetLyricsDelegate Library_GetLyrics; + [Obsolete("Use Library_GetArtworkEx")] + public Library_GetArtworkDelegate Library_GetArtwork; + public Library_QueryFilesDelegate Library_QueryFiles; + public Library_QueryGetNextFileDelegate Library_QueryGetNextFile; + public Player_GetPositionDelegate Player_GetPosition; + public Player_SetPositionDelegate Player_SetPosition; + public Player_GetPlayStateDelegate Player_GetPlayState; + public Player_ActionDelegate Player_PlayPause; + public Player_ActionDelegate Player_Stop; + public Player_ActionDelegate Player_StopAfterCurrent; + public Player_ActionDelegate Player_PlayPreviousTrack; + public Player_ActionDelegate Player_PlayNextTrack; + public Player_ActionDelegate Player_StartAutoDj; + public Player_ActionDelegate Player_EndAutoDj; + public Player_GetVolumeDelegate Player_GetVolume; + public Player_SetVolumeDelegate Player_SetVolume; + public Player_GetMuteDelegate Player_GetMute; + public Player_SetMuteDelegate Player_SetMute; + public Player_GetShuffleDelegate Player_GetShuffle; + public Player_SetShuffleDelegate Player_SetShuffle; + public Player_GetRepeatDelegate Player_GetRepeat; + public Player_SetRepeatDelegate Player_SetRepeat; + public Player_GetEqualiserEnabledDelegate Player_GetEqualiserEnabled; + public Player_SetEqualiserEnabledDelegate Player_SetEqualiserEnabled; + public Player_GetDspEnabledDelegate Player_GetDspEnabled; + public Player_SetDspEnabledDelegate Player_SetDspEnabled; + public Player_GetScrobbleEnabledDelegate Player_GetScrobbleEnabled; + public Player_SetScrobbleEnabledDelegate Player_SetScrobbleEnabled; + public NowPlaying_GetFileUrlDelegate NowPlaying_GetFileUrl; + public NowPlaying_GetDurationDelegate NowPlaying_GetDuration; + public NowPlaying_GetFilePropertyDelegate NowPlaying_GetFileProperty; + public NowPlaying_GetFileTagDelegate NowPlaying_GetFileTag; + public NowPlaying_GetLyricsDelegate NowPlaying_GetLyrics; + public NowPlaying_GetArtworkDelegate NowPlaying_GetArtwork; + public NowPlayingList_ActionDelegate NowPlayingList_Clear; + public Library_QueryFilesDelegate NowPlayingList_QueryFiles; + public Library_QueryGetNextFileDelegate NowPlayingList_QueryGetNextFile; + public NowPlayingList_FileActionDelegate NowPlayingList_PlayNow; + public NowPlayingList_FileActionDelegate NowPlayingList_QueueNext; + public NowPlayingList_FileActionDelegate NowPlayingList_QueueLast; + public NowPlayingList_ActionDelegate NowPlayingList_PlayLibraryShuffled; + public Playlist_QueryPlaylistsDelegate Playlist_QueryPlaylists; + public Playlist_QueryGetNextPlaylistDelegate Playlist_QueryGetNextPlaylist; + public Playlist_GetTypeDelegate Playlist_GetType; + public Playlist_QueryFilesDelegate Playlist_QueryFiles; + public Library_QueryGetNextFileDelegate Playlist_QueryGetNextFile; + public MB_WindowHandleDelegate MB_GetWindowHandle; + public MB_RefreshPanelsDelegate MB_RefreshPanels; + public MB_SendNotificationDelegate MB_SendNotification; + public MB_AddMenuItemDelegate MB_AddMenuItem; + public Setting_GetFieldNameDelegate Setting_GetFieldName; + [Obsolete("Use Library_QueryFilesEx", true)] + public Library_QueryGetAllFilesDelegate Library_QueryGetAllFiles; + [Obsolete("Use NowPlayingList_QueryFilesEx", true)] + public Library_QueryGetAllFilesDelegate NowPlayingList_QueryGetAllFiles; + [Obsolete("Use Playlist_QueryFilesEx", true)] + public Library_QueryGetAllFilesDelegate Playlist_QueryGetAllFiles; + public MB_CreateBackgroundTaskDelegate MB_CreateBackgroundTask; + public MB_SetBackgroundTaskMessageDelegate MB_SetBackgroundTaskMessage; + public MB_RegisterCommandDelegate MB_RegisterCommand; + public Setting_GetDefaultFontDelegate Setting_GetDefaultFont; + public Player_GetShowTimeRemainingDelegate Player_GetShowTimeRemaining; + public NowPlayingList_GetCurrentIndexDelegate NowPlayingList_GetCurrentIndex; + public NowPlayingList_GetFileUrlDelegate NowPlayingList_GetListFileUrl; + public NowPlayingList_GetFilePropertyDelegate NowPlayingList_GetFileProperty; + public NowPlayingList_GetFileTagDelegate NowPlayingList_GetFileTag; + public NowPlaying_GetSpectrumDataDelegate NowPlaying_GetSpectrumData; + public NowPlaying_GetSoundGraphDelegate NowPlaying_GetSoundGraph; + public MB_GetPanelBoundsDelegate MB_GetPanelBounds; + public MB_AddPanelDelegate MB_AddPanel; + public MB_RemovePanelDelegate MB_RemovePanel; + public MB_GetLocalisationDelegate MB_GetLocalisation; + public NowPlayingList_IsAnyPriorTracksDelegate NowPlayingList_IsAnyPriorTracks; + public NowPlayingList_IsAnyFollowingTracksDelegate NowPlayingList_IsAnyFollowingTracks; + public Player_ShowEqualiserDelegate Player_ShowEqualiser; + public Player_GetAutoDjEnabledDelegate Player_GetAutoDjEnabled; + public Player_GetStopAfterCurrentEnabledDelegate Player_GetStopAfterCurrentEnabled; + public Player_GetCrossfadeDelegate Player_GetCrossfade; + public Player_SetCrossfadeDelegate Player_SetCrossfade; + public Player_GetReplayGainModeDelegate Player_GetReplayGainMode; + public Player_SetReplayGainModeDelegate Player_SetReplayGainMode; + public Player_QueueRandomTracksDelegate Player_QueueRandomTracks; + public Setting_GetDataTypeDelegate Setting_GetDataType; + public NowPlayingList_GetNextIndexDelegate NowPlayingList_GetNextIndex; + public NowPlaying_GetArtistPictureDelegate NowPlaying_GetArtistPicture; + public NowPlaying_GetArtworkDelegate NowPlaying_GetDownloadedArtwork; + // api version 16 + public MB_ShowNowPlayingAssistantDelegate MB_ShowNowPlayingAssistant; + // api version 17 + public NowPlaying_GetLyricsDelegate NowPlaying_GetDownloadedLyrics; + // api version 18 + public Player_GetShowRatingTrackDelegate Player_GetShowRatingTrack; + public Player_GetShowRatingLoveDelegate Player_GetShowRatingLove; + // api version 19 + public MB_CreateParameterisedBackgroundTaskDelegate MB_CreateParameterisedBackgroundTask; + public Setting_GetLastFmUserIdDelegate Setting_GetLastFmUserId; + public Playlist_GetNameDelegate Playlist_GetName; + public Playlist_CreatePlaylistDelegate Playlist_CreatePlaylist; + public Playlist_SetFilesDelegate Playlist_SetFiles; + public Library_QuerySimilarArtistsDelegate Library_QuerySimilarArtists; + public Library_QueryLookupTableDelegate Library_QueryLookupTable; + public Library_QueryGetLookupTableValueDelegate Library_QueryGetLookupTableValue; + public NowPlayingList_FilesActionDelegate NowPlayingList_QueueFilesNext; + public NowPlayingList_FilesActionDelegate NowPlayingList_QueueFilesLast; + // api version 20 + public Setting_GetWebProxyDelegate Setting_GetWebProxy; + // api version 21 + public NowPlayingList_RemoveAtDelegate NowPlayingList_RemoveAt; + // api version 22 + public Playlist_RemoveAtDelegate Playlist_RemoveAt; + // api version 23 + public MB_SetPanelScrollableAreaDelegate MB_SetPanelScrollableArea; + // api version 24 + public MB_InvokeCommandDelegate MB_InvokeCommand; + public MB_OpenFilterInTabDelegate MB_OpenFilterInTab; + // api version 25 + public MB_SetWindowSizeDelegate MB_SetWindowSize; + public Library_GetArtistPictureDelegate Library_GetArtistPicture; + public Pending_GetFileUrlDelegate Pending_GetFileUrl; + public Pending_GetFilePropertyDelegate Pending_GetFileProperty; + public Pending_GetFileTagDelegate Pending_GetFileTag; + // api version 26 + public Player_GetButtonEnabledDelegate Player_GetButtonEnabled; + // api version 27 + public NowPlayingList_MoveFilesDelegate NowPlayingList_MoveFiles; + // api version 28 + public Library_GetArtworkDelegate Library_GetArtworkUrl; + public Library_GetArtistPictureThumbDelegate Library_GetArtistPictureThumb; + public NowPlaying_GetArtworkDelegate NowPlaying_GetArtworkUrl; + public NowPlaying_GetArtworkDelegate NowPlaying_GetDownloadedArtworkUrl; + public NowPlaying_GetArtistPictureThumbDelegate NowPlaying_GetArtistPictureThumb; + // api version 29 + public Playlist_IsInListDelegate Playlist_IsInList; + // api version 30 + public Library_GetArtistPictureUrlsDelegate Library_GetArtistPictureUrls; + public NowPlaying_GetArtistPictureUrlsDelegate NowPlaying_GetArtistPictureUrls; + // api version 31 + public Playlist_AddFilesDelegate Playlist_AppendFiles; + // api version 32 + public Sync_FileStartDelegate Sync_FileStart; + public Sync_FileEndDelegate Sync_FileEnd; + // api version 33 + public Library_QueryFilesExDelegate Library_QueryFilesEx; + public Library_QueryFilesExDelegate NowPlayingList_QueryFilesEx; + public Playlist_QueryFilesExDelegate Playlist_QueryFilesEx; + public Playlist_MoveFilesDelegate Playlist_MoveFiles; + public Playlist_PlayNowDelegate Playlist_PlayNow; + public NowPlaying_IsSoundtrackDelegate NowPlaying_IsSoundtrack; + public NowPlaying_GetArtistPictureUrlsDelegate NowPlaying_GetSoundtrackPictureUrls; + public Library_GetDevicePersistentIdDelegate Library_GetDevicePersistentId; + public Library_SetDevicePersistentIdDelegate Library_SetDevicePersistentId; + public Library_FindDevicePersistentIdDelegate Library_FindDevicePersistentId; + public Setting_GetValueDelegate Setting_GetValue; + public Library_AddFileToLibraryDelegate Library_AddFileToLibrary; + public Playlist_DeletePlaylistDelegate Playlist_DeletePlaylist; + public Library_GetSyncDeltaDelegate Library_GetSyncDelta; + // api version 35 + public Library_GetFileTagsDelegate Library_GetFileTags; + public NowPlaying_GetFileTagsDelegate NowPlaying_GetFileTags; + public NowPlayingList_GetFileTagsDelegate NowPlayingList_GetFileTags; + // api version 43 + public MB_AddTreeNodeDelegate MB_AddTreeNode; + public MB_DownloadFileDelegate MB_DownloadFile; + // api version 47 + public Setting_GetFileConvertCommandLineDelegate Setting_GetFileConvertCommandLine; + public Player_OpenStreamHandleDelegate Player_OpenStreamHandle; + public Player_UpdatePlayStatisticsDelegate Player_UpdatePlayStatistics; + public Library_GetArtworkExDelegate Library_GetArtworkEx; + public Library_SetArtworkExDelegate Library_SetArtworkEx; + public MB_GetVisualiserInformationDelegate MB_GetVisualiserInformation; + public MB_ShowVisualiserDelegate MB_ShowVisualiser; + public MB_GetPluginViewInformationDelegate MB_GetPluginViewInformation; + public MB_ShowPluginViewDelegate MB_ShowPluginView; + public Player_GetOutputDevicesDelegate Player_GetOutputDevices; + public Player_SetOutputDeviceDelegate Player_SetOutputDevice; + // api version 48 + public MB_UninistallPluginDelegate MB_UninstallPlugin; + } + + public enum MusicBeeVersion + { + v2_0 = 0, + v2_1 = 1, + v2_2 = 2, + v2_3 = 3, + v2_4 = 4, + v2_5 = 5, + v3_0 = 6 + } + + public enum PluginType + { + Unknown = 0, + General = 1, + LyricsRetrieval = 2, + ArtworkRetrieval = 3, + PanelView = 4, + DataStream = 5, + InstantMessenger = 6, + Storage = 7, + VideoPlayer = 8, + DSP = 9, + TagRetrieval = 10, + TagOrArtworkRetrieval = 11, + Upnp = 12 + } + + [StructLayout(LayoutKind.Sequential)] + public class PluginInfo + { + public short PluginInfoVersion; + public PluginType Type; + public string Name; + public string Description; + public string Author; + public string TargetApplication; + public short VersionMajor; + public short VersionMinor; + public short Revision; + public short MinInterfaceVersion; + public short MinApiRevision; + public ReceiveNotificationFlags ReceiveNotifications; + public int ConfigurationPanelHeight; + } + + [Flags()] + public enum ReceiveNotificationFlags + { + StartupOnly = 0x0, + PlayerEvents = 0x1, + DataStreamEvents = 0x2, + TagEvents = 0x04, + DownloadEvents = 0x08 + } + + public enum NotificationType + { + PluginStartup = 0, // notification sent after successful initialisation for an enabled plugin + TrackChanging = 16, + TrackChanged = 1, + PlayStateChanged = 2, + AutoDjStarted = 3, + AutoDjStopped = 4, + VolumeMuteChanged = 5, + VolumeLevelChanged = 6, + NowPlayingListChanged = 7, + NowPlayingListEnded = 18, + NowPlayingArtworkReady = 8, + NowPlayingLyricsReady = 9, + TagsChanging = 10, + TagsChanged = 11, + RatingChanging = 15, + RatingChanged = 12, + PlayCountersChanged = 13, + ScreenSaverActivating = 14, + ShutdownStarted = 17, + EmbedInPanel = 19, + PlayerRepeatChanged = 20, + PlayerShuffleChanged = 21, + PlayerEqualiserOnOffChanged = 22, + PlayerScrobbleChanged = 23, + ReplayGainChanged = 24, + FileDeleting = 25, + FileDeleted = 26, + ApplicationWindowChanged = 27, + StopAfterCurrentChanged = 28, + LibrarySwitched = 29, + FileAddedToLibrary = 30, + FileAddedToInbox = 31, + SynchCompleted = 32, + DownloadCompleted = 33, + MusicBeeStarted = 34 + } + + public enum PluginCloseReason + { + MusicBeeClosing = 1, + UserDisabled = 2, + StopNoUnload = 3 + } + + public enum CallbackType + { + SettingsUpdated = 1, + StorageReady = 2, + StorageFailed = 3, + FilesRetrievedChanged = 4, + FilesRetrievedNoChange = 5, + FilesRetrievedFail = 6, + LyricsDownloaded = 7, + StorageEject = 8, + SuspendPlayCounters = 9, + ResumePlayCounters = 10, + EnablePlugin = 11, + DisablePlugin = 12, + RenderingDevicesChanged = 13, + FullscreenOn = 14, + FullscreenOff = 15 + } + + public enum FilePropertyType + { + Url = 2, + Kind = 4, + Format = 5, + Size = 7, + Channels = 8, + SampleRate = 9, + Bitrate = 10, + DateModified = 11, + DateAdded = 12, + LastPlayed = 13, + PlayCount = 14, + SkipCount = 15, + Duration = 16, + Status = 21, + NowPlayingListIndex = 78, // only has meaning when called from NowPlayingList_* commands + ReplayGainTrack = 94, + ReplayGainAlbum = 95 + } + + public enum MetaDataType + { + TrackTitle = 65, + Album = 30, + AlbumArtist = 31, // displayed album artist + AlbumArtistRaw = 34, // stored album artist + Artist = 32, // displayed artist + MultiArtist = 33, // individual artists, separated by a null char + PrimaryArtist = 19, // first artist from multi-artist tagged file, otherwise displayed artist + Artists = 144, + ArtistsWithArtistRole = 145, + ArtistsWithPerformerRole = 146, + ArtistsWithGuestRole = 147, + ArtistsWithRemixerRole = 148, + Artwork = 40, + BeatsPerMin = 41, + Composer = 43, // displayed composer + MultiComposer = 89, // individual composers, separated by a null char + Comment = 44, + Conductor = 45, + Custom1 = 46, + Custom2 = 47, + Custom3 = 48, + Custom4 = 49, + Custom5 = 50, + Custom6 = 96, + Custom7 = 97, + Custom8 = 98, + Custom9 = 99, + Custom10 = 128, + Custom11 = 129, + Custom12 = 130, + Custom13 = 131, + Custom14 = 132, + Custom15 = 133, + Custom16 = 134, + DiscNo = 52, + DiscCount = 54, + Encoder = 55, + Genre = 59, + Genres = 143, + GenreCategory = 60, + Grouping = 61, + Keywords = 84, + HasLyrics = 63, + Lyricist = 62, + Lyrics = 114, + Mood = 64, + Occasion = 66, + Origin = 67, + Publisher = 73, + Quality = 74, + Rating = 75, + RatingLove = 76, + RatingAlbum = 104, + Tempo = 85, + TrackNo = 86, + TrackCount = 87, + Virtual1 = 109, + Virtual2 = 110, + Virtual3 = 111, + Virtual4 = 112, + Virtual5 = 113, + Virtual6 = 122, + Virtual7 = 123, + Virtual8 = 124, + Virtual9 = 125, + Virtual10 = 135, + Virtual11 = 136, + Virtual12 = 137, + Virtual13 = 138, + Virtual14 = 139, + Virtual15 = 140, + Virtual16 = 141, + Year = 88 + } + + public enum FileCodec + { + Unknown = -1, + Mp3 = 1, + Aac = 2, + Flac = 3, + Ogg = 4, + WavPack = 5, + Wma = 6, + Tak = 7, + Mpc = 8, + Wave = 9, + Asx = 10, + Alac = 11, + Aiff = 12, + Pcm = 13, + Opus = 15, + Spx = 16, + Dsd = 17, + AacNoContainer = 18 + } + + public enum EncodeQuality + { + SmallSize = 1, + Portable = 2, + HighQuality = 3, + Archiving = 4 + } + + [Flags()] + public enum LibraryCategory + { + Music = 0, + Audiobook = 1, + Video = 2, + Inbox = 4 + } + + public enum DeviceIdType + { + GooglePlay = 1, + AppleDevice = 2, + GooglePlay2 = 3, + AppleDevice2 = 4 + } + + public enum DataType + { + String = 0, + Number = 1, + DateTime = 2, + Rating = 3 + } + + public enum SettingId + { + CompactPlayerFlickrEnabled = 1, + FileTaggingPreserveModificationTime = 2, + LastDownloadFolder = 3, + ArtistGenresOnly = 4, + IgnoreNamePrefixes = 5, + IgnoreNameChars = 6, + PlayCountTriggerPercent = 7, + PlayCountTriggerSeconds = 8, + SkipCountTriggerPercent = 9, + SkipCountTriggerSeconds = 10, + CustomWebLinkName1 = 11, + CustomWebLinkName2 = 12, + CustomWebLinkName3 = 13, + CustomWebLinkName4 = 14, + CustomWebLinkName5 = 15, + CustomWebLinkName6 = 16, + CustomWebLink1 = 17, + CustomWebLink2 = 18, + CustomWebLink3 = 19, + CustomWebLink4 = 20, + CustomWebLink5 = 21, + CustomWebLink6 = 22, + CustomWebLinkNowPlaying1 = 23, + CustomWebLinkNowPlaying2 = 24, + CustomWebLinkNowPlaying3 = 25, + CustomWebLinkNowPlaying4 = 26, + CustomWebLinkNowPlaying5 = 27, + CustomWebLinkNowPlaying6 = 28 + } + + public enum ComparisonType + { + Is = 0, + IsSimilar = 20 + } + + public enum LyricsType + { + NotSpecified = 0, + Synchronised = 1, + UnSynchronised = 2 + } + + public enum PlayState + { + Undefined = 0, + Loading = 1, + Playing = 3, + Paused = 6, + Stopped = 7 + } + + public enum RepeatMode + { + None = 0, + All = 1, + One = 2 + } + + public enum PlayButtonType + { + PreviousTrack = 0, + PlayPause = 1, + NextTrack = 2, + Stop = 3 + } + + public enum PlaylistFormat + { + Unknown = 0, + M3u = 1, + Xspf = 2, + Asx = 3, + Wpl = 4, + Pls = 5, + Auto = 7, + M3uAscii = 8, + AsxFile = 9, + Radio = 10, + M3uExtended = 11, + Mbp = 12 + } + + public enum SkinElement + { + SkinInputControl = 7, + SkinInputPanel = 10, + SkinInputPanelLabel = 14, + SkinTrackAndArtistPanel = -1 + } + + public enum ElementState + { + ElementStateDefault = 0, + ElementStateModified = 6 + } + + public enum ElementComponent + { + ComponentBorder = 0, + ComponentBackground = 1, + ComponentForeground = 3 + } + + public enum PluginPanelDock + { + ApplicationWindow = 0, + TrackAndArtistPanel = 1, + TextBox = 3, + ComboBox = 4, + MainPanel = 5 + } + + + public enum ReplayGainMode + { + Off = 0, + Track = 1, + Album = 2, + Smart = 3 + } + + public enum PlayStatisticType + { + NoChange = 0, + IncreasePlayCount = 1, + IncreaseSkipCount = 2 + } + + public enum Command + { + NavigateTo = 1 + } + + public enum DownloadTarget + { + Inbox = 0, + MusicLibrary = 1, + SpecificFolder = 3 + } + + [Flags()] + public enum PictureLocations: byte + { + None = 0, + EmbedInFile = 1, + LinkToOrganisedCopy = 2, + LinkToSource = 4, + FolderThumb = 8 + } + + public enum WindowState + { + Off = -1, + Normal = 0, + Fullscreen = 1, + Desktop = 2 + } + + public delegate void MB_ReleaseStringDelegate(string p1); + public delegate void MB_TraceDelegate(string p1); + public delegate IntPtr MB_WindowHandleDelegate(); + public delegate void MB_RefreshPanelsDelegate(); + public delegate void MB_SendNotificationDelegate(CallbackType type); + public delegate System.Windows.Forms.ToolStripItem MB_AddMenuItemDelegate(string menuPath, string hotkeyDescription, EventHandler handler); + public delegate bool MB_AddTreeNodeDelegate(string treePath, string name, System.Drawing.Bitmap icon, EventHandler openHandler, EventHandler closeHandler); + public delegate void MB_RegisterCommandDelegate(string command, EventHandler handler); + public delegate void MB_CreateBackgroundTaskDelegate(System.Threading.ThreadStart taskCallback, System.Windows.Forms.Form owner); + public delegate void MB_CreateParameterisedBackgroundTaskDelegate(System.Threading.ParameterizedThreadStart taskCallback, object parameters, System.Windows.Forms.Form owner); + public delegate void MB_SetBackgroundTaskMessageDelegate(string message); + public delegate System.Drawing.Rectangle MB_GetPanelBoundsDelegate(PluginPanelDock dock); + public delegate bool MB_SetPanelScrollableAreaDelegate(System.Windows.Forms.Control panel, System.Drawing.Size scrollArea, bool alwaysShowScrollBar); + public delegate System.Windows.Forms.Control MB_AddPanelDelegate(System.Windows.Forms.Control panel, PluginPanelDock dock); + public delegate void MB_RemovePanelDelegate(System.Windows.Forms.Control panel); + public delegate string MB_GetLocalisationDelegate(string id, string defaultText); + public delegate bool MB_ShowNowPlayingAssistantDelegate(); + public delegate bool MB_InvokeCommandDelegate(Command command, object parameter); + public delegate bool MB_OpenFilterInTabDelegate(MetaDataType field1, ComparisonType comparison1, string value1, MetaDataType field2, ComparisonType comparison2, string value2); + public delegate bool MB_SetWindowSizeDelegate(int width, int height); + public delegate bool MB_DownloadFileDelegate(string url, DownloadTarget target, string targetFolder, bool cancelDownload); + public delegate bool MB_GetVisualiserInformationDelegate(out string[] visualiserNames, out string defaultVisualiserName, out WindowState defaultState, out WindowState currentState); + public delegate bool MB_ShowVisualiserDelegate(string visualiserName, WindowState state); + public delegate bool MB_GetPluginViewInformationDelegate(string pluginFilename, out string[] viewNames, out string defaultViewName, out WindowState defaultState, out WindowState currentState); + public delegate bool MB_ShowPluginViewDelegate(string pluginFilename, string viewName, WindowState state); + public delegate bool MB_UninistallPluginDelegate(string pluginFilename, string password); + public delegate string Setting_GetFieldNameDelegate(MetaDataType field); + public delegate string Setting_GetPersistentStoragePathDelegate(); + public delegate string Setting_GetSkinDelegate(); + public delegate int Setting_GetSkinElementColourDelegate(SkinElement element, ElementState state, ElementComponent component); + public delegate bool Setting_IsWindowBordersSkinnedDelegate(); + public delegate System.Drawing.Font Setting_GetDefaultFontDelegate(); + public delegate DataType Setting_GetDataTypeDelegate(MetaDataType field); + public delegate string Setting_GetLastFmUserIdDelegate(); + public delegate string Setting_GetWebProxyDelegate(); + public delegate bool Setting_GetValueDelegate(SettingId settingId, ref object value); + public delegate string Setting_GetFileConvertCommandLineDelegate(FileCodec codec, EncodeQuality encodeQuality); + public delegate string Library_GetFilePropertyDelegate(string sourceFileUrl, FilePropertyType type); + public delegate string Library_GetFileTagDelegate(string sourceFileUrl, MetaDataType field); + public delegate bool Library_GetFileTagsDelegate(string sourceFileUrl, MetaDataType[] fields, ref string[] results); + public delegate bool Library_SetFileTagDelegate(string sourceFileUrl, MetaDataType field, string value); + public delegate string Library_GetDevicePersistentIdDelegate(string sourceFileUrl, DeviceIdType idType); + public delegate bool Library_SetDevicePersistentIdDelegate(string sourceFileUrl, DeviceIdType idType, string value); + public delegate bool Library_FindDevicePersistentIdDelegate(DeviceIdType idType, string[] ids, ref string[] values); + public delegate bool Library_CommitTagsToFileDelegate(string sourceFileUrl); + public delegate string Library_AddFileToLibraryDelegate(string sourceFileUrl, LibraryCategory category); + public delegate bool Library_GetSyncDeltaDelegate(string[] cachedFiles, DateTime updatedSince, LibraryCategory categories, ref string[] newFiles, ref string[] updatedFiles, ref string[] deletedFiles); + public delegate string Library_GetLyricsDelegate(string sourceFileUrl, LyricsType type); + public delegate string Library_GetArtworkDelegate(string sourceFileUrl, int index); + public delegate bool Library_GetArtworkExDelegate(string sourceFileUrl, int index, bool retrievePictureData, ref PictureLocations pictureLocations, ref string pictureUrl, ref byte[] imageData); + public delegate bool Library_SetArtworkExDelegate(string sourceFileUrl, int index, byte[] imageData); + public delegate string Library_GetArtistPictureDelegate(string artistName, int fadingPercent, int fadingColor); + public delegate bool Library_GetArtistPictureUrlsDelegate(string artistName, bool localOnly, ref string[] urls); + public delegate string Library_GetArtistPictureThumbDelegate(string artistName); + public delegate bool Library_QueryFilesDelegate(string query); + public delegate string Library_QueryGetNextFileDelegate(); + public delegate string Library_QueryGetAllFilesDelegate(); + public delegate bool Library_QueryFilesExDelegate(string query, ref string[] files); + public delegate string Library_QuerySimilarArtistsDelegate(string artistName, double minimumArtistSimilarityRating); + public delegate bool Library_QueryLookupTableDelegate(string keyTags, string valueTags, string query); + public delegate string Library_QueryGetLookupTableValueDelegate(string key); + public delegate int Player_GetPositionDelegate(); + public delegate bool Player_SetPositionDelegate(int position); + public delegate PlayState Player_GetPlayStateDelegate(); + public delegate bool Player_GetButtonEnabledDelegate(PlayButtonType button); + public delegate bool Player_ActionDelegate(); + public delegate int Player_QueueRandomTracksDelegate(int count); + public delegate float Player_GetVolumeDelegate(); + public delegate bool Player_SetVolumeDelegate(float volume); + public delegate bool Player_GetMuteDelegate(); + public delegate bool Player_SetMuteDelegate(bool mute); + public delegate bool Player_GetShuffleDelegate(); + public delegate bool Player_SetShuffleDelegate(bool shuffle); + public delegate RepeatMode Player_GetRepeatDelegate(); + public delegate bool Player_SetRepeatDelegate(RepeatMode repeat); + public delegate bool Player_GetEqualiserEnabledDelegate(); + public delegate bool Player_SetEqualiserEnabledDelegate(bool enabled); + public delegate bool Player_GetDspEnabledDelegate(); + public delegate bool Player_SetDspEnabledDelegate(bool enabled); + public delegate bool Player_GetScrobbleEnabledDelegate(); + public delegate bool Player_SetScrobbleEnabledDelegate(bool enabled); + public delegate bool Player_GetShowTimeRemainingDelegate(); + public delegate bool Player_GetShowRatingTrackDelegate(); + public delegate bool Player_GetShowRatingLoveDelegate(); + public delegate bool Player_ShowEqualiserDelegate(); + public delegate bool Player_GetAutoDjEnabledDelegate(); + public delegate bool Player_GetStopAfterCurrentEnabledDelegate(); + public delegate bool Player_GetCrossfadeDelegate(); + public delegate bool Player_SetCrossfadeDelegate(bool crossfade); + public delegate ReplayGainMode Player_GetReplayGainModeDelegate(); + public delegate bool Player_SetReplayGainModeDelegate(ReplayGainMode mode); + public delegate int Player_OpenStreamHandleDelegate(string url, bool useMusicBeeSettings, bool enableDsp, ReplayGainMode gainType); + public delegate bool Player_UpdatePlayStatisticsDelegate(string url, PlayStatisticType countType, bool disableScrobble); + public delegate bool Player_GetOutputDevicesDelegate(out string[] deviceNames, out string activeDeviceName); + public delegate bool Player_SetOutputDeviceDelegate(string deviceName); + public delegate string NowPlaying_GetFileUrlDelegate(); + public delegate int NowPlaying_GetDurationDelegate(); + public delegate string NowPlaying_GetFilePropertyDelegate(FilePropertyType type); + public delegate string NowPlaying_GetFileTagDelegate(MetaDataType field); + public delegate bool NowPlaying_GetFileTagsDelegate(MetaDataType[] fields, ref string[] results); + public delegate string NowPlaying_GetLyricsDelegate(); + public delegate string NowPlaying_GetArtworkDelegate(); + public delegate string NowPlaying_GetArtistPictureDelegate(int fadingPercent); + public delegate bool NowPlaying_GetArtistPictureUrlsDelegate(bool localOnly, ref string[] urls); + public delegate string NowPlaying_GetArtistPictureThumbDelegate(); + public delegate bool NowPlaying_IsSoundtrackDelegate(); + public delegate int NowPlaying_GetSpectrumDataDelegate(float[] fftData); + public delegate bool NowPlaying_GetSoundGraphDelegate(float[] graphData); + public delegate int NowPlayingList_GetCurrentIndexDelegate(); + public delegate int NowPlayingList_GetNextIndexDelegate(int offset); + public delegate bool NowPlayingList_IsAnyPriorTracksDelegate(); + public delegate bool NowPlayingList_IsAnyFollowingTracksDelegate(); + public delegate string NowPlayingList_GetFileUrlDelegate(int index); + public delegate string NowPlayingList_GetFilePropertyDelegate(int index, FilePropertyType type); + public delegate string NowPlayingList_GetFileTagDelegate(int index, MetaDataType field); + public delegate bool NowPlayingList_GetFileTagsDelegate(int index, MetaDataType[] fields, ref string[] results); + public delegate bool NowPlayingList_ActionDelegate(); + public delegate bool NowPlayingList_FileActionDelegate(string sourceFileUrl); + public delegate bool NowPlayingList_FilesActionDelegate(string[] sourceFileUrl); + public delegate bool NowPlayingList_RemoveAtDelegate(int index); + public delegate bool NowPlayingList_MoveFilesDelegate(int[] fromIndices, int toIndex); + public delegate string Playlist_GetNameDelegate(string playlistUrl); + public delegate PlaylistFormat Playlist_GetTypeDelegate(string playlistUrl); + public delegate bool Playlist_QueryPlaylistsDelegate(); + public delegate string Playlist_QueryGetNextPlaylistDelegate(); + public delegate bool Playlist_IsInListDelegate(string playlistUrl, string filename); + public delegate bool Playlist_QueryFilesDelegate(string playlistUrl); + public delegate bool Playlist_QueryFilesExDelegate(string playlistUrl, ref string[] filenames); + public delegate string Playlist_CreatePlaylistDelegate(string folderName, string playlistName, string[] filenames); + public delegate bool Playlist_DeletePlaylistDelegate(string playlistUrl); + public delegate bool Playlist_SetFilesDelegate(string playlistUrl, string[] filenames); + public delegate bool Playlist_AddFilesDelegate(string playlistUrl, string[] filenames); + public delegate bool Playlist_RemoveAtDelegate(string playlistUrl, int index); + public delegate bool Playlist_MoveFilesDelegate(string playlistUrl, int[] fromIndices, int toIndex); + public delegate bool Playlist_PlayNowDelegate(string playlistUrl); + public delegate string Pending_GetFileUrlDelegate(); + public delegate string Pending_GetFilePropertyDelegate(FilePropertyType field); + public delegate string Pending_GetFileTagDelegate(MetaDataType field); + public delegate string Sync_FileStartDelegate(string filename); + public delegate void Sync_FileEndDelegate(string filename, bool success, string errorMessage); + + [System.Security.SuppressUnmanagedCodeSecurity()] + [DllImport("kernel32.dll")] + private static extern void CopyMemory(ref MusicBeeApiInterface mbApiInterface, IntPtr src, int length); + } +} \ No newline at end of file diff --git a/Source Files/PanelInterface.cs b/Source Files/PanelInterface.cs new file mode 100644 index 0000000..c30c07c --- /dev/null +++ b/Source Files/PanelInterface.cs @@ -0,0 +1,362 @@ +using System; +using System.IO; +using System.Drawing; +using System.Windows.Forms; +using System.Net; +using System.Threading; +using System.Collections.Generic; +using Microsoft.Win32; + +namespace MusicBeePlugin +{ + + public partial class Plugin + { + private MusicBeeApiInterface mbApiInterface; + private PluginInfo about = new PluginInfo(); + private Control panel; + public int panelHeight; + private static string _searchTerm, _savedAlbumsPath; + Font largeBold, smallRegular, smallBold; + static System.Threading.Timer authTimer; + + static void TickTimer(object state) + { + _auth = 0; + } + + public PluginInfo Initialise(IntPtr apiInterfacePtr) + { + mbApiInterface = new MusicBeeApiInterface(); + mbApiInterface.Initialise(apiInterfacePtr); + about.PluginInfoVersion = PluginInfoVersion; + about.Name = "mb_Spotify_Plugin"; + about.Description = "This plugin integrates Spotify with MusicBee."; + about.Author = "Zachary Cohen"; + about.TargetApplication = "Spotify Plugin"; + about.Type = PluginType.PanelView; + about.VersionMajor = 2; + about.VersionMinor = 0; + about.Revision = 2; + about.MinInterfaceVersion = MinInterfaceVersion; + about.MinApiRevision = MinApiRevision; + about.ReceiveNotifications = (ReceiveNotificationFlags.PlayerEvents | ReceiveNotificationFlags.TagEvents); + about.ConfigurationPanelHeight = 0; + + _savedAlbumsPath = mbApiInterface.Setting_GetPersistentStoragePath() + @"spotify.txt"; + + SystemEvents.PowerModeChanged += OnPowerChange; + + return about; + } + + + public int OnDockablePanelCreated(Control panel) + { + + float dpiScaling = 0; + + + largeBold = new Font(panel.Font.FontFamily, 9, FontStyle.Bold); + smallRegular = new Font(panel.Font.FontFamily, 8); + smallBold = new Font(panel.Font.FontFamily, 8, FontStyle.Bold); + + panel.Paint += DrawPanel; + panel.Click += PanelClick; + + this.panel = panel; + panelHeight = Convert.ToInt32(145 * dpiScaling); + return panelHeight; + } + + public string Truncate(string text, Font font) + { + + if (TextRenderer.MeasureText(text + "...", font).Width < panel.Width) + { + + return text; + + } + else + { + + int i = text.Length; + while (TextRenderer.MeasureText(text + "...", font).Width > panel.Width) + { + text = text.Substring(0, --i); + if (i == 0) break; + } + + return text = text + "..."; + } + + } + + private void DrawPanel(object sender, PaintEventArgs e) + { + + var bg = panel.BackColor; + var text1 = panel.ForeColor; + var text2 = text1; + var highlight = Color.FromArgb(2021216); + e.Graphics.Clear(bg); + panel.Cursor = Cursors.Hand; + + // re-draws when file is found? + if (_auth == 1 && _trackMissing != 1) + { + //MessageBox.Show("Drawing."); + + TextRenderer.DrawText(e.Graphics, _title, largeBold, new Point(5, 10), text1); + TextRenderer.DrawText(e.Graphics, _artist, smallRegular, new Point(5, 30), text1); + TextRenderer.DrawText(e.Graphics, _album, smallRegular, new Point(5, 50), text1); + + WebClient webClient = new WebClient(); + byte[] data = webClient.DownloadData(_imageURL); + System.Drawing.Image image = System.Drawing.Image.FromStream(new MemoryStream(data)); + image = new Bitmap(image, new Size(65, 65)); + e.Graphics.DrawImage(image, new Point(10, 80)); + webClient.Dispose(); + + + if (CheckTrack(_trackID)) + { + TextRenderer.DrawText(e.Graphics, "Track Saved in Library", smallBold, new Point(80, 85), text1); + } + else + { + TextRenderer.DrawText(e.Graphics, "Track Not in Library", smallRegular, new Point(80, 85), text1); + } + + if (CheckAlbum(_albumID)) + { + TextRenderer.DrawText(e.Graphics, "Album Saved in Library", smallBold, new Point(80, 105), text1); + } + else + { + TextRenderer.DrawText(e.Graphics, "Album Not in Library", smallRegular, new Point(80, 105), text1); + } + + if (CheckArtist(_artistID)) + { + TextRenderer.DrawText(e.Graphics, "Artist Already Followed", smallBold, new Point(80, 125), text1); + } + else + { + TextRenderer.DrawText(e.Graphics, "Artist Not Followed", smallRegular, new Point(80, 125), text1); + } + + + } + else if (_auth == 1 && _trackMissing == 1) + { + + //MessageBox.Show("Drawing."); + TextRenderer.DrawText(e.Graphics, "No Track Found!", new Font(panel.Font.FontFamily, 12), new Point(5, 70), text1); + + } + else if (_auth == 0) + { + //MessageBox.Show("Drawing."); + TextRenderer.DrawText(e.Graphics, "Please Click Here to \nAuthenticate Spotify.", new Font(panel.Font.FontFamily, 14), new Point(4, 50), text1); + + } + + + } + + public List GetMenuItems() + { + List list = new List(); + ToolStripMenuItem reAuth = new ToolStripMenuItem("Re-authenticate"); + + reAuth.Click += reAuthSpotify; + + list.Add(reAuth); + + return list; + } + + + + private void OnPowerChange(object s, PowerModeChangedEventArgs e) + { + switch (e.Mode) + { + case PowerModes.Resume: + + _auth = 0; + + break; + } + } + + public void reAuthSpotify(object sender, EventArgs e) + { + SpotifyWebAuth(false); + _trackMissing = 1; + panel.Invalidate(); + } + + private void PanelClick(object sender, EventArgs e) + { + + + MouseEventArgs me = (MouseEventArgs)e; + if (_auth == 0 && me.Button == System.Windows.Forms.MouseButtons.Left) + { + + SpotifyWebAuth(false); + _trackMissing = 1; + + panel.Invalidate(); + //panel.Paint += DrawPanel; + + } + else if (_auth == 1 && me.Button == System.Windows.Forms.MouseButtons.Left) + { + + Point point = panel.PointToClient(Cursor.Position); + float currentPosX = point.X; + float currentPosY = point.Y; + + + if (point.X > 80 && point.X < this.panel.Width && point.Y < 140 && point.Y > 130) + { + + if (_artistLIB) + { + UnfollowArtist(); + panel.Invalidate(); + //panel.Paint += DrawPanel; + } + else + { + FollowArtist(); + panel.Invalidate(); + //panel.Paint += DrawPanel; + } + + } + else if (point.X > 80 && point.X < this.panel.Width && point.Y < 120 && point.Y > 110) + { + + if (_albumLIB) + { + RemoveAlbum(); + GenerateAlbumList(); + panel.Invalidate(); + //panel.Paint += DrawPanel; + } + else + { + SaveAlbum(); + GenerateAlbumList(); + panel.Invalidate(); + //panel.Paint += DrawPanel; + } + + } + else if (point.X > 80 && point.X < this.panel.Width && point.Y < 100 && point.Y > 90) + { + + if (_trackLIB) + { + RemoveTrack(); + panel.Invalidate(); + //panel.Paint += DrawPanel; + } + else + { + SaveTrack(); + panel.Invalidate(); + //panel.Paint += DrawPanel; + } + + } + + + } + + + } + + + public void ReceiveNotification(string sourceFileUrl, NotificationType type) + { + + switch (type) + { + // Window stacking doesn't work with custom panel plugins. + + //case NotificationType.PluginStartup: + + // panel.Invalidate(); + // //panel.Paint += DrawPanel; + + + // break; + + case NotificationType.TrackChanged: + + + if(_runOnce == true) + { + authTimer = new System.Threading.Timer( + new TimerCallback(TickTimer), + null, + 3600000, + 3600000); + + GenerateAlbumList(); + _runOnce = false; + } + + + _trackMissing = 0; + _num = 0; + _searchTerm = mbApiInterface.NowPlaying_GetFileTag(MetaDataType.TrackTitle) + " + " + mbApiInterface.NowPlaying_GetFileTag(MetaDataType.Artist); + + + if (_auth == 1) + { + mbApiInterface.MB_RefreshPanels(); + TrackSearch(); + } + + + panel.Invalidate(); + //panel.Paint += DrawPanel; + + break; + + } + } + + + + public bool Configure(IntPtr panelHandle) + { + + + return true; + } + + public void SaveSettings() + { + + } + + public void Close(PluginCloseReason reason) + { + SystemEvents.PowerModeChanged -= OnPowerChange; + } + + public void Uninstall() + { + } + + } + +} diff --git a/Source Files/Properties/AssemblyInfo.cs b/Source Files/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..9754288 --- /dev/null +++ b/Source Files/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("mb_Spotify_Plugin")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Zachary Cohen")] +[assembly: AssemblyProduct("mb_Spotify_Plugin")] +[assembly: AssemblyCopyright("Copyright © 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("D2937FD0-36F4-40AB-ABF2-60B2CF07ADEE")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("2.0.2.0")] +[assembly: AssemblyFileVersion("2.0.2.0")] diff --git a/Source Files/SpotifyAPI.Web.Auth/AuthUtil.cs b/Source Files/SpotifyAPI.Web.Auth/AuthUtil.cs new file mode 100644 index 0000000..84719e6 --- /dev/null +++ b/Source Files/SpotifyAPI.Web.Auth/AuthUtil.cs @@ -0,0 +1,69 @@ +using System.Diagnostics; +using System.Runtime.InteropServices; +using System.Windows.Forms; +using System.Management.Automation; +using System.Collections.ObjectModel; +using System.Text.RegularExpressions; + +namespace SpotifyAPI.Web.Auth +{ + internal static class AuthUtil + { + public static void OpenBrowser(string url, bool AR) + { +#if NETSTANDARD2_0 + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + url = url.Replace("&", "^&"); + Process.Start(new ProcessStartInfo("cmd", $"/c start {url}")); + } + else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) + { + Process.Start("xdg-open", url); + } + else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) + { + Process.Start("open", url); + } +#else + + + if (AR == true) + { + + + var proc = new Process(); + proc.StartInfo.FileName = "powershell.exe"; + proc.StartInfo.Arguments = $"$ie = new-object -com \"InternetExplorer.Application\"; $ie.navigate(\"\"\" {url} \"\"\"); $ie.visible = $true"; + proc.StartInfo.CreateNoWindow = true; + proc.StartInfo.RedirectStandardError = true; + proc.StartInfo.UseShellExecute = false; + + + if (!proc.Start()) + { + + MessageBox.Show("Powershell didn't start properly."); + return; + + } + + var reader = proc.StandardError; + string line; + while ((line = reader.ReadLine()) != null) System.Console.WriteLine(line); + + proc.Close(); + + + } + else + { + url = url.Replace("&", "^&"); + Process.Start(new ProcessStartInfo("cmd", $"/c start {url}")); + + } +#endif + } + + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web.Auth/AuthorizationCodeAuth.cs b/Source Files/SpotifyAPI.Web.Auth/AuthorizationCodeAuth.cs new file mode 100644 index 0000000..b8687c3 --- /dev/null +++ b/Source Files/SpotifyAPI.Web.Auth/AuthorizationCodeAuth.cs @@ -0,0 +1,134 @@ +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Text; +using System.Threading.Tasks; +using Newtonsoft.Json; +using SpotifyAPI.Web.Enums; +using SpotifyAPI.Web.Models; +using Unosquare.Labs.EmbedIO; +using Unosquare.Labs.EmbedIO.Constants; +using Unosquare.Labs.EmbedIO.Modules; + +namespace SpotifyAPI.Web.Auth +{ + public class AuthorizationCodeAuth : SpotifyAuthServer + { + public string SecretId { get; set; } + + public AuthorizationCodeAuth(string redirectUri, string serverUri, Scope scope = Scope.None, string state = "") + : base("code", "AuthorizationCodeAuth", redirectUri, serverUri, scope, state) + { + } + + public AuthorizationCodeAuth(string clientId, string secretId, string redirectUri, string serverUri, Scope scope = Scope.None, string state = "") + : this(redirectUri, serverUri, scope, state) + { + ClientId = clientId; + SecretId = secretId; + } + + private bool ShouldRegisterNewApp() + { + return string.IsNullOrEmpty(SecretId) || string.IsNullOrEmpty(ClientId); + } + + public override string GetUri() + { + return ShouldRegisterNewApp() ? $"{RedirectUri}/start.html#{State}" : base.GetUri(); + } + + protected override void AdaptWebServer(WebServer webServer) + { + webServer.Module().RegisterController(); + } + + private string GetAuthHeader() => $"Basic {Convert.ToBase64String(Encoding.UTF8.GetBytes(ClientId + ":" + SecretId))}"; + + public async Task RefreshToken(string refreshToken) + { + List> args = new List> + { + new KeyValuePair("grant_type", "refresh_token"), + new KeyValuePair("refresh_token", refreshToken) + }; + + HttpClient client = new HttpClient(); + client.DefaultRequestHeaders.Add("Authorization", GetAuthHeader()); + HttpContent content = new FormUrlEncodedContent(args); + + HttpResponseMessage resp = await client.PostAsync("https://accounts.spotify.com/api/token", content); + string msg = await resp.Content.ReadAsStringAsync(); + + return JsonConvert.DeserializeObject(msg); + } + public async Task ExchangeCode(string code) + { + List> args = new List> + { + new KeyValuePair("grant_type", "authorization_code"), + new KeyValuePair("code", code), + new KeyValuePair("redirect_uri", RedirectUri) + }; + + HttpClient client = new HttpClient(); + client.DefaultRequestHeaders.Add("Authorization", GetAuthHeader()); + HttpContent content = new FormUrlEncodedContent(args); + + HttpResponseMessage resp = await client.PostAsync("https://accounts.spotify.com/api/token", content); + string msg = await resp.Content.ReadAsStringAsync(); + + return JsonConvert.DeserializeObject(msg); + } + } + + public class AuthorizationCode + { + public string Code { get; set; } + + public string Error { get; set; } + } + + internal class AuthorizationCodeAuthController : WebApiController + { + [WebApiHandler(HttpVerbs.Get, "/")] + public Task GetEmpty() + { + string state = Request.QueryString["state"]; + AuthorizationCodeAuth.Instances.TryGetValue(state, out SpotifyAuthServer auth); + + string code = null; + string error = Request.QueryString["error"]; + if (error == null) + code = Request.QueryString["code"]; + + Task.Factory.StartNew(() => auth?.TriggerAuth(new AuthorizationCode + { + Code = code, + Error = error + })); + + return this.StringResponseAsync("OK - This window can be closed now"); + } + + [WebApiHandler(HttpVerbs.Post, "/")] + public async Task PostValues() + { + Dictionary formParams = await this.RequestFormDataDictionaryAsync(); + + string state = (string) formParams["state"]; + AuthorizationCodeAuth.Instances.TryGetValue(state, out SpotifyAuthServer authServer); + + AuthorizationCodeAuth auth = (AuthorizationCodeAuth) authServer; + auth.ClientId = (string) formParams["clientId"]; + auth.SecretId = (string) formParams["secretId"]; + + string uri = auth.GetUri(); + return this.Redirect(uri, false); + } + + public AuthorizationCodeAuthController(IHttpContext context) : base(context) + { + } + } +} diff --git a/Source Files/SpotifyAPI.Web.Auth/CredentialsAuth.cs b/Source Files/SpotifyAPI.Web.Auth/CredentialsAuth.cs new file mode 100644 index 0000000..1da062b --- /dev/null +++ b/Source Files/SpotifyAPI.Web.Auth/CredentialsAuth.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Text; +using System.Threading.Tasks; +using Newtonsoft.Json; +using SpotifyAPI.Web.Models; + +namespace SpotifyAPI.Web.Auth +{ + public class CredentialsAuth + { + public string ClientSecret { get; set; } + + public string ClientId { get; set; } + + public CredentialsAuth(string clientId, string clientSecret) + { + ClientId = clientId; + ClientSecret = clientSecret; + } + + public async Task GetToken() + { + string auth = Convert.ToBase64String(Encoding.UTF8.GetBytes(ClientId + ":" + ClientSecret)); + + List> args = new List> + { + new KeyValuePair("grant_type", "client_credentials") + }; + + HttpClient client = new HttpClient(); + client.DefaultRequestHeaders.Add("Authorization", $"Basic {auth}"); + HttpContent content = new FormUrlEncodedContent(args); + + HttpResponseMessage resp = await client.PostAsync("https://accounts.spotify.com/api/token", content); + string msg = await resp.Content.ReadAsStringAsync(); + + return JsonConvert.DeserializeObject(msg); + } + } +} diff --git a/Source Files/SpotifyAPI.Web.Auth/ImplicitGrantAuth.cs b/Source Files/SpotifyAPI.Web.Auth/ImplicitGrantAuth.cs new file mode 100644 index 0000000..c99809f --- /dev/null +++ b/Source Files/SpotifyAPI.Web.Auth/ImplicitGrantAuth.cs @@ -0,0 +1,65 @@ +using System.Threading.Tasks; +using SpotifyAPI.Web.Enums; +using SpotifyAPI.Web.Models; +using Unosquare.Labs.EmbedIO; +using Unosquare.Labs.EmbedIO.Constants; +using Unosquare.Labs.EmbedIO.Modules; + +namespace SpotifyAPI.Web.Auth +{ + public class ImplicitGrantAuth : SpotifyAuthServer + { + public ImplicitGrantAuth(string clientId, string redirectUri, string serverUri, Scope scope = Scope.None, string state = "") : + base("token", "ImplicitGrantAuth", redirectUri, serverUri, scope, state) + { + ClientId = clientId; + } + + protected override void AdaptWebServer(WebServer webServer) + { + webServer.Module().RegisterController(); + } + } + + public class ImplicitGrantAuthController : WebApiController + { + [WebApiHandler(HttpVerbs.Get, "/auth")] + public Task GetAuth() + { + string state = Request.QueryString["state"]; + SpotifyAuthServer auth = ImplicitGrantAuth.GetByState(state); + if (auth == null) + return this.StringResponseAsync( + $"Failed - Unable to find auth request with state \"{state}\" - Please retry"); + + Token token; + string error = Request.QueryString["error"]; + if (error == null) + { + string accessToken = Request.QueryString["access_token"]; + string tokenType = Request.QueryString["token_type"]; + string expiresIn = Request.QueryString["expires_in"]; + token = new Token + { + AccessToken = accessToken, + ExpiresIn = double.Parse(expiresIn), + TokenType = tokenType + }; + } + else + { + token = new Token + { + Error = error + }; + } + + Task.Factory.StartNew(() => auth.TriggerAuth(token)); + return this.StringResponseAsync("OK - This window can be closed now"); + } + + public ImplicitGrantAuthController(IHttpContext context) : base(context) + { + } + } +} diff --git a/Source Files/SpotifyAPI.Web.Auth/Resources/AuthorizationCodeAuth/css/bulma.min.css b/Source Files/SpotifyAPI.Web.Auth/Resources/AuthorizationCodeAuth/css/bulma.min.css new file mode 100644 index 0000000..59825f7 --- /dev/null +++ b/Source Files/SpotifyAPI.Web.Auth/Resources/AuthorizationCodeAuth/css/bulma.min.css @@ -0,0 +1 @@ +/*! bulma.io v0.7.1 | MIT License | github.com/jgthms/bulma */@-webkit-keyframes spinAround{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spinAround{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.breadcrumb,.button,.delete,.file,.is-unselectable,.modal-close,.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous,.tabs{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid transparent;border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:.625em;margin-top:-.4375em;pointer-events:none;position:absolute;top:50%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:center;transform-origin:center;width:.625em}.block:not(:last-child),.box:not(:last-child),.breadcrumb:not(:last-child),.content:not(:last-child),.highlight:not(:last-child),.level:not(:last-child),.message:not(:last-child),.notification:not(:last-child),.progress:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.tabs:not(:last-child),.title:not(:last-child){margin-bottom:1.5rem}.delete,.modal-close{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,.2);border:none;border-radius:290486px;cursor:pointer;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:0;position:relative;vertical-align:top;width:20px}.delete::after,.delete::before,.modal-close::after,.modal-close::before{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;-webkit-transform:translateX(-50%) translateY(-50%) rotate(45deg);transform:translateX(-50%) translateY(-50%) rotate(45deg);-webkit-transform-origin:center center;transform-origin:center center}.delete::before,.modal-close::before{height:2px;width:50%}.delete::after,.modal-close::after{height:50%;width:2px}.delete:focus,.delete:hover,.modal-close:focus,.modal-close:hover{background-color:rgba(10,10,10,.3)}.delete:active,.modal-close:active{background-color:rgba(10,10,10,.4)}.is-small.delete,.is-small.modal-close{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.delete,.is-medium.modal-close{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.delete,.is-large.modal-close{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.button.is-loading::after,.control.is-loading::after,.loader,.select.is-loading::after{-webkit-animation:spinAround .5s infinite linear;animation:spinAround .5s infinite linear;border:2px solid #dbdbdb;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.image.is-16by9 img,.image.is-1by1 img,.image.is-1by2 img,.image.is-1by3 img,.image.is-2by1 img,.image.is-2by3 img,.image.is-3by1 img,.image.is-3by2 img,.image.is-3by4 img,.image.is-3by5 img,.image.is-4by3 img,.image.is-4by5 img,.image.is-5by3 img,.image.is-5by4 img,.image.is-9by16 img,.image.is-square img,.is-overlay,.modal,.modal-background{bottom:0;left:0;position:absolute;right:0;top:0}.button,.file-cta,.file-name,.input,.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous,.select select,.textarea{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(.375em - 1px);padding-left:calc(.625em - 1px);padding-right:calc(.625em - 1px);padding-top:calc(.375em - 1px);position:relative;vertical-align:top}.button:active,.button:focus,.file-cta:active,.file-cta:focus,.file-name:active,.file-name:focus,.input:active,.input:focus,.is-active.button,.is-active.file-cta,.is-active.file-name,.is-active.input,.is-active.pagination-ellipsis,.is-active.pagination-link,.is-active.pagination-next,.is-active.pagination-previous,.is-active.textarea,.is-focused.button,.is-focused.file-cta,.is-focused.file-name,.is-focused.input,.is-focused.pagination-ellipsis,.is-focused.pagination-link,.is-focused.pagination-next,.is-focused.pagination-previous,.is-focused.textarea,.pagination-ellipsis:active,.pagination-ellipsis:focus,.pagination-link:active,.pagination-link:focus,.pagination-next:active,.pagination-next:focus,.pagination-previous:active,.pagination-previous:focus,.select select.is-active,.select select.is-focused,.select select:active,.select select:focus,.textarea:active,.textarea:focus{outline:0}.button[disabled],.file-cta[disabled],.file-name[disabled],.input[disabled],.pagination-ellipsis[disabled],.pagination-link[disabled],.pagination-next[disabled],.pagination-previous[disabled],.select select[disabled],.textarea[disabled]{cursor:not-allowed}/*! minireset.css v0.0.3 | MIT License | github.com/jgthms/minireset.css */blockquote,body,dd,dl,dt,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,html,iframe,legend,li,ol,p,pre,textarea,ul{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,::after,::before{box-sizing:inherit}audio,img,video{height:auto;max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0;text-align:left}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:hidden;overflow-y:scroll;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,select,textarea{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:monospace}body{color:#4a4a4a;font-size:1rem;font-weight:400;line-height:1.5}a{color:#3273dc;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:#f5f5f5;color:#ff3860;font-size:.875em;font-weight:400;padding:.25em .5em .25em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type=checkbox],input[type=radio]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#363636;font-weight:700}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#4a4a4a;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{text-align:left;vertical-align:top}table th{color:#363636}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left!important}.is-pulled-right{float:right!important}.is-clipped{overflow:hidden!important}.is-size-1{font-size:3rem!important}.is-size-2{font-size:2.5rem!important}.is-size-3{font-size:2rem!important}.is-size-4{font-size:1.5rem!important}.is-size-5{font-size:1.25rem!important}.is-size-6{font-size:1rem!important}.is-size-7{font-size:.75rem!important}@media screen and (max-width:768px){.is-size-1-mobile{font-size:3rem!important}.is-size-2-mobile{font-size:2.5rem!important}.is-size-3-mobile{font-size:2rem!important}.is-size-4-mobile{font-size:1.5rem!important}.is-size-5-mobile{font-size:1.25rem!important}.is-size-6-mobile{font-size:1rem!important}.is-size-7-mobile{font-size:.75rem!important}}@media screen and (min-width:769px),print{.is-size-1-tablet{font-size:3rem!important}.is-size-2-tablet{font-size:2.5rem!important}.is-size-3-tablet{font-size:2rem!important}.is-size-4-tablet{font-size:1.5rem!important}.is-size-5-tablet{font-size:1.25rem!important}.is-size-6-tablet{font-size:1rem!important}.is-size-7-tablet{font-size:.75rem!important}}@media screen and (max-width:1087px){.is-size-1-touch{font-size:3rem!important}.is-size-2-touch{font-size:2.5rem!important}.is-size-3-touch{font-size:2rem!important}.is-size-4-touch{font-size:1.5rem!important}.is-size-5-touch{font-size:1.25rem!important}.is-size-6-touch{font-size:1rem!important}.is-size-7-touch{font-size:.75rem!important}}@media screen and (min-width:1088px){.is-size-1-desktop{font-size:3rem!important}.is-size-2-desktop{font-size:2.5rem!important}.is-size-3-desktop{font-size:2rem!important}.is-size-4-desktop{font-size:1.5rem!important}.is-size-5-desktop{font-size:1.25rem!important}.is-size-6-desktop{font-size:1rem!important}.is-size-7-desktop{font-size:.75rem!important}}@media screen and (min-width:1280px){.is-size-1-widescreen{font-size:3rem!important}.is-size-2-widescreen{font-size:2.5rem!important}.is-size-3-widescreen{font-size:2rem!important}.is-size-4-widescreen{font-size:1.5rem!important}.is-size-5-widescreen{font-size:1.25rem!important}.is-size-6-widescreen{font-size:1rem!important}.is-size-7-widescreen{font-size:.75rem!important}}@media screen and (min-width:1472px){.is-size-1-fullhd{font-size:3rem!important}.is-size-2-fullhd{font-size:2.5rem!important}.is-size-3-fullhd{font-size:2rem!important}.is-size-4-fullhd{font-size:1.5rem!important}.is-size-5-fullhd{font-size:1.25rem!important}.is-size-6-fullhd{font-size:1rem!important}.is-size-7-fullhd{font-size:.75rem!important}}.has-text-centered{text-align:center!important}.has-text-justified{text-align:justify!important}.has-text-left{text-align:left!important}.has-text-right{text-align:right!important}@media screen and (max-width:768px){.has-text-centered-mobile{text-align:center!important}}@media screen and (min-width:769px),print{.has-text-centered-tablet{text-align:center!important}}@media screen and (min-width:769px) and (max-width:1087px){.has-text-centered-tablet-only{text-align:center!important}}@media screen and (max-width:1087px){.has-text-centered-touch{text-align:center!important}}@media screen and (min-width:1088px){.has-text-centered-desktop{text-align:center!important}}@media screen and (min-width:1088px) and (max-width:1279px){.has-text-centered-desktop-only{text-align:center!important}}@media screen and (min-width:1280px){.has-text-centered-widescreen{text-align:center!important}}@media screen and (min-width:1280px) and (max-width:1471px){.has-text-centered-widescreen-only{text-align:center!important}}@media screen and (min-width:1472px){.has-text-centered-fullhd{text-align:center!important}}@media screen and (max-width:768px){.has-text-justified-mobile{text-align:justify!important}}@media screen and (min-width:769px),print{.has-text-justified-tablet{text-align:justify!important}}@media screen and (min-width:769px) and (max-width:1087px){.has-text-justified-tablet-only{text-align:justify!important}}@media screen and (max-width:1087px){.has-text-justified-touch{text-align:justify!important}}@media screen and (min-width:1088px){.has-text-justified-desktop{text-align:justify!important}}@media screen and (min-width:1088px) and (max-width:1279px){.has-text-justified-desktop-only{text-align:justify!important}}@media screen and (min-width:1280px){.has-text-justified-widescreen{text-align:justify!important}}@media screen and (min-width:1280px) and (max-width:1471px){.has-text-justified-widescreen-only{text-align:justify!important}}@media screen and (min-width:1472px){.has-text-justified-fullhd{text-align:justify!important}}@media screen and (max-width:768px){.has-text-left-mobile{text-align:left!important}}@media screen and (min-width:769px),print{.has-text-left-tablet{text-align:left!important}}@media screen and (min-width:769px) and (max-width:1087px){.has-text-left-tablet-only{text-align:left!important}}@media screen and (max-width:1087px){.has-text-left-touch{text-align:left!important}}@media screen and (min-width:1088px){.has-text-left-desktop{text-align:left!important}}@media screen and (min-width:1088px) and (max-width:1279px){.has-text-left-desktop-only{text-align:left!important}}@media screen and (min-width:1280px){.has-text-left-widescreen{text-align:left!important}}@media screen and (min-width:1280px) and (max-width:1471px){.has-text-left-widescreen-only{text-align:left!important}}@media screen and (min-width:1472px){.has-text-left-fullhd{text-align:left!important}}@media screen and (max-width:768px){.has-text-right-mobile{text-align:right!important}}@media screen and (min-width:769px),print{.has-text-right-tablet{text-align:right!important}}@media screen and (min-width:769px) and (max-width:1087px){.has-text-right-tablet-only{text-align:right!important}}@media screen and (max-width:1087px){.has-text-right-touch{text-align:right!important}}@media screen and (min-width:1088px){.has-text-right-desktop{text-align:right!important}}@media screen and (min-width:1088px) and (max-width:1279px){.has-text-right-desktop-only{text-align:right!important}}@media screen and (min-width:1280px){.has-text-right-widescreen{text-align:right!important}}@media screen and (min-width:1280px) and (max-width:1471px){.has-text-right-widescreen-only{text-align:right!important}}@media screen and (min-width:1472px){.has-text-right-fullhd{text-align:right!important}}.is-capitalized{text-transform:capitalize!important}.is-lowercase{text-transform:lowercase!important}.is-uppercase{text-transform:uppercase!important}.is-italic{font-style:italic!important}.has-text-white{color:#fff!important}a.has-text-white:focus,a.has-text-white:hover{color:#e6e6e6!important}.has-background-white{background-color:#fff!important}.has-text-black{color:#0a0a0a!important}a.has-text-black:focus,a.has-text-black:hover{color:#000!important}.has-background-black{background-color:#0a0a0a!important}.has-text-light{color:#f5f5f5!important}a.has-text-light:focus,a.has-text-light:hover{color:#dbdbdb!important}.has-background-light{background-color:#f5f5f5!important}.has-text-dark{color:#363636!important}a.has-text-dark:focus,a.has-text-dark:hover{color:#1c1c1c!important}.has-background-dark{background-color:#363636!important}.has-text-primary{color:#00d1b2!important}a.has-text-primary:focus,a.has-text-primary:hover{color:#009e86!important}.has-background-primary{background-color:#00d1b2!important}.has-text-link{color:#3273dc!important}a.has-text-link:focus,a.has-text-link:hover{color:#205bbc!important}.has-background-link{background-color:#3273dc!important}.has-text-info{color:#209cee!important}a.has-text-info:focus,a.has-text-info:hover{color:#0f81cc!important}.has-background-info{background-color:#209cee!important}.has-text-success{color:#23d160!important}a.has-text-success:focus,a.has-text-success:hover{color:#1ca64c!important}.has-background-success{background-color:#23d160!important}.has-text-warning{color:#ffdd57!important}a.has-text-warning:focus,a.has-text-warning:hover{color:#ffd324!important}.has-background-warning{background-color:#ffdd57!important}.has-text-danger{color:#ff3860!important}a.has-text-danger:focus,a.has-text-danger:hover{color:#ff0537!important}.has-background-danger{background-color:#ff3860!important}.has-text-black-bis{color:#121212!important}.has-background-black-bis{background-color:#121212!important}.has-text-black-ter{color:#242424!important}.has-background-black-ter{background-color:#242424!important}.has-text-grey-darker{color:#363636!important}.has-background-grey-darker{background-color:#363636!important}.has-text-grey-dark{color:#4a4a4a!important}.has-background-grey-dark{background-color:#4a4a4a!important}.has-text-grey{color:#7a7a7a!important}.has-background-grey{background-color:#7a7a7a!important}.has-text-grey-light{color:#b5b5b5!important}.has-background-grey-light{background-color:#b5b5b5!important}.has-text-grey-lighter{color:#dbdbdb!important}.has-background-grey-lighter{background-color:#dbdbdb!important}.has-text-white-ter{color:#f5f5f5!important}.has-background-white-ter{background-color:#f5f5f5!important}.has-text-white-bis{color:#fafafa!important}.has-background-white-bis{background-color:#fafafa!important}.has-text-weight-light{font-weight:300!important}.has-text-weight-normal{font-weight:400!important}.has-text-weight-semibold{font-weight:600!important}.has-text-weight-bold{font-weight:700!important}.is-block{display:block!important}@media screen and (max-width:768px){.is-block-mobile{display:block!important}}@media screen and (min-width:769px),print{.is-block-tablet{display:block!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-block-tablet-only{display:block!important}}@media screen and (max-width:1087px){.is-block-touch{display:block!important}}@media screen and (min-width:1088px){.is-block-desktop{display:block!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-block-desktop-only{display:block!important}}@media screen and (min-width:1280px){.is-block-widescreen{display:block!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-block-widescreen-only{display:block!important}}@media screen and (min-width:1472px){.is-block-fullhd{display:block!important}}.is-flex{display:flex!important}@media screen and (max-width:768px){.is-flex-mobile{display:flex!important}}@media screen and (min-width:769px),print{.is-flex-tablet{display:flex!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-flex-tablet-only{display:flex!important}}@media screen and (max-width:1087px){.is-flex-touch{display:flex!important}}@media screen and (min-width:1088px){.is-flex-desktop{display:flex!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-flex-desktop-only{display:flex!important}}@media screen and (min-width:1280px){.is-flex-widescreen{display:flex!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-flex-widescreen-only{display:flex!important}}@media screen and (min-width:1472px){.is-flex-fullhd{display:flex!important}}.is-inline{display:inline!important}@media screen and (max-width:768px){.is-inline-mobile{display:inline!important}}@media screen and (min-width:769px),print{.is-inline-tablet{display:inline!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-inline-tablet-only{display:inline!important}}@media screen and (max-width:1087px){.is-inline-touch{display:inline!important}}@media screen and (min-width:1088px){.is-inline-desktop{display:inline!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-inline-desktop-only{display:inline!important}}@media screen and (min-width:1280px){.is-inline-widescreen{display:inline!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-inline-widescreen-only{display:inline!important}}@media screen and (min-width:1472px){.is-inline-fullhd{display:inline!important}}.is-inline-block{display:inline-block!important}@media screen and (max-width:768px){.is-inline-block-mobile{display:inline-block!important}}@media screen and (min-width:769px),print{.is-inline-block-tablet{display:inline-block!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-inline-block-tablet-only{display:inline-block!important}}@media screen and (max-width:1087px){.is-inline-block-touch{display:inline-block!important}}@media screen and (min-width:1088px){.is-inline-block-desktop{display:inline-block!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-inline-block-desktop-only{display:inline-block!important}}@media screen and (min-width:1280px){.is-inline-block-widescreen{display:inline-block!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-inline-block-widescreen-only{display:inline-block!important}}@media screen and (min-width:1472px){.is-inline-block-fullhd{display:inline-block!important}}.is-inline-flex{display:inline-flex!important}@media screen and (max-width:768px){.is-inline-flex-mobile{display:inline-flex!important}}@media screen and (min-width:769px),print{.is-inline-flex-tablet{display:inline-flex!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-inline-flex-tablet-only{display:inline-flex!important}}@media screen and (max-width:1087px){.is-inline-flex-touch{display:inline-flex!important}}@media screen and (min-width:1088px){.is-inline-flex-desktop{display:inline-flex!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-inline-flex-desktop-only{display:inline-flex!important}}@media screen and (min-width:1280px){.is-inline-flex-widescreen{display:inline-flex!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-inline-flex-widescreen-only{display:inline-flex!important}}@media screen and (min-width:1472px){.is-inline-flex-fullhd{display:inline-flex!important}}.is-hidden{display:none!important}@media screen and (max-width:768px){.is-hidden-mobile{display:none!important}}@media screen and (min-width:769px),print{.is-hidden-tablet{display:none!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-hidden-tablet-only{display:none!important}}@media screen and (max-width:1087px){.is-hidden-touch{display:none!important}}@media screen and (min-width:1088px){.is-hidden-desktop{display:none!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-hidden-desktop-only{display:none!important}}@media screen and (min-width:1280px){.is-hidden-widescreen{display:none!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-hidden-widescreen-only{display:none!important}}@media screen and (min-width:1472px){.is-hidden-fullhd{display:none!important}}.is-invisible{visibility:hidden!important}@media screen and (max-width:768px){.is-invisible-mobile{visibility:hidden!important}}@media screen and (min-width:769px),print{.is-invisible-tablet{visibility:hidden!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-invisible-tablet-only{visibility:hidden!important}}@media screen and (max-width:1087px){.is-invisible-touch{visibility:hidden!important}}@media screen and (min-width:1088px){.is-invisible-desktop{visibility:hidden!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-invisible-desktop-only{visibility:hidden!important}}@media screen and (min-width:1280px){.is-invisible-widescreen{visibility:hidden!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-invisible-widescreen-only{visibility:hidden!important}}@media screen and (min-width:1472px){.is-invisible-fullhd{visibility:hidden!important}}.is-marginless{margin:0!important}.is-paddingless{padding:0!important}.is-radiusless{border-radius:0!important}.is-shadowless{box-shadow:none!important}.box{background-color:#fff;border-radius:6px;box-shadow:0 2px 3px rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.1);color:#4a4a4a;display:block;padding:1.25rem}a.box:focus,a.box:hover{box-shadow:0 2px 3px rgba(10,10,10,.1),0 0 0 1px #3273dc}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,.2),0 0 0 1px #3273dc}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(.375em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-large,.button .icon.is-medium,.button .icon.is-small{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-.375em - 1px);margin-right:.1875em}.button .icon:last-child:not(:first-child){margin-left:.1875em;margin-right:calc(-.375em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-.375em - 1px);margin-right:calc(-.375em - 1px)}.button.is-hovered,.button:hover{border-color:#b5b5b5;color:#363636}.button.is-focused,.button:focus{border-color:#3273dc;color:#363636}.button.is-focused:not(:active),.button:focus:not(:active){box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.button.is-active,.button:active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#4a4a4a;text-decoration:underline}.button.is-text.is-focused,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text:hover{background-color:#f5f5f5;color:#363636}.button.is-text.is-active,.button.is-text:active{background-color:#e8e8e8;color:#363636}.button.is-text[disabled]{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white.is-hovered,.button.is-white:hover{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white.is-focused,.button.is-white:focus{border-color:transparent;color:#0a0a0a}.button.is-white.is-focused:not(:active),.button.is-white:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.button.is-white.is-active,.button.is-white:active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled]{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted:hover{background-color:#000}.button.is-white.is-inverted[disabled]{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined:focus,.button.is-white.is-outlined:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-white.is-outlined[disabled]{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined:hover{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black.is-hovered,.button.is-black:hover{background-color:#040404;border-color:transparent;color:#fff}.button.is-black.is-focused,.button.is-black:focus{border-color:transparent;color:#fff}.button.is-black.is-focused:not(:active),.button.is-black:focus:not(:active){box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.button.is-black.is-active,.button.is-black:active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled]{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted:hover{background-color:#f2f2f2}.button.is-black.is-inverted[disabled]{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined:focus,.button.is-black.is-outlined:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-black.is-outlined[disabled]{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined:hover{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:#363636}.button.is-light.is-hovered,.button.is-light:hover{background-color:#eee;border-color:transparent;color:#363636}.button.is-light.is-focused,.button.is-light:focus{border-color:transparent;color:#363636}.button.is-light.is-focused:not(:active),.button.is-light:focus:not(:active){box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.button.is-light.is-active,.button.is-light:active{background-color:#e8e8e8;border-color:transparent;color:#363636}.button.is-light[disabled]{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted:hover{background-color:#292929}.button.is-light.is-inverted[disabled]{background-color:#363636;border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent #363636 #363636!important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined:focus,.button.is-light.is-outlined:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5!important}.button.is-light.is-outlined[disabled]{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined:hover{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark{background-color:#363636;border-color:transparent;color:#f5f5f5}.button.is-dark.is-hovered,.button.is-dark:hover{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.button.is-dark.is-focused,.button.is-dark:focus{border-color:transparent;color:#f5f5f5}.button.is-dark.is-focused:not(:active),.button.is-dark:focus:not(:active){box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.button.is-dark.is-active,.button.is-dark:active{background-color:#292929;border-color:transparent;color:#f5f5f5}.button.is-dark[disabled]{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted:hover{background-color:#e8e8e8}.button.is-dark.is-inverted[disabled]{background-color:#f5f5f5;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5!important}.button.is-dark.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined:focus,.button.is-dark.is-outlined:hover{background-color:#363636;border-color:#363636;color:#f5f5f5}.button.is-dark.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636!important}.button.is-dark.is-outlined[disabled]{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-dark.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined:hover{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-primary{background-color:#00d1b2;border-color:transparent;color:#fff}.button.is-primary.is-hovered,.button.is-primary:hover{background-color:#00c4a7;border-color:transparent;color:#fff}.button.is-primary.is-focused,.button.is-primary:focus{border-color:transparent;color:#fff}.button.is-primary.is-focused:not(:active),.button.is-primary:focus:not(:active){box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.button.is-primary.is-active,.button.is-primary:active{background-color:#00b89c;border-color:transparent;color:#fff}.button.is-primary[disabled]{background-color:#00d1b2;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted{background-color:#fff;color:#00d1b2}.button.is-primary.is-inverted:hover{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled]{background-color:#fff;border-color:transparent;box-shadow:none;color:#00d1b2}.button.is-primary.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-primary.is-outlined{background-color:transparent;border-color:#00d1b2;color:#00d1b2}.button.is-primary.is-outlined:focus,.button.is-primary.is-outlined:hover{background-color:#00d1b2;border-color:#00d1b2;color:#fff}.button.is-primary.is-outlined.is-loading::after{border-color:transparent transparent #00d1b2 #00d1b2!important}.button.is-primary.is-outlined[disabled]{background-color:transparent;border-color:#00d1b2;box-shadow:none;color:#00d1b2}.button.is-primary.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:focus,.button.is-primary.is-inverted.is-outlined:hover{background-color:#fff;color:#00d1b2}.button.is-primary.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link{background-color:#3273dc;border-color:transparent;color:#fff}.button.is-link.is-hovered,.button.is-link:hover{background-color:#276cda;border-color:transparent;color:#fff}.button.is-link.is-focused,.button.is-link:focus{border-color:transparent;color:#fff}.button.is-link.is-focused:not(:active),.button.is-link:focus:not(:active){box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.button.is-link.is-active,.button.is-link:active{background-color:#2366d1;border-color:transparent;color:#fff}.button.is-link[disabled]{background-color:#3273dc;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#3273dc}.button.is-link.is-inverted:hover{background-color:#f2f2f2}.button.is-link.is-inverted[disabled]{background-color:#fff;border-color:transparent;box-shadow:none;color:#3273dc}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-link.is-outlined{background-color:transparent;border-color:#3273dc;color:#3273dc}.button.is-link.is-outlined:focus,.button.is-link.is-outlined:hover{background-color:#3273dc;border-color:#3273dc;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #3273dc #3273dc!important}.button.is-link.is-outlined[disabled]{background-color:transparent;border-color:#3273dc;box-shadow:none;color:#3273dc}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined:hover{background-color:#fff;color:#3273dc}.button.is-link.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info.is-hovered,.button.is-info:hover{background-color:#1496ed;border-color:transparent;color:#fff}.button.is-info.is-focused,.button.is-info:focus{border-color:transparent;color:#fff}.button.is-info.is-focused:not(:active),.button.is-info:focus:not(:active){box-shadow:0 0 0 .125em rgba(32,156,238,.25)}.button.is-info.is-active,.button.is-info:active{background-color:#118fe4;border-color:transparent;color:#fff}.button.is-info[disabled]{background-color:#209cee;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover{background-color:#f2f2f2}.button.is-info.is-inverted[disabled]{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:focus,.button.is-info.is-outlined:hover{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee!important}.button.is-info.is-outlined[disabled]{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined:hover{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success{background-color:#23d160;border-color:transparent;color:#fff}.button.is-success.is-hovered,.button.is-success:hover{background-color:#22c65b;border-color:transparent;color:#fff}.button.is-success.is-focused,.button.is-success:focus{border-color:transparent;color:#fff}.button.is-success.is-focused:not(:active),.button.is-success:focus:not(:active){box-shadow:0 0 0 .125em rgba(35,209,96,.25)}.button.is-success.is-active,.button.is-success:active{background-color:#20bc56;border-color:transparent;color:#fff}.button.is-success[disabled]{background-color:#23d160;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#23d160}.button.is-success.is-inverted:hover{background-color:#f2f2f2}.button.is-success.is-inverted[disabled]{background-color:#fff;border-color:transparent;box-shadow:none;color:#23d160}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-success.is-outlined{background-color:transparent;border-color:#23d160;color:#23d160}.button.is-success.is-outlined:focus,.button.is-success.is-outlined:hover{background-color:#23d160;border-color:#23d160;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #23d160 #23d160!important}.button.is-success.is-outlined[disabled]{background-color:transparent;border-color:#23d160;box-shadow:none;color:#23d160}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined:hover{background-color:#fff;color:#23d160}.button.is-success.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-hovered,.button.is-warning:hover{background-color:#ffdb4a;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-focused,.button.is-warning:focus{border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-focused:not(:active),.button.is-warning:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,221,87,.25)}.button.is-warning.is-active,.button.is-warning:active{background-color:#ffd83d;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning[disabled]{background-color:#ffdd57;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,.7);color:#ffdd57}.button.is-warning.is-inverted:hover{background-color:rgba(0,0,0,.7)}.button.is-warning.is-inverted[disabled]{background-color:rgba(0,0,0,.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined:hover{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57!important}.button.is-warning.is-outlined[disabled]{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);color:rgba(0,0,0,.7)}.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined:hover{background-color:rgba(0,0,0,.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:rgba(0,0,0,.7);box-shadow:none;color:rgba(0,0,0,.7)}.button.is-danger{background-color:#ff3860;border-color:transparent;color:#fff}.button.is-danger.is-hovered,.button.is-danger:hover{background-color:#ff2b56;border-color:transparent;color:#fff}.button.is-danger.is-focused,.button.is-danger:focus{border-color:transparent;color:#fff}.button.is-danger.is-focused:not(:active),.button.is-danger:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,56,96,.25)}.button.is-danger.is-active,.button.is-danger:active{background-color:#ff1f4b;border-color:transparent;color:#fff}.button.is-danger[disabled]{background-color:#ff3860;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#ff3860}.button.is-danger.is-inverted:hover{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled]{background-color:#fff;border-color:transparent;box-shadow:none;color:#ff3860}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-danger.is-outlined{background-color:transparent;border-color:#ff3860;color:#ff3860}.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined:hover{background-color:#ff3860;border-color:#ff3860;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #ff3860 #ff3860!important}.button.is-danger.is-outlined[disabled]{background-color:transparent;border-color:#ff3860;box-shadow:none;color:#ff3860}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined:hover{background-color:#fff;color:#ff3860}.button.is-danger.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-small{border-radius:2px;font-size:.75rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled]{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent!important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute!important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#7a7a7a;box-shadow:none;pointer-events:none}.button.is-rounded{border-radius:290486px;padding-left:1em;padding-right:1em}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:.5rem}.buttons .button:not(:last-child){margin-right:.5rem}.buttons:last-child{margin-bottom:-.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button.is-hovered,.buttons.has-addons .button:hover{z-index:2}.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-focused,.buttons.has-addons .button.is-selected,.buttons.has-addons .button:active,.buttons.has-addons .button:focus{z-index:3}.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button.is-selected:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button:focus:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1}.buttons.is-centered{justify-content:center}.buttons.is-right{justify-content:flex-end}.container{margin:0 auto;position:relative}@media screen and (min-width:1088px){.container{max-width:960px;width:960px}.container.is-fluid{margin-left:64px;margin-right:64px;max-width:none;width:auto}}@media screen and (max-width:1279px){.container.is-widescreen{max-width:1152px;width:auto}}@media screen and (max-width:1471px){.container.is-fullhd{max-width:1344px;width:auto}}@media screen and (min-width:1280px){.container{max-width:1152px;width:1152px}}@media screen and (min-width:1472px){.container{max-width:1344px;width:1344px}}.content li+li{margin-top:.25em}.content blockquote:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content p:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child),.content ul:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#363636;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:.8em}.content h5{font-size:1.125em;margin-bottom:.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style:decimal outside;margin-left:2em;margin-top:1em}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:1.25em 1.5em;white-space:pre;word-wrap:normal}.content sub,.content sup{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.content table th{color:#363636;text-align:left}.content table thead td,.content table thead th{border-width:0 0 2px;color:#363636}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#363636}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content.is-small{font-size:.75rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.input,.textarea{background-color:#fff;border-color:#dbdbdb;color:#363636;box-shadow:inset 0 1px 2px rgba(10,10,10,.1);max-width:100%;width:100%}.input::-moz-placeholder,.textarea::-moz-placeholder{color:rgba(54,54,54,.3)}.input::-webkit-input-placeholder,.textarea::-webkit-input-placeholder{color:rgba(54,54,54,.3)}.input:-moz-placeholder,.textarea:-moz-placeholder{color:rgba(54,54,54,.3)}.input:-ms-input-placeholder,.textarea:-ms-input-placeholder{color:rgba(54,54,54,.3)}.input.is-hovered,.input:hover,.textarea.is-hovered,.textarea:hover{border-color:#b5b5b5}.input.is-active,.input.is-focused,.input:active,.input:focus,.textarea.is-active,.textarea.is-focused,.textarea:active,.textarea:focus{border-color:#3273dc;box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.input[disabled],.textarea[disabled]{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#7a7a7a}.input[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder{color:rgba(122,122,122,.3)}.input[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder{color:rgba(122,122,122,.3)}.input[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder{color:rgba(122,122,122,.3)}.input[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder{color:rgba(122,122,122,.3)}.input[readonly],.textarea[readonly]{box-shadow:none}.input.is-white,.textarea.is-white{border-color:#fff}.input.is-white.is-active,.input.is-white.is-focused,.input.is-white:active,.input.is-white:focus,.textarea.is-white.is-active,.textarea.is-white.is-focused,.textarea.is-white:active,.textarea.is-white:focus{box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.input.is-black,.textarea.is-black{border-color:#0a0a0a}.input.is-black.is-active,.input.is-black.is-focused,.input.is-black:active,.input.is-black:focus,.textarea.is-black.is-active,.textarea.is-black.is-focused,.textarea.is-black:active,.textarea.is-black:focus{box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.input.is-light,.textarea.is-light{border-color:#f5f5f5}.input.is-light.is-active,.input.is-light.is-focused,.input.is-light:active,.input.is-light:focus,.textarea.is-light.is-active,.textarea.is-light.is-focused,.textarea.is-light:active,.textarea.is-light:focus{box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.input.is-dark,.textarea.is-dark{border-color:#363636}.input.is-dark.is-active,.input.is-dark.is-focused,.input.is-dark:active,.input.is-dark:focus,.textarea.is-dark.is-active,.textarea.is-dark.is-focused,.textarea.is-dark:active,.textarea.is-dark:focus{box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.input.is-primary,.textarea.is-primary{border-color:#00d1b2}.input.is-primary.is-active,.input.is-primary.is-focused,.input.is-primary:active,.input.is-primary:focus,.textarea.is-primary.is-active,.textarea.is-primary.is-focused,.textarea.is-primary:active,.textarea.is-primary:focus{box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.input.is-link,.textarea.is-link{border-color:#3273dc}.input.is-link.is-active,.input.is-link.is-focused,.input.is-link:active,.input.is-link:focus,.textarea.is-link.is-active,.textarea.is-link.is-focused,.textarea.is-link:active,.textarea.is-link:focus{box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.input.is-info,.textarea.is-info{border-color:#209cee}.input.is-info.is-active,.input.is-info.is-focused,.input.is-info:active,.input.is-info:focus,.textarea.is-info.is-active,.textarea.is-info.is-focused,.textarea.is-info:active,.textarea.is-info:focus{box-shadow:0 0 0 .125em rgba(32,156,238,.25)}.input.is-success,.textarea.is-success{border-color:#23d160}.input.is-success.is-active,.input.is-success.is-focused,.input.is-success:active,.input.is-success:focus,.textarea.is-success.is-active,.textarea.is-success.is-focused,.textarea.is-success:active,.textarea.is-success:focus{box-shadow:0 0 0 .125em rgba(35,209,96,.25)}.input.is-warning,.textarea.is-warning{border-color:#ffdd57}.input.is-warning.is-active,.input.is-warning.is-focused,.input.is-warning:active,.input.is-warning:focus,.textarea.is-warning.is-active,.textarea.is-warning.is-focused,.textarea.is-warning:active,.textarea.is-warning:focus{box-shadow:0 0 0 .125em rgba(255,221,87,.25)}.input.is-danger,.textarea.is-danger{border-color:#ff3860}.input.is-danger.is-active,.input.is-danger.is-focused,.input.is-danger:active,.input.is-danger:focus,.textarea.is-danger.is-active,.textarea.is-danger.is-focused,.textarea.is-danger:active,.textarea.is-danger:focus{box-shadow:0 0 0 .125em rgba(255,56,96,.25)}.input.is-small,.textarea.is-small{border-radius:2px;font-size:.75rem}.input.is-medium,.textarea.is-medium{font-size:1.25rem}.input.is-large,.textarea.is-large{font-size:1.5rem}.input.is-fullwidth,.textarea.is-fullwidth{display:block;width:100%}.input.is-inline,.textarea.is-inline{display:inline;width:auto}.input.is-rounded{border-radius:290486px;padding-left:1em;padding-right:1em}.input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:.625em;resize:vertical}.textarea:not([rows]){max-height:600px;min-height:120px}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.checkbox,.radio{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.checkbox input,.radio input{cursor:pointer}.checkbox:hover,.radio:hover{color:#363636}.checkbox[disabled],.radio[disabled]{color:#7a7a7a;cursor:not-allowed}.radio+.radio{margin-left:.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.25em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#3273dc;right:1.125em;z-index:4}.select.is-rounded select{border-radius:290486px;padding-left:1em}.select select{background-color:#fff;border-color:#dbdbdb;color:#363636;cursor:pointer;display:block;font-size:1em;max-width:100%;outline:0}.select select::-moz-placeholder{color:rgba(54,54,54,.3)}.select select::-webkit-input-placeholder{color:rgba(54,54,54,.3)}.select select:-moz-placeholder{color:rgba(54,54,54,.3)}.select select:-ms-input-placeholder{color:rgba(54,54,54,.3)}.select select.is-hovered,.select select:hover{border-color:#b5b5b5}.select select.is-active,.select select.is-focused,.select select:active,.select select:focus{border-color:#3273dc;box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.select select[disabled]{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#7a7a7a}.select select[disabled]::-moz-placeholder{color:rgba(122,122,122,.3)}.select select[disabled]::-webkit-input-placeholder{color:rgba(122,122,122,.3)}.select select[disabled]:-moz-placeholder{color:rgba(122,122,122,.3)}.select select[disabled]:-ms-input-placeholder{color:rgba(122,122,122,.3)}.select select::-ms-expand{display:none}.select select[disabled]:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:initial;padding:0}.select select[multiple] option{padding:.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select.is-hovered,.select.is-white select:hover{border-color:#f2f2f2}.select.is-white select.is-active,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select:focus{box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select.is-hovered,.select.is-black select:hover{border-color:#000}.select.is-black select.is-active,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select:focus{box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select.is-hovered,.select.is-light select:hover{border-color:#e8e8e8}.select.is-light select.is-active,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select:focus{box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.select.is-dark:not(:hover)::after{border-color:#363636}.select.is-dark select{border-color:#363636}.select.is-dark select.is-hovered,.select.is-dark select:hover{border-color:#292929}.select.is-dark select.is-active,.select.is-dark select.is-focused,.select.is-dark select:active,.select.is-dark select:focus{box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.select.is-primary:not(:hover)::after{border-color:#00d1b2}.select.is-primary select{border-color:#00d1b2}.select.is-primary select.is-hovered,.select.is-primary select:hover{border-color:#00b89c}.select.is-primary select.is-active,.select.is-primary select.is-focused,.select.is-primary select:active,.select.is-primary select:focus{box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.select.is-link:not(:hover)::after{border-color:#3273dc}.select.is-link select{border-color:#3273dc}.select.is-link select.is-hovered,.select.is-link select:hover{border-color:#2366d1}.select.is-link select.is-active,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select:focus{box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select.is-hovered,.select.is-info select:hover{border-color:#118fe4}.select.is-info select.is-active,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select:focus{box-shadow:0 0 0 .125em rgba(32,156,238,.25)}.select.is-success:not(:hover)::after{border-color:#23d160}.select.is-success select{border-color:#23d160}.select.is-success select.is-hovered,.select.is-success select:hover{border-color:#20bc56}.select.is-success select.is-active,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select:focus{box-shadow:0 0 0 .125em rgba(35,209,96,.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select.is-hovered,.select.is-warning select:hover{border-color:#ffd83d}.select.is-warning select.is-active,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select:focus{box-shadow:0 0 0 .125em rgba(255,221,87,.25)}.select.is-danger:not(:hover)::after{border-color:#ff3860}.select.is-danger select{border-color:#ff3860}.select.is-danger select.is-hovered,.select.is-danger select:hover{border-color:#ff1f4b}.select.is-danger select.is-active,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select:focus{box-shadow:0 0 0 .125em rgba(255,56,96,.25)}.select.is-small{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#7a7a7a}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:.625em;top:.625em;-webkit-transform:none;transform:none}.select.is-loading.is-small:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white.is-hovered .file-cta,.file.is-white:hover .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white.is-focused .file-cta,.file.is-white:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,255,255,.25);color:#0a0a0a}.file.is-white.is-active .file-cta,.file.is-white:active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black.is-hovered .file-cta,.file.is-black:hover .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black.is-focused .file-cta,.file.is-black:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(10,10,10,.25);color:#fff}.file.is-black.is-active .file-cta,.file.is-black:active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:#363636}.file.is-light.is-hovered .file-cta,.file.is-light:hover .file-cta{background-color:#eee;border-color:transparent;color:#363636}.file.is-light.is-focused .file-cta,.file.is-light:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(245,245,245,.25);color:#363636}.file.is-light.is-active .file-cta,.file.is-light:active .file-cta{background-color:#e8e8e8;border-color:transparent;color:#363636}.file.is-dark .file-cta{background-color:#363636;border-color:transparent;color:#f5f5f5}.file.is-dark.is-hovered .file-cta,.file.is-dark:hover .file-cta{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.file.is-dark.is-focused .file-cta,.file.is-dark:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(54,54,54,.25);color:#f5f5f5}.file.is-dark.is-active .file-cta,.file.is-dark:active .file-cta{background-color:#292929;border-color:transparent;color:#f5f5f5}.file.is-primary .file-cta{background-color:#00d1b2;border-color:transparent;color:#fff}.file.is-primary.is-hovered .file-cta,.file.is-primary:hover .file-cta{background-color:#00c4a7;border-color:transparent;color:#fff}.file.is-primary.is-focused .file-cta,.file.is-primary:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(0,209,178,.25);color:#fff}.file.is-primary.is-active .file-cta,.file.is-primary:active .file-cta{background-color:#00b89c;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#3273dc;border-color:transparent;color:#fff}.file.is-link.is-hovered .file-cta,.file.is-link:hover .file-cta{background-color:#276cda;border-color:transparent;color:#fff}.file.is-link.is-focused .file-cta,.file.is-link:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(50,115,220,.25);color:#fff}.file.is-link.is-active .file-cta,.file.is-link:active .file-cta{background-color:#2366d1;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info.is-hovered .file-cta,.file.is-info:hover .file-cta{background-color:#1496ed;border-color:transparent;color:#fff}.file.is-info.is-focused .file-cta,.file.is-info:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(32,156,238,.25);color:#fff}.file.is-info.is-active .file-cta,.file.is-info:active .file-cta{background-color:#118fe4;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#23d160;border-color:transparent;color:#fff}.file.is-success.is-hovered .file-cta,.file.is-success:hover .file-cta{background-color:#22c65b;border-color:transparent;color:#fff}.file.is-success.is-focused .file-cta,.file.is-success:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(35,209,96,.25);color:#fff}.file.is-success.is-active .file-cta,.file.is-success:active .file-cta{background-color:#20bc56;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-warning.is-hovered .file-cta,.file.is-warning:hover .file-cta{background-color:#ffdb4a;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-warning.is-focused .file-cta,.file.is-warning:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,221,87,.25);color:rgba(0,0,0,.7)}.file.is-warning.is-active .file-cta,.file.is-warning:active .file-cta{background-color:#ffd83d;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-danger .file-cta{background-color:#ff3860;border-color:transparent;color:#fff}.file.is-danger.is-hovered .file-cta,.file.is-danger:hover .file-cta{background-color:#ff2b56;border-color:transparent;color:#fff}.file.is-danger.is-focused .file-cta,.file.is-danger:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,56,96,.25);color:#fff}.file.is-danger.is-active .file-cta,.file.is-danger:active .file-cta{background-color:#ff1f4b;border-color:transparent;color:#fff}.file.is-small{font-size:.75rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:.01em;left:0;outline:0;position:absolute;top:0;width:.01em}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:.5em}.label.is-small{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark{color:#363636}.help.is-primary{color:#00d1b2}.help.is-link{color:#3273dc}.help.is-info{color:#209cee}.help.is-success{color:#23d160}.help.is-warning{color:#ffdd57}.help.is-danger{color:#ff3860}.field:not(:last-child){margin-bottom:.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child .button,.field.has-addons .control:first-child .input,.field.has-addons .control:first-child .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child .button,.field.has-addons .control:last-child .input,.field.has-addons .control:last-child .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button.is-hovered,.field.has-addons .control .button:hover,.field.has-addons .control .input.is-hovered,.field.has-addons .control .input:hover,.field.has-addons .control .select select.is-hovered,.field.has-addons .control .select select:hover{z-index:2}.field.has-addons .control .button.is-active,.field.has-addons .control .button.is-focused,.field.has-addons .control .button:active,.field.has-addons .control .button:focus,.field.has-addons .control .input.is-active,.field.has-addons .control .input.is-focused,.field.has-addons .control .input:active,.field.has-addons .control .input:focus,.field.has-addons .control .select select.is-active,.field.has-addons .control .select select.is-focused,.field.has-addons .control .select select:active,.field.has-addons .control .select select:focus{z-index:3}.field.has-addons .control .button.is-active:hover,.field.has-addons .control .button.is-focused:hover,.field.has-addons .control .button:active:hover,.field.has-addons .control .button:focus:hover,.field.has-addons .control .input.is-active:hover,.field.has-addons .control .input.is-focused:hover,.field.has-addons .control .input:active:hover,.field.has-addons .control .input:focus:hover,.field.has-addons .control .select select.is-active:hover,.field.has-addons .control .select select.is-focused:hover,.field.has-addons .control .select select:active:hover,.field.has-addons .control .select select:focus:hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width:769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width:768px){.field-label{margin-bottom:.5rem}}@media screen and (min-width:769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small{font-size:.75rem;padding-top:.375em}.field-label.is-normal{padding-top:.375em}.field-label.is-medium{font-size:1.25rem;padding-top:.375em}.field-label.is-large{font-size:1.5rem;padding-top:.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width:769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:.75rem}}.control{font-size:1rem;position:relative;text-align:left}.control.has-icon .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icon .input:focus+.icon{color:#7a7a7a}.control.has-icon .input.is-small+.icon{font-size:.75rem}.control.has-icon .input.is-medium+.icon{font-size:1.25rem}.control.has-icon .input.is-large+.icon{font-size:1.5rem}.control.has-icon:not(.has-icon-right) .icon{left:0}.control.has-icon:not(.has-icon-right) .input{padding-left:2.25em}.control.has-icon.has-icon-right .icon{right:0}.control.has-icon.has-icon-right .input{padding-right:2.25em}.control.has-icons-left .input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#7a7a7a}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icons-left .input,.control.has-icons-left .select select{padding-left:2.25em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right .select select{padding-right:2.25em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute!important;right:.625em;top:.625em;z-index:4}.control.is-loading.is-small:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.image{display:block;position:relative}.image img{display:block;height:auto;width:100%}.image img.is-rounded{border-radius:290486px}.image.is-16by9 img,.image.is-1by1 img,.image.is-1by2 img,.image.is-1by3 img,.image.is-2by1 img,.image.is-2by3 img,.image.is-3by1 img,.image.is-3by2 img,.image.is-3by4 img,.image.is-3by5 img,.image.is-4by3 img,.image.is-4by5 img,.image.is-5by3 img,.image.is-5by4 img,.image.is-9by16 img,.image.is-square img{height:100%;width:100%}.image.is-1by1,.image.is-square{padding-top:100%}.image.is-5by4{padding-top:80%}.image.is-4by3{padding-top:75%}.image.is-3by2{padding-top:66.6666%}.image.is-5by3{padding-top:60%}.image.is-16by9{padding-top:56.25%}.image.is-2by1{padding-top:50%}.image.is-3by1{padding-top:33.3333%}.image.is-4by5{padding-top:125%}.image.is-3by4{padding-top:133.3333%}.image.is-2by3{padding-top:150%}.image.is-3by5{padding-top:166.6666%}.image.is-9by16{padding-top:177.7777%}.image.is-1by2{padding-top:200%}.image.is-1by3{padding-top:300%}.image.is-16x16{height:16px;width:16px}.image.is-24x24{height:24px;width:24px}.image.is-32x32{height:32px;width:32px}.image.is-48x48{height:48px;width:48px}.image.is-64x64{height:64px;width:64px}.image.is-96x96{height:96px;width:96px}.image.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}.notification a:not(.button){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:0 0}.notification>.delete{position:absolute;right:.5rem;top:.5rem}.notification .content,.notification .subtitle,.notification .title{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:#363636}.notification.is-dark{background-color:#363636;color:#f5f5f5}.notification.is-primary{background-color:#00d1b2;color:#fff}.notification.is-link{background-color:#3273dc;color:#fff}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-success{background-color:#23d160;color:#fff}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,.7)}.notification.is-danger{background-color:#ff3860;color:#fff}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#dbdbdb}.progress::-webkit-progress-value{background-color:#4a4a4a}.progress::-moz-progress-bar{background-color:#4a4a4a}.progress::-ms-fill{background-color:#4a4a4a;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-dark::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill{background-color:#363636}.progress.is-primary::-webkit-progress-value{background-color:#00d1b2}.progress.is-primary::-moz-progress-bar{background-color:#00d1b2}.progress.is-primary::-ms-fill{background-color:#00d1b2}.progress.is-link::-webkit-progress-value{background-color:#3273dc}.progress.is-link::-moz-progress-bar{background-color:#3273dc}.progress.is-link::-ms-fill{background-color:#3273dc}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-success::-webkit-progress-value{background-color:#23d160}.progress.is-success::-moz-progress-bar{background-color:#23d160}.progress.is-success::-ms-fill{background-color:#23d160}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-danger::-webkit-progress-value{background-color:#ff3860}.progress.is-danger::-moz-progress-bar{background-color:#ff3860}.progress.is-danger::-ms-fill{background-color:#ff3860}.progress.is-small{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#f5f5f5}.table td.is-primary,.table th.is-primary{background-color:#00d1b2;border-color:#00d1b2;color:#fff}.table td.is-link,.table th.is-link{background-color:#3273dc;border-color:#3273dc;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#23d160;border-color:#23d160;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,.7)}.table td.is-danger,.table th.is-danger{background-color:#ff3860;border-color:#ff3860;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#00d1b2;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table th{color:#363636;text-align:left}.table tr.is-selected{background-color:#00d1b2;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead td,.table thead th{border-width:0 0 2px;color:#363636}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#363636}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:.25em .5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag{margin-bottom:.5rem}.tags .tag:not(:last-child){margin-right:.5rem}.tags:last-child{margin-bottom:-.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.has-addons .tag{margin-right:0}.tags.has-addons .tag:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.tags.has-addons .tag:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.tags.is-centered{justify-content:center}.tags.is-centered .tag{margin-right:.25rem;margin-left:.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child){margin-left:.5rem}.tags.is-right .tag:not(:last-child){margin-right:0}.tag:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#4a4a4a;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:.75em;padding-right:.75em;white-space:nowrap}.tag:not(body) .delete{margin-left:.25rem;margin-right:-.375rem}.tag:not(body).is-white{background-color:#fff;color:#0a0a0a}.tag:not(body).is-black{background-color:#0a0a0a;color:#fff}.tag:not(body).is-light{background-color:#f5f5f5;color:#363636}.tag:not(body).is-dark{background-color:#363636;color:#f5f5f5}.tag:not(body).is-primary{background-color:#00d1b2;color:#fff}.tag:not(body).is-link{background-color:#3273dc;color:#fff}.tag:not(body).is-info{background-color:#209cee;color:#fff}.tag:not(body).is-success{background-color:#23d160;color:#fff}.tag:not(body).is-warning{background-color:#ffdd57;color:rgba(0,0,0,.7)}.tag:not(body).is-danger{background-color:#ff3860;color:#fff}.tag:not(body).is-medium{font-size:1rem}.tag:not(body).is-large{font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child){margin-left:-.375em;margin-right:.1875em}.tag:not(body) .icon:last-child:not(:first-child){margin-left:.1875em;margin-right:-.375em}.tag:not(body) .icon:first-child:last-child{margin-left:-.375em;margin-right:-.375em}.tag:not(body).is-delete{margin-left:1px;padding:0;position:relative;width:2em}.tag:not(body).is-delete::after,.tag:not(body).is-delete::before{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;-webkit-transform:translateX(-50%) translateY(-50%) rotate(45deg);transform:translateX(-50%) translateY(-50%) rotate(45deg);-webkit-transform-origin:center center;transform-origin:center center}.tag:not(body).is-delete::before{height:1px;width:50%}.tag:not(body).is-delete::after{height:50%;width:1px}.tag:not(body).is-delete:focus,.tag:not(body).is-delete:hover{background-color:#e8e8e8}.tag:not(body).is-delete:active{background-color:#dbdbdb}.tag:not(body).is-rounded{border-radius:290486px}a.tag:hover{text-decoration:underline}.subtitle,.title{word-break:break-word}.subtitle em,.subtitle span,.title em,.title span{font-weight:inherit}.subtitle sub,.title sub{font-size:.75em}.subtitle sup,.title sup{font-size:.75em}.subtitle .tag,.title .tag{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title+.highlight{margin-top:-.75rem}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}.highlight pre{overflow:auto;max-width:100%}.number{align-items:center;background-color:#f5f5f5;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:.25rem .5rem;text-align:center;vertical-align:top}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#3273dc;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#363636;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ol,.breadcrumb ul{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:.5em}.breadcrumb .icon:last-child{margin-left:.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.1);color:#4a4a4a;max-width:100%;position:relative}.card-header{background-color:none;align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,.1);display:flex}.card-header-title{align-items:center;color:#363636;display:flex;flex-grow:1;font-weight:700;padding:.75rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}.card-image{display:block;position:relative}.card-content{background-color:none;padding:1.5rem}.card-footer{background-color:none;border-top:1px solid #dbdbdb;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #dbdbdb}.card .media:not(:last-child){margin-bottom:.75rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.1);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:.875rem;line-height:1.5;padding:.375rem 1rem;position:relative}a.dropdown-item{padding-right:3rem;white-space:nowrap}a.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active{background-color:#3273dc;color:#fff}.dropdown-divider{background-color:#dbdbdb;border:none;display:block;height:1px;margin:.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item{margin-right:.75rem}.level.is-mobile .level-item:not(:last-child){margin-bottom:0}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width:769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .subtitle,.level-item .title{margin-bottom:0}@media screen and (max-width:768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width:769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width:768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width:769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width:769px),print{.level-right{display:flex}}.media{align-items:flex-start;display:flex;text-align:left}.media .content:not(:last-child){margin-bottom:.75rem}.media .media{border-top:1px solid rgba(219,219,219,.5);display:flex;padding-top:.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:.5rem}.media .media .media{padding-top:.5rem}.media .media .media+.media{margin-top:.5rem}.media+.media{border-top:1px solid rgba(219,219,219,.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}.menu{font-size:1rem}.menu.is-small{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#4a4a4a;display:block;padding:.5em .75em}.menu-list a:hover{background-color:#f5f5f5;color:#363636}.menu-list a.is-active{background-color:#3273dc;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#7a7a7a;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag){color:currentColor;text-decoration:underline}.message.is-small{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff;color:#4d4d4d}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a;color:#090909}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:#363636}.message.is-light .message-body{border-color:#f5f5f5;color:#505050}.message.is-dark{background-color:#fafafa}.message.is-dark .message-header{background-color:#363636;color:#f5f5f5}.message.is-dark .message-body{border-color:#363636;color:#2a2a2a}.message.is-primary{background-color:#f5fffd}.message.is-primary .message-header{background-color:#00d1b2;color:#fff}.message.is-primary .message-body{border-color:#00d1b2;color:#021310}.message.is-link{background-color:#f6f9fe}.message.is-link .message-header{background-color:#3273dc;color:#fff}.message.is-link .message-body{border-color:#3273dc;color:#22509a}.message.is-info{background-color:#f6fbfe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#12537e}.message.is-success{background-color:#f6fef9}.message.is-success .message-header{background-color:#23d160;color:#fff}.message.is-success .message-body{border-color:#23d160;color:#0e301a}.message.is-warning{background-color:#fffdf5}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#3b3108}.message.is-danger{background-color:#fff5f7}.message.is-danger .message-header{background-color:#ff3860;color:#fff}.message.is-danger .message-body{border-color:#ff3860;color:#cd0930}.message-header{align-items:center;background-color:#4a4a4a;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#4a4a4a;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:transparent}.modal{align-items:center;display:none;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,.86)}.modal-card,.modal-content{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width:769px),print{.modal-card,.modal-content{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:0 0;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden}.modal-card-foot,.modal-card-head{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#363636;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:10px}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link,.navbar.is-white .navbar-brand>.navbar-item{color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link.is-active,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand>a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}@media screen and (min-width:1088px){.navbar.is-white .navbar-end .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-start>.navbar-item{color:#0a0a0a}.navbar.is-white .navbar-end .navbar-link.is-active,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start>a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-end .navbar-link::after,.navbar.is-white .navbar-start .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand .navbar-link,.navbar.is-black .navbar-brand>.navbar-item{color:#fff}.navbar.is-black .navbar-brand .navbar-link.is-active,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand>a.navbar-item:hover{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}@media screen and (min-width:1088px){.navbar.is-black .navbar-end .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-start>.navbar-item{color:#fff}.navbar.is-black .navbar-end .navbar-link.is-active,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start>a.navbar-item:hover{background-color:#000;color:#fff}.navbar.is-black .navbar-end .navbar-link::after,.navbar.is-black .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:#363636}.navbar.is-light .navbar-brand .navbar-link,.navbar.is-light .navbar-brand>.navbar-item{color:#363636}.navbar.is-light .navbar-brand .navbar-link.is-active,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand>a.navbar-item:hover{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-brand .navbar-link::after{border-color:#363636}@media screen and (min-width:1088px){.navbar.is-light .navbar-end .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-start>.navbar-item{color:#363636}.navbar.is-light .navbar-end .navbar-link.is-active,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start>a.navbar-item:hover{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-end .navbar-link::after,.navbar.is-light .navbar-start .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#363636}}.navbar.is-dark{background-color:#363636;color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link,.navbar.is-dark .navbar-brand>.navbar-item{color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link.is-active,.navbar.is-dark .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand>a.navbar-item:hover{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link::after{border-color:#f5f5f5}@media screen and (min-width:1088px){.navbar.is-dark .navbar-end .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.navbar.is-dark .navbar-start>.navbar-item{color:#f5f5f5}.navbar.is-dark .navbar-end .navbar-link.is-active,.navbar.is-dark .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start>a.navbar-item:hover{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-end .navbar-link::after,.navbar.is-dark .navbar-start .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#f5f5f5}}.navbar.is-primary{background-color:#00d1b2;color:#fff}.navbar.is-primary .navbar-brand .navbar-link,.navbar.is-primary .navbar-brand>.navbar-item{color:#fff}.navbar.is-primary .navbar-brand .navbar-link.is-active,.navbar.is-primary .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand>a.navbar-item:hover{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after{border-color:#fff}@media screen and (min-width:1088px){.navbar.is-primary .navbar-end .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.navbar.is-primary .navbar-start>.navbar-item{color:#fff}.navbar.is-primary .navbar-end .navbar-link.is-active,.navbar.is-primary .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start>a.navbar-item:hover{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-end .navbar-link::after,.navbar.is-primary .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active{background-color:#00d1b2;color:#fff}}.navbar.is-link{background-color:#3273dc;color:#fff}.navbar.is-link .navbar-brand .navbar-link,.navbar.is-link .navbar-brand>.navbar-item{color:#fff}.navbar.is-link .navbar-brand .navbar-link.is-active,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand>a.navbar-item:hover{background-color:#2366d1;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}@media screen and (min-width:1088px){.navbar.is-link .navbar-end .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-start>.navbar-item{color:#fff}.navbar.is-link .navbar-end .navbar-link.is-active,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start>a.navbar-item:hover{background-color:#2366d1;color:#fff}.navbar.is-link .navbar-end .navbar-link::after,.navbar.is-link .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link{background-color:#2366d1;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#3273dc;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand .navbar-link,.navbar.is-info .navbar-brand>.navbar-item{color:#fff}.navbar.is-info .navbar-brand .navbar-link.is-active,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand>a.navbar-item:hover{background-color:#118fe4;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}@media screen and (min-width:1088px){.navbar.is-info .navbar-end .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-start>.navbar-item{color:#fff}.navbar.is-info .navbar-end .navbar-link.is-active,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start>a.navbar-item:hover{background-color:#118fe4;color:#fff}.navbar.is-info .navbar-end .navbar-link::after,.navbar.is-info .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link{background-color:#118fe4;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#23d160;color:#fff}.navbar.is-success .navbar-brand .navbar-link,.navbar.is-success .navbar-brand>.navbar-item{color:#fff}.navbar.is-success .navbar-brand .navbar-link.is-active,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand>a.navbar-item:hover{background-color:#20bc56;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}@media screen and (min-width:1088px){.navbar.is-success .navbar-end .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-start>.navbar-item{color:#fff}.navbar.is-success .navbar-end .navbar-link.is-active,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start>a.navbar-item:hover{background-color:#20bc56;color:#fff}.navbar.is-success .navbar-end .navbar-link::after,.navbar.is-success .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link{background-color:#20bc56;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#23d160;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link,.navbar.is-warning .navbar-brand>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link.is-active,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand>a.navbar-item:hover{background-color:#ffd83d;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,.7)}@media screen and (min-width:1088px){.navbar.is-warning .navbar-end .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-start>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-end .navbar-link.is-active,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start>a.navbar-item:hover{background-color:#ffd83d;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-end .navbar-link::after,.navbar.is-warning .navbar-start .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link{background-color:#ffd83d;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,.7)}}.navbar.is-danger{background-color:#ff3860;color:#fff}.navbar.is-danger .navbar-brand .navbar-link,.navbar.is-danger .navbar-brand>.navbar-item{color:#fff}.navbar.is-danger .navbar-brand .navbar-link.is-active,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand>a.navbar-item:hover{background-color:#ff1f4b;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}@media screen and (min-width:1088px){.navbar.is-danger .navbar-end .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-start>.navbar-item{color:#fff}.navbar.is-danger .navbar-end .navbar-link.is-active,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start>a.navbar-item:hover{background-color:#ff1f4b;color:#fff}.navbar.is-danger .navbar-end .navbar-link::after,.navbar.is-danger .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link{background-color:#ff1f4b;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#ff3860;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}body.has-navbar-fixed-top,html.has-navbar-fixed-top{padding-top:3.25rem}body.has-navbar-fixed-bottom,html.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;-webkit-transform-origin:center;transform-origin:center;transition-duration:86ms;transition-property:background-color,opacity,-webkit-transform;transition-property:background-color,opacity,transform;transition-property:background-color,opacity,transform,-webkit-transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,.05)}.navbar-burger.is-active span:nth-child(1){-webkit-transform:translateY(5px) rotate(45deg);transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){-webkit-transform:translateY(-5px) rotate(-45deg);transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:.5rem .75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-.25rem;margin-right:-.25rem}.navbar-link,a.navbar-item{cursor:pointer}.navbar-link.is-active,.navbar-link:hover,a.navbar-item.is-active,a.navbar-item:hover{background-color:#fafafa;color:#3273dc}.navbar-item{display:block;flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(.5rem - 1px)}.navbar-item.is-tab:hover{background-color:transparent;border-bottom-color:#3273dc}.navbar-item.is-tab.is-active{background-color:transparent;border-bottom-color:#3273dc;border-bottom-style:solid;border-bottom-width:3px;color:#3273dc;padding-bottom:calc(.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link{padding-right:2.5em}.navbar-link::after{border-color:#3273dc;margin-top:-.375em;right:1.125em}.navbar-dropdown{font-size:.875rem;padding-bottom:.5rem;padding-top:.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:.5rem 0}@media screen and (max-width:1087px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,.1);padding:.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}body.has-navbar-fixed-top-touch,html.has-navbar-fixed-top-touch{padding-top:3.25rem}body.has-navbar-fixed-bottom-touch,html.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width:1088px){.navbar,.navbar-end,.navbar-menu,.navbar-start{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-end,.navbar.is-spaced .navbar-start{align-items:center}.navbar.is-spaced .navbar-link,.navbar.is-spaced a.navbar-item{border-radius:4px}.navbar.is-transparent .navbar-link.is-active,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent a.navbar-item:hover{background-color:transparent!important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent!important}.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#3273dc}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item{display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{-webkit-transform:rotate(135deg) translate(.25em,-.25em);transform:rotate(135deg) translate(.25em,-.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown{opacity:1;pointer-events:auto;-webkit-transform:translateY(0);transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,.1);display:none;font-size:.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#3273dc}.navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-dropdown{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));-webkit-transform:translateY(-5px);transform:translateY(-5px);transition-duration:86ms;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.container>.navbar .navbar-brand,.navbar>.container .navbar-brand{margin-left:-1rem}.container>.navbar .navbar-menu,.navbar>.container .navbar-menu{margin-right:-1rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,.1)}.navbar.is-fixed-top-desktop{top:0}body.has-navbar-fixed-top-desktop,html.has-navbar-fixed-top-desktop{padding-top:3.25rem}body.has-navbar-fixed-bottom-desktop,html.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}body.has-spaced-navbar-fixed-top,html.has-spaced-navbar-fixed-top{padding-top:5.25rem}body.has-spaced-navbar-fixed-bottom,html.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}.navbar-link.is-active,a.navbar-item.is-active{color:#0a0a0a}.navbar-link.is-active:not(:hover),a.navbar-item.is-active:not(:hover){background-color:transparent}.navbar-item.has-dropdown.is-active .navbar-link,.navbar-item.has-dropdown:hover .navbar-link{background-color:#fafafa}}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-next,.pagination.is-rounded .pagination-previous{padding-left:1em;padding-right:1em;border-radius:290486px}.pagination.is-rounded .pagination-link{border-radius:290486px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous{font-size:1em;padding-left:.5em;padding-right:.5em;justify-content:center;margin:.25rem;text-align:center}.pagination-link,.pagination-next,.pagination-previous{border-color:#dbdbdb;color:#363636;min-width:2.25em}.pagination-link:hover,.pagination-next:hover,.pagination-previous:hover{border-color:#b5b5b5;color:#363636}.pagination-link:focus,.pagination-next:focus,.pagination-previous:focus{border-color:#3273dc}.pagination-link:active,.pagination-next:active,.pagination-previous:active{box-shadow:inset 0 1px 2px rgba(10,10,10,.2)}.pagination-link[disabled],.pagination-next[disabled],.pagination-previous[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#7a7a7a;opacity:.5}.pagination-next,.pagination-previous{padding-left:.75em;padding-right:.75em;white-space:nowrap}.pagination-link.is-current{background-color:#3273dc;border-color:#3273dc;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}@media screen and (max-width:768px){.pagination{flex-wrap:wrap}.pagination-next,.pagination-previous{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width:769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel-block,.panel-heading,.panel-tabs{border-bottom:1px solid #dbdbdb;border-left:1px solid #dbdbdb;border-right:1px solid #dbdbdb}.panel-block:first-child,.panel-heading:first-child,.panel-tabs:first-child{border-top:1px solid #dbdbdb}.panel-heading{background-color:#f5f5f5;border-radius:4px 4px 0 0;color:#363636;font-size:1.25em;font-weight:300;line-height:1.25;padding:.5em .75em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#4a4a4a}.panel-list a:hover{color:#3273dc}.panel-block{align-items:center;color:#363636;display:flex;justify-content:flex-start;padding:.5em .75em}.panel-block input[type=checkbox]{margin-right:.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#3273dc;color:#363636}.panel-block.is-active .panel-icon{color:#3273dc}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#7a7a7a;margin-right:.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#4a4a4a;display:flex;justify-content:center;margin-bottom:-1px;padding:.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#363636;color:#363636}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#3273dc;color:#3273dc}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:.75em;padding-right:.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:.75em}.tabs .icon:first-child{margin-right:.5em}.tabs .icon:last-child{margin-left:.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:transparent!important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-radius:4px 0 0 4px}.tabs.is-toggle li:last-child a{border-radius:0 4px 4px 0}.tabs.is-toggle li.is-active a{background-color:#3273dc;border-color:#3273dc;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}.tabs.is-small{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-1{flex:none;width:8.33333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.33333%}.columns.is-mobile>.column.is-2{flex:none;width:16.66667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.66667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.33333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.33333%}.columns.is-mobile>.column.is-5{flex:none;width:41.66667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.66667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.33333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.33333%}.columns.is-mobile>.column.is-8{flex:none;width:66.66667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.66667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.33333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.33333%}.columns.is-mobile>.column.is-11{flex:none;width:91.66667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.66667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width:768px){.column.is-narrow-mobile{flex:none}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-1-mobile{flex:none;width:8.33333%}.column.is-offset-1-mobile{margin-left:8.33333%}.column.is-2-mobile{flex:none;width:16.66667%}.column.is-offset-2-mobile{margin-left:16.66667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.33333%}.column.is-offset-4-mobile{margin-left:33.33333%}.column.is-5-mobile{flex:none;width:41.66667%}.column.is-offset-5-mobile{margin-left:41.66667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.33333%}.column.is-offset-7-mobile{margin-left:58.33333%}.column.is-8-mobile{flex:none;width:66.66667%}.column.is-offset-8-mobile{margin-left:66.66667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.33333%}.column.is-offset-10-mobile{margin-left:83.33333%}.column.is-11-mobile{flex:none;width:91.66667%}.column.is-offset-11-mobile{margin-left:91.66667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width:769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-1,.column.is-1-tablet{flex:none;width:8.33333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.33333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.66667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.66667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.33333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.33333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.66667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.66667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.33333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.33333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.66667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.66667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.33333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.33333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.66667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.66667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width:1087px){.column.is-narrow-touch{flex:none}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-1-touch{flex:none;width:8.33333%}.column.is-offset-1-touch{margin-left:8.33333%}.column.is-2-touch{flex:none;width:16.66667%}.column.is-offset-2-touch{margin-left:16.66667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.33333%}.column.is-offset-4-touch{margin-left:33.33333%}.column.is-5-touch{flex:none;width:41.66667%}.column.is-offset-5-touch{margin-left:41.66667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.33333%}.column.is-offset-7-touch{margin-left:58.33333%}.column.is-8-touch{flex:none;width:66.66667%}.column.is-offset-8-touch{margin-left:66.66667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.33333%}.column.is-offset-10-touch{margin-left:83.33333%}.column.is-11-touch{flex:none;width:91.66667%}.column.is-offset-11-touch{margin-left:91.66667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width:1088px){.column.is-narrow-desktop{flex:none}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-1-desktop{flex:none;width:8.33333%}.column.is-offset-1-desktop{margin-left:8.33333%}.column.is-2-desktop{flex:none;width:16.66667%}.column.is-offset-2-desktop{margin-left:16.66667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.33333%}.column.is-offset-4-desktop{margin-left:33.33333%}.column.is-5-desktop{flex:none;width:41.66667%}.column.is-offset-5-desktop{margin-left:41.66667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.33333%}.column.is-offset-7-desktop{margin-left:58.33333%}.column.is-8-desktop{flex:none;width:66.66667%}.column.is-offset-8-desktop{margin-left:66.66667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.33333%}.column.is-offset-10-desktop{margin-left:83.33333%}.column.is-11-desktop{flex:none;width:91.66667%}.column.is-offset-11-desktop{margin-left:91.66667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width:1280px){.column.is-narrow-widescreen{flex:none}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-1-widescreen{flex:none;width:8.33333%}.column.is-offset-1-widescreen{margin-left:8.33333%}.column.is-2-widescreen{flex:none;width:16.66667%}.column.is-offset-2-widescreen{margin-left:16.66667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.33333%}.column.is-offset-4-widescreen{margin-left:33.33333%}.column.is-5-widescreen{flex:none;width:41.66667%}.column.is-offset-5-widescreen{margin-left:41.66667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.33333%}.column.is-offset-7-widescreen{margin-left:58.33333%}.column.is-8-widescreen{flex:none;width:66.66667%}.column.is-offset-8-widescreen{margin-left:66.66667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.33333%}.column.is-offset-10-widescreen{margin-left:83.33333%}.column.is-11-widescreen{flex:none;width:91.66667%}.column.is-offset-11-widescreen{margin-left:91.66667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width:1472px){.column.is-narrow-fullhd{flex:none}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-1-fullhd{flex:none;width:8.33333%}.column.is-offset-1-fullhd{margin-left:8.33333%}.column.is-2-fullhd{flex:none;width:16.66667%}.column.is-offset-2-fullhd{margin-left:16.66667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.33333%}.column.is-offset-4-fullhd{margin-left:33.33333%}.column.is-5-fullhd{flex:none;width:41.66667%}.column.is-offset-5-fullhd{margin-left:41.66667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.33333%}.column.is-offset-7-fullhd{margin-left:58.33333%}.column.is-8-fullhd{flex:none;width:66.66667%}.column.is-offset-8-fullhd{margin-left:66.66667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.33333%}.column.is-offset-10-fullhd{margin-left:83.33333%}.column.is-11-fullhd{flex:none;width:91.66667%}.column.is-offset-11-fullhd{margin-left:91.66667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0!important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width:769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width:1088px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap:0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap:0rem}.columns.is-variable.is-1{--columnGap:0.25rem}.columns.is-variable.is-2{--columnGap:0.5rem}.columns.is-variable.is-3{--columnGap:0.75rem}.columns.is-variable.is-4{--columnGap:1rem}.columns.is-variable.is-5{--columnGap:1.25rem}.columns.is-variable.is-6{--columnGap:1.5rem}.columns.is-variable.is-7{--columnGap:1.75rem}.columns.is-variable.is-8{--columnGap:2rem}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:-webkit-min-content;min-height:-moz-min-content;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0!important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem!important}@media screen and (min-width:769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.33333%}.tile.is-2{flex:none;width:16.66667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.33333%}.tile.is-5{flex:none;width:41.66667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.33333%}.tile.is-8{flex:none;width:66.66667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.33333%}.tile.is-11{flex:none;width:91.66667%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:0 0}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width:1087px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,.7)}.hero.is-white .navbar-link.is-active,.hero.is-white .navbar-link:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg,#e6e6e6 0,#fff 71%,#fff 100%)}@media screen and (max-width:768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg,#e6e6e6 0,#fff 71%,#fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width:1087px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,.7)}.hero.is-black .navbar-link.is-active,.hero.is-black .navbar-link:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black a.navbar-item:hover{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg,#000 0,#0a0a0a 71%,#181616 100%)}@media screen and (max-width:768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg,#000 0,#0a0a0a 71%,#181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:#363636}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag),.hero.is-light strong{color:inherit}.hero.is-light .title{color:#363636}.hero.is-light .subtitle{color:rgba(54,54,54,.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:#363636}@media screen and (max-width:1087px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(54,54,54,.7)}.hero.is-light .navbar-link.is-active,.hero.is-light .navbar-link:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light a.navbar-item:hover{background-color:#e8e8e8;color:#363636}.hero.is-light .tabs a{color:#363636;opacity:.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:#363636}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#363636;border-color:#363636;color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg,#dfd8d9 0,#f5f5f5 71%,#fff 100%)}@media screen and (max-width:768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg,#dfd8d9 0,#f5f5f5 71%,#fff 100%)}}.hero.is-dark{background-color:#363636;color:#f5f5f5}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag),.hero.is-dark strong{color:inherit}.hero.is-dark .title{color:#f5f5f5}.hero.is-dark .subtitle{color:rgba(245,245,245,.9)}.hero.is-dark .subtitle a:not(.button),.hero.is-dark .subtitle strong{color:#f5f5f5}@media screen and (max-width:1087px){.hero.is-dark .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.hero.is-dark .navbar-link{color:rgba(245,245,245,.7)}.hero.is-dark .navbar-link.is-active,.hero.is-dark .navbar-link:hover,.hero.is-dark a.navbar-item.is-active,.hero.is-dark a.navbar-item:hover{background-color:#292929;color:#f5f5f5}.hero.is-dark .tabs a{color:#f5f5f5;opacity:.9}.hero.is-dark .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a{opacity:1}.hero.is-dark .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a{color:#f5f5f5}.hero.is-dark .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.hero.is-dark.is-bold{background-image:linear-gradient(141deg,#1f191a 0,#363636 71%,#46403f 100%)}@media screen and (max-width:768px){.hero.is-dark.is-bold .navbar-menu{background-image:linear-gradient(141deg,#1f191a 0,#363636 71%,#46403f 100%)}}.hero.is-primary{background-color:#00d1b2;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag),.hero.is-primary strong{color:inherit}.hero.is-primary .title{color:#fff}.hero.is-primary .subtitle{color:rgba(255,255,255,.9)}.hero.is-primary .subtitle a:not(.button),.hero.is-primary .subtitle strong{color:#fff}@media screen and (max-width:1087px){.hero.is-primary .navbar-menu{background-color:#00d1b2}}.hero.is-primary .navbar-item,.hero.is-primary .navbar-link{color:rgba(255,255,255,.7)}.hero.is-primary .navbar-link.is-active,.hero.is-primary .navbar-link:hover,.hero.is-primary a.navbar-item.is-active,.hero.is-primary a.navbar-item:hover{background-color:#00b89c;color:#fff}.hero.is-primary .tabs a{color:#fff;opacity:.9}.hero.is-primary .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a{opacity:1}.hero.is-primary .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#00d1b2}.hero.is-primary.is-bold{background-image:linear-gradient(141deg,#009e6c 0,#00d1b2 71%,#00e7eb 100%)}@media screen and (max-width:768px){.hero.is-primary.is-bold .navbar-menu{background-image:linear-gradient(141deg,#009e6c 0,#00d1b2 71%,#00e7eb 100%)}}.hero.is-link{background-color:#3273dc;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width:1087px){.hero.is-link .navbar-menu{background-color:#3273dc}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,.7)}.hero.is-link .navbar-link.is-active,.hero.is-link .navbar-link:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link a.navbar-item:hover{background-color:#2366d1;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#3273dc}.hero.is-link.is-bold{background-image:linear-gradient(141deg,#1577c6 0,#3273dc 71%,#4366e5 100%)}@media screen and (max-width:768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg,#1577c6 0,#3273dc 71%,#4366e5 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width:1087px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,.7)}.hero.is-info .navbar-link.is-active,.hero.is-info .navbar-link:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info a.navbar-item:hover{background-color:#118fe4;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg,#04a6d7 0,#209cee 71%,#3287f5 100%)}@media screen and (max-width:768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg,#04a6d7 0,#209cee 71%,#3287f5 100%)}}.hero.is-success{background-color:#23d160;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width:1087px){.hero.is-success .navbar-menu{background-color:#23d160}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,.7)}.hero.is-success .navbar-link.is-active,.hero.is-success .navbar-link:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success a.navbar-item:hover{background-color:#20bc56;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#23d160}.hero.is-success.is-bold{background-image:linear-gradient(141deg,#12af2f 0,#23d160 71%,#2ce28a 100%)}@media screen and (max-width:768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg,#12af2f 0,#23d160 71%,#2ce28a 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,.7)}@media screen and (max-width:1087px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,.7)}.hero.is-warning .navbar-link.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning a.navbar-item:hover{background-color:#ffd83d;color:rgba(0,0,0,.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,.7);opacity:.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,.7);border-color:rgba(0,0,0,.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg,#ffaf24 0,#ffdd57 71%,#fffa70 100%)}@media screen and (max-width:768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg,#ffaf24 0,#ffdd57 71%,#fffa70 100%)}}.hero.is-danger{background-color:#ff3860;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width:1087px){.hero.is-danger .navbar-menu{background-color:#ff3860}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,.7)}.hero.is-danger .navbar-link.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger a.navbar-item:hover{background-color:#ff1f4b;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ff3860}.hero.is-danger.is-bold{background-image:linear-gradient(141deg,#ff0561 0,#ff3860 71%,#ff5257 100%)}@media screen and (max-width:768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg,#ff0561 0,#ff3860 71%,#ff5257 100%)}}.hero.is-small .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width:769px),print{.hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width:769px),print{.hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}.hero.is-fullheight .hero-body,.hero.is-halfheight .hero-body{align-items:center;display:flex}.hero.is-fullheight .hero-body>.container,.hero.is-halfheight .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.hero-video.is-transparent{opacity:.3}@media screen and (max-width:768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width:768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:.75rem}}@media screen and (min-width:769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-foot,.hero-head{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}.section{padding:3rem 1.5rem}@media screen and (min-width:1088px){.section.is-medium{padding:9rem 1.5rem}.section.is-large{padding:18rem 1.5rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web.Auth/Resources/AuthorizationCodeAuth/images/1.png b/Source Files/SpotifyAPI.Web.Auth/Resources/AuthorizationCodeAuth/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..4bb428a7936203ba2187d78e090c71674a63652c GIT binary patch literal 38997 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 literal 0 HcmV?d00001 diff --git a/Source Files/SpotifyAPI.Web.Auth/Resources/AuthorizationCodeAuth/images/2.png b/Source Files/SpotifyAPI.Web.Auth/Resources/AuthorizationCodeAuth/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..a01a53ad67ca48284c8b9d5c234126a6dc4a5bbd GIT binary patch literal 16049 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 literal 0 HcmV?d00001 diff --git a/Source Files/SpotifyAPI.Web.Auth/Resources/AuthorizationCodeAuth/start.html b/Source Files/SpotifyAPI.Web.Auth/Resources/AuthorizationCodeAuth/start.html new file mode 100644 index 0000000..9b883d4 --- /dev/null +++ b/Source Files/SpotifyAPI.Web.Auth/Resources/AuthorizationCodeAuth/start.html @@ -0,0 +1,77 @@ + + + + + + + + + + + +

    +
    +

    Spotify Authentication

    +
    +
    +

    Introduction

    + +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + + + + + \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web.Auth/Resources/ImplicitGrantAuth/index.html b/Source Files/SpotifyAPI.Web.Auth/Resources/ImplicitGrantAuth/index.html new file mode 100644 index 0000000..6197f88 --- /dev/null +++ b/Source Files/SpotifyAPI.Web.Auth/Resources/ImplicitGrantAuth/index.html @@ -0,0 +1,45 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web.Auth/SpotifyAPI.Web.Auth.csproj b/Source Files/SpotifyAPI.Web.Auth/SpotifyAPI.Web.Auth.csproj new file mode 100644 index 0000000..6f40b62 --- /dev/null +++ b/Source Files/SpotifyAPI.Web.Auth/SpotifyAPI.Web.Auth.csproj @@ -0,0 +1,51 @@ + + + + net46;netstandard2.0 + + + + bin\Debug\netstandard2.0\SpotifyAPI.Web.Auth.xml + 1701;1702;1705;1591 + + + + bin\Release\netstandard2.0\SpotifyAPI.Web.Auth.xml + 1701;1702;1705;1591 + + + + + + + + + + + + + + + + + + + + + + + + + + ..\..\..\..\..\..\..\..\..\..\..\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Management.Automation\v4.0_3.0.0.0__31bf3856ad364e35\System.Management.Automation.dll + + + ..\..\..\..\..\..\..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.2\System.Windows.Forms.dll + + + + + + + + diff --git a/Source Files/SpotifyAPI.Web.Auth/SpotifyAPI.Web.Auth.nuspec b/Source Files/SpotifyAPI.Web.Auth/SpotifyAPI.Web.Auth.nuspec new file mode 100644 index 0000000..6675c4d --- /dev/null +++ b/Source Files/SpotifyAPI.Web.Auth/SpotifyAPI.Web.Auth.nuspec @@ -0,0 +1,31 @@ + + + + + SpotifyAPI.Web.Auth + 3.0.0 + SpotifyAPI.Web.Auth + JohnnyCrazy + JohnnyCrazy + https://github.com/JohnnyCrazy/SpotifyAPI-NET/blob/master/LICENSE + https://github.com/JohnnyCrazy/SpotifyAPI-NET/ + false + + Authorization Flows for the Spotify's Web API, written in .NET + + For more infos, visit https://github.com/JohnnyCrazy/SpotifyAPI-NET + + + spotify api music .net c# spotify-client + + + + + + + + + + + + diff --git a/Source Files/SpotifyAPI.Web.Auth/SpotifyAuthServer.cs b/Source Files/SpotifyAPI.Web.Auth/SpotifyAuthServer.cs new file mode 100644 index 0000000..e4f668b --- /dev/null +++ b/Source Files/SpotifyAPI.Web.Auth/SpotifyAuthServer.cs @@ -0,0 +1,101 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading; +using SpotifyAPI.Web.Enums; +using Unosquare.Labs.EmbedIO; +using Unosquare.Labs.EmbedIO.Modules; + +namespace SpotifyAPI.Web.Auth +{ + public abstract class SpotifyAuthServer + { + public string ClientId { get; set; } + public string ServerUri { get; set; } + public string RedirectUri { get; set; } + public string State { get; set; } + public Scope Scope { get; set; } + public bool ShowDialog { get; set; } + + private readonly string _folder; + private readonly string _type; + private WebServer _server; + protected CancellationTokenSource _serverSource; + + public delegate void OnAuthReceived(object sender, T payload); + public event OnAuthReceived AuthReceived; + + internal static readonly Dictionary> Instances = new Dictionary>(); + + internal SpotifyAuthServer(string type, string folder, string redirectUri, string serverUri, Scope scope = Scope.None, string state = "") + { + _type = type; + _folder = folder; + ServerUri = serverUri; + RedirectUri = redirectUri; + Scope = scope; + State = string.IsNullOrEmpty(state) ? string.Join("", Guid.NewGuid().ToString("n").Take(8)) : state; + } + + public void Start() + { + Instances.Add(State, this); + _serverSource = new CancellationTokenSource(); + + _server = WebServer.Create(ServerUri); + _server.RegisterModule(new WebApiModule()); + AdaptWebServer(_server); + _server.RegisterModule(new ResourceFilesModule(Assembly.GetExecutingAssembly(), $"SpotifyAPI.Web.Auth.Resources.{_folder}")); +#pragma warning disable 4014 + _server.RunAsync(_serverSource.Token); +#pragma warning restore 4014 + } + + public virtual string GetUri() + { + StringBuilder builder = new StringBuilder("https://accounts.spotify.com/authorize/?"); + builder.Append("client_id=" + ClientId); + builder.Append($"&response_type={_type}"); + builder.Append("&redirect_uri=" + RedirectUri); + builder.Append("&state=" + State); + builder.Append("&scope=" + Scope.GetStringAttribute(" ")); + builder.Append("&show_dialog=false"); + return Uri.EscapeUriString(builder.ToString()); + } + + public void Stop(int delay = 2000) + { + if (_serverSource == null) return; + _serverSource.CancelAfter(delay); + Instances.Remove(State); + } + + public void OpenBrowser(bool AR) + { + string uri = GetUri(); + AuthUtil.OpenBrowser(uri, AR); + } + + // Attempt to silently automate renewal of tokens. Broken due to Javascript redirect, most likely. + /* + public void TryCURL() + { + string uri = GetUri(); + AuthUtil.TryCURL(uri); + }*/ + + internal void TriggerAuth(T payload) + { + AuthReceived?.Invoke(this, payload); + } + + internal static SpotifyAuthServer GetByState(string state) + { + return Instances.TryGetValue(state, out SpotifyAuthServer auth) ? auth : null; + } + + protected abstract void AdaptWebServer(WebServer webServer); + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web.Auth/TokenSwapAuth.cs b/Source Files/SpotifyAPI.Web.Auth/TokenSwapAuth.cs new file mode 100644 index 0000000..73e7b0d --- /dev/null +++ b/Source Files/SpotifyAPI.Web.Auth/TokenSwapAuth.cs @@ -0,0 +1,217 @@ +using System; +using System.Collections.Generic; +using System.Net; +using System.Text; +using System.Threading.Tasks; +using SpotifyAPI.Web.Enums; +using Unosquare.Labs.EmbedIO; +using Unosquare.Labs.EmbedIO.Constants; +using Unosquare.Labs.EmbedIO.Modules; +using SpotifyAPI.Web.Models; +using Newtonsoft.Json; +#if NETSTANDARD2_0 +using System.Net.Http; +#endif +#if NET46 +using System.Net.Http; +using HttpListenerContext = Unosquare.Net.HttpListenerContext; +#endif + +namespace SpotifyAPI.Web.Auth +{ + /// + /// + /// A version of that does not store your client secret, client ID or redirect URI, enforcing a secure authorization flow. Requires an exchange server that will return the authorization code to its callback server via GET request. + /// + /// + /// It's recommended that you use if you would like to use the TokenSwap method. + /// + /// + public class TokenSwapAuth : SpotifyAuthServer + { + string exchangeServerUri; + + /// + /// The HTML to respond with when the callback server (serverUri) is reached. The default value will close the window on arrival. + /// + public string HtmlResponse { get; set; } = ""; + /// + /// If true, will time how long it takes for access to expire. On expiry, the event fires. + /// + public bool TimeAccessExpiry { get; set; } + + /// The URI to an exchange server that will perform the key exchange. + /// The URI to host the server at that your exchange server should return the authorization code to by GET request. (e.g. http://localhost:4002) + /// + /// Stating none will randomly generate a state parameter. + /// The HTML to respond with when the callback server (serverUri) is reached. The default value will close the window on arrival. + public TokenSwapAuth(string exchangeServerUri, string serverUri, Scope scope = Scope.None, string state = "", string htmlResponse = "") : base("code", "", "", serverUri, scope, state) + { + if (!string.IsNullOrEmpty(htmlResponse)) + { + HtmlResponse = htmlResponse; + } + + this.exchangeServerUri = exchangeServerUri; + } + + protected override void AdaptWebServer(WebServer webServer) + { + webServer.Module().RegisterController(); + } + + public override string GetUri() + { + StringBuilder builder = new StringBuilder(exchangeServerUri); + builder.Append("?"); + builder.Append("response_type=code"); + builder.Append("&state=" + State); + builder.Append("&scope=" + Scope.GetStringAttribute(" ")); + builder.Append("&show_dialog=" + ShowDialog); + return Uri.EscapeUriString(builder.ToString()); + } + + static readonly HttpClient httpClient = new HttpClient(); + + /// + /// The maximum amount of times to retry getting a token. + /// + /// A token get is attempted every time you and . + /// + public int MaxGetTokenRetries { get; set; } = 10; + + /// + /// Creates a HTTP request to obtain a token object. + /// Parameter grantType can only be "refresh_token" or "authorization_code". authorizationCode and refreshToken are not mandatory, but at least one must be provided for your desired grant_type request otherwise an invalid response will be given and an exception is likely to be thrown. + /// + /// Will re-attempt on error, on null or on no access token times before finally returning null. + /// + /// + /// Can only be "refresh_token" or "authorization_code". + /// This needs to be defined if "grantType" is "authorization_code". + /// This needs to be defined if "grantType" is "refresh_token". + /// Does not need to be defined. Used internally for retry attempt recursion. + /// Attempts to return a full , but after retry attempts, may return a with no , or null. + async Task GetToken(string grantType, string authorizationCode = "", string refreshToken = "", int currentRetries = 0) + { + var content = new FormUrlEncodedContent(new Dictionary + { + { "grant_type", grantType }, + { "code", authorizationCode }, + { "refresh_token", refreshToken } + }); + + try + { + var siteResponse = await httpClient.PostAsync(exchangeServerUri, content); + Token token = JsonConvert.DeserializeObject(await siteResponse.Content.ReadAsStringAsync()); + // Don't need to check if it was null - if it is, it will resort to the catch block. + if (!token.HasError() && !string.IsNullOrEmpty(token.AccessToken)) + { + return token; + } + } + catch { } + + if (currentRetries >= MaxGetTokenRetries) + { + return null; + } + else + { + currentRetries++; + // The reason I chose to implement the retries system this way is because a static or instance + // variable keeping track would inhibit parallelism i.e. using this function on multiple threads/tasks. + // It's not clear why someone would like to do that, but it's better to cater for all kinds of uses. + return await GetToken(grantType, authorizationCode, refreshToken, currentRetries); + } + } + + System.Timers.Timer accessTokenExpireTimer; + /// + /// When Spotify authorization has expired. Will only trigger if is true. + /// + public event EventHandler OnAccessTokenExpired; + + /// + /// If is true, sets a timer for how long access will take to expire. + /// + /// + void SetAccessExpireTimer(Token token) + { + if (!TimeAccessExpiry) return; + + if (accessTokenExpireTimer != null) + { + accessTokenExpireTimer.Stop(); + accessTokenExpireTimer.Dispose(); + } + + accessTokenExpireTimer = new System.Timers.Timer + { + Enabled = true, + Interval = token.ExpiresIn * 1000, + AutoReset = false + }; + accessTokenExpireTimer.Elapsed += (sender, e) => OnAccessTokenExpired?.Invoke(this, EventArgs.Empty); + } + + /// + /// Uses the authorization code to silently (doesn't open a browser) obtain both an access token and refresh token, where the refresh token would be required for you to use . + /// + /// + /// + public async Task ExchangeCodeAsync(string authorizationCode) + { + Token token = await GetToken("authorization_code", authorizationCode: authorizationCode); + if (token != null && !token.HasError() && !string.IsNullOrEmpty(token.AccessToken)) + { + SetAccessExpireTimer(token); + } + return token; + } + + /// + /// Uses the refresh token to silently (doesn't open a browser) obtain a fresh access token, no refresh token is given however (as it does not change). + /// + /// + /// + public async Task RefreshAuthAsync(string refreshToken) + { + Token token = await GetToken("refresh_token", refreshToken: refreshToken); + if (token != null && !token.HasError() && !string.IsNullOrEmpty(token.AccessToken)) + { + SetAccessExpireTimer(token); + } + return token; + } + } + + internal class TokenSwapAuthController : WebApiController + { + public TokenSwapAuthController(IHttpContext context) : base(context) + { + } + + [WebApiHandler(HttpVerbs.Get, "/auth")] + public Task GetAuth() + { + string state = Request.QueryString["state"]; + SpotifyAuthServer auth = TokenSwapAuth.GetByState(state); + + string code = null; + string error = Request.QueryString["error"]; + if (error == null) + { + code = Request.QueryString["code"]; + } + + Task.Factory.StartNew(() => auth?.TriggerAuth(new AuthorizationCode + { + Code = code, + Error = error + })); + return this.StringResponseAsync(((TokenSwapAuth)auth).HtmlResponse); + } + } +} diff --git a/Source Files/SpotifyAPI.Web.Auth/TokenSwapWebAPIFactory.cs b/Source Files/SpotifyAPI.Web.Auth/TokenSwapWebAPIFactory.cs new file mode 100644 index 0000000..1cc9128 --- /dev/null +++ b/Source Files/SpotifyAPI.Web.Auth/TokenSwapWebAPIFactory.cs @@ -0,0 +1,282 @@ +using SpotifyAPI.Web.Enums; +using SpotifyAPI.Web.Models; +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; + +namespace SpotifyAPI.Web.Auth +{ + /// + /// Returns a using the TokenSwapAuth process. + /// + public class TokenSwapWebAPIFactory + { + /// + /// Access provided by Spotify expires after 1 hour. If true, will time the access tokens, and access will attempt to be silently (without opening a browser) refreshed automatically. This will not make fire, see for that. + /// + public bool AutoRefresh { get; set; } + /// + /// If true when calling , will time how long it takes for access to Spotify to expire. The event fires when the timer elapses. + /// + public bool TimeAccessExpiry { get; set; } + /// + /// The maximum time in seconds to wait for a SpotifyWebAPI to be returned. The timeout is cancelled early regardless if an auth success or failure occured. + /// + public int Timeout { get; set; } + public Scope Scope { get; set; } + /// + /// The URI (or URL) of the exchange server which exchanges the auth code for access and refresh tokens. + /// + public string ExchangeServerUri { get; set; } + /// + /// The URI (or URL) of where a callback server to receive the auth code will be hosted. e.g. http://localhost:4002 + /// + public string HostServerUri { get; set; } + /// + /// Opens the user's browser and visits the exchange server for you, triggering the key exchange. This should be true unless you want to handle the key exchange in a nicer way. + /// + public bool OpenBrowser { get; set; } + /// + /// The HTML to respond with when the callback server has been reached. By default, it is set to close the window on arrival. + /// + public string HtmlResponse { get; set; } + /// + /// Whether or not to show a dialog saying "Is this you?" during the initial key exchange. It should be noted that this would allow a user the opportunity to change accounts. + /// + public bool ShowDialog { get; set; } + /// + /// The maximum amount of times to retry getting a token. + /// + /// A token get is attempted every time you and . Increasing this may improve how often these actions succeed - although it won't solve any underlying problems causing a get token failure. + /// + public int MaxGetTokenRetries { get; set; } = 10; + /// + /// Returns a SpotifyWebAPI using the TokenSwapAuth process. + /// + /// The URI (or URL) of the exchange server which exchanges the auth code for access and refresh tokens. + /// + /// The URI (or URL) of where a callback server to receive the auth code will be hosted. e.g. http://localhost:4002 + /// The maximum time in seconds to wait for a SpotifyWebAPI to be returned. The timeout is cancelled early regardless if an auth success or failure occured. + /// Access provided by Spotify expires after 1 hour. If true, access will attempt to be silently (without opening a browser) refreshed automatically. + /// Opens the user's browser and visits the exchange server for you, triggering the key exchange. This should be true unless you want to handle the key exchange in a nicer way. + public TokenSwapWebAPIFactory(string exchangeServerUri, Scope scope = Scope.None, string hostServerUri = "http://localhost:4002", int timeout = 10, bool autoRefresh = false, bool openBrowser = true) + { + AutoRefresh = autoRefresh; + Timeout = timeout; + Scope = scope; + ExchangeServerUri = exchangeServerUri; + HostServerUri = hostServerUri; + OpenBrowser = openBrowser; + + OnAccessTokenExpired += async (sender, e) => + { + if (AutoRefresh) + { + await RefreshAuthAsync(); + } + }; + } + + Token lastToken; + SpotifyWebAPI lastWebApi; + TokenSwapAuth lastAuth; + + public class ExchangeReadyEventArgs : EventArgs + { + public string ExchangeUri { get; set; } + } + /// + /// When the URI to get an authorization code is ready to be used to be visited. Not required if is true as the exchange URI will automatically be visited for you. + /// + public event EventHandler OnExchangeReady; + + /// + /// Refreshes the access for a SpotifyWebAPI returned by this factory. + /// + /// + public async Task RefreshAuthAsync() + { + Token token = await lastAuth.RefreshAuthAsync(lastToken.RefreshToken); + + if (token == null) + { + OnAuthFailure?.Invoke(this, new AuthFailureEventArgs($"Token not returned by server.")); + } + else if (token.HasError()) + { + OnAuthFailure?.Invoke(this, new AuthFailureEventArgs($"{token.Error} {token.ErrorDescription}")); + } + else if (string.IsNullOrEmpty(token.AccessToken)) + { + OnAuthFailure?.Invoke(this, new AuthFailureEventArgs("Token had no access token attached.")); + } + else + { + lastWebApi.AccessToken = token.AccessToken; + OnAuthSuccess?.Invoke(this, new AuthSuccessEventArgs()); + } + } + + // By defining empty EventArgs objects, you can specify additional information later on as you see fit and it won't + // be considered a breaking change to consumers of this API. + // + // They don't even need to be constructed for their associated events to be invoked - just pass the static Empty property. + public class AccessTokenExpiredEventArgs : EventArgs + { + public static new AccessTokenExpiredEventArgs Empty { get; } = new AccessTokenExpiredEventArgs(); + + public AccessTokenExpiredEventArgs() + { + } + } + /// + /// When the authorization from Spotify expires. This will only occur if is true. + /// + public event EventHandler OnAccessTokenExpired; + + public class AuthSuccessEventArgs : EventArgs + { + public static new AuthSuccessEventArgs Empty { get; } = new AuthSuccessEventArgs(); + + public AuthSuccessEventArgs() + { + } + } + /// + /// When an authorization attempt succeeds and gains authorization. + /// + public event EventHandler OnAuthSuccess; + + public class AuthFailureEventArgs : EventArgs + { + public static new AuthFailureEventArgs Empty { get; } = new AuthFailureEventArgs(""); + + public string Error { get; } + + public AuthFailureEventArgs(string error) + { + Error = error; + } + } + /// + /// When an authorization attempt fails to gain authorization. + /// + public event EventHandler OnAuthFailure; + + /// + /// Manually triggers the timeout for any ongoing get web API request. + /// + public void CancelGetWebApiRequest() + { + if (webApiTimeoutTimer == null) return; + + // The while loop in GetWebApiSync() will react and trigger the timeout. + webApiTimeoutTimer.Stop(); + webApiTimeoutTimer.Dispose(); + webApiTimeoutTimer = null; + } + + System.Timers.Timer webApiTimeoutTimer; + + /// + /// Gets an authorized and ready to use SpotifyWebAPI by following the SecureAuthorizationCodeAuth process with its current settings. + /// + /// + public async Task GetWebApiAsync() + { + return await Task.Factory.StartNew(() => + { + bool currentlyAuthorizing = true; + + // Cancel any ongoing get web API requests + CancelGetWebApiRequest(); + + lastAuth = new TokenSwapAuth( + exchangeServerUri: ExchangeServerUri, + serverUri: HostServerUri, + scope: Scope, + htmlResponse: HtmlResponse) + { + ShowDialog = ShowDialog, + MaxGetTokenRetries = MaxGetTokenRetries, + TimeAccessExpiry = AutoRefresh || TimeAccessExpiry + }; + lastAuth.AuthReceived += async (sender, response) => + { + if (!string.IsNullOrEmpty(response.Error) || string.IsNullOrEmpty(response.Code)) + { + // We only want one auth failure to be fired, if the request timed out then don't bother. + if (!webApiTimeoutTimer.Enabled) return; + + OnAuthFailure?.Invoke(this, new AuthFailureEventArgs(response.Error)); + currentlyAuthorizing = false; + return; + } + + lastToken = await lastAuth.ExchangeCodeAsync(response.Code); + + if (lastToken == null || lastToken.HasError() || string.IsNullOrEmpty(lastToken.AccessToken)) + { + // We only want one auth failure to be fired, if the request timed out then don't bother. + if (!webApiTimeoutTimer.Enabled) return; + + OnAuthFailure?.Invoke(this, new AuthFailureEventArgs("Exchange token not returned by server.")); + currentlyAuthorizing = false; + return; + } + + if (lastWebApi != null) + { + lastWebApi.Dispose(); + } + lastWebApi = new SpotifyWebAPI() + { + TokenType = lastToken.TokenType, + AccessToken = lastToken.AccessToken + }; + + lastAuth.Stop(); + + OnAuthSuccess?.Invoke(this, AuthSuccessEventArgs.Empty); + currentlyAuthorizing = false; + }; + lastAuth.OnAccessTokenExpired += async (sender, e) => + { + if (TimeAccessExpiry) + { + OnAccessTokenExpired?.Invoke(sender, AccessTokenExpiredEventArgs.Empty); + } + + if (AutoRefresh) + { + await RefreshAuthAsync(); + } + }; + lastAuth.Start(); + OnExchangeReady?.Invoke(this, new ExchangeReadyEventArgs { ExchangeUri = lastAuth.GetUri() }); + if (OpenBrowser) + { + lastAuth.OpenBrowser(false); + } + + webApiTimeoutTimer = new System.Timers.Timer + { + AutoReset = false, + Enabled = true, + Interval = Timeout * 1000 + }; + + while (currentlyAuthorizing && webApiTimeoutTimer.Enabled) ; + + // If a timeout occurred + if (lastWebApi == null && currentlyAuthorizing) + { + OnAuthFailure?.Invoke(this, new AuthFailureEventArgs("Authorization request has timed out.")); + } + + return lastWebApi; + }); + } + } +} diff --git a/Source Files/SpotifyAPI.Web/Enums/AlbumType.cs b/Source Files/SpotifyAPI.Web/Enums/AlbumType.cs new file mode 100644 index 0000000..c05df33 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Enums/AlbumType.cs @@ -0,0 +1,23 @@ +using System; + +namespace SpotifyAPI.Web.Enums +{ + [Flags] + public enum AlbumType + { + [String("album")] + Album = 1, + + [String("single")] + Single = 2, + + [String("compilation")] + Compilation = 4, + + [String("appears_on")] + AppearsOn = 8, + + [String("album,single,compilation,appears_on")] + All = 16 + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Enums/FollowType.cs b/Source Files/SpotifyAPI.Web/Enums/FollowType.cs new file mode 100644 index 0000000..6cd802b --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Enums/FollowType.cs @@ -0,0 +1,14 @@ +using System; + +namespace SpotifyAPI.Web.Enums +{ + [Flags] + public enum FollowType + { + [String("artist")] + Artist = 1, + + [String("user")] + User = 2 + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Enums/RepeatState.cs b/Source Files/SpotifyAPI.Web/Enums/RepeatState.cs new file mode 100644 index 0000000..d4abcf6 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Enums/RepeatState.cs @@ -0,0 +1,17 @@ +using System; + +namespace SpotifyAPI.Web.Enums +{ + [Flags] + public enum RepeatState + { + [String("track")] + Track = 1, + + [String("context")] + Context = 2, + + [String("off")] + Off = 4 + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Enums/Scope.cs b/Source Files/SpotifyAPI.Web/Enums/Scope.cs new file mode 100644 index 0000000..5b500b9 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Enums/Scope.cs @@ -0,0 +1,68 @@ +using System; + +namespace SpotifyAPI.Web.Enums +{ + [Flags] + public enum Scope + { + [String("")] + None = 1, + + [String("playlist-modify-public")] + PlaylistModifyPublic = 2, + + [String("playlist-modify-private")] + PlaylistModifyPrivate = 4, + + [String("playlist-read-private")] + PlaylistReadPrivate = 8, + + [String("streaming")] + Streaming = 16, + + [String("user-read-private")] + UserReadPrivate = 32, + + [String("user-read-email")] + UserReadEmail = 64, + + [String("user-library-read")] + UserLibraryRead = 128, + + [String("user-library-modify")] + UserLibraryModify = 256, + + [String("user-follow-modify")] + UserFollowModify = 512, + + [String("user-follow-read")] + UserFollowRead = 1024, + + [String("user-read-birthdate")] + UserReadBirthdate = 2048, + + [String("user-top-read")] + UserTopRead = 4096, + + [String("playlist-read-collaborative")] + PlaylistReadCollaborative = 8192, + + [String("user-read-recently-played")] + UserReadRecentlyPlayed = 16384, + + [String("user-read-playback-state")] + UserReadPlaybackState = 32768, + + [String("user-modify-playback-state")] + UserModifyPlaybackState = 65536, + + [String("user-read-currently-playing")] + UserReadCurrentlyPlaying = 131072, + + [String("app-remote-control")] + AppRemoteControl = 262144, + + [String("ugc-image-upload")] + UgcImageUpload = 524288 + } +} diff --git a/Source Files/SpotifyAPI.Web/Enums/SearchType.cs b/Source Files/SpotifyAPI.Web/Enums/SearchType.cs new file mode 100644 index 0000000..652161c --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Enums/SearchType.cs @@ -0,0 +1,23 @@ +using System; + +namespace SpotifyAPI.Web.Enums +{ + [Flags] + public enum SearchType + { + [String("artist")] + Artist = 1, + + [String("album")] + Album = 2, + + [String("track")] + Track = 4, + + [String("playlist")] + Playlist = 8, + + [String("track,album,artist,playlist")] + All = 16 + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Enums/TimeRangeType.cs b/Source Files/SpotifyAPI.Web/Enums/TimeRangeType.cs new file mode 100644 index 0000000..468a808 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Enums/TimeRangeType.cs @@ -0,0 +1,20 @@ +using System; + +namespace SpotifyAPI.Web.Enums +{ + /// + /// Only one value allowed + /// + [Flags] + public enum TimeRangeType + { + [String("long_term")] + LongTerm = 1, + + [String("medium_term")] + MediumTerm = 2, + + [String("short_term")] + ShortTerm = 4 + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Enums/TrackType.cs b/Source Files/SpotifyAPI.Web/Enums/TrackType.cs new file mode 100644 index 0000000..63c4341 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Enums/TrackType.cs @@ -0,0 +1,20 @@ +using System; + +namespace SpotifyAPI.Web.Enums +{ + [Flags] + public enum TrackType + { + [String("track")] + Track = 1, + + [String("episode")] + Episode = 2, + + [String("ad")] + Ad = 4, + + [String("unknown")] + Unknown = 8 + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/IClient.cs b/Source Files/SpotifyAPI.Web/IClient.cs new file mode 100644 index 0000000..c0960a6 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/IClient.cs @@ -0,0 +1,125 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using SpotifyAPI.Web.Models; + +namespace SpotifyAPI.Web +{ + public interface IClient : IDisposable + { + JsonSerializerSettings JsonSettings { get; set; } + + /// + /// Downloads data from an URL and returns it + /// + /// An URL + /// + /// + Tuple Download(string url, Dictionary headers = null); + + /// + /// Downloads data async from an URL and returns it + /// + /// + /// + /// + Task> DownloadAsync(string url, Dictionary headers = null); + + /// + /// Downloads data from an URL and returns it + /// + /// An URL + /// + /// + Tuple DownloadRaw(string url, Dictionary headers = null); + + /// + /// Downloads data async from an URL and returns it + /// + /// + /// + /// + Task> DownloadRawAsync(string url, Dictionary headers = null); + + /// + /// Downloads data from an URL and converts it to an object + /// + /// The Type which the object gets converted to + /// An URL + /// + /// + Tuple DownloadJson(string url, Dictionary headers = null); + + /// + /// Downloads data async from an URL and converts it to an object + /// + /// The Type which the object gets converted to + /// An URL + /// + /// + Task> DownloadJsonAsync(string url, Dictionary headers = null); + + /// + /// Uploads data from an URL and returns the response + /// + /// An URL + /// The Body-Data (most likely a JSON String) + /// The Upload-method (POST,DELETE,PUT) + /// + /// + Tuple Upload(string url, string body, string method, Dictionary headers = null); + + /// + /// Uploads data async from an URL and returns the response + /// + /// An URL + /// The Body-Data (most likely a JSON String) + /// The Upload-method (POST,DELETE,PUT) + /// + /// + Task> UploadAsync(string url, string body, string method, Dictionary headers = null); + + /// + /// Uploads data from an URL and returns the response + /// + /// An URL + /// The Body-Data (most likely a JSON String) + /// The Upload-method (POST,DELETE,PUT) + /// + /// + Tuple UploadRaw(string url, string body, string method, Dictionary headers = null); + + /// + /// Uploads data async from an URL and returns the response + /// + /// An URL + /// The Body-Data (most likely a JSON String) + /// The Upload-method (POST,DELETE,PUT) + /// + /// + Task> UploadRawAsync(string url, string body, string method, Dictionary headers = null); + + /// + /// Uploads data from an URL and converts the response to an object + /// + /// The Type which the object gets converted to + /// An URL + /// The Body-Data (most likely a JSON String) + /// The Upload-method (POST,DELETE,PUT) + /// + /// + Tuple UploadJson(string url, string body, string method, Dictionary headers = null); + + /// + /// Uploads data async from an URL and converts the response to an object + /// + /// The Type which the object gets converted to + /// An URL + /// The Body-Data (most likely a JSON String) + /// The Upload-method (POST,DELETE,PUT) + /// + /// + Task> UploadJsonAsync(string url, string body, string method, Dictionary headers = null); + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/AnalysisMeta.cs b/Source Files/SpotifyAPI.Web/Models/AnalysisMeta.cs new file mode 100644 index 0000000..bb9b777 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/AnalysisMeta.cs @@ -0,0 +1,28 @@ +using Newtonsoft.Json; + +namespace SpotifyAPI.Web.Models +{ + public class AnalysisMeta + { + [JsonProperty("analyzer_platform")] + public string AnalyzerVersion { get; set; } + + [JsonProperty("platform")] + public string Platform { get; set; } + + [JsonProperty("status_code")] + public int StatusCode { get; set; } + + [JsonProperty("detailed_status")] + public string DetailedStatus { get; set; } + + [JsonProperty("timestamp")] + public long Timestamp { get; set; } + + [JsonProperty("analysis_time")] + public double AnalysisTime { get; set; } + + [JsonProperty("input_process")] + public string InputProcess { get; set; } + } +} diff --git a/Source Files/SpotifyAPI.Web/Models/AnalysisSection.cs b/Source Files/SpotifyAPI.Web/Models/AnalysisSection.cs new file mode 100644 index 0000000..bcb92bc --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/AnalysisSection.cs @@ -0,0 +1,43 @@ +using Newtonsoft.Json; + +namespace SpotifyAPI.Web.Models +{ + public class AnalysisSection + { + [JsonProperty("start")] + public double Start { get; set; } + + [JsonProperty("duration")] + public double Duration { get; set; } + + [JsonProperty("confidence")] + public double Confidence { get; set; } + + [JsonProperty("loudness")] + public double Loudness { get; set; } + + [JsonProperty("tempo")] + public double Tempo { get; set; } + + [JsonProperty("tempo_confidence")] + public double TempoConfidence { get; set; } + + [JsonProperty("key")] + public int Key { get; set; } + + [JsonProperty("key_confidence")] + public double KeyConfidence { get; set; } + + [JsonProperty("mode")] + public int Mode { get; set; } + + [JsonProperty("mode_confidence")] + public double ModeConfidence { get; set; } + + [JsonProperty("time_signature")] + public int TimeSignature { get; set; } + + [JsonProperty("time_signature_confidence")] + public double TimeSignatureConfidence { get; set; } + } +} diff --git a/Source Files/SpotifyAPI.Web/Models/AnalysisSegment.cs b/Source Files/SpotifyAPI.Web/Models/AnalysisSegment.cs new file mode 100644 index 0000000..bdf5270 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/AnalysisSegment.cs @@ -0,0 +1,35 @@ +using Newtonsoft.Json; +using System.Collections.Generic; + +namespace SpotifyAPI.Web.Models +{ + public class AnalysisSegment + { + [JsonProperty("start")] + public double Start { get; set; } + + [JsonProperty("duration")] + public double Duration { get; set; } + + [JsonProperty("confidence")] + public double Confidence { get; set; } + + [JsonProperty("loudness_start")] + public double LoudnessStart { get; set; } + + [JsonProperty("loudness_max_time")] + public double LoudnessMaxTime { get; set; } + + [JsonProperty("loudness_max")] + public double LoudnessMax { get; set; } + + [JsonProperty("loudness_end")] + public double LoudnessEnd { get; set; } + + [JsonProperty("pitches")] + public List Pitches { get; set; } + + [JsonProperty("timbre")] + public List Timbre { get; set; } + } +} diff --git a/Source Files/SpotifyAPI.Web/Models/AnalysisTimeSlice.cs b/Source Files/SpotifyAPI.Web/Models/AnalysisTimeSlice.cs new file mode 100644 index 0000000..41ab5f1 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/AnalysisTimeSlice.cs @@ -0,0 +1,16 @@ +using Newtonsoft.Json; + +namespace SpotifyAPI.Web.Models +{ + public class AnalysisTimeSlice + { + [JsonProperty("start")] + public double Start { get; set; } + + [JsonProperty("duration")] + public double Duration { get; set; } + + [JsonProperty("confidence")] + public double Confidence { get; set; } + } +} diff --git a/Source Files/SpotifyAPI.Web/Models/AnalysisTrack.cs b/Source Files/SpotifyAPI.Web/Models/AnalysisTrack.cs new file mode 100644 index 0000000..e84bc62 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/AnalysisTrack.cs @@ -0,0 +1,86 @@ +using Newtonsoft.Json; + +namespace SpotifyAPI.Web.Models +{ + public class AnalysisTrack + { + [JsonProperty("num_samples")] + public int NumSamples { get; set; } + + [JsonProperty("duration")] + public double Duration { get; set; } + + [JsonProperty("sample_md5")] + public string SampleMD5 { get; set; } + + [JsonProperty("offset_seconds")] + public double OffsetSeconds { get; set; } + + [JsonProperty("window_seconds")] + public double WindowSeconds { get; set; } + + [JsonProperty("analysis_sample_rate")] + public int AnalysisSampleRate { get; set; } + + [JsonProperty("analysis_channels")] + public int AnalysisChannels { get; set; } + + [JsonProperty("end_of_fade_in")] + public double EndOfFadeIn { get; set; } + + [JsonProperty("start_of_fade_out")] + public double StartOfFadeOut { get; set; } + + [JsonProperty("loudness")] + public double Loudness { get; set; } + + [JsonProperty("tempo")] + public double Tempo { get; set; } + + [JsonProperty("tempo_confidence")] + public double TempoConfidence { get; set; } + + [JsonProperty("time_signature")] + public double TimeSignature { get; set; } + + [JsonProperty("time_signature_confidence")] + public double TimeSignatureConfidence { get; set; } + + [JsonProperty("key")] + public int Key { get; set; } + + [JsonProperty("key_confidence")] + public double KeyConfidence { get; set; } + + [JsonProperty("mode")] + public int Mode { get; set; } + + [JsonProperty("mode_confidence")] + public double ModeConfidence { get; set; } + + [JsonProperty("codestring")] + public string Codestring { get; set; } + + [JsonProperty("code_version")] + public double CodeVersion { get; set; } + + [JsonProperty("echoprintstring")] + public string Echoprintstring { get; set; } + + [JsonProperty("echoprint_version")] + public double EchoprintVersion { get; set; } + + [JsonProperty("synchstring")] + public string Synchstring { get; set; } + + [JsonProperty("synch_version")] + public double SynchVersion { get; set; } + + [JsonProperty("rhythmstring")] + public string Rhythmstring { get; set; } + + [JsonProperty("rhythm_version")] + public double RhythmVersion { get; set; } + + } +} diff --git a/Source Files/SpotifyAPI.Web/Models/ArrayResponse.cs b/Source Files/SpotifyAPI.Web/Models/ArrayResponse.cs new file mode 100644 index 0000000..eea3be6 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/ArrayResponse.cs @@ -0,0 +1,9 @@ +using System.Collections.Generic; + +namespace SpotifyAPI.Web.Models +{ + public class ListResponse : BasicModel + { + public List List { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/AudioAnalysis.cs b/Source Files/SpotifyAPI.Web/Models/AudioAnalysis.cs new file mode 100644 index 0000000..bc8f622 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/AudioAnalysis.cs @@ -0,0 +1,29 @@ +using Newtonsoft.Json; +using System.Collections.Generic; + +namespace SpotifyAPI.Web.Models +{ + public class AudioAnalysis : BasicModel + { + [JsonProperty("bars")] + public List Bars { get; set; } + + [JsonProperty("beats")] + public List Beats { get; set; } + + [JsonProperty("meta")] + public AnalysisMeta Meta { get; set; } + + [JsonProperty("sections")] + public List Sections { get; set; } + + [JsonProperty("segments")] + public List Segments { get; set; } + + [JsonProperty("tatums")] + public List Tatums { get; set; } + + [JsonProperty("track")] + public AnalysisTrack Track { get; set; } + } +} diff --git a/Source Files/SpotifyAPI.Web/Models/AudioFeatures.cs b/Source Files/SpotifyAPI.Web/Models/AudioFeatures.cs new file mode 100644 index 0000000..a3b029f --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/AudioFeatures.cs @@ -0,0 +1,61 @@ +using Newtonsoft.Json; + +namespace SpotifyAPI.Web.Models +{ + public class AudioFeatures : BasicModel + { + [JsonProperty("acousticness")] + public float Acousticness { get; set; } + + [JsonProperty("analysis_url")] + public string AnalysisUrl { get; set; } + + [JsonProperty("danceability")] + public float Danceability { get; set; } + + [JsonProperty("duration_ms")] + public int DurationMs { get; set; } + + [JsonProperty("energy")] + public float Energy { get; set; } + + [JsonProperty("id")] + public string Id { get; set; } + + [JsonProperty("instrumentalness")] + public float Instrumentalness { get; set; } + + [JsonProperty("key")] + public int Key { get; set; } + + [JsonProperty("liveness")] + public float Liveness { get; set; } + + [JsonProperty("loudness")] + public float Loudness { get; set; } + + [JsonProperty("mode")] + public int Mode { get; set; } + + [JsonProperty("speechiness")] + public float Speechiness { get; set; } + + [JsonProperty("tempo")] + public float Tempo { get; set; } + + [JsonProperty("time_signature")] + public int TimeSignature { get; set; } + + [JsonProperty("track_href")] + public string TrackHref { get; set; } + + [JsonProperty("type")] + public string Type { get; set; } + + [JsonProperty("uri")] + public string Uri { get; set; } + + [JsonProperty("valence")] + public float Valence { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/AvailabeDevices.cs b/Source Files/SpotifyAPI.Web/Models/AvailabeDevices.cs new file mode 100644 index 0000000..6275ec0 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/AvailabeDevices.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; +using Newtonsoft.Json; + +namespace SpotifyAPI.Web.Models +{ + public class AvailabeDevices : BasicModel + { + [JsonProperty("devices")] + public List Devices { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/BasicModel.cs b/Source Files/SpotifyAPI.Web/Models/BasicModel.cs new file mode 100644 index 0000000..d888dc2 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/BasicModel.cs @@ -0,0 +1,23 @@ +using Newtonsoft.Json; +using System.Net; + +namespace SpotifyAPI.Web.Models +{ + public abstract class BasicModel + { + [JsonProperty("error")] + public Error Error { get; set; } + + private ResponseInfo _info; + + public bool HasError() => Error != null; + + internal void AddResponseInfo(ResponseInfo info) => _info = info; + + public string Header(string key) => _info.Headers?.Get(key); + + public WebHeaderCollection Headers() => _info.Headers; + + public HttpStatusCode StatusCode() => _info.StatusCode; + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/Category.cs b/Source Files/SpotifyAPI.Web/Models/Category.cs new file mode 100644 index 0000000..03be7a0 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/Category.cs @@ -0,0 +1,20 @@ +using Newtonsoft.Json; +using System.Collections.Generic; + +namespace SpotifyAPI.Web.Models +{ + public class Category : BasicModel + { + [JsonProperty("href")] + public string Href { get; set; } + + [JsonProperty("icons")] + public List Icons { get; set; } + + [JsonProperty("id")] + public string Id { get; set; } + + [JsonProperty("name")] + public string Name { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/CategoryList.cs b/Source Files/SpotifyAPI.Web/Models/CategoryList.cs new file mode 100644 index 0000000..c46d5cb --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/CategoryList.cs @@ -0,0 +1,10 @@ +using Newtonsoft.Json; + +namespace SpotifyAPI.Web.Models +{ + public class CategoryList : BasicModel + { + [JsonProperty("categories")] + public Paging Categories { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/CategoryPlaylist.cs b/Source Files/SpotifyAPI.Web/Models/CategoryPlaylist.cs new file mode 100644 index 0000000..02875d5 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/CategoryPlaylist.cs @@ -0,0 +1,10 @@ +using Newtonsoft.Json; + +namespace SpotifyAPI.Web.Models +{ + public class CategoryPlaylist : BasicModel + { + [JsonProperty("playlists")] + public Paging Playlists { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/CursorPaging.cs b/Source Files/SpotifyAPI.Web/Models/CursorPaging.cs new file mode 100644 index 0000000..3496212 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/CursorPaging.cs @@ -0,0 +1,26 @@ +using Newtonsoft.Json; +using System.Collections.Generic; + +namespace SpotifyAPI.Web.Models +{ + public class CursorPaging : BasicModel + { + [JsonProperty("href")] + public string Href { get; set; } + + [JsonProperty("items")] + public List Items { get; set; } + + [JsonProperty("limit")] + public int Limit { get; set; } + + [JsonProperty("next")] + public string Next { get; set; } + + [JsonProperty("cursors")] + public Cursor Cursors { get; set; } + + [JsonProperty("total")] + public int Total { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/Device.cs b/Source Files/SpotifyAPI.Web/Models/Device.cs new file mode 100644 index 0000000..3a0d79c --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/Device.cs @@ -0,0 +1,25 @@ +using Newtonsoft.Json; + +namespace SpotifyAPI.Web.Models +{ + public class Device + { + [JsonProperty("id")] + public string Id { get; set; } + + [JsonProperty("is_active")] + public bool IsActive { get; set; } + + [JsonProperty("is_restricted")] + public bool IsRestricted { get; set; } + + [JsonProperty("name")] + public string Name { get; set; } + + [JsonProperty("type")] + public string Type { get; set; } + + [JsonProperty("volume_percent")] + public int VolumePercent { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/FeaturedPlaylists.cs b/Source Files/SpotifyAPI.Web/Models/FeaturedPlaylists.cs new file mode 100644 index 0000000..ab1dc09 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/FeaturedPlaylists.cs @@ -0,0 +1,13 @@ +using Newtonsoft.Json; + +namespace SpotifyAPI.Web.Models +{ + public class FeaturedPlaylists : BasicModel + { + [JsonProperty("message")] + public string Message { get; set; } + + [JsonProperty("playlists")] + public Paging Playlists { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/FollowedArtists.cs b/Source Files/SpotifyAPI.Web/Models/FollowedArtists.cs new file mode 100644 index 0000000..163ce87 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/FollowedArtists.cs @@ -0,0 +1,10 @@ +using Newtonsoft.Json; + +namespace SpotifyAPI.Web.Models +{ + public class FollowedArtists : BasicModel + { + [JsonProperty("artists")] + public CursorPaging Artists { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/FullAlbum.cs b/Source Files/SpotifyAPI.Web/Models/FullAlbum.cs new file mode 100644 index 0000000..b22e4f2 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/FullAlbum.cs @@ -0,0 +1,65 @@ +using Newtonsoft.Json; +using System.Collections.Generic; + +namespace SpotifyAPI.Web.Models +{ + public class FullAlbum : BasicModel + { + [JsonProperty("album_type")] + public string AlbumType { get; set; } + + [JsonProperty("artists")] + public List Artists { get; set; } + + [JsonProperty("available_markets")] + public List AvailableMarkets { get; set; } + + [JsonProperty("copyrights")] + public List Copyrights { get; set; } + + [JsonProperty("external_ids")] + public Dictionary ExternalIds { get; set; } + + [JsonProperty("external_urls")] + public Dictionary ExternalUrls { get; set; } + + [JsonProperty("genres")] + public List Genres { get; set; } + + [JsonProperty("href")] + public string Href { get; set; } + + [JsonProperty("id")] + public string Id { get; set; } + + [JsonProperty("images")] + public List Images { get; set; } + + [JsonProperty("label")] + public string Label { get; set; } + + [JsonProperty("name")] + public string Name { get; set; } + + [JsonProperty("popularity")] + public int Popularity { get; set; } + + [JsonProperty("release_date")] + public string ReleaseDate { get; set; } + + [JsonProperty("release_date_precision")] + public string ReleaseDatePrecision { get; set; } + + [JsonProperty("tracks")] + public Paging Tracks { get; set; } + + [JsonProperty("restrictions")] + public Dictionary Restrictions { get; set; } + + [JsonProperty("type")] + public string Type { get; set; } + + [JsonProperty("uri")] + public string Uri { get; set; } + } +} diff --git a/Source Files/SpotifyAPI.Web/Models/FullArtist.cs b/Source Files/SpotifyAPI.Web/Models/FullArtist.cs new file mode 100644 index 0000000..1b38a74 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/FullArtist.cs @@ -0,0 +1,38 @@ +using Newtonsoft.Json; +using System.Collections.Generic; + +namespace SpotifyAPI.Web.Models +{ + public class FullArtist : BasicModel + { + [JsonProperty("external_urls")] + public Dictionary ExternalUrls { get; set; } + + [JsonProperty("followers")] + public Followers Followers { get; set; } + + [JsonProperty("genres")] + public List Genres { get; set; } + + [JsonProperty("href")] + public string Href { get; set; } + + [JsonProperty("id")] + public string Id { get; set; } + + [JsonProperty("images")] + public List Images { get; set; } + + [JsonProperty("name")] + public string Name { get; set; } + + [JsonProperty("popularity")] + public int Popularity { get; set; } + + [JsonProperty("type")] + public string Type { get; set; } + + [JsonProperty("uri")] + public string Uri { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/FullPlaylist.cs b/Source Files/SpotifyAPI.Web/Models/FullPlaylist.cs new file mode 100644 index 0000000..aec32d0 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/FullPlaylist.cs @@ -0,0 +1,50 @@ +using Newtonsoft.Json; +using System.Collections.Generic; + +namespace SpotifyAPI.Web.Models +{ + public class FullPlaylist : BasicModel + { + [JsonProperty("collaborative")] + public bool Collaborative { get; set; } + + [JsonProperty("description")] + public string Description { get; set; } + + [JsonProperty("external_urls")] + public Dictionary ExternalUrls { get; set; } + + [JsonProperty("followers")] + public Followers Followers { get; set; } + + [JsonProperty("href")] + public string Href { get; set; } + + [JsonProperty("id")] + public string Id { get; set; } + + [JsonProperty("images")] + public List Images { get; set; } + + [JsonProperty("name")] + public string Name { get; set; } + + [JsonProperty("owner")] + public PublicProfile Owner { get; set; } + + [JsonProperty("public")] + public bool Public { get; set; } + + [JsonProperty("snapshot_id")] + public string SnapshotId { get; set; } + + [JsonProperty("tracks")] + public Paging Tracks { get; set; } + + [JsonProperty("type")] + public string Type { get; set; } + + [JsonProperty("uri")] + public string Uri { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/FullTrack.cs b/Source Files/SpotifyAPI.Web/Models/FullTrack.cs new file mode 100644 index 0000000..bab52fe --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/FullTrack.cs @@ -0,0 +1,71 @@ +using Newtonsoft.Json; +using System.Collections.Generic; + +namespace SpotifyAPI.Web.Models +{ + public class FullTrack : BasicModel + { + [JsonProperty("album")] + public SimpleAlbum Album { get; set; } + + [JsonProperty("artists")] + public List Artists { get; set; } + + [JsonProperty("available_markets")] + public List AvailableMarkets { get; set; } + + [JsonProperty("disc_number")] + public int DiscNumber { get; set; } + + [JsonProperty("duration_ms")] + public int DurationMs { get; set; } + + [JsonProperty("explicit")] + public bool Explicit { get; set; } + + [JsonProperty("external_ids")] + public Dictionary ExternalIds { get; set; } + + [JsonProperty("external_urls")] + public Dictionary ExternUrls { get; set; } + + [JsonProperty("href")] + public string Href { get; set; } + + [JsonProperty("id")] + public string Id { get; set; } + + [JsonProperty("name")] + public string Name { get; set; } + + [JsonProperty("popularity")] + public int Popularity { get; set; } + + [JsonProperty("preview_url")] + public string PreviewUrl { get; set; } + + [JsonProperty("track_number")] + public int TrackNumber { get; set; } + + [JsonProperty("restrictions")] + public Dictionary Restrictions { get; set; } + + [JsonProperty("type")] + public string Type { get; set; } + + [JsonProperty("uri")] + public string Uri { get; set; } + + /// + /// Only filled when the "market"-parameter was supplied! + /// + [JsonProperty("is_playable")] + public bool? IsPlayable { get; set; } + + /// + /// Only filled when the "market"-parameter was supplied! + /// + [JsonProperty("linked_from")] + public LinkedFrom LinkedFrom { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/GeneralModels.cs b/Source Files/SpotifyAPI.Web/Models/GeneralModels.cs new file mode 100644 index 0000000..8dffd92 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/GeneralModels.cs @@ -0,0 +1,159 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace SpotifyAPI.Web.Models +{ + public class Image + { + [JsonProperty("url")] + public string Url { get; set; } + + [JsonProperty("width")] + public int Width { get; set; } + + [JsonProperty("height")] + public int Height { get; set; } + } + + public class ErrorResponse : BasicModel + { + } + + public class Error + { + [JsonProperty("status")] + public int Status { get; set; } + + [JsonProperty("message")] + public string Message { get; set; } + } + + public class PlaylistTrackCollection + { + [JsonProperty("href")] + public string Href { get; set; } + + [JsonProperty("total")] + public int Total { get; set; } + } + + public class Followers + { + [JsonProperty("href")] + public string Href { get; set; } + + [JsonProperty("total")] + public int Total { get; set; } + } + + public class PlaylistTrack + { + [JsonProperty("added_at")] + public DateTime AddedAt { get; set; } + + [JsonProperty("added_by")] + public PublicProfile AddedBy { get; set; } + + [JsonProperty("track")] + public FullTrack Track { get; set; } + + [JsonProperty("is_local")] + public bool IsLocal { get; set; } + } + + public class DeleteTrackUri + { + /// + /// Delete-Track Wrapper + /// + /// An Spotify-URI + /// Optional positions + public DeleteTrackUri(string uri, params int[] positions) + { + Positions = positions.ToList(); + Uri = uri; + } + + [JsonProperty("uri")] + public string Uri { get; set; } + + [JsonProperty("positions")] + public List Positions { get; set; } + + public bool ShouldSerializePositions() + { + return Positions.Count > 0; + } + } + + public class Copyright + { + [JsonProperty("text")] + public string Text { get; set; } + + [JsonProperty("type")] + public string Type { get; set; } + } + + public class LinkedFrom + { + [JsonProperty("external_urls")] + public Dictionary ExternalUrls { get; set; } + + [JsonProperty("href")] + public string Href { get; set; } + + [JsonProperty("id")] + public string Id { get; set; } + + [JsonProperty("type")] + public string Type { get; set; } + + [JsonProperty("uri")] + public string Uri { get; set; } + } + + public class SavedTrack + { + [JsonProperty("added_at")] + public DateTime AddedAt { get; set; } + + [JsonProperty("track")] + public FullTrack Track { get; set; } + } + + public class SavedAlbum + { + [JsonProperty("added_at")] + public DateTime AddedAt { get; set; } + + [JsonProperty("album")] + public FullAlbum Album { get; set; } + } + + public class Cursor + { + [JsonProperty("after")] + public string After { get; set; } + + [JsonProperty("before")] + public string Before { get; set; } + } + + public class Context + { + [JsonProperty("type")] + public string Type { get; set; } + + [JsonProperty("href")] + public string Href { get; set; } + + [JsonProperty("external_urls")] + public Dictionary ExternalUrls { get; set; } + + [JsonProperty("uri")] + public string Uri { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/NewAlbumReleases.cs b/Source Files/SpotifyAPI.Web/Models/NewAlbumReleases.cs new file mode 100644 index 0000000..c85139e --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/NewAlbumReleases.cs @@ -0,0 +1,10 @@ +using Newtonsoft.Json; + +namespace SpotifyAPI.Web.Models +{ + public class NewAlbumReleases : BasicModel + { + [JsonProperty("albums")] + public Paging Albums { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/Paging.cs b/Source Files/SpotifyAPI.Web/Models/Paging.cs new file mode 100644 index 0000000..03e5305 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/Paging.cs @@ -0,0 +1,39 @@ +using Newtonsoft.Json; +using System.Collections.Generic; + +namespace SpotifyAPI.Web.Models +{ + public class Paging : BasicModel + { + [JsonProperty("href")] + public string Href { get; set; } + + [JsonProperty("items")] + public List Items { get; set; } + + [JsonProperty("limit")] + public int Limit { get; set; } + + [JsonProperty("next")] + public string Next { get; set; } + + [JsonProperty("offset")] + public int Offset { get; set; } + + [JsonProperty("previous")] + public string Previous { get; set; } + + [JsonProperty("total")] + public int Total { get; set; } + + public bool HasNextPage() + { + return Next != null; + } + + public bool HasPreviousPage() + { + return Next != null; + } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/PlayHistory.cs b/Source Files/SpotifyAPI.Web/Models/PlayHistory.cs new file mode 100644 index 0000000..ae1c28e --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/PlayHistory.cs @@ -0,0 +1,17 @@ +using System; +using Newtonsoft.Json; + +namespace SpotifyAPI.Web.Models +{ + public class PlayHistory : BasicModel + { + [JsonProperty("track")] + public SimpleTrack Track { get; set; } + + [JsonProperty("played_at")] + public DateTime PlayedAt { get; set; } + + [JsonProperty("context")] + public Context Context { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/PlaybackContext.cs b/Source Files/SpotifyAPI.Web/Models/PlaybackContext.cs new file mode 100644 index 0000000..37d6d4a --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/PlaybackContext.cs @@ -0,0 +1,38 @@ +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using SpotifyAPI.Web.Enums; + +namespace SpotifyAPI.Web.Models +{ + public class PlaybackContext : BasicModel + { + [JsonProperty("device")] + public Device Device { get; set; } + + [JsonProperty("repeat_state")] + [JsonConverter(typeof(StringEnumConverter))] + public RepeatState RepeatState { get; set; } + + [JsonProperty("shuffle_state")] + public bool ShuffleState { get; set; } + + [JsonProperty("context")] + public Context Context { get; set; } + + [JsonProperty("timestamp")] + public long Timestamp { get; set; } + + [JsonProperty("progress_ms")] + public int ProgressMs { get; set; } + + [JsonProperty("is_playing")] + public bool IsPlaying { get; set; } + + [JsonProperty("item")] + public FullTrack Item { get; set; } + + [JsonProperty("currently_playing_type")] + [JsonConverter(typeof(StringEnumConverter))] + public TrackType CurrentlyPlayingType { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/PrivateProfile.cs b/Source Files/SpotifyAPI.Web/Models/PrivateProfile.cs new file mode 100644 index 0000000..243d6b9 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/PrivateProfile.cs @@ -0,0 +1,44 @@ +using Newtonsoft.Json; +using System.Collections.Generic; + +namespace SpotifyAPI.Web.Models +{ + public class PrivateProfile : BasicModel + { + [JsonProperty("birthdate")] + public string Birthdate { get; set; } + + [JsonProperty("country")] + public string Country { get; set; } + + [JsonProperty("display_name")] + public string DisplayName { get; set; } + + [JsonProperty("email")] + public string Email { get; set; } + + [JsonProperty("external_urls")] + public Dictionary ExternalUrls { get; set; } + + [JsonProperty("followers")] + public Followers Followers { get; set; } + + [JsonProperty("href")] + public string Href { get; set; } + + [JsonProperty("id")] + public string Id { get; set; } + + [JsonProperty("images")] + public List Images { get; set; } + + [JsonProperty("product")] + public string Product { get; set; } + + [JsonProperty("type")] + public string Type { get; set; } + + [JsonProperty("uri")] + public string Uri { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/PublicProfile.cs b/Source Files/SpotifyAPI.Web/Models/PublicProfile.cs new file mode 100644 index 0000000..a28b8ea --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/PublicProfile.cs @@ -0,0 +1,32 @@ +using Newtonsoft.Json; +using System.Collections.Generic; + +namespace SpotifyAPI.Web.Models +{ + public class PublicProfile : BasicModel + { + [JsonProperty("display_name")] + public string DisplayName { get; set; } + + [JsonProperty("external_urls")] + public Dictionary ExternalUrls { get; set; } + + [JsonProperty("followers")] + public Followers Followers { get; set; } + + [JsonProperty("href")] + public string Href { get; set; } + + [JsonProperty("id")] + public string Id { get; set; } + + [JsonProperty("images")] + public List Images { get; set; } + + [JsonProperty("type")] + public string Type { get; set; } + + [JsonProperty("uri")] + public string Uri { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/RecommendationSeed .cs b/Source Files/SpotifyAPI.Web/Models/RecommendationSeed .cs new file mode 100644 index 0000000..b0cd94a --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/RecommendationSeed .cs @@ -0,0 +1,25 @@ +using Newtonsoft.Json; + +namespace SpotifyAPI.Web.Models +{ + public class RecommendationSeed + { + [JsonProperty("afterFilteringSize")] + public int AfterFilteringSize { get; set; } + + [JsonProperty("afterRelinkingSize")] + public int AfterRelinkingSize { get; set; } + + [JsonProperty("href")] + public string Href { get; set; } + + [JsonProperty("id")] + public string Id { get; set; } + + [JsonProperty("initialPoolSize")] + public int InitialPoolSize { get; set; } + + [JsonProperty("type")] + public string Type { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/RecommendationSeedGenres.cs b/Source Files/SpotifyAPI.Web/Models/RecommendationSeedGenres.cs new file mode 100644 index 0000000..663c8bf --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/RecommendationSeedGenres.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; +using Newtonsoft.Json; + +namespace SpotifyAPI.Web.Models +{ + public class RecommendationSeedGenres : BasicModel + { + [JsonProperty("genres")] + public List Genres { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/Recommendations.cs b/Source Files/SpotifyAPI.Web/Models/Recommendations.cs new file mode 100644 index 0000000..921522e --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/Recommendations.cs @@ -0,0 +1,14 @@ +using System.Collections.Generic; +using Newtonsoft.Json; + +namespace SpotifyAPI.Web.Models +{ + public class Recommendations : BasicModel + { + [JsonProperty("seeds")] + public List Seeds { get; set; } + + [JsonProperty("tracks")] + public List Tracks { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/ResponseInfo.cs b/Source Files/SpotifyAPI.Web/Models/ResponseInfo.cs new file mode 100644 index 0000000..1a8a12c --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/ResponseInfo.cs @@ -0,0 +1,13 @@ +using System.Net; + +namespace SpotifyAPI.Web.Models +{ + public class ResponseInfo + { + public WebHeaderCollection Headers { get; set; } + + public HttpStatusCode StatusCode { get; set; } + + public static readonly ResponseInfo Empty = new ResponseInfo(); + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/SearchItem.cs b/Source Files/SpotifyAPI.Web/Models/SearchItem.cs new file mode 100644 index 0000000..65b76c5 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/SearchItem.cs @@ -0,0 +1,19 @@ +using Newtonsoft.Json; + +namespace SpotifyAPI.Web.Models +{ + public class SearchItem : BasicModel + { + [JsonProperty("artists")] + public Paging Artists { get; set; } + + [JsonProperty("albums")] + public Paging Albums { get; set; } + + [JsonProperty("tracks")] + public Paging Tracks { get; set; } + + [JsonProperty("playlists")] + public Paging Playlists { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/SeveralAlbums.cs b/Source Files/SpotifyAPI.Web/Models/SeveralAlbums.cs new file mode 100644 index 0000000..74025da --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/SeveralAlbums.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; +using Newtonsoft.Json; + +namespace SpotifyAPI.Web.Models +{ + public class SeveralAlbums : BasicModel + { + [JsonProperty("albums")] + public List Albums { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/SeveralArtists.cs b/Source Files/SpotifyAPI.Web/Models/SeveralArtists.cs new file mode 100644 index 0000000..28df5db --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/SeveralArtists.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; +using Newtonsoft.Json; + +namespace SpotifyAPI.Web.Models +{ + public class SeveralArtists : BasicModel + { + [JsonProperty("artists")] + public List Artists { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/SeveralAudioFeatures.cs b/Source Files/SpotifyAPI.Web/Models/SeveralAudioFeatures.cs new file mode 100644 index 0000000..34ea651 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/SeveralAudioFeatures.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; +using Newtonsoft.Json; + +namespace SpotifyAPI.Web.Models +{ + public class SeveralAudioFeatures : BasicModel + { + [JsonProperty("audio_features")] + public List AudioFeatures { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/SeveralTracks.cs b/Source Files/SpotifyAPI.Web/Models/SeveralTracks.cs new file mode 100644 index 0000000..a72c216 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/SeveralTracks.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; +using Newtonsoft.Json; + +namespace SpotifyAPI.Web.Models +{ + public class SeveralTracks : BasicModel + { + [JsonProperty("tracks")] + public List Tracks { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/SimpleAlbum.cs b/Source Files/SpotifyAPI.Web/Models/SimpleAlbum.cs new file mode 100644 index 0000000..2e2aa0f --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/SimpleAlbum.cs @@ -0,0 +1,50 @@ +using Newtonsoft.Json; +using System.Collections.Generic; + +namespace SpotifyAPI.Web.Models +{ + public class SimpleAlbum : BasicModel + { + [JsonProperty("album_group")] + public string AlbumGroup { get; set; } + + [JsonProperty("album_type")] + public string AlbumType { get; set; } + + [JsonProperty("artists")] + public List Artists { get; set; } + + [JsonProperty("available_markets")] + public List AvailableMarkets { get; set; } + + [JsonProperty("external_urls")] + public Dictionary ExternalUrls { get; set; } + + [JsonProperty("href")] + public string Href { get; set; } + + [JsonProperty("id")] + public string Id { get; set; } + + [JsonProperty("images")] + public List Images { get; set; } + + [JsonProperty("name")] + public string Name { get; set; } + + [JsonProperty("release_date")] + public string ReleaseDate { get; set; } + + [JsonProperty("release_date_precision")] + public string ReleaseDatePrecision { get; set; } + + [JsonProperty("restrictions")] + public Dictionary Restrictions { get; set; } + + [JsonProperty("type")] + public string Type { get; set; } + + [JsonProperty("uri")] + public string Uri { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/SimpleArtist.cs b/Source Files/SpotifyAPI.Web/Models/SimpleArtist.cs new file mode 100644 index 0000000..c1294ee --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/SimpleArtist.cs @@ -0,0 +1,26 @@ +using Newtonsoft.Json; +using System.Collections.Generic; + +namespace SpotifyAPI.Web.Models +{ + public class SimpleArtist : BasicModel + { + [JsonProperty("external_urls")] + public Dictionary ExternalUrls { get; set; } + + [JsonProperty("href")] + public string Href { get; set; } + + [JsonProperty("id")] + public string Id { get; set; } + + [JsonProperty("name")] + public string Name { get; set; } + + [JsonProperty("type")] + public string Type { get; set; } + + [JsonProperty("uri")] + public string Uri { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/SimplePlaylist.cs b/Source Files/SpotifyAPI.Web/Models/SimplePlaylist.cs new file mode 100644 index 0000000..37b3760 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/SimplePlaylist.cs @@ -0,0 +1,44 @@ +using Newtonsoft.Json; +using System.Collections.Generic; + +namespace SpotifyAPI.Web.Models +{ + public class SimplePlaylist : BasicModel + { + [JsonProperty("collaborative")] + public bool Collaborative { get; set; } + + [JsonProperty("external_urls")] + public Dictionary ExternalUrls { get; set; } + + [JsonProperty("href")] + public string Href { get; set; } + + [JsonProperty("id")] + public string Id { get; set; } + + [JsonProperty("images")] + public List Images { get; set; } + + [JsonProperty("name")] + public string Name { get; set; } + + [JsonProperty("owner")] + public PublicProfile Owner { get; set; } + + [JsonProperty("public")] + public bool Public { get; set; } + + [JsonProperty("snapshot_id")] + public string SnapshotId { get; set; } + + [JsonProperty("tracks")] + public PlaylistTrackCollection Tracks { get; set; } + + [JsonProperty("type")] + public string Type { get; set; } + + [JsonProperty("uri")] + public string Uri { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/SimpleTrack.cs b/Source Files/SpotifyAPI.Web/Models/SimpleTrack.cs new file mode 100644 index 0000000..85702a3 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/SimpleTrack.cs @@ -0,0 +1,50 @@ +using Newtonsoft.Json; +using System.Collections.Generic; + +namespace SpotifyAPI.Web.Models +{ + public class SimpleTrack : BasicModel + { + [JsonProperty("artists")] + public List Artists { get; set; } + + [JsonProperty("available_markets")] + public List AvailableMarkets { get; set; } + + [JsonProperty("disc_number")] + public int DiscNumber { get; set; } + + [JsonProperty("duration_ms")] + public int DurationMs { get; set; } + + [JsonProperty("explicit")] + public bool Explicit { get; set; } + + [JsonProperty("external_urls")] + public Dictionary ExternUrls { get; set; } + + [JsonProperty("href")] + public string Href { get; set; } + + [JsonProperty("id")] + public string Id { get; set; } + + [JsonProperty("name")] + public string Name { get; set; } + + [JsonProperty("preview_url")] + public string PreviewUrl { get; set; } + + [JsonProperty("track_number")] + public int TrackNumber { get; set; } + + [JsonProperty("restrictions")] + public Dictionary Restrictions { get; set; } + + [JsonProperty("type")] + public string Type { get; set; } + + [JsonProperty("uri")] + public string Uri { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/Snapshot.cs b/Source Files/SpotifyAPI.Web/Models/Snapshot.cs new file mode 100644 index 0000000..4a7e3e7 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/Snapshot.cs @@ -0,0 +1,10 @@ +using Newtonsoft.Json; + +namespace SpotifyAPI.Web.Models +{ + public class Snapshot : BasicModel + { + [JsonProperty("snapshot_id")] + public string SnapshotId { get; set; } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/Token.cs b/Source Files/SpotifyAPI.Web/Models/Token.cs new file mode 100644 index 0000000..941d6f9 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/Token.cs @@ -0,0 +1,47 @@ +using Newtonsoft.Json; +using System; + +namespace SpotifyAPI.Web.Models +{ + public class Token + { + public Token() + { + CreateDate = DateTime.Now; + } + + [JsonProperty("access_token")] + public string AccessToken { get; set; } + + [JsonProperty("token_type")] + public string TokenType { get; set; } + + [JsonProperty("expires_in")] + public double ExpiresIn { get; set; } + + [JsonProperty("refresh_token")] + public string RefreshToken { get; set; } + + [JsonProperty("error")] + public string Error { get; set; } + + [JsonProperty("error_description")] + public string ErrorDescription { get; set; } + + public DateTime CreateDate { get; set; } + + /// + /// Checks if the token has expired + /// + /// + public bool IsExpired() + { + return CreateDate.Add(TimeSpan.FromSeconds(ExpiresIn)) <= DateTime.Now; + } + + public bool HasError() + { + return Error != null; + } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Models/TuneableTrack.cs b/Source Files/SpotifyAPI.Web/Models/TuneableTrack.cs new file mode 100644 index 0000000..9f3943b --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Models/TuneableTrack.cs @@ -0,0 +1,69 @@ +using System.Collections.Generic; +using System.Globalization; +using System.Reflection; + +namespace SpotifyAPI.Web.Models +{ + public class TuneableTrack + { + [String("acousticness")] + public float? Acousticness { get; set; } + + [String("danceability")] + public float? Danceability { get; set; } + + [String("duration_ms")] + public int? DurationMs { get; set; } + + [String("energy")] + public float? Energy { get; set; } + + [String("instrumentalness")] + public float? Instrumentalness { get; set; } + + [String("key")] + public int? Key { get; set; } + + [String("liveness")] + public float? Liveness { get; set; } + + [String("loudness")] + public float? Loudness { get; set; } + + [String("mode")] + public int? Mode { get; set; } + + [String("popularity")] + public int? Popularity { get; set; } + + [String("speechiness")] + public float? Speechiness { get; set; } + + [String("tempo")] + public float? Tempo { get; set; } + + [String("time_signature")] + public int? TimeSignature { get; set; } + + [String("valence")] + public float? Valence { get; set; } + + public string BuildUrlParams(string prefix) + { + List urlParams = new List(); + foreach (PropertyInfo info in GetType().GetProperties()) + { + object value = info.GetValue(this); + string name = info.GetCustomAttribute()?.Text; + if(name == null || value == null) + continue; + urlParams.Add(value is float valueAsFloat + ? $"{prefix}_{name}={valueAsFloat.ToString(CultureInfo.InvariantCulture)}" + : $"{prefix}_{name}={value}"); + } + if (urlParams.Count > 0) + return "&" + string.Join("&", urlParams); + return ""; + } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/ProxyConfig.cs b/Source Files/SpotifyAPI.Web/ProxyConfig.cs new file mode 100644 index 0000000..309f577 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/ProxyConfig.cs @@ -0,0 +1,77 @@ +using System; +using System.Net; + +namespace SpotifyAPI.Web +{ + public class ProxyConfig + { + public string Host { get; set; } + + public int Port { get; set; } = 80; + + public string Username { get; set; } + + public string Password { get; set; } + + /// + /// Whether to bypass the proxy server for local addresses. + /// + public bool BypassProxyOnLocal { get; set; } + + public void Set(ProxyConfig proxyConfig) + { + Host = proxyConfig?.Host; + Port = proxyConfig?.Port ?? 80; + Username = proxyConfig?.Username; + Password = proxyConfig?.Password; + BypassProxyOnLocal = proxyConfig?.BypassProxyOnLocal ?? false; + } + + /// + /// Whether both and have valid values. + /// + /// + public bool IsValid() + { + return !string.IsNullOrWhiteSpace(Host) && Port > 0; + } + + /// + /// Create a from the host and port number + /// + /// A URI + public Uri GetUri() + { + UriBuilder uriBuilder = new UriBuilder(Host) + { + Port = Port + }; + return uriBuilder.Uri; + } + + /// + /// Creates a from the proxy details of this object. + /// + /// A or null if the proxy details are invalid. + public WebProxy CreateWebProxy() + { + if (!IsValid()) + return null; + + WebProxy proxy = new WebProxy + { + Address = GetUri(), + UseDefaultCredentials = true, + BypassProxyOnLocal = BypassProxyOnLocal + }; + + if (string.IsNullOrEmpty(Username) || string.IsNullOrEmpty(Password)) + return proxy; + + proxy.UseDefaultCredentials = false; + proxy.Credentials = new NetworkCredential(Username, Password); + + return proxy; + } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/SpotifyAPI.Web.csproj b/Source Files/SpotifyAPI.Web/SpotifyAPI.Web.csproj new file mode 100644 index 0000000..9021175 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/SpotifyAPI.Web.csproj @@ -0,0 +1,30 @@ + + + + net46;netstandard2.0 + + + + bin\Debug\netstandard2.0\SpotifyAPI.Web.xml + 1701;1702;1705;1591 + + + + bin\Release\netstandard2.0\SpotifyAPI.Web.xml + 1701;1702;1705;1591 + + + + + + + + + + + + + + + + diff --git a/Source Files/SpotifyAPI.Web/SpotifyAPI.Web.nuspec b/Source Files/SpotifyAPI.Web/SpotifyAPI.Web.nuspec new file mode 100644 index 0000000..a154e5b --- /dev/null +++ b/Source Files/SpotifyAPI.Web/SpotifyAPI.Web.nuspec @@ -0,0 +1,30 @@ + + + + + SpotifyAPI.Web + 3.0.0 + SpotifyAPI.Web + JohnnyCrazy + JohnnyCrazy + https://github.com/JohnnyCrazy/SpotifyAPI-NET/blob/master/LICENSE + https://github.com/JohnnyCrazy/SpotifyAPI-NET/ + false + + An API for Spotify's Web API, written in .NET + + For more infos, visit https://github.com/JohnnyCrazy/SpotifyAPI-NET + + + spotify api music .net c# spotify-client + + + + + + + + + + + diff --git a/Source Files/SpotifyAPI.Web/SpotifyWebAPI.cs b/Source Files/SpotifyAPI.Web/SpotifyWebAPI.cs new file mode 100644 index 0000000..1efe238 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/SpotifyWebAPI.cs @@ -0,0 +1,2958 @@ +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using SpotifyAPI.Web.Enums; +using SpotifyAPI.Web.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Threading; +using System.Threading.Tasks; + +namespace SpotifyAPI.Web +{ + // ReSharper disable once InconsistentNaming + public sealed class SpotifyWebAPI : IDisposable + { + private readonly SpotifyWebBuilder _builder; + + public SpotifyWebAPI() : this(null) + { + } + + public SpotifyWebAPI(ProxyConfig proxyConfig) + { + _builder = new SpotifyWebBuilder(); + UseAuth = true; + WebClient = new SpotifyWebClient(proxyConfig) + { + JsonSettings = + new JsonSerializerSettings + { + NullValueHandling = NullValueHandling.Ignore, + TypeNameHandling = TypeNameHandling.All + } + }; + } + + public void Dispose() + { + WebClient.Dispose(); + GC.SuppressFinalize(this); + } + + #region Configuration + + /// + /// The type of the + /// + public string TokenType { get; set; } + + /// + /// A valid token issued by spotify. Used only when is true + /// + public string AccessToken { get; set; } + + /// + /// If true, an authorization header based on and will be used + /// + public bool UseAuth { get; set; } + + /// + /// A custom WebClient, used for Unit-Testing + /// + public IClient WebClient { get; set; } + + + /// + /// Specifies after how many miliseconds should a failed request be retried. + /// + public int RetryAfter { get; set; } = 50; + + /// + /// Should a failed request (specified by be automatically retried or not. + /// + public bool UseAutoRetry { get; set; } = false; + + /// + /// Maximum number of tries for one failed request. + /// + public int RetryTimes { get; set; } = 10; + + /// + /// Whether a failure of type "Too Many Requests" should use up one of the allocated retry attempts. + /// + public bool TooManyRequestsConsumesARetry { get; set; } = false; + + /// + /// Error codes that will trigger auto-retry if is enabled. + /// + public IEnumerable RetryErrorCodes { get; set; } = new[] { 500, 502, 503 }; + + #endregion Configuration + + #region Search + + /// + /// Get Spotify catalog information about artists, albums, tracks or playlists that match a keyword string. + /// + /// The search query's keywords (and optional field filters and operators), for example q=roadhouse+blues. + /// A list of item types to search across. + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first result to return. Default: 0 + /// An ISO 3166-1 alpha-2 country code or the string from_token. + /// + public SearchItem SearchItems(string q, SearchType type, int limit = 20, int offset = 0, string market = "") + { + return DownloadData(_builder.SearchItems(q, type, limit, offset, market)); + } + + /// + /// Get Spotify catalog information about artists, albums, tracks or playlists that match a keyword string asynchronously. + /// + /// The search query's keywords (and optional field filters and operators), for example q=roadhouse+blues. + /// A list of item types to search across. + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first result to return. Default: 0 + /// An ISO 3166-1 alpha-2 country code or the string from_token. + /// + public Task SearchItemsAsync(string q, SearchType type, int limit = 20, int offset = 0, string market = "") + { + return DownloadDataAsync(_builder.SearchItems(q, type, limit, offset, market)); + } + + /// + /// Get Spotify catalog information about artists, albums, tracks or playlists that match a keyword string. + /// + /// The search query's keywords (and optional field filters and operators), for example q=roadhouse+blues. (properly escaped) + /// A list of item types to search across. + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first result to return. Default: 0 + /// An ISO 3166-1 alpha-2 country code or the string from_token. + /// + public SearchItem SearchItemsEscaped(string q, SearchType type, int limit = 20, int offset = 0, string market = "") + { + string escapedQuery = WebUtility.UrlEncode(q); + return DownloadData(_builder.SearchItems(escapedQuery, type, limit, offset, market)); + } + + /// + /// Get Spotify catalog information about artists, albums, tracks or playlists that match a keyword string asynchronously. + /// + /// The search query's keywords (and optional field filters and operators), for example q=roadhouse+blues. (properly escaped) + /// A list of item types to search across. + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first result to return. Default: 0 + /// An ISO 3166-1 alpha-2 country code or the string from_token. + /// + public Task SearchItemsEscapedAsync(string q, SearchType type, int limit = 20, int offset = 0, string market = "") + { + string escapedQuery = WebUtility.UrlEncode(q); + return DownloadDataAsync(_builder.SearchItems(escapedQuery, type, limit, offset, market)); + } + + #endregion Search + + #region Albums + + /// + /// Get Spotify catalog information about an album’s tracks. Optional parameters can be used to limit the number of + /// tracks returned. + /// + /// The Spotify ID for the album. + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first track to return. Default: 0 (the first object). + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + public Paging GetAlbumTracks(string id, int limit = 20, int offset = 0, string market = "") + { + return DownloadData>(_builder.GetAlbumTracks(id, limit, offset, market)); + } + + /// + /// Get Spotify catalog information about an album’s tracks asynchronously. Optional parameters can be used to limit the number of + /// tracks returned. + /// + /// The Spotify ID for the album. + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first track to return. Default: 0 (the first object). + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + public Task> GetAlbumTracksAsync(string id, int limit = 20, int offset = 0, string market = "") + { + return DownloadDataAsync>(_builder.GetAlbumTracks(id, limit, offset, market)); + } + + /// + /// Get Spotify catalog information for a single album. + /// + /// The Spotify ID for the album. + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + public FullAlbum GetAlbum(string id, string market = "") + { + return DownloadData(_builder.GetAlbum(id, market)); + } + + /// + /// Get Spotify catalog information for a single album asynchronously. + /// + /// The Spotify ID for the album. + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + public Task GetAlbumAsync(string id, string market = "") + { + return DownloadDataAsync(_builder.GetAlbum(id, market)); + } + + /// + /// Get Spotify catalog information for multiple albums identified by their Spotify IDs. + /// + /// A list of the Spotify IDs for the albums. Maximum: 20 IDs. + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + public SeveralAlbums GetSeveralAlbums(List ids, string market = "") + { + return DownloadData(_builder.GetSeveralAlbums(ids, market)); + } + + /// + /// Get Spotify catalog information for multiple albums identified by their Spotify IDs asynchrously. + /// + /// A list of the Spotify IDs for the albums. Maximum: 20 IDs. + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + public Task GetSeveralAlbumsAsync(List ids, string market = "") + { + return DownloadDataAsync(_builder.GetSeveralAlbums(ids, market)); + } + + #endregion Albums + + #region Artists + + /// + /// Get Spotify catalog information for a single artist identified by their unique Spotify ID. + /// + /// The Spotify ID for the artist. + /// + public FullArtist GetArtist(string id) + { + return DownloadData(_builder.GetArtist(id)); + } + + /// + /// Get Spotify catalog information for a single artist identified by their unique Spotify ID asynchronously. + /// + /// The Spotify ID for the artist. + /// + public Task GetArtistAsync(string id) + { + return DownloadDataAsync(_builder.GetArtist(id)); + } + + /// + /// Get Spotify catalog information about artists similar to a given artist. Similarity is based on analysis of the + /// Spotify community’s listening history. + /// + /// The Spotify ID for the artist. + /// + public SeveralArtists GetRelatedArtists(string id) + { + return DownloadData(_builder.GetRelatedArtists(id)); + } + + /// + /// Get Spotify catalog information about artists similar to a given artist asynchronously. Similarity is based on analysis of the + /// Spotify community’s listening history. + /// + /// The Spotify ID for the artist. + /// + public Task GetRelatedArtistsAsync(string id) + { + return DownloadDataAsync(_builder.GetRelatedArtists(id)); + } + + /// + /// Get Spotify catalog information about an artist’s top tracks by country. + /// + /// The Spotify ID for the artist. + /// The country: an ISO 3166-1 alpha-2 country code. + /// + public SeveralTracks GetArtistsTopTracks(string id, string country) + { + return DownloadData(_builder.GetArtistsTopTracks(id, country)); + } + + /// + /// Get Spotify catalog information about an artist’s top tracks by country asynchronously. + /// + /// The Spotify ID for the artist. + /// The country: an ISO 3166-1 alpha-2 country code. + /// + public Task GetArtistsTopTracksAsync(string id, string country) + { + return DownloadDataAsync(_builder.GetArtistsTopTracks(id, country)); + } + + /// + /// Get Spotify catalog information about an artist’s albums. Optional parameters can be specified in the query string + /// to filter and sort the response. + /// + /// The Spotify ID for the artist. + /// + /// A list of keywords that will be used to filter the response. If not supplied, all album types will + /// be returned + /// + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first album to return. Default: 0 + /// + /// An ISO 3166-1 alpha-2 country code. Supply this parameter to limit the response to one particular + /// geographical market + /// + /// + public Paging GetArtistsAlbums(string id, AlbumType type = AlbumType.All, int limit = 20, int offset = 0, string market = "") + { + return DownloadData>(_builder.GetArtistsAlbums(id, type, limit, offset, market)); + } + + /// + /// Get Spotify catalog information about an artist’s albums asynchronously. Optional parameters can be specified in the query string + /// to filter and sort the response. + /// + /// The Spotify ID for the artist. + /// + /// A list of keywords that will be used to filter the response. If not supplied, all album types will + /// be returned + /// + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first album to return. Default: 0 + /// + /// An ISO 3166-1 alpha-2 country code. Supply this parameter to limit the response to one particular + /// geographical market + /// + /// + public Task> GetArtistsAlbumsAsync(string id, AlbumType type = AlbumType.All, int limit = 20, int offset = 0, string market = "") + { + return DownloadDataAsync>(_builder.GetArtistsAlbums(id, type, limit, offset, market)); + } + + /// + /// Get Spotify catalog information for several artists based on their Spotify IDs. + /// + /// A list of the Spotify IDs for the artists. Maximum: 50 IDs. + /// + public SeveralArtists GetSeveralArtists(List ids) + { + return DownloadData(_builder.GetSeveralArtists(ids)); + } + + /// + /// Get Spotify catalog information for several artists based on their Spotify IDs asynchronously. + /// + /// A list of the Spotify IDs for the artists. Maximum: 50 IDs. + /// + public Task GetSeveralArtistsAsync(List ids) + { + return DownloadDataAsync(_builder.GetSeveralArtists(ids)); + } + + #endregion Artists + + #region Browse + + /// + /// Get a list of Spotify featured playlists (shown, for example, on a Spotify player’s “Browse” tab). + /// + /// + /// The desired language, consisting of a lowercase ISO 639 language code and an uppercase ISO 3166-1 + /// alpha-2 country code, joined by an underscore. + /// + /// A country: an ISO 3166-1 alpha-2 country code. + /// A timestamp in ISO 8601 format + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first item to return. Default: 0 + /// AUTH NEEDED + public FeaturedPlaylists GetFeaturedPlaylists(string locale = "", string country = "", DateTime timestamp = default(DateTime), int limit = 20, int offset = 0) + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetFeaturedPlaylists"); + return DownloadData(_builder.GetFeaturedPlaylists(locale, country, timestamp, limit, offset)); + } + + /// + /// Get a list of Spotify featured playlists asynchronously (shown, for example, on a Spotify player’s “Browse” tab). + /// + /// + /// The desired language, consisting of a lowercase ISO 639 language code and an uppercase ISO 3166-1 + /// alpha-2 country code, joined by an underscore. + /// + /// A country: an ISO 3166-1 alpha-2 country code. + /// A timestamp in ISO 8601 format + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first item to return. Default: 0 + /// AUTH NEEDED + public Task GetFeaturedPlaylistsAsync(string locale = "", string country = "", DateTime timestamp = default(DateTime), int limit = 20, int offset = 0) + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetFeaturedPlaylists"); + return DownloadDataAsync(_builder.GetFeaturedPlaylists(locale, country, timestamp, limit, offset)); + } + + /// + /// Get a list of new album releases featured in Spotify (shown, for example, on a Spotify player’s “Browse” tab). + /// + /// A country: an ISO 3166-1 alpha-2 country code. + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first item to return. Default: 0 + /// + /// AUTH NEEDED + public NewAlbumReleases GetNewAlbumReleases(string country = "", int limit = 20, int offset = 0) + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetNewAlbumReleases"); + return DownloadData(_builder.GetNewAlbumReleases(country, limit, offset)); + } + + /// + /// Get a list of new album releases featured in Spotify asynchronously (shown, for example, on a Spotify player’s “Browse” tab). + /// + /// A country: an ISO 3166-1 alpha-2 country code. + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first item to return. Default: 0 + /// + /// AUTH NEEDED + public Task GetNewAlbumReleasesAsync(string country = "", int limit = 20, int offset = 0) + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetNewAlbumReleases"); + return DownloadDataAsync(_builder.GetNewAlbumReleases(country, limit, offset)); + } + + /// + /// Get a list of categories used to tag items in Spotify (on, for example, the Spotify player’s “Browse” tab). + /// + /// + /// A country: an ISO 3166-1 alpha-2 country code. Provide this parameter if you want to narrow the + /// list of returned categories to those relevant to a particular country + /// + /// + /// The desired language, consisting of an ISO 639 language code and an ISO 3166-1 alpha-2 country + /// code, joined by an underscore + /// + /// The maximum number of categories to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first item to return. Default: 0 (the first object). + /// + /// AUTH NEEDED + public CategoryList GetCategories(string country = "", string locale = "", int limit = 20, int offset = 0) + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetCategories"); + return DownloadData(_builder.GetCategories(country, locale, limit, offset)); + } + + /// + /// Get a list of categories used to tag items in Spotify asynchronously (on, for example, the Spotify player’s “Browse” tab). + /// + /// + /// A country: an ISO 3166-1 alpha-2 country code. Provide this parameter if you want to narrow the + /// list of returned categories to those relevant to a particular country + /// + /// + /// The desired language, consisting of an ISO 639 language code and an ISO 3166-1 alpha-2 country + /// code, joined by an underscore + /// + /// The maximum number of categories to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first item to return. Default: 0 (the first object). + /// + /// AUTH NEEDED + public Task GetCategoriesAsync(string country = "", string locale = "", int limit = 20, int offset = 0) + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetCategories"); + return DownloadDataAsync(_builder.GetCategories(country, locale, limit, offset)); + } + + /// + /// Get a single category used to tag items in Spotify (on, for example, the Spotify player’s “Browse” tab). + /// + /// The Spotify category ID for the category. + /// + /// A country: an ISO 3166-1 alpha-2 country code. Provide this parameter to ensure that the category + /// exists for a particular country. + /// + /// + /// The desired language, consisting of an ISO 639 language code and an ISO 3166-1 alpha-2 country + /// code, joined by an underscore + /// + /// + /// AUTH NEEDED + public Category GetCategory(string categoryId, string country = "", string locale = "") + { + return DownloadData(_builder.GetCategory(categoryId, country, locale)); + } + + /// + /// Get a single category used to tag items in Spotify asynchronously (on, for example, the Spotify player’s “Browse” tab). + /// + /// The Spotify category ID for the category. + /// + /// A country: an ISO 3166-1 alpha-2 country code. Provide this parameter to ensure that the category + /// exists for a particular country. + /// + /// + /// The desired language, consisting of an ISO 639 language code and an ISO 3166-1 alpha-2 country + /// code, joined by an underscore + /// + /// + /// AUTH NEEDED + public Task GetCategoryAsync(string categoryId, string country = "", string locale = "") + { + return DownloadDataAsync(_builder.GetCategory(categoryId, country, locale)); + } + + /// + /// Get a list of Spotify playlists tagged with a particular category. + /// + /// The Spotify category ID for the category. + /// A country: an ISO 3166-1 alpha-2 country code. + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first item to return. Default: 0 + /// + /// AUTH NEEDED + public CategoryPlaylist GetCategoryPlaylists(string categoryId, string country = "", int limit = 20, int offset = 0) + { + return DownloadData(_builder.GetCategoryPlaylists(categoryId, country, limit, offset)); + } + + /// + /// Get a list of Spotify playlists tagged with a particular category asynchronously. + /// + /// The Spotify category ID for the category. + /// A country: an ISO 3166-1 alpha-2 country code. + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first item to return. Default: 0 + /// + /// AUTH NEEDED + public Task GetCategoryPlaylistsAsync(string categoryId, string country = "", int limit = 20, int offset = 0) + { + return DownloadDataAsync(_builder.GetCategoryPlaylists(categoryId, country, limit, offset)); + } + + /// + /// Create a playlist-style listening experience based on seed artists, tracks and genres. + /// + /// A comma separated list of Spotify IDs for seed artists. + /// Up to 5 seed values may be provided in any combination of seed_artists, seed_tracks and seed_genres. + /// + /// A comma separated list of any genres in the set of available genre seeds. + /// Up to 5 seed values may be provided in any combination of seed_artists, seed_tracks and seed_genres. + /// + /// A comma separated list of Spotify IDs for a seed track. + /// Up to 5 seed values may be provided in any combination of seed_artists, seed_tracks and seed_genres. + /// + /// Tracks with the attribute values nearest to the target values will be preferred. + /// For each tunable track attribute, a hard floor on the selected track attribute’s value can be provided + /// For each tunable track attribute, a hard ceiling on the selected track attribute’s value can be provided + /// The target size of the list of recommended tracks. Default: 20. Minimum: 1. Maximum: 100. + /// For seeds with unusually small pools or when highly restrictive filtering is applied, it may be impossible to generate the requested number of recommended tracks. + /// + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// Because min_*, max_* and target_* are applied to pools before relinking, the generated results may not precisely match the filters applied. + /// + /// AUTH NEEDED + public Recommendations GetRecommendations(List artistSeed = null, List genreSeed = null, List trackSeed = null, + TuneableTrack target = null, TuneableTrack min = null, TuneableTrack max = null, int limit = 20, string market = "") + { + return DownloadData(_builder.GetRecommendations(artistSeed, genreSeed, trackSeed, target, min, max, limit, market)); + } + + /// + /// Create a playlist-style listening experience based on seed artists, tracks and genres asynchronously. + /// + /// A comma separated list of Spotify IDs for seed artists. + /// Up to 5 seed values may be provided in any combination of seed_artists, seed_tracks and seed_genres. + /// + /// A comma separated list of any genres in the set of available genre seeds. + /// Up to 5 seed values may be provided in any combination of seed_artists, seed_tracks and seed_genres. + /// + /// A comma separated list of Spotify IDs for a seed track. + /// Up to 5 seed values may be provided in any combination of seed_artists, seed_tracks and seed_genres. + /// + /// Tracks with the attribute values nearest to the target values will be preferred. + /// For each tunable track attribute, a hard floor on the selected track attribute’s value can be provided + /// For each tunable track attribute, a hard ceiling on the selected track attribute’s value can be provided + /// The target size of the list of recommended tracks. Default: 20. Minimum: 1. Maximum: 100. + /// For seeds with unusually small pools or when highly restrictive filtering is applied, it may be impossible to generate the requested number of recommended tracks. + /// + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// Because min_*, max_* and target_* are applied to pools before relinking, the generated results may not precisely match the filters applied. + /// + /// AUTH NEEDED + public Task GetRecommendationsAsync(List artistSeed = null, List genreSeed = null, List trackSeed = null, + TuneableTrack target = null, TuneableTrack min = null, TuneableTrack max = null, int limit = 20, string market = "") + { + return DownloadDataAsync(_builder.GetRecommendations(artistSeed, genreSeed, trackSeed, target, min, max, limit, market)); + } + + /// + /// Retrieve a list of available genres seed parameter values for recommendations. + /// + /// + /// AUTH NEEDED + public RecommendationSeedGenres GetRecommendationSeedsGenres() + { + return DownloadData(_builder.GetRecommendationSeedsGenres()); + } + + /// + /// Retrieve a list of available genres seed parameter values for recommendations asynchronously. + /// + /// + /// AUTH NEEDED + public Task GetRecommendationSeedsGenresAsync() + { + return DownloadDataAsync(_builder.GetRecommendationSeedsGenres()); + } + + #endregion Browse + + #region Follow + + /// + /// Get the current user’s followed artists. + /// + /// The ID type: currently only artist is supported. + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// The last artist ID retrieved from the previous request. + /// + /// AUTH NEEDED + public FollowedArtists GetFollowedArtists(FollowType followType, int limit = 20, string after = "") + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetFollowedArtists"); + return DownloadData(_builder.GetFollowedArtists(limit, after)); + } + + /// + /// Get the current user’s followed artists asynchronously. + /// + /// The ID type: currently only artist is supported. + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// The last artist ID retrieved from the previous request. + /// + /// AUTH NEEDED + public Task GetFollowedArtistsAsync(FollowType followType, int limit = 20, string after = "") + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetFollowedArtists"); + return DownloadDataAsync(_builder.GetFollowedArtists(limit, after)); + } + + /// + /// Add the current user as a follower of one or more artists or other Spotify users. + /// + /// The ID type: either artist or user. + /// A list of the artist or the user Spotify IDs + /// + /// AUTH NEEDED + public ErrorResponse Follow(FollowType followType, List ids) + { + JObject ob = new JObject + { + {"ids", new JArray(ids)} + }; + return UploadData(_builder.Follow(followType), ob.ToString(Formatting.None), "PUT") ?? new ErrorResponse(); + } + + /// + /// Add the current user as a follower of one or more artists or other Spotify users asynchronously. + /// + /// The ID type: either artist or user. + /// A list of the artist or the user Spotify IDs + /// + /// AUTH NEEDED + public async Task FollowAsync(FollowType followType, List ids) + { + JObject ob = new JObject + { + {"ids", new JArray(ids)} + }; + return await UploadDataAsync(_builder.Follow(followType), + ob.ToString(Formatting.None), "PUT").ConfigureAwait(false) ?? new ErrorResponse(); + } + + /// + /// Add the current user as a follower of one or more artists or other Spotify users. + /// + /// The ID type: either artist or user. + /// Artists or the Users Spotify ID + /// + /// AUTH NEEDED + public ErrorResponse Follow(FollowType followType, string id) + { + return Follow(followType, new List { id }); + } + + /// + /// Add the current user as a follower of one or more artists or other Spotify users asynchronously. + /// + /// The ID type: either artist or user. + /// Artists or the Users Spotify ID + /// + /// AUTH NEEDED + public Task FollowAsync(FollowType followType, string id) + { + return FollowAsync(followType, new List { id }); + } + + /// + /// Remove the current user as a follower of one or more artists or other Spotify users. + /// + /// The ID type: either artist or user. + /// A list of the artist or the user Spotify IDs + /// + /// AUTH NEEDED + public ErrorResponse Unfollow(FollowType followType, List ids) + { + JObject ob = new JObject + { + {"ids", new JArray(ids)} + }; + return UploadData(_builder.Unfollow(followType), ob.ToString(Formatting.None), "DELETE") ?? new ErrorResponse(); + } + + /// + /// Remove the current user as a follower of one or more artists or other Spotify users asynchronously. + /// + /// The ID type: either artist or user. + /// A list of the artist or the user Spotify IDs + /// + /// AUTH NEEDED + public async Task UnfollowAsync(FollowType followType, List ids) + { + JObject ob = new JObject + { + {"ids", new JArray(ids)} + }; + return await UploadDataAsync(_builder.Unfollow(followType), ob.ToString(Formatting.None), "DELETE").ConfigureAwait(false) ?? new ErrorResponse(); + } + + /// + /// Remove the current user as a follower of one or more artists or other Spotify users. + /// + /// The ID type: either artist or user. + /// Artists or the Users Spotify ID + /// + /// AUTH NEEDED + public ErrorResponse Unfollow(FollowType followType, string id) + { + return Unfollow(followType, new List { id }); + } + + /// + /// Remove the current user as a follower of one or more artists or other Spotify users asynchronously. + /// + /// The ID type: either artist or user. + /// Artists or the Users Spotify ID + /// + /// AUTH NEEDED + public Task UnfollowAsync(FollowType followType, string id) + { + return UnfollowAsync(followType, new List { id }); + } + + /// + /// Check to see if the current user is following one or more artists or other Spotify users. + /// + /// The ID type: either artist or user. + /// A list of the artist or the user Spotify IDs to check + /// + /// AUTH NEEDED + public ListResponse IsFollowing(FollowType followType, List ids) + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for IsFollowing"); + + string url = _builder.IsFollowing(followType, ids); + return DownloadList(url); + } + + + + /// + /// Check to see if the current user is following one or more artists or other Spotify users asynchronously. + /// + /// The ID type: either artist or user. + /// A list of the artist or the user Spotify IDs to check + /// + /// AUTH NEEDED + public Task> IsFollowingAsync(FollowType followType, List ids) + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for IsFollowing"); + + string url = _builder.IsFollowing(followType, ids); + return DownloadListAsync(url); + } + + /// + /// Check to see if the current user is following one artist or another Spotify user. + /// + /// The ID type: either artist or user. + /// Artists or the Users Spotify ID + /// + /// AUTH NEEDED + public ListResponse IsFollowing(FollowType followType, string id) + { + return IsFollowing(followType, new List { id }); + } + + /// + /// Check to see if the current user is following one artist or another Spotify user asynchronously. + /// + /// The ID type: either artist or user. + /// Artists or the Users Spotify ID + /// + /// AUTH NEEDED + public Task> IsFollowingAsync(FollowType followType, string id) + { + return IsFollowingAsync(followType, new List { id }); + } + + /// + /// Add the current user as a follower of a playlist. + /// + /// The Spotify user ID of the person who owns the playlist. + /// + /// 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. + /// + /// + /// If true the playlist will be included in user's public playlists, if false it will remain + /// private. + /// + /// + /// AUTH NEEDED + public ErrorResponse FollowPlaylist(string ownerId, string playlistId, bool showPublic = true) + { + JObject body = new JObject + { + {"public", showPublic} + }; + return UploadData(_builder.FollowPlaylist(ownerId, playlistId, showPublic), body.ToString(Formatting.None), "PUT"); + } + + /// + /// Add the current user as a follower of a playlist asynchronously. + /// + /// The Spotify user ID of the person who owns the playlist. + /// + /// 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. + /// + /// + /// If true the playlist will be included in user's public playlists, if false it will remain + /// private. + /// + /// + /// AUTH NEEDED + public Task FollowPlaylistAsync(string ownerId, string playlistId, bool showPublic = true) + { + JObject body = new JObject + { + {"public", showPublic} + }; + return UploadDataAsync(_builder.FollowPlaylist(ownerId, playlistId, showPublic), body.ToString(Formatting.None), "PUT"); + } + + /// + /// Remove the current user as a follower of a playlist. + /// + /// The Spotify user ID of the person who owns the playlist. + /// The Spotify ID of the playlist that is to be no longer followed. + /// + /// AUTH NEEDED + public ErrorResponse UnfollowPlaylist(string ownerId, string playlistId) + { + return UploadData(_builder.UnfollowPlaylist(ownerId, playlistId), "", "DELETE"); + } + + /// + /// Remove the current user as a follower of a playlist asynchronously. + /// + /// The Spotify user ID of the person who owns the playlist. + /// The Spotify ID of the playlist that is to be no longer followed. + /// + /// AUTH NEEDED + public Task UnfollowPlaylistAsync(string ownerId, string playlistId) + { + return UploadDataAsync(_builder.UnfollowPlaylist(ownerId, playlistId), "", "DELETE"); + } + + /// + /// Check to see if one or more Spotify users are following a specified playlist. + /// + /// The Spotify user ID of the person who owns the playlist. + /// The Spotify ID of the playlist. + /// A list of Spotify User IDs + /// + /// AUTH NEEDED + public ListResponse IsFollowingPlaylist(string ownerId, string playlistId, List ids) + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for IsFollowingPlaylist"); + + string url = _builder.IsFollowingPlaylist(ownerId, playlistId, ids); + return DownloadList(url); + } + + /// + /// Check to see if one or more Spotify users are following a specified playlist asynchronously. + /// + /// The Spotify user ID of the person who owns the playlist. + /// The Spotify ID of the playlist. + /// A list of Spotify User IDs + /// + /// AUTH NEEDED + public Task> IsFollowingPlaylistAsync(string ownerId, string playlistId, List ids) + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for IsFollowingPlaylist"); + + string url = _builder.IsFollowingPlaylist(ownerId, playlistId, ids); + return DownloadListAsync(url); + } + + /// + /// Check to see if one or more Spotify users are following a specified playlist. + /// + /// The Spotify user ID of the person who owns the playlist. + /// The Spotify ID of the playlist. + /// A Spotify User ID + /// + /// AUTH NEEDED + public ListResponse IsFollowingPlaylist(string ownerId, string playlistId, string id) + { + return IsFollowingPlaylist(ownerId, playlistId, new List { id }); + } + + /// + /// Check to see if one or more Spotify users are following a specified playlist asynchronously. + /// + /// The Spotify user ID of the person who owns the playlist. + /// The Spotify ID of the playlist. + /// A Spotify User ID + /// + /// AUTH NEEDED + public Task> IsFollowingPlaylistAsync(string ownerId, string playlistId, string id) + { + return IsFollowingPlaylistAsync(ownerId, playlistId, new List { id }); + } + + #endregion Follow + + #region Library + + /// + /// Save one or more tracks to the current user’s “Your Music” library. + /// + /// A list of the Spotify IDs + /// + /// AUTH NEEDED + public ErrorResponse SaveTracks(List ids) + { + JArray array = new JArray(ids); + return UploadData(_builder.SaveTracks(), array.ToString(Formatting.None), "PUT") ?? new ErrorResponse(); + } + + /// + /// Save one or more tracks to the current user’s “Your Music” library asynchronously. + /// + /// A list of the Spotify IDs + /// + /// AUTH NEEDED + public async Task SaveTracksAsync(List ids) + { + JArray array = new JArray(ids); + return await UploadDataAsync(_builder.SaveTracks(), array.ToString(Formatting.None), "PUT").ConfigureAwait(false) ?? new ErrorResponse(); + } + + /// + /// Save one track to the current user’s “Your Music” library. + /// + /// A Spotify ID + /// + /// AUTH NEEDED + public ErrorResponse SaveTrack(string id) + { + return SaveTracks(new List { id }); + } + + /// + /// Save one track to the current user’s “Your Music” library asynchronously. + /// + /// A Spotify ID + /// + /// AUTH NEEDED + public Task SaveTrackAsync(string id) + { + return SaveTracksAsync(new List { id }); + } + + /// + /// Get a list of the songs saved in the current Spotify user’s “Your Music” library. + /// + /// The maximum number of objects to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first object to return. Default: 0 (i.e., the first object) + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + /// AUTH NEEDED + public Paging GetSavedTracks(int limit = 20, int offset = 0, string market = "") + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetSavedTracks"); + return DownloadData>(_builder.GetSavedTracks(limit, offset, market)); + } + + /// + /// Get a list of the songs saved in the current Spotify user’s “Your Music” library asynchronously. + /// + /// The maximum number of objects to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first object to return. Default: 0 (i.e., the first object) + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + /// AUTH NEEDED + public Task> GetSavedTracksAsync(int limit = 20, int offset = 0, string market = "") + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetSavedTracks"); + return DownloadDataAsync>(_builder.GetSavedTracks(limit, offset, market)); + } + + /// + /// Remove one or more tracks from the current user’s “Your Music” library. + /// + /// A list of the Spotify IDs. + /// + /// AUTH NEEDED + public ErrorResponse RemoveSavedTracks(List ids) + { + JArray array = new JArray(ids); + return UploadData(_builder.RemoveSavedTracks(), array.ToString(Formatting.None), "DELETE") ?? new ErrorResponse(); + } + + /// + /// Remove one or more tracks from the current user’s “Your Music” library asynchronously. + /// + /// A list of the Spotify IDs. + /// + /// AUTH NEEDED + public async Task RemoveSavedTracksAsync(List ids) + { + JArray array = new JArray(ids); + return await UploadDataAsync(_builder.RemoveSavedTracks(), array.ToString(Formatting.None), "DELETE").ConfigureAwait(false) ?? new ErrorResponse(); + } + + /// + /// Check if one or more tracks is already saved in the current Spotify user’s “Your Music” library. + /// + /// A list of the Spotify IDs. + /// + /// AUTH NEEDED + public ListResponse CheckSavedTracks(List ids) + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for CheckSavedTracks"); + + string url = _builder.CheckSavedTracks(ids); + return DownloadList(url); + } + + /// + /// Check if one or more tracks is already saved in the current Spotify user’s “Your Music” library asynchronously. + /// + /// A list of the Spotify IDs. + /// + /// AUTH NEEDED + public Task> CheckSavedTracksAsync(List ids) + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for CheckSavedTracks"); + string url = _builder.CheckSavedTracks(ids); + return DownloadListAsync(url); + } + + /// + /// Save one or more albums to the current user’s “Your Music” library. + /// + /// A list of the Spotify IDs + /// + /// AUTH NEEDED + public ErrorResponse SaveAlbums(List ids) + { + JArray array = new JArray(ids); + return UploadData(_builder.SaveAlbums(), array.ToString(Formatting.None), "PUT") ?? new ErrorResponse(); + } + + /// + /// Save one or more albums to the current user’s “Your Music” library asynchronously. + /// + /// A list of the Spotify IDs + /// + /// AUTH NEEDED + public async Task SaveAlbumsAsync(List ids) + { + JArray array = new JArray(ids); + return await UploadDataAsync(_builder.SaveAlbums(), array.ToString(Formatting.None), "PUT").ConfigureAwait(false) ?? new ErrorResponse(); + } + + /// + /// Save one album to the current user’s “Your Music” library. + /// + /// A Spotify ID + /// + /// AUTH NEEDED + public ErrorResponse SaveAlbum(string id) + { + return SaveAlbums(new List { id }); + } + + /// + /// Save one album to the current user’s “Your Music” library asynchronously. + /// + /// A Spotify ID + /// + /// AUTH NEEDED + public Task SaveAlbumAsync(string id) + { + return SaveAlbumsAsync(new List { id }); + } + + /// + /// Get a list of the albums saved in the current Spotify user’s “Your Music” library. + /// + /// The maximum number of objects to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first object to return. Default: 0 (i.e., the first object) + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + /// AUTH NEEDED + public Paging GetSavedAlbums(int limit = 20, int offset = 0, string market = "") + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetSavedAlbums"); + return DownloadData>(_builder.GetSavedAlbums(limit, offset, market)); + } + + /// + /// Get a list of the albums saved in the current Spotify user’s “Your Music” library asynchronously. + /// + /// The maximum number of objects to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first object to return. Default: 0 (i.e., the first object) + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + /// AUTH NEEDED + public Task> GetSavedAlbumsAsync(int limit = 20, int offset = 0, string market = "") + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetSavedAlbumsAsync"); + return DownloadDataAsync>(_builder.GetSavedAlbums(limit, offset, market)); + } + + /// + /// Remove one or more albums from the current user’s “Your Music” library. + /// + /// A list of the Spotify IDs. + /// + /// AUTH NEEDED + public ErrorResponse RemoveSavedAlbums(List ids) + { + JArray array = new JArray(ids); + return UploadData(_builder.RemoveSavedAlbums(), array.ToString(Formatting.None), "DELETE") ?? new ErrorResponse(); + } + + /// + /// Remove one or more albums from the current user’s “Your Music” library asynchronously. + /// + /// A list of the Spotify IDs. + /// + /// AUTH NEEDED + public async Task RemoveSavedAlbumsAsync(List ids) + { + JArray array = new JArray(ids); + return await UploadDataAsync(_builder.RemoveSavedAlbums(), array.ToString(Formatting.None), "DELETE").ConfigureAwait(false) ?? new ErrorResponse(); + } + + /// + /// Check if one or more albums is already saved in the current Spotify user’s “Your Music” library. + /// + /// A list of the Spotify IDs. + /// + /// AUTH NEEDED + public ListResponse CheckSavedAlbums(List ids) + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for CheckSavedTracks"); + + string url = _builder.CheckSavedAlbums(ids); + return DownloadList(url); + } + + /// + /// Check if one or more albums is already saved in the current Spotify user’s “Your Music” library asynchronously. + /// + /// A list of the Spotify IDs. + /// + /// AUTH NEEDED + public Task> CheckSavedAlbumsAsync(List ids) + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for CheckSavedAlbumsAsync"); + string url = _builder.CheckSavedAlbums(ids); + return DownloadListAsync(url); + } + + #endregion Library + + #region Personalization + + /// + /// Get the current user’s top tracks based on calculated affinity. + /// + /// Over what time frame the affinities are computed. + /// Valid values: long_term (calculated from several years of data and including all new data as it becomes available), + /// medium_term (approximately last 6 months), short_term (approximately last 4 weeks). + /// The number of entities to return. Default: 20. Minimum: 1. Maximum: 50 + /// The index of the first entity to return. Default: 0 (i.e., the first track). Use with limit to get the next set of entities. + /// + /// AUTH NEEDED + public Paging GetUsersTopTracks(TimeRangeType timeRange = TimeRangeType.MediumTerm, int limit = 20, int offest = 0) + { + return DownloadData>(_builder.GetUsersTopTracks(timeRange, limit, offest)); + } + + /// + /// Get the current user’s top tracks based on calculated affinity asynchronously. + /// + /// Over what time frame the affinities are computed. + /// Valid values: long_term (calculated from several years of data and including all new data as it becomes available), + /// medium_term (approximately last 6 months), short_term (approximately last 4 weeks). + /// The number of entities to return. Default: 20. Minimum: 1. Maximum: 50 + /// The index of the first entity to return. Default: 0 (i.e., the first track). Use with limit to get the next set of entities. + /// + /// AUTH NEEDED + public Task> GetUsersTopTracksAsync(TimeRangeType timeRange = TimeRangeType.MediumTerm, int limit = 20, int offest = 0) + { + return DownloadDataAsync>(_builder.GetUsersTopTracks(timeRange, limit, offest)); + } + + /// + /// Get the current user’s top artists based on calculated affinity. + /// + /// Over what time frame the affinities are computed. + /// Valid values: long_term (calculated from several years of data and including all new data as it becomes available), + /// medium_term (approximately last 6 months), short_term (approximately last 4 weeks). + /// The number of entities to return. Default: 20. Minimum: 1. Maximum: 50 + /// The index of the first entity to return. Default: 0 (i.e., the first track). Use with limit to get the next set of entities. + /// + /// AUTH NEEDED + public Paging GetUsersTopArtists(TimeRangeType timeRange = TimeRangeType.MediumTerm, int limit = 20, int offest = 0) + { + return DownloadData>(_builder.GetUsersTopArtists(timeRange, limit, offest)); + } + + /// + /// Get the current user’s top artists based on calculated affinity asynchronously. + /// + /// Over what time frame the affinities are computed. + /// Valid values: long_term (calculated from several years of data and including all new data as it becomes available), + /// medium_term (approximately last 6 months), short_term (approximately last 4 weeks). + /// The number of entities to return. Default: 20. Minimum: 1. Maximum: 50 + /// The index of the first entity to return. Default: 0 (i.e., the first track). Use with limit to get the next set of entities. + /// + /// AUTH NEEDED + public Task> GetUsersTopArtistsAsync(TimeRangeType timeRange = TimeRangeType.MediumTerm, int limit = 20, int offest = 0) + { + return DownloadDataAsync>(_builder.GetUsersTopArtists(timeRange, limit, offest)); + } + + /// + /// Get tracks from the current user’s recent play history. + /// + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// A Unix timestamp in milliseconds. Returns all items after (but not including) this cursor position. If after is specified, before must not be specified. + /// A Unix timestamp in milliseconds. Returns all items before (but not including) this cursor position. If before is specified, after must not be specified. + /// + /// AUTH NEEDED + public CursorPaging GetUsersRecentlyPlayedTracks(int limit = 20, DateTime? after = null, + DateTime? before = null) + { + return DownloadData>(_builder.GetUsersRecentlyPlayedTracks(limit, after, before)); + } + + /// + /// Get tracks from the current user’s recent play history asynchronously + /// + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// A Unix timestamp in milliseconds. Returns all items after (but not including) this cursor position. If after is specified, before must not be specified. + /// A Unix timestamp in milliseconds. Returns all items before (but not including) this cursor position. If before is specified, after must not be specified. + /// + /// AUTH NEEDED + public Task> GetUsersRecentlyPlayedTracksAsync(int limit = 20, DateTime? after = null, + DateTime? before = null) + { + return DownloadDataAsync>(_builder.GetUsersRecentlyPlayedTracks(limit, after, before)); + } + + #endregion + + #region Playlists + + /// + /// Get a list of the playlists owned or followed by a Spotify user. + /// + /// The user's Spotify user ID. + /// The maximum number of playlists to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first playlist to return. Default: 0 (the first object) + /// + /// AUTH NEEDED + public Paging GetUserPlaylists(string userId, int limit = 20, int offset = 0) + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetUserPlaylists"); + return DownloadData>(_builder.GetUserPlaylists(userId, limit, offset)); + } + + /// + /// Get a list of the playlists owned or followed by a Spotify user asynchronously. + /// + /// The user's Spotify user ID. + /// The maximum number of playlists to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first playlist to return. Default: 0 (the first object) + /// + /// AUTH NEEDED + public Task> GetUserPlaylistsAsync(string userId, int limit = 20, int offset = 0) + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetUserPlaylists"); + return DownloadDataAsync>(_builder.GetUserPlaylists(userId, limit, offset)); + } + + /// + /// Get a playlist owned by a Spotify user. + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// + /// Filters for the query: a comma-separated list of the fields to return. If omitted, all fields are + /// returned. + /// + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + /// AUTH NEEDED + [Obsolete("Calling GetPlaylist with a userId is deprecated, remove the parameter")] + public FullPlaylist GetPlaylist(string userId, string playlistId, string fields = "", string market = "") + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetPlaylist"); + return DownloadData(_builder.GetPlaylist(userId, playlistId, fields, market)); + } + + /// + /// Get a playlist owned by a Spotify user. + /// + /// The Spotify ID for the playlist. + /// + /// Filters for the query: a comma-separated list of the fields to return. If omitted, all fields are + /// returned. + /// + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + /// AUTH NEEDED + public FullPlaylist GetPlaylist(string playlistId, string fields = "", string market = "") + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetPlaylist"); + return DownloadData(_builder.GetPlaylist(playlistId, fields, market)); + } + + /// + /// Get a playlist owned by a Spotify user asynchronously. + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// + /// Filters for the query: a comma-separated list of the fields to return. If omitted, all fields are + /// returned. + /// + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + /// AUTH NEEDED + [Obsolete("Calling GetPlaylist with a userId is deprecated, remove the parameter")] + public Task GetPlaylistAsync(string userId, string playlistId, string fields = "", string market = "") + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetPlaylist"); + return DownloadDataAsync(_builder.GetPlaylist(userId, playlistId, fields, market)); + } + + /// + /// Get a playlist owned by a Spotify user asynchronously. + /// + /// The Spotify ID for the playlist. + /// + /// Filters for the query: a comma-separated list of the fields to return. If omitted, all fields are + /// returned. + /// + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + /// AUTH NEEDED + public Task GetPlaylistAsync(string playlistId, string fields = "", string market = "") + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetPlaylist"); + return DownloadDataAsync(_builder.GetPlaylist(playlistId, fields, market)); + } + + /// + /// Get full details of the tracks of a playlist owned by a Spotify user. + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// + /// Filters for the query: a comma-separated list of the fields to return. If omitted, all fields are + /// returned. + /// + /// The maximum number of tracks to return. Default: 100. Minimum: 1. Maximum: 100. + /// The index of the first object to return. Default: 0 (i.e., the first object) + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + /// AUTH NEEDED + [Obsolete("Calling GetPlaylistTracks with a userId is deprecated, remove the parameter")] + public Paging GetPlaylistTracks(string userId, string playlistId, string fields = "", int limit = 100, int offset = 0, string market = "") + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetPlaylistTracks"); + return DownloadData>(_builder.GetPlaylistTracks(userId, playlistId, fields, limit, offset, market)); + } + + /// + /// Get full details of the tracks of a playlist owned by a Spotify user. + /// + /// The Spotify ID for the playlist. + /// + /// Filters for the query: a comma-separated list of the fields to return. If omitted, all fields are + /// returned. + /// + /// The maximum number of tracks to return. Default: 100. Minimum: 1. Maximum: 100. + /// The index of the first object to return. Default: 0 (i.e., the first object) + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + /// AUTH NEEDED + public Paging GetPlaylistTracks(string playlistId, string fields = "", int limit = 100, int offset = 0, string market = "") + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetPlaylistTracks"); + return DownloadData>(_builder.GetPlaylistTracks(playlistId, fields, limit, offset, market)); + } + + /// + /// Get full details of the tracks of a playlist owned by a Spotify user asyncronously. + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// + /// Filters for the query: a comma-separated list of the fields to return. If omitted, all fields are + /// returned. + /// + /// The maximum number of tracks to return. Default: 100. Minimum: 1. Maximum: 100. + /// The index of the first object to return. Default: 0 (i.e., the first object) + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + /// AUTH NEEDED + [Obsolete("Calling GetPlaylistTracks with a userId is deprecated, remove the parameter")] + public Task> GetPlaylistTracksAsync(string userId, string playlistId, string fields = "", int limit = 100, int offset = 0, string market = "") + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetPlaylistTracks"); + return DownloadDataAsync>(_builder.GetPlaylistTracks(userId, playlistId, fields, limit, offset, market)); + } + + /// + /// Get full details of the tracks of a playlist owned by a Spotify user asyncronously. + /// + /// The Spotify ID for the playlist. + /// + /// Filters for the query: a comma-separated list of the fields to return. If omitted, all fields are + /// returned. + /// + /// The maximum number of tracks to return. Default: 100. Minimum: 1. Maximum: 100. + /// The index of the first object to return. Default: 0 (i.e., the first object) + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + /// AUTH NEEDED + [Obsolete("Calling GetPlaylistTracks with a userId is deprecated, remove the parameter")] + public Task> GetPlaylistTracksAsync(string playlistId, string fields = "", int limit = 100, int offset = 0, string market = "") + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetPlaylistTracks"); + return DownloadDataAsync>(_builder.GetPlaylistTracks(playlistId, fields, limit, offset, market)); + } + + /// + /// Create a playlist for a Spotify user. (The playlist will be empty until you add tracks.) + /// + /// The user's Spotify user ID. + /// + /// The name for the new playlist, for example "Your Coolest Playlist". This name does not need + /// to be unique. + /// + /// + /// default true. If true the playlist will be public, if false it will be private. To be able to + /// create private playlists, the user must have granted the playlist-modify-private scope. + /// + /// If true the playlist will become collaborative and other users will be able to modify the playlist in their Spotify client. + /// Note: You can only set collaborative to true on non-public playlists. + /// Value for playlist description as displayed in Spotify Clients and in the Web API. + /// + /// AUTH NEEDED + public FullPlaylist CreatePlaylist(string userId, string playlistName, bool isPublic = true, bool isCollaborative = false, string playlistDescription = "") + { + JObject body = new JObject + { + {"name", playlistName}, + {"public", isPublic}, + {"collaborative", isCollaborative}, + {"description", playlistDescription} + }; + return UploadData(_builder.CreatePlaylist(userId, playlistName, isPublic), body.ToString(Formatting.None)); + } + + /// + /// Create a playlist for a Spotify user asynchronously. (The playlist will be empty until you add tracks.) + /// + /// The user's Spotify user ID. + /// + /// The name for the new playlist, for example "Your Coolest Playlist". This name does not need + /// to be unique. + /// + /// + /// default true. If true the playlist will be public, if false it will be private. To be able to + /// create private playlists, the user must have granted the playlist-modify-private scope. + /// + /// If true the playlist will become collaborative and other users will be able to modify the playlist in their Spotify client. + /// Note: You can only set collaborative to true on non-public playlists. + /// Value for playlist description as displayed in Spotify Clients and in the Web API. + /// + /// AUTH NEEDED + public Task CreatePlaylistAsync(string userId, string playlistName, bool isPublic = true, bool isCollaborative = false, string playlistDescription = "") + { + JObject body = new JObject + { + {"name", playlistName}, + {"public", isPublic}, + {"collaborative", isCollaborative}, + {"description", playlistDescription} + }; + return UploadDataAsync(_builder.CreatePlaylist(userId, playlistName, isPublic), body.ToString(Formatting.None)); + } + + /// + /// Change a playlist’s name and public/private state. (The user must, of course, own the playlist.) + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// The new name for the playlist, for example "My New Playlist Title". + /// If true the playlist will be public, if false it will be private. + /// If true the playlist will become collaborative and other users will be able to modify the playlist in their Spotify client. + /// Note: You can only set collaborative to true on non-public playlists. + /// Value for playlist description as displayed in Spotify Clients and in the Web API. + /// + /// AUTH NEEDED + [Obsolete("Calling UpdatePlaylist with a userId is deprecated, remove the parameter")] + public ErrorResponse UpdatePlaylist(string userId, string playlistId, string newName = null, bool? newPublic = null, bool? newCollaborative = null, string newDescription = null) + { + JObject body = new JObject(); + if (newName != null) + body.Add("name", newName); + if (newPublic != null) + body.Add("public", newPublic); + if (newCollaborative != null) + body.Add("collaborative", newCollaborative); + if (newDescription != null) + body.Add("description", newDescription); + return UploadData(_builder.UpdatePlaylist(userId, playlistId), body.ToString(Formatting.None), "PUT") ?? new ErrorResponse(); + } + + /// + /// Change a playlist’s name and public/private state. (The user must, of course, own the playlist.) + /// + /// The Spotify ID for the playlist. + /// The new name for the playlist, for example "My New Playlist Title". + /// If true the playlist will be public, if false it will be private. + /// If true the playlist will become collaborative and other users will be able to modify the playlist in their Spotify client. + /// Note: You can only set collaborative to true on non-public playlists. + /// Value for playlist description as displayed in Spotify Clients and in the Web API. + /// + /// AUTH NEEDED + public ErrorResponse UpdatePlaylist(string playlistId, string newName = null, bool? newPublic = null, bool? newCollaborative = null, string newDescription = null) + { + JObject body = new JObject(); + if (newName != null) + body.Add("name", newName); + if (newPublic != null) + body.Add("public", newPublic); + if (newCollaborative != null) + body.Add("collaborative", newCollaborative); + if (newDescription != null) + body.Add("description", newDescription); + return UploadData(_builder.UpdatePlaylist(playlistId), body.ToString(Formatting.None), "PUT") ?? new ErrorResponse(); + } + + /// + /// Change a playlist’s name and public/private state asynchronously. (The user must, of course, own the playlist.) + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// The new name for the playlist, for example "My New Playlist Title". + /// If true the playlist will be public, if false it will be private. + /// If true the playlist will become collaborative and other users will be able to modify the playlist in their Spotify client. Note: You can only set collaborative to true on non-public playlists. + /// Value for playlist description as displayed in Spotify Clients and in the Web API. + /// + /// AUTH NEEDED + [Obsolete("Calling UpdatePlaylist with a userId is deprecated, remove the parameter")] + public async Task UpdatePlaylistAsync(string userId, string playlistId, string newName = null, bool? newPublic = null, bool? newCollaborative = null, string newDescription = null) + { + JObject body = new JObject(); + if (newName != null) + body.Add("name", newName); + if (newPublic != null) + body.Add("public", newPublic); + if (newCollaborative != null) + body.Add("collaborative", newCollaborative); + if (newDescription != null) + body.Add("description", newDescription); + return await UploadDataAsync(_builder.UpdatePlaylist(userId, playlistId), body.ToString(Formatting.None), "PUT").ConfigureAwait(false) ?? new ErrorResponse(); + } + + /// + /// Change a playlist’s name and public/private state asynchronously. (The user must, of course, own the playlist.) + /// + /// The Spotify ID for the playlist. + /// The new name for the playlist, for example "My New Playlist Title". + /// If true the playlist will be public, if false it will be private. + /// If true the playlist will become collaborative and other users will be able to modify the playlist in their Spotify client. Note: You can only set collaborative to true on non-public playlists. + /// Value for playlist description as displayed in Spotify Clients and in the Web API. + /// + /// AUTH NEEDED + public async Task UpdatePlaylistAsync(string playlistId, string newName = null, bool? newPublic = null, bool? newCollaborative = null, string newDescription = null) + { + JObject body = new JObject(); + if (newName != null) + body.Add("name", newName); + if (newPublic != null) + body.Add("public", newPublic); + if (newCollaborative != null) + body.Add("collaborative", newCollaborative); + if (newDescription != null) + body.Add("description", newDescription); + return await UploadDataAsync(_builder.UpdatePlaylist(playlistId), body.ToString(Formatting.None), "PUT").ConfigureAwait(false) ?? new ErrorResponse(); + } + + /// + /// Change a playlist’s name and public/private state. (The user must, of course, own the playlist.) + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// The image as a base64 encoded string + /// + /// AUTH NEEDED + public ErrorResponse UploadPlaylistImage(string userId, string playlistId, string base64EncodedJpgImage) + { + return UploadData(_builder.UploadPlaylistImage(userId, playlistId), base64EncodedJpgImage, "PUT") ?? new ErrorResponse(); + } + + /// + /// Change a playlist’s name and public/private state asynchronously. (The user must, of course, own the playlist.) + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// The image as a base64 encoded string + /// + /// AUTH NEEDED + public async Task UploadPlaylistImageAsync(string userId, string playlistId, string base64EncodedJpgImage) + { + return await UploadDataAsync(_builder.UploadPlaylistImage(userId, playlistId), base64EncodedJpgImage, "PUT").ConfigureAwait(false) ?? new ErrorResponse(); + } + + /// + /// Change a playlist’s name and public/private state. (The user must, of course, own the playlist.) + /// + /// The Spotify ID for the playlist. + /// The image as a base64 encoded string + /// + /// AUTH NEEDED + public ErrorResponse UploadPlaylistImage(string playlistId, string base64EncodedJpgImage) + { + return UploadData(_builder.UploadPlaylistImage(playlistId), base64EncodedJpgImage, "PUT") ?? new ErrorResponse(); + } + + /// + /// Change a playlist’s name and public/private state asynchronously. (The user must, of course, own the playlist.) + /// + /// The Spotify ID for the playlist. + /// The image as a base64 encoded string + /// + /// AUTH NEEDED + public async Task UploadPlaylistImageAsync(string playlistId, string base64EncodedJpgImage) + { + return await UploadDataAsync(_builder.UploadPlaylistImage(playlistId), + base64EncodedJpgImage, "PUT").ConfigureAwait(false) ?? new ErrorResponse(); + } + + /// + /// Replace all the tracks in a playlist, overwriting its existing tracks. This powerful request can be useful for + /// replacing tracks, re-ordering existing tracks, or clearing the playlist. + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// A list of Spotify track URIs to set. A maximum of 100 tracks can be set in one request. + /// + /// AUTH NEEDED + [Obsolete("Calling ReplacePlaylistTracks with a userId is deprecated, remove the parameter")] + public ErrorResponse ReplacePlaylistTracks(string userId, string playlistId, List uris) + { + JObject body = new JObject + { + {"uris", new JArray(uris.Take(100))} + }; + return UploadData(_builder.ReplacePlaylistTracks(userId, playlistId), body.ToString(Formatting.None), "PUT") ?? new ErrorResponse(); + } + + /// + /// Replace all the tracks in a playlist, overwriting its existing tracks. This powerful request can be useful for + /// replacing tracks, re-ordering existing tracks, or clearing the playlist. + /// + /// The Spotify ID for the playlist. + /// A list of Spotify track URIs to set. A maximum of 100 tracks can be set in one request. + /// + /// AUTH NEEDED + public ErrorResponse ReplacePlaylistTracks(string playlistId, List uris) + { + JObject body = new JObject + { + {"uris", new JArray(uris.Take(100))} + }; + return UploadData(_builder.ReplacePlaylistTracks(playlistId), body.ToString(Formatting.None), "PUT") ?? new ErrorResponse(); + } + + /// + /// Replace all the tracks in a playlist asynchronously, overwriting its existing tracks. This powerful request can be useful for + /// replacing tracks, re-ordering existing tracks, or clearing the playlist. + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// A list of Spotify track URIs to set. A maximum of 100 tracks can be set in one request. + /// + /// AUTH NEEDED + [Obsolete("Calling ReplacePlaylistTracks with a userId is deprecated, remove the parameter")] + public async Task ReplacePlaylistTracksAsync(string userId, string playlistId, List uris) + { + JObject body = new JObject + { + {"uris", new JArray(uris.Take(100))} + }; + return await UploadDataAsync(_builder.ReplacePlaylistTracks(userId, playlistId), body.ToString(Formatting.None), "PUT").ConfigureAwait(false) ?? new ErrorResponse(); + } + + /// + /// Replace all the tracks in a playlist asynchronously, overwriting its existing tracks. This powerful request can be useful for + /// replacing tracks, re-ordering existing tracks, or clearing the playlist. + /// + /// The Spotify ID for the playlist. + /// A list of Spotify track URIs to set. A maximum of 100 tracks can be set in one request. + /// + /// AUTH NEEDED + public async Task ReplacePlaylistTracksAsync(string playlistId, List uris) + { + JObject body = new JObject + { + {"uris", new JArray(uris.Take(100))} + }; + return await UploadDataAsync(_builder.ReplacePlaylistTracks(playlistId), body.ToString(Formatting.None), "PUT").ConfigureAwait(false) ?? new ErrorResponse(); + } + + /// + /// Remove one or more tracks from a user’s playlist. + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// + /// array of objects containing Spotify URI strings (and their position in the playlist). A maximum of + /// 100 objects can be sent at once. + /// + /// + /// AUTH NEEDED + [Obsolete("Calling RemovePlaylistTracks with a userId is deprecated, remove the parameter")] + public ErrorResponse RemovePlaylistTracks(string userId, string playlistId, List uris) + { + JObject body = new JObject + { + {"tracks", JArray.FromObject(uris.Take(100))} + }; + return UploadData(_builder.RemovePlaylistTracks(userId, playlistId, uris), body.ToString(Formatting.None), "DELETE") ?? new ErrorResponse(); + } + + /// + /// Remove one or more tracks from a user’s playlist. + /// + /// The Spotify ID for the playlist. + /// + /// array of objects containing Spotify URI strings (and their position in the playlist). A maximum of + /// 100 objects can be sent at once. + /// + /// + /// AUTH NEEDED + public ErrorResponse RemovePlaylistTracks(string playlistId, List uris) + { + JObject body = new JObject + { + {"tracks", JArray.FromObject(uris.Take(100))} + }; + return UploadData(_builder.RemovePlaylistTracks(playlistId, uris), body.ToString(Formatting.None), "DELETE") ?? new ErrorResponse(); + } + + /// + /// Remove one or more tracks from a user’s playlist asynchronously. + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// + /// array of objects containing Spotify URI strings (and their position in the playlist). A maximum of + /// 100 objects can be sent at once. + /// + /// + /// AUTH NEEDED + [Obsolete("Calling RemovePlaylistTracks with a userId is deprecated, remove the parameter")] + public async Task RemovePlaylistTracksAsync(string userId, string playlistId, List uris) + { + JObject body = new JObject + { + {"tracks", JArray.FromObject(uris.Take(100))} + }; + return await UploadDataAsync(_builder.RemovePlaylistTracks(userId, playlistId, uris), body.ToString(Formatting.None), "DELETE").ConfigureAwait(false) ?? new ErrorResponse(); + } + + /// + /// Remove one or more tracks from a user’s playlist asynchronously. + /// + /// The Spotify ID for the playlist. + /// + /// array of objects containing Spotify URI strings (and their position in the playlist). A maximum of + /// 100 objects can be sent at once. + /// + /// + /// AUTH NEEDED + public async Task RemovePlaylistTracksAsync(string playlistId, List uris) + { + JObject body = new JObject + { + {"tracks", JArray.FromObject(uris.Take(100))} + }; + return await UploadDataAsync(_builder.RemovePlaylistTracks(playlistId, uris), body.ToString(Formatting.None), "DELETE").ConfigureAwait(false) ?? new ErrorResponse(); + } + + /// + /// Remove a track from a user’s playlist. + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// Spotify URI + /// + /// AUTH NEEDED + [Obsolete("Calling RemovePlaylistTrack with a userId is deprecated, remove the parameter")] + public ErrorResponse RemovePlaylistTrack(string userId, string playlistId, DeleteTrackUri uri) + { + return RemovePlaylistTracks(playlistId, new List { uri }); + } + + /// + /// Remove a track from a user’s playlist. + /// + /// The Spotify ID for the playlist. + /// Spotify URI + /// + /// AUTH NEEDED + public ErrorResponse RemovePlaylistTrack(string playlistId, DeleteTrackUri uri) + { + return RemovePlaylistTracks(playlistId, new List { uri }); + } + + /// + /// Remove a track from a user’s playlist asynchronously. + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// Spotify URI + /// + /// AUTH NEEDED + [Obsolete("Calling RemovePlaylistTrack with a userId is deprecated, remove the parameter")] + public Task RemovePlaylistTrackAsync(string userId, string playlistId, DeleteTrackUri uri) + { + return RemovePlaylistTracksAsync(playlistId, new List { uri }); + } + + /// + /// Remove a track from a user’s playlist asynchronously. + /// + /// The Spotify ID for the playlist. + /// Spotify URI + /// + /// AUTH NEEDED + public Task RemovePlaylistTrackAsync(string playlistId, DeleteTrackUri uri) + { + return RemovePlaylistTracksAsync(playlistId, new List { uri }); + } + + /// + /// Add one or more tracks to a user’s playlist. + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// A list of Spotify track URIs to add + /// The position to insert the tracks, a zero-based index + /// + /// AUTH NEEDED + [Obsolete("Calling AddPlaylistTracks with a userId is deprecated, remove the parameter")] + public ErrorResponse AddPlaylistTracks(string userId, string playlistId, List uris, int? position = null) + { + JObject body = new JObject + { + {"uris", JArray.FromObject(uris.Take(100))} + }; + return UploadData(_builder.AddPlaylistTracks(userId, playlistId, uris, position), body.ToString(Formatting.None)) ?? new ErrorResponse(); + } + + /// + /// Add one or more tracks to a user’s playlist. + /// + /// The Spotify ID for the playlist. + /// A list of Spotify track URIs to add + /// The position to insert the tracks, a zero-based index + /// + /// AUTH NEEDED + public ErrorResponse AddPlaylistTracks(string playlistId, List uris, int? position = null) + { + JObject body = new JObject + { + {"uris", JArray.FromObject(uris.Take(100))} + }; + return UploadData(_builder.AddPlaylistTracks(playlistId, uris, position), body.ToString(Formatting.None)) ?? new ErrorResponse(); + } + + /// + /// Add one or more tracks to a user’s playlist asynchronously. + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// A list of Spotify track URIs to add + /// The position to insert the tracks, a zero-based index + /// + /// AUTH NEEDED + [Obsolete("Calling AddPlaylistTracks with a userId is deprecated, remove the parameter")] + public async Task AddPlaylistTracksAsync(string userId, string playlistId, List uris, int? position = null) + { + JObject body = new JObject + { + {"uris", JArray.FromObject(uris.Take(100))} + }; + return await UploadDataAsync(_builder.AddPlaylistTracks(userId, playlistId, uris, position), body.ToString(Formatting.None)).ConfigureAwait(false) ?? new ErrorResponse(); + } + + /// + /// Add one or more tracks to a user’s playlist asynchronously. + /// + /// The Spotify ID for the playlist. + /// A list of Spotify track URIs to add + /// The position to insert the tracks, a zero-based index + /// + /// AUTH NEEDED + public async Task AddPlaylistTracksAsync(string playlistId, List uris, int? position = null) + { + JObject body = new JObject + { + {"uris", JArray.FromObject(uris.Take(100))} + }; + return await UploadDataAsync(_builder.AddPlaylistTracks(playlistId, uris, position), body.ToString(Formatting.None)).ConfigureAwait(false) ?? new ErrorResponse(); + } + + /// + /// Add a track to a user’s playlist. + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// A Spotify Track URI + /// The position to insert the tracks, a zero-based index + /// + /// AUTH NEEDED + [Obsolete("Calling AddPlaylistTrack with a userId is deprecated, remove the parameter")] + public ErrorResponse AddPlaylistTrack(string userId, string playlistId, string uri, int? position = null) + { + return AddPlaylistTracks(playlistId, new List { uri }, position); + } + + + /// + /// Add a track to a user’s playlist. + /// + /// The Spotify ID for the playlist. + /// A Spotify Track URI + /// The position to insert the tracks, a zero-based index + /// + /// AUTH NEEDED + public ErrorResponse AddPlaylistTrack(string playlistId, string uri, int? position = null) + { + return AddPlaylistTracks(playlistId, new List { uri }, position); + } + + /// + /// Add a track to a user’s playlist asynchronously. + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// A Spotify Track URI + /// The position to insert the tracks, a zero-based index + /// + /// AUTH NEEDED + [Obsolete("Calling AddPlaylistTrack with a userId is deprecated, remove the parameter")] + public Task AddPlaylistTrackAsync(string userId, string playlistId, string uri, int? position = null) + { + return AddPlaylistTracksAsync(userId, playlistId, new List { uri }, position); + } + + /// + /// Add a track to a user’s playlist asynchronously. + /// + /// The Spotify ID for the playlist. + /// A Spotify Track URI + /// The position to insert the tracks, a zero-based index + /// + /// AUTH NEEDED + public Task AddPlaylistTrackAsync(string playlistId, string uri, int? position = null) + { + return AddPlaylistTracksAsync(playlistId, new List { uri }, position); + } + + /// + /// Reorder a track or a group of tracks in a playlist. + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// The position of the first track to be reordered. + /// The position where the tracks should be inserted. + /// The amount of tracks to be reordered. Defaults to 1 if not set. + /// The playlist's snapshot ID against which you want to make the changes. + /// + /// AUTH NEEDED + [Obsolete("Calling ReorderPlaylist with a userId is deprecated, remove the parameter")] + public Snapshot ReorderPlaylist(string userId, string playlistId, int rangeStart, int insertBefore, int rangeLength = 1, string snapshotId = "") + { + JObject body = new JObject + { + {"range_start", rangeStart}, + {"range_length", rangeLength}, + {"insert_before", insertBefore} + }; + if (!string.IsNullOrEmpty(snapshotId)) + body.Add("snapshot_id", snapshotId); + return UploadData(_builder.ReorderPlaylist(userId, playlistId), body.ToString(Formatting.None), "PUT"); + } + + /// + /// Reorder a track or a group of tracks in a playlist. + /// + /// The Spotify ID for the playlist. + /// The position of the first track to be reordered. + /// The position where the tracks should be inserted. + /// The amount of tracks to be reordered. Defaults to 1 if not set. + /// The playlist's snapshot ID against which you want to make the changes. + /// + /// AUTH NEEDED + public Snapshot ReorderPlaylist(string playlistId, int rangeStart, int insertBefore, int rangeLength = 1, string snapshotId = "") + { + JObject body = new JObject + { + {"range_start", rangeStart}, + {"range_length", rangeLength}, + {"insert_before", insertBefore} + }; + if (!string.IsNullOrEmpty(snapshotId)) + body.Add("snapshot_id", snapshotId); + return UploadData(_builder.ReorderPlaylist(playlistId), body.ToString(Formatting.None), "PUT"); + } + + /// + /// Reorder a track or a group of tracks in a playlist asynchronously. + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// The position of the first track to be reordered. + /// The position where the tracks should be inserted. + /// The amount of tracks to be reordered. Defaults to 1 if not set. + /// The playlist's snapshot ID against which you want to make the changes. + /// + /// AUTH NEEDED + [Obsolete("Calling ReorderPlaylist with a userId is deprecated, remove the parameter")] + public Task ReorderPlaylistAsync(string userId, string playlistId, int rangeStart, int insertBefore, int rangeLength = 1, string snapshotId = "") + { + JObject body = new JObject + { + {"range_start", rangeStart}, + {"range_length", rangeLength}, + {"insert_before", insertBefore}, + {"snapshot_id", snapshotId} + }; + if (!string.IsNullOrEmpty(snapshotId)) + body.Add("snapshot_id", snapshotId); + return UploadDataAsync(_builder.ReorderPlaylist(userId, playlistId), body.ToString(Formatting.None), "PUT"); + } + + /// + /// Reorder a track or a group of tracks in a playlist asynchronously. + /// + /// The Spotify ID for the playlist. + /// The position of the first track to be reordered. + /// The position where the tracks should be inserted. + /// The amount of tracks to be reordered. Defaults to 1 if not set. + /// The playlist's snapshot ID against which you want to make the changes. + /// + /// AUTH NEEDED + public Task ReorderPlaylistAsync(string playlistId, int rangeStart, int insertBefore, int rangeLength = 1, string snapshotId = "") + { + JObject body = new JObject + { + {"range_start", rangeStart}, + {"range_length", rangeLength}, + {"insert_before", insertBefore}, + {"snapshot_id", snapshotId} + }; + if (!string.IsNullOrEmpty(snapshotId)) + body.Add("snapshot_id", snapshotId); + return UploadDataAsync(_builder.ReorderPlaylist(playlistId), body.ToString(Formatting.None), "PUT"); + } + + #endregion Playlists + + #region Profiles + + /// + /// Get detailed profile information about the current user (including the current user’s username). + /// + /// + /// AUTH NEEDED + public PrivateProfile GetPrivateProfile() + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetPrivateProfile"); + return DownloadData(_builder.GetPrivateProfile()); + } + + /// + /// Get detailed profile information about the current user asynchronously (including the current user’s username). + /// + /// + /// AUTH NEEDED + public Task GetPrivateProfileAsync() + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for GetPrivateProfile"); + return DownloadDataAsync(_builder.GetPrivateProfile()); + } + + /// + /// Get public profile information about a Spotify user. + /// + /// The user's Spotify user ID. + /// + public PublicProfile GetPublicProfile(string userId) + { + return DownloadData(_builder.GetPublicProfile(userId)); + } + + /// + /// Get public profile information about a Spotify user asynchronously. + /// + /// The user's Spotify user ID. + /// + public Task GetPublicProfileAsync(string userId) + { + return DownloadDataAsync(_builder.GetPublicProfile(userId)); + } + + #endregion Profiles + + #region Tracks + + /// + /// Get Spotify catalog information for multiple tracks based on their Spotify IDs. + /// + /// A list of the Spotify IDs for the tracks. Maximum: 50 IDs. + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + public SeveralTracks GetSeveralTracks(List ids, string market = "") + { + return DownloadData(_builder.GetSeveralTracks(ids, market)); + } + + /// + /// Get Spotify catalog information for multiple tracks based on their Spotify IDs asynchronously. + /// + /// A list of the Spotify IDs for the tracks. Maximum: 50 IDs. + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + public Task GetSeveralTracksAsync(List ids, string market = "") + { + return DownloadDataAsync(_builder.GetSeveralTracks(ids, market)); + } + + /// + /// Get Spotify catalog information for a single track identified by its unique Spotify ID. + /// + /// The Spotify ID for the track. + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + public FullTrack GetTrack(string id, string market = "") + { + return DownloadData(_builder.GetTrack(id, market)); + } + + /// + /// Get Spotify catalog information for a single track identified by its unique Spotify ID asynchronously. + /// + /// The Spotify ID for the track. + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + public Task GetTrackAsync(string id, string market = "") + { + return DownloadDataAsync(_builder.GetTrack(id, market)); + } + + /// + /// Get a detailed audio analysis for a single track identified by its unique Spotify ID. + /// + /// The Spotify ID for the track. + /// + /// AUTH NEEDED + public AudioAnalysis GetAudioAnalysis(string id) + { + return DownloadData(_builder.GetAudioAnalysis(id)); + } + + /// + /// Get a detailed audio analysis for a single track identified by its unique Spotify ID asynchronously. + /// + /// The Spotify ID for the track. + /// + /// AUTH NEEDED + public Task GetAudioAnalysisAsync(string id) + { + return DownloadDataAsync(_builder.GetAudioAnalysis(id)); + } + + /// + /// Get audio feature information for a single track identified by its unique Spotify ID. + /// + /// The Spotify ID for the track. + /// + /// AUTH NEEDED + public AudioFeatures GetAudioFeatures(string id) + { + return DownloadData(_builder.GetAudioFeatures(id)); + } + + /// + /// Get audio feature information for a single track identified by its unique Spotify ID asynchronously. + /// + /// The Spotify ID for the track. + /// + /// AUTH NEEDED + public Task GetAudioFeaturesAsync(string id) + { + return DownloadDataAsync(_builder.GetAudioFeatures(id)); + } + + /// + /// Get audio features for multiple tracks based on their Spotify IDs. + /// + /// A list of Spotify Track-IDs. Maximum: 100 IDs. + /// + /// AUTH NEEDED + public SeveralAudioFeatures GetSeveralAudioFeatures(List ids) + { + return DownloadData(_builder.GetSeveralAudioFeatures(ids)); + } + + /// + /// Get audio features for multiple tracks based on their Spotify IDs asynchronously. + /// + /// A list of Spotify Track-IDs. Maximum: 100 IDs. + /// + /// AUTH NEEDED + public Task GetSeveralAudioFeaturesAsync(List ids) + { + return DownloadDataAsync(_builder.GetSeveralAudioFeatures(ids)); + } + + #endregion Tracks + + #region Player + + /// + /// Get information about a user’s available devices. + /// + /// + public AvailabeDevices GetDevices() + { + return DownloadData(_builder.GetDevices()); + } + + /// + /// Get information about a user’s available devices. + /// + /// + public Task GetDevicesAsync() + { + return DownloadDataAsync(_builder.GetDevices()); + } + + /// + /// Get information about the user’s current playback state, including track, track progress, and active device. + /// + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + public PlaybackContext GetPlayback(string market = "") + { + return DownloadData(_builder.GetPlayback(market)); + } + + /// + /// Get information about the user’s current playback state, including track, track progress, and active device. + /// + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + public Task GetPlaybackAsync(string market = "") + { + return DownloadDataAsync(_builder.GetPlayback(market)); + } + + /// + /// Get the object currently being played on the user’s Spotify account. + /// + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + public PlaybackContext GetPlayingTrack(string market = "") + { + return DownloadData(_builder.GetPlayingTrack(market)); + } + + /// + /// Get the object currently being played on the user’s Spotify account. + /// + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + public Task GetPlayingTrackAsync(string market = "") + { + return DownloadDataAsync(_builder.GetPlayingTrack(market)); + } + + /// + /// Transfer playback to a new device and determine if it should start playing. + /// + /// ID of the device on which playback should be started/transferred to + /// + /// true: ensure playback happens on new device. + /// false or not provided: keep the current playback state. + /// + /// + public ErrorResponse TransferPlayback(string deviceId, bool play = false) => TransferPlayback( + new List { deviceId }, play); + + /// + /// Transfer playback to a new device and determine if it should start playing. + /// + /// ID of the device on which playback should be started/transferred to + /// + /// true: ensure playback happens on new device. + /// false or not provided: keep the current playback state. + /// + /// + public Task TransferPlaybackAsync(string deviceId, bool play = false) => TransferPlaybackAsync( + new List { deviceId }, play); + + /// + /// Transfer playback to a new device and determine if it should start playing. + /// NOTE: Although an array is accepted, only a single device_id is currently supported. Supplying more than one will return 400 Bad Request + /// + /// A array containing the ID of the device on which playback should be started/transferred. + /// + /// true: ensure playback happens on new device. + /// false or not provided: keep the current playback state. + /// + /// + public ErrorResponse TransferPlayback(List deviceIds, bool play = false) + { + JObject ob = new JObject + { + { "play", play }, + { "device_ids", new JArray(deviceIds) } + }; + return UploadData(_builder.TransferPlayback(), ob.ToString(Formatting.None), "PUT"); + } + + /// + /// Transfer playback to a new device and determine if it should start playing. + /// NOTE: Although an array is accepted, only a single device_id is currently supported. Supplying more than one will return 400 Bad Request + /// + /// A array containing the ID of the device on which playback should be started/transferred. + /// + /// true: ensure playback happens on new device. + /// false or not provided: keep the current playback state. + /// + /// + public Task TransferPlaybackAsync(List deviceIds, bool play = false) + { + JObject ob = new JObject + { + { "play", play }, + { "device_ids", new JArray(deviceIds) } + }; + return UploadDataAsync(_builder.TransferPlayback(), ob.ToString(Formatting.None), "PUT"); + } + + /// + /// Start a new context or resume current playback on the user’s active device. + /// + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// Spotify URI of the context to play. + /// A JSON array of the Spotify track URIs to play. + /// Indicates from where in the context playback should start. + /// Only available when context_uri corresponds to an album or playlist object, or when the uris parameter is used. + /// The starting time to seek the track to + /// + public ErrorResponse ResumePlayback(string deviceId = "", string contextUri = "", List uris = null, + int? offset = null, int positionMs = 0) + { + JObject ob = new JObject(); + if(!string.IsNullOrEmpty(contextUri)) + ob.Add("context_uri", contextUri); + if(uris != null) + ob.Add("uris", new JArray(uris)); + if(offset != null) + ob.Add("offset", new JObject { { "position", offset } }); + if (positionMs > 0) + ob.Add("position_ms", positionMs); + return UploadData(_builder.ResumePlayback(deviceId), ob.ToString(Formatting.None), "PUT"); + } + + /// + /// Start a new context or resume current playback on the user’s active device. + /// + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// Spotify URI of the context to play. + /// A JSON array of the Spotify track URIs to play. + /// Indicates from where in the context playback should start. + /// Only available when context_uri corresponds to an album or playlist object, or when the uris parameter is used. + /// The starting time to seek the track to + /// + public Task ResumePlaybackAsync(string deviceId = "", string contextUri = "", List uris = null, + int? offset = null, int positionMs = 0) + { + JObject ob = new JObject(); + if (!string.IsNullOrEmpty(contextUri)) + ob.Add("context_uri", contextUri); + if (uris != null) + ob.Add("uris", new JArray(uris)); + if (offset != null) + ob.Add("offset", new JObject { { "position", offset } }); + if (positionMs > 0) + ob.Add("position_ms", positionMs); + return UploadDataAsync(_builder.ResumePlayback(deviceId), ob.ToString(Formatting.None), "PUT"); + } + + /// + /// Start a new context or resume current playback on the user’s active device. + /// + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// Spotify URI of the context to play. + /// A JSON array of the Spotify track URIs to play. + /// Indicates from where in the context playback should start. + /// Only available when context_uri corresponds to an album or playlist object, or when the uris parameter is used. + /// The starting time to seek the track to + /// + public ErrorResponse ResumePlayback(string deviceId = "", string contextUri = "", List uris = null, + string offset = "", int positionMs = 0) + { + JObject ob = new JObject(); + if (!string.IsNullOrEmpty(contextUri)) + ob.Add("context_uri", contextUri); + if (uris != null) + ob.Add("uris", new JArray(uris)); + if (!string.IsNullOrEmpty(offset)) + ob.Add("offset", new JObject {{"uri", offset}}); + if (positionMs > 0) + ob.Add("position_ms", positionMs); + return UploadData(_builder.ResumePlayback(deviceId), ob.ToString(Formatting.None), "PUT"); + } + + /// + /// Start a new context or resume current playback on the user’s active device. + /// + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// Spotify URI of the context to play. + /// A JSON array of the Spotify track URIs to play. + /// Indicates from where in the context playback should start. + /// Only available when context_uri corresponds to an album or playlist object, or when the uris parameter is used. + /// The starting time to seek the track to + /// + public Task ResumePlaybackAsync(string deviceId = "", string contextUri = "", List uris = null, + string offset = "", int positionMs = 0) + { + JObject ob = new JObject(); + if (!string.IsNullOrEmpty(contextUri)) + ob.Add("context_uri", contextUri); + if (uris != null) + ob.Add("uris", new JArray(uris)); + if (!string.IsNullOrEmpty(offset)) + ob.Add("offset", new JObject { { "uri", offset } }); + if (positionMs > 0) + ob.Add("position_ms", positionMs); + return UploadDataAsync(_builder.ResumePlayback(deviceId), ob.ToString(Formatting.None), "PUT"); + } + + /// + /// Pause playback on the user’s account. + /// + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// + public ErrorResponse PausePlayback(string deviceId = "") + { + return UploadData(_builder.PausePlayback(deviceId), string.Empty, "PUT"); + } + + /// + /// Pause playback on the user’s account. + /// + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// + public Task PausePlaybackAsync(string deviceId = "") + { + return UploadDataAsync(_builder.PausePlayback(deviceId), string.Empty, "PUT"); + } + + /// + /// Skips to next track in the user’s queue. + /// + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// + public ErrorResponse SkipPlaybackToNext(string deviceId = "") + { + return UploadData(_builder.SkipPlaybackToNext(deviceId), string.Empty); + } + + /// + /// Skips to next track in the user’s queue. + /// + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// + public Task SkipPlaybackToNextAsync(string deviceId = "") + { + return UploadDataAsync(_builder.SkipPlaybackToNext(deviceId), string.Empty); + } + + /// + /// Skips to previous track in the user’s queue. + /// Note that this will ALWAYS skip to the previous track, regardless of the current track’s progress. + /// Returning to the start of the current track should be performed using the https://api.spotify.com/v1/me/player/seek endpoint. + /// + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// + public ErrorResponse SkipPlaybackToPrevious(string deviceId = "") + { + return UploadData(_builder.SkipPlaybackToPrevious(deviceId), string.Empty); + } + + /// + /// Skips to previous track in the user’s queue. + /// Note that this will ALWAYS skip to the previous track, regardless of the current track’s progress. + /// Returning to the start of the current track should be performed using the https://api.spotify.com/v1/me/player/seek endpoint. + /// + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// + public Task SkipPlaybackToPreviousAsync(string deviceId = "") + { + return UploadDataAsync(_builder.SkipPlaybackToPrevious(deviceId), string.Empty); + } + + /// + /// Seeks to the given position in the user’s currently playing track. + /// + /// The position in milliseconds to seek to. Must be a positive number. + /// Passing in a position that is greater than the length of the track will cause the player to start playing the next song. + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// + public ErrorResponse SeekPlayback(int positionMs, string deviceId = "") + { + return UploadData(_builder.SeekPlayback(positionMs, deviceId), string.Empty, "PUT"); + } + + /// + /// Seeks to the given position in the user’s currently playing track. + /// + /// The position in milliseconds to seek to. Must be a positive number. + /// Passing in a position that is greater than the length of the track will cause the player to start playing the next song. + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// + public Task SeekPlaybackAsync(int positionMs, string deviceId = "") + { + return UploadDataAsync(_builder.SeekPlayback(positionMs, deviceId), string.Empty, "PUT"); + } + + /// + /// Set the repeat mode for the user’s playback. Options are repeat-track, repeat-context, and off. + /// + /// track, context or off. + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// + public ErrorResponse SetRepeatMode(RepeatState state, string deviceId = "") + { + return UploadData(_builder.SetRepeatMode(state, deviceId), string.Empty, "PUT"); + } + + /// + /// Set the repeat mode for the user’s playback. Options are repeat-track, repeat-context, and off. + /// + /// track, context or off. + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// + public Task SetRepeatModeAsync(RepeatState state, string deviceId = "") + { + return UploadDataAsync(_builder.SetRepeatMode(state, deviceId), string.Empty, "PUT"); + } + + /// + /// Set the volume for the user’s current playback device. + /// + /// Integer. The volume to set. Must be a value from 0 to 100 inclusive. + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// + public ErrorResponse SetVolume(int volumePercent, string deviceId = "") + { + return UploadData(_builder.SetVolume(volumePercent, deviceId), string.Empty, "PUT"); + } + + /// + /// Set the volume for the user’s current playback device. + /// + /// Integer. The volume to set. Must be a value from 0 to 100 inclusive. + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// + public Task SetVolumeAsync(int volumePercent, string deviceId = "") + { + return UploadDataAsync(_builder.SetVolume(volumePercent, deviceId), string.Empty, "PUT"); + } + + /// + /// Toggle shuffle on or off for user’s playback. + /// + /// True or False + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// + public ErrorResponse SetShuffle(bool shuffle, string deviceId = "") + { + return UploadData(_builder.SetShuffle(shuffle, deviceId), string.Empty, "PUT"); + } + + /// + /// Toggle shuffle on or off for user’s playback. + /// + /// True or False + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// + public Task SetShuffleAsync(bool shuffle, string deviceId = "") + { + return UploadDataAsync(_builder.SetShuffle(shuffle, deviceId), string.Empty, "PUT"); + } + + #endregion + + #region Util + + public TOut GetNextPage(Paging paging) where TOut : BasicModel + { + if (!paging.HasNextPage()) + throw new InvalidOperationException("This Paging-Object has no Next-Page"); + return DownloadData(paging.Next); + } + + public Paging GetNextPage(Paging paging) + { + return GetNextPage, T>(paging); + } + + public Task GetNextPageAsync(Paging paging) where TOut : BasicModel + { + if (!paging.HasNextPage()) + throw new InvalidOperationException("This Paging-Object has no Next-Page"); + return DownloadDataAsync(paging.Next); + } + + public Task> GetNextPageAsync(Paging paging) + { + return GetNextPageAsync, T>(paging); + } + + public TOut GetPreviousPage(Paging paging) where TOut : BasicModel + { + if (!paging.HasPreviousPage()) + throw new InvalidOperationException("This Paging-Object has no Previous-Page"); + return DownloadData(paging.Previous); + } + + public Paging GetPreviousPage(Paging paging) + { + return GetPreviousPage, T>(paging); + } + + public Task GetPreviousPageAsync(Paging paging) where TOut : BasicModel + { + if (!paging.HasPreviousPage()) + throw new InvalidOperationException("This Paging-Object has no Previous-Page"); + return DownloadDataAsync(paging.Previous); + } + + public Task> GetPreviousPageAsync(Paging paging) + { + return GetPreviousPageAsync, T>(paging); + } + + private ListResponse DownloadList(string url) + { + int triesLeft = RetryTimes + 1; + Error lastError; + + ListResponse data = null; + do + { + if (data != null) { Thread.Sleep(RetryAfter); } + Tuple res = DownloadDataAlt(url); + data = ExtractDataToListResponse(res); + + lastError = data.Error; + + triesLeft -= 1; + + } while (UseAutoRetry && triesLeft > 0 && lastError != null && RetryErrorCodes.Contains(lastError.Status)); + + return data; + } + + private async Task> DownloadListAsync(string url) + { + int triesLeft = RetryTimes + 1; + Error lastError; + + ListResponse data = null; + do + { + if (data != null) { await Task.Delay(RetryAfter).ConfigureAwait(false); } + Tuple res = await DownloadDataAltAsync(url).ConfigureAwait(false); + data = ExtractDataToListResponse(res); + + lastError = data.Error; + + triesLeft -= 1; + + } while (UseAutoRetry && triesLeft > 0 && lastError != null && RetryErrorCodes.Contains(lastError.Status)); + + return data; + } + + private static ListResponse ExtractDataToListResponse(Tuple res) + { + ListResponse ret; + if (res.Item2 is JArray) + { + ret = new ListResponse + { + List = res.Item2.ToObject>(), + Error = null + }; + } + else + { + ret = new ListResponse + { + List = null, + Error = res.Item2["error"].ToObject() + }; + } + ret.AddResponseInfo(res.Item1); + return ret; + } + + public T UploadData(string url, string uploadData, string method = "POST") where T : BasicModel + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for all Upload-Actions"); + int triesLeft = RetryTimes + 1; + Error lastError; + + Tuple response = null; + do + { + Dictionary headers = new Dictionary + { + { "Authorization", TokenType + " " + AccessToken}, + { "Content-Type", "application/json" } + }; + + if (response != null) { Thread.Sleep(RetryAfter); } + response = WebClient.UploadJson(url, uploadData, method, headers); + + response.Item2.AddResponseInfo(response.Item1); + lastError = response.Item2.Error; + triesLeft -= 1; + + } while (UseAutoRetry && triesLeft > 0 && lastError != null && RetryErrorCodes.Contains(lastError.Status)); + + return response.Item2; + } + + public async Task UploadDataAsync(string url, string uploadData, string method = "POST") where T : BasicModel + { + if (!UseAuth) + throw new InvalidOperationException("Auth is required for all Upload-Actions"); + + int triesLeft = RetryTimes + 1; + Error lastError; + + Tuple response = null; + do + { + Dictionary headers = new Dictionary + { + { "Authorization", TokenType + " " + AccessToken}, + { "Content-Type", "application/json" } + }; + + if (response != null) { await Task.Delay(RetryAfter).ConfigureAwait(false); } + response = await WebClient.UploadJsonAsync(url, uploadData, method, headers).ConfigureAwait(false); + + response.Item2.AddResponseInfo(response.Item1); + lastError = response.Item2.Error; + + triesLeft -= 1; + + } while (UseAutoRetry && triesLeft > 0 && lastError != null && RetryErrorCodes.Contains(lastError.Status)); + + return response.Item2; + } + + public T DownloadData(string url) where T : BasicModel + { + int triesLeft = RetryTimes + 1; + Error lastError; + + Tuple response = null; + do + { + if(response != null) { Thread.Sleep(RetryAfter); } + response = DownloadDataAlt(url); + + response.Item2.AddResponseInfo(response.Item1); + lastError = response.Item2.Error; + + triesLeft -= 1; + + } while (UseAutoRetry && triesLeft > 0 && lastError != null && RetryErrorCodes.Contains(lastError.Status)); + + + return response.Item2; + } + + /// + /// Retrieves whether request had a "TooManyRequests" error, and get the amount Spotify recommends waiting before another request. + /// + /// Info object to analyze. + /// Seconds to wait before making another request. -1 if no error. + /// AUTH NEEDED + private int GetTooManyRequests(ResponseInfo info) + { + // 429 is "TooManyRequests" value specified in Spotify API + if (429 != (int)info.StatusCode) + { + return -1; + } + if (!int.TryParse(info.Headers.Get("Retry-After"), out int secondsToWait)) + { + return -1; + } + return secondsToWait; + } + + public async Task DownloadDataAsync(string url) where T : BasicModel + { + int triesLeft = RetryTimes + 1; + Error lastError; + + Tuple response = null; + do + { + if (response != null) + { + int msToWait = RetryAfter; + int secondsToWait = GetTooManyRequests(response.Item1); + if (secondsToWait > 0) + { + msToWait = secondsToWait * 1000; + } + await Task.Delay(msToWait).ConfigureAwait(false); + } + response = await DownloadDataAltAsync(url).ConfigureAwait(false); + + response.Item2.AddResponseInfo(response.Item1); + lastError = response.Item2.Error; + + if (TooManyRequestsConsumesARetry || GetTooManyRequests(response.Item1) == -1) + { + triesLeft -= 1; + } + + } while (UseAutoRetry + && triesLeft > 0 + && (GetTooManyRequests(response.Item1) != -1 + || lastError != null && RetryErrorCodes.Contains(lastError.Status))); + + + return response.Item2; + } + + private Tuple DownloadDataAlt(string url) + { + Dictionary headers = new Dictionary(); + if (UseAuth) + headers.Add("Authorization", TokenType + " " + AccessToken); + return WebClient.DownloadJson(url, headers); + } + + private Task> DownloadDataAltAsync(string url) + { + Dictionary headers = new Dictionary(); + if (UseAuth) + headers.Add("Authorization", TokenType + " " + AccessToken); + return WebClient.DownloadJsonAsync(url, headers); + } + + #endregion Util + } +} diff --git a/Source Files/SpotifyAPI.Web/SpotifyWebBuilder.cs b/Source Files/SpotifyAPI.Web/SpotifyWebBuilder.cs new file mode 100644 index 0000000..47e913a --- /dev/null +++ b/Source Files/SpotifyAPI.Web/SpotifyWebBuilder.cs @@ -0,0 +1,1129 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using SpotifyAPI.Web.Enums; +using SpotifyAPI.Web.Models; + +namespace SpotifyAPI.Web +{ + /// + /// SpotifyAPI URL-Generator + /// + public class SpotifyWebBuilder + { + public const string APIBase = "https://api.spotify.com/v1"; + + #region Search + + /// + /// Get Spotify catalog information about artists, albums, tracks or playlists that match a keyword string. + /// + /// The search query's keywords (and optional field filters and operators), for example q=roadhouse+blues. + /// A list of item types to search across. + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first result to return. Default: 0 + /// An ISO 3166-1 alpha-2 country code or the string from_token. + /// + public string SearchItems(string q, SearchType type, int limit = 20, int offset = 0, string market = "") + { + limit = Math.Min(50, limit); + StringBuilder builder = new StringBuilder(APIBase + "/search"); + builder.Append("?q=" + q); + builder.Append("&type=" + type.GetStringAttribute(",")); + builder.Append("&limit=" + limit); + builder.Append("&offset=" + offset); + if (!string.IsNullOrEmpty(market)) + builder.Append("&market=" + market); + return builder.ToString(); + } + + #endregion Search + + #region Albums + + /// + /// Get Spotify catalog information about an album’s tracks. Optional parameters can be used to limit the number of + /// tracks returned. + /// + /// The Spotify ID for the album. + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first track to return. Default: 0 (the first object). + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + public string GetAlbumTracks(string id, int limit = 20, int offset = 0, string market = "") + { + limit = Math.Min(limit, 50); + StringBuilder builder = new StringBuilder(APIBase + "/albums/" + id + "/tracks"); + builder.Append("?limit=" + limit); + builder.Append("&offset=" + offset); + if (!string.IsNullOrEmpty(market)) + builder.Append("&market=" + market); + return builder.ToString(); + } + + /// + /// Get Spotify catalog information for a single album. + /// + /// The Spotify ID for the album. + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + public string GetAlbum(string id, string market = "") + { + return string.IsNullOrEmpty(market) ? $"{APIBase}/albums/{id}" : $"{APIBase}/albums/{id}?market={market}"; + } + + /// + /// Get Spotify catalog information for multiple albums identified by their Spotify IDs. + /// + /// A list of the Spotify IDs for the albums. Maximum: 20 IDs. + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + public string GetSeveralAlbums(List ids, string market = "") + { + return string.IsNullOrEmpty(market) + ? $"{APIBase}/albums?ids={string.Join(",", ids.Take(20))}" + : $"{APIBase}/albums?market={market}&ids={string.Join(",", ids.Take(20))}"; + } + + #endregion Albums + + #region Artists + + /// + /// Get Spotify catalog information for a single artist identified by their unique Spotify ID. + /// + /// The Spotify ID for the artist. + /// + public string GetArtist(string id) + { + return $"{APIBase}/artists/{id}"; + } + + /// + /// Get Spotify catalog information about artists similar to a given artist. Similarity is based on analysis of the + /// Spotify community’s listening history. + /// + /// The Spotify ID for the artist. + /// + public string GetRelatedArtists(string id) + { + return $"{APIBase}/artists/{id}/related-artists"; + } + + /// + /// Get Spotify catalog information about an artist’s top tracks by country. + /// + /// The Spotify ID for the artist. + /// The country: an ISO 3166-1 alpha-2 country code. + /// + public string GetArtistsTopTracks(string id, string country) + { + return $"{APIBase}/artists/{id}/top-tracks?country={country}"; + } + + /// + /// Get Spotify catalog information about an artist’s albums. Optional parameters can be specified in the query string + /// to filter and sort the response. + /// + /// The Spotify ID for the artist. + /// + /// A list of keywords that will be used to filter the response. If not supplied, all album types will + /// be returned + /// + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first album to return. Default: 0 + /// + /// An ISO 3166-1 alpha-2 country code. Supply this parameter to limit the response to one particular + /// geographical market + /// + /// + public string GetArtistsAlbums(string id, AlbumType type = AlbumType.All, int limit = 20, int offset = 0, string market = "") + { + limit = Math.Min(limit, 50); + StringBuilder builder = new StringBuilder(APIBase + "/artists/" + id + "/albums"); + builder.Append("?album_type=" + type.GetStringAttribute(",")); + builder.Append("&limit=" + limit); + builder.Append("&offset=" + offset); + if (!string.IsNullOrEmpty(market)) + builder.Append("&market=" + market); + return builder.ToString(); + } + + /// + /// Get Spotify catalog information for several artists based on their Spotify IDs. + /// + /// A list of the Spotify IDs for the artists. Maximum: 50 IDs. + /// + public string GetSeveralArtists(List ids) + { + return $"{APIBase}/artists?ids={string.Join(",", ids.Take(50))}"; + } + + #endregion Artists + + #region Browse + + /// + /// Get a list of Spotify featured playlists (shown, for example, on a Spotify player’s “Browse” tab). + /// + /// + /// The desired language, consisting of a lowercase ISO 639 language code and an uppercase ISO 3166-1 + /// alpha-2 country code, joined by an underscore. + /// + /// A country: an ISO 3166-1 alpha-2 country code. + /// A timestamp in ISO 8601 format + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first item to return. Default: 0 + /// AUTH NEEDED + public string GetFeaturedPlaylists(string locale = "", string country = "", DateTime timestamp = default(DateTime), int limit = 20, int offset = 0) + { + limit = Math.Min(limit, 50); + StringBuilder builder = new StringBuilder(APIBase + "/browse/featured-playlists"); + builder.Append("?limit=" + limit); + builder.Append("&offset=" + offset); + if (!string.IsNullOrEmpty(locale)) + builder.Append("&locale=" + locale); + if (!string.IsNullOrEmpty(country)) + builder.Append("&country=" + country); + if (timestamp != default(DateTime)) + builder.Append("×tamp=" + timestamp.ToString("yyyy-MM-ddTHH:mm:ss")); + return builder.ToString(); + } + + /// + /// Get a list of new album releases featured in Spotify (shown, for example, on a Spotify player’s “Browse” tab). + /// + /// A country: an ISO 3166-1 alpha-2 country code. + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first item to return. Default: 0 + /// + /// AUTH NEEDED + public string GetNewAlbumReleases(string country = "", int limit = 20, int offset = 0) + { + limit = Math.Min(limit, 50); + StringBuilder builder = new StringBuilder(APIBase + "/browse/new-releases"); + builder.Append("?limit=" + limit); + builder.Append("&offset=" + offset); + if (!string.IsNullOrEmpty(country)) + builder.Append("&country=" + country); + return builder.ToString(); + } + + /// + /// Get a list of categories used to tag items in Spotify (on, for example, the Spotify player’s “Browse” tab). + /// + /// + /// A country: an ISO 3166-1 alpha-2 country code. Provide this parameter if you want to narrow the + /// list of returned categories to those relevant to a particular country + /// + /// + /// The desired language, consisting of an ISO 639 language code and an ISO 3166-1 alpha-2 country + /// code, joined by an underscore + /// + /// The maximum number of categories to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first item to return. Default: 0 (the first object). + /// + /// AUTH NEEDED + public string GetCategories(string country = "", string locale = "", int limit = 20, int offset = 0) + { + limit = Math.Min(50, limit); + StringBuilder builder = new StringBuilder(APIBase + "/browse/categories"); + builder.Append("?limit=" + limit); + builder.Append("&offset=" + offset); + if (!string.IsNullOrEmpty(country)) + builder.Append("&country=" + country); + if (!string.IsNullOrEmpty(locale)) + builder.Append("&locale=" + locale); + return builder.ToString(); + } + + /// + /// Get a single category used to tag items in Spotify (on, for example, the Spotify player’s “Browse” tab). + /// + /// The Spotify category ID for the category. + /// + /// A country: an ISO 3166-1 alpha-2 country code. Provide this parameter to ensure that the category + /// exists for a particular country. + /// + /// + /// The desired language, consisting of an ISO 639 language code and an ISO 3166-1 alpha-2 country + /// code, joined by an underscore + /// + /// + /// AUTH NEEDED + public string GetCategory(string categoryId, string country = "", string locale = "") + { + StringBuilder builder = new StringBuilder(APIBase + "/browse/categories/" + categoryId); + if (!string.IsNullOrEmpty(country)) + builder.Append("?country=" + country); + if (!string.IsNullOrEmpty(locale)) + builder.Append((country == "" ? "?locale=" : "&locale=") + locale); + return builder.ToString(); + } + + /// + /// Get a list of Spotify playlists tagged with a particular category. + /// + /// The Spotify category ID for the category. + /// A country: an ISO 3166-1 alpha-2 country code. + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first item to return. Default: 0 + /// + /// AUTH NEEDED + public string GetCategoryPlaylists(string categoryId, string country = "", int limit = 20, int offset = 0) + { + limit = Math.Min(50, limit); + StringBuilder builder = new StringBuilder(APIBase + "/browse/categories/" + categoryId + "/playlists"); + builder.Append("?limit=" + limit); + builder.Append("&offset=" + offset); + if (!string.IsNullOrEmpty(country)) + builder.Append("&country=" + country); + return builder.ToString(); + } + + /// + /// Create a playlist-style listening experience based on seed artists, tracks and genres. + /// + /// A comma separated list of Spotify IDs for seed artists. + /// Up to 5 seed values may be provided in any combination of seed_artists, seed_tracks and seed_genres. + /// + /// A comma separated list of any genres in the set of available genre seeds. + /// Up to 5 seed values may be provided in any combination of seed_artists, seed_tracks and seed_genres. + /// + /// A comma separated list of Spotify IDs for a seed track. + /// Up to 5 seed values may be provided in any combination of seed_artists, seed_tracks and seed_genres. + /// + /// Tracks with the attribute values nearest to the target values will be preferred. + /// For each tunable track attribute, a hard floor on the selected track attribute’s value can be provided + /// For each tunable track attribute, a hard ceiling on the selected track attribute’s value can be provided + /// The target size of the list of recommended tracks. Default: 20. Minimum: 1. Maximum: 100. + /// For seeds with unusually small pools or when highly restrictive filtering is applied, it may be impossible to generate the requested number of recommended tracks. + /// + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// Because min_*, max_* and target_* are applied to pools before relinking, the generated results may not precisely match the filters applied. + /// + /// AUTH NEEDED + public string GetRecommendations(List artistSeed = null, List genreSeed = null, List trackSeed = null, + TuneableTrack target = null, TuneableTrack min = null, TuneableTrack max = null, int limit = 20, string market = "") + { + limit = Math.Min(100, limit); + StringBuilder builder = new StringBuilder($"{APIBase}/recommendations"); + builder.Append("?limit=" + limit); + if (artistSeed?.Count > 0) + builder.Append("&seed_artists=" + string.Join(",", artistSeed)); + if (genreSeed?.Count > 0) + builder.Append("&seed_genres=" + string.Join(",", genreSeed)); + if (trackSeed?.Count > 0) + builder.Append("&seed_tracks=" + string.Join(",", trackSeed)); + if (target != null) + builder.Append(target.BuildUrlParams("target")); + if (min != null) + builder.Append(min.BuildUrlParams("min")); + if (max != null) + builder.Append(max.BuildUrlParams("max")); + if (!string.IsNullOrEmpty(market)) + builder.Append("&market=" + market); + return builder.ToString(); + } + + /// + /// Retrieve a list of available genres seed parameter values for recommendations. + /// + /// + /// AUTH NEEDED + public string GetRecommendationSeedsGenres() + { + return $"{APIBase}/recommendations/available-genre-seeds"; + } + + #endregion Browse + + #region Follow + + /// + /// Get the current user’s followed artists. + /// + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// The last artist ID retrieved from the previous request. + /// + /// AUTH NEEDED + public string GetFollowedArtists(int limit = 20, string after = "") + { + limit = Math.Min(limit, 50); + const FollowType followType = FollowType.Artist; //currently only artist is supported. + StringBuilder builder = new StringBuilder(APIBase + "/me/following?type=" + followType.GetStringAttribute()); + builder.Append("&limit=" + limit); + if (!string.IsNullOrEmpty(after)) + builder.Append("&after=" + after); + return builder.ToString(); + } + + /// + /// Add the current user as a follower of one or more artists or other Spotify users. + /// + /// The ID type: either artist or user. + /// + /// AUTH NEEDED + public string Follow(FollowType followType) + { + return $"{APIBase}/me/following?type={followType.GetStringAttribute()}"; + } + + /// + /// Remove the current user as a follower of one or more artists or other Spotify users. + /// + /// The ID type: either artist or user. + /// + /// AUTH NEEDED + public string Unfollow(FollowType followType) + { + return $"{APIBase}/me/following?type={followType.GetStringAttribute()}"; + } + + /// + /// Check to see if the current user is following one or more artists or other Spotify users. + /// + /// The ID type: either artist or user. + /// A list of the artist or the user Spotify IDs to check + /// + /// AUTH NEEDED + public string IsFollowing(FollowType followType, List ids) + { + return $"{APIBase}/me/following/contains?type={followType.GetStringAttribute()}&ids={string.Join(",", ids)}"; + } + + /// + /// Add the current user as a follower of a playlist. + /// + /// The Spotify user ID of the person who owns the playlist. + /// + /// 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. + /// + /// + /// If true the playlist will be included in user's public playlists, if false it will remain + /// private. + /// + /// + /// AUTH NEEDED + public string FollowPlaylist(string ownerId, string playlistId, bool showPublic = true) + { + return $"{APIBase}/users/{ownerId}/playlists/{playlistId}/followers"; + } + + /// + /// Remove the current user as a follower of a playlist. + /// + /// The Spotify user ID of the person who owns the playlist. + /// The Spotify ID of the playlist that is to be no longer followed. + /// + /// AUTH NEEDED + public string UnfollowPlaylist(string ownerId, string playlistId) + { + return $"{APIBase}/users/{ownerId}/playlists/{playlistId}/followers"; + } + + /// + /// Check to see if one or more Spotify users are following a specified playlist. + /// + /// The Spotify user ID of the person who owns the playlist. + /// The Spotify ID of the playlist. + /// A list of Spotify User IDs + /// + /// AUTH NEEDED + public string IsFollowingPlaylist(string ownerId, string playlistId, List ids) + { + return $"{APIBase}/users/{ownerId}/playlists/{playlistId}/followers/contains?ids={string.Join(",", ids)}"; + } + + #endregion Follow + + #region Library + + /// + /// Save one or more tracks to the current user’s “Your Music” library. + /// + /// + /// AUTH NEEDED + public string SaveTracks() + { + return APIBase + "/me/tracks/"; + } + + /// + /// Get a list of the songs saved in the current Spotify user’s “Your Music” library. + /// + /// The maximum number of objects to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first object to return. Default: 0 (i.e., the first object) + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + /// AUTH NEEDED + public string GetSavedTracks(int limit = 20, int offset = 0, string market = "") + { + limit = Math.Min(limit, 50); + StringBuilder builder = new StringBuilder(APIBase + "/me/tracks"); + builder.Append("?limit=" + limit); + builder.Append("&offset=" + offset); + if (!string.IsNullOrEmpty(market)) + builder.Append("&market=" + market); + return builder.ToString(); + } + + /// + /// Remove one or more tracks from the current user’s “Your Music” library. + /// + /// + /// AUTH NEEDED + public string RemoveSavedTracks() + { + return APIBase + "/me/tracks/"; + } + + /// + /// Check if one or more tracks is already saved in the current Spotify user’s “Your Music” library. + /// + /// A list of the Spotify IDs. + /// + /// AUTH NEEDED + public string CheckSavedTracks(List ids) + { + return APIBase + "/me/tracks/contains?ids=" + string.Join(",", ids); + } + + /// + /// Save one or more albums to the current user’s "Your Music" library. + /// + /// + /// AUTH NEEDED + public string SaveAlbums() + { + return $"{APIBase}/me/albums"; + } + + /// + /// Get a list of the albums saved in the current Spotify user’s "Your Music" library. + /// + /// The maximum number of objects to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first object to return. Default: 0 (i.e., the first object) + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + /// AUTH NEEDED + public string GetSavedAlbums(int limit = 20, int offset = 0, string market = "") + { + limit = Math.Min(limit, 50); + StringBuilder builder = new StringBuilder(APIBase + "/me/albums"); + builder.Append("?limit=" + limit); + builder.Append("&offset=" + offset); + if (!string.IsNullOrEmpty(market)) + builder.Append("&market=" + market); + return builder.ToString(); + } + + /// + /// Remove one or more albums from the current user’s "Your Music" library. + /// + /// + /// AUTH NEEDED + public string RemoveSavedAlbums() + { + return APIBase + "/me/albums/"; + } + + /// + /// Check if one or more albums is already saved in the current Spotify user’s "Your Music" library. + /// + /// A list of the Spotify IDs. + /// + /// AUTH NEEDED + public string CheckSavedAlbums(List ids) + { + return APIBase + "/me/albums/contains?ids=" + string.Join(",", ids); + } + + #endregion Library + + #region Personalization + + /// + /// Get the current user’s top tracks based on calculated affinity. + /// + /// Over what time frame the affinities are computed. + /// Valid values: long_term (calculated from several years of data and including all new data as it becomes available), + /// medium_term (approximately last 6 months), short_term (approximately last 4 weeks). + /// The number of entities to return. Default: 20. Minimum: 1. Maximum: 50 + /// The index of the first entity to return. Default: 0 (i.e., the first track). Use with limit to get the next set of entities. + /// + /// AUTH NEEDED + public string GetUsersTopTracks(TimeRangeType timeRange = TimeRangeType.MediumTerm, int limit = 20, int offest = 0) + { + limit = Math.Min(50, limit); + StringBuilder builder = new StringBuilder($"{APIBase}/me/top/tracks"); + builder.Append("?limit=" + limit); + builder.Append("&offset=" + offest); + builder.Append("&time_range=" + timeRange.GetStringAttribute()); + return builder.ToString(); + } + + /// + /// Get the current user’s top artists based on calculated affinity. + /// + /// Over what time frame the affinities are computed. + /// Valid values: long_term (calculated from several years of data and including all new data as it becomes available), + /// medium_term (approximately last 6 months), short_term (approximately last 4 weeks). + /// The number of entities to return. Default: 20. Minimum: 1. Maximum: 50 + /// The index of the first entity to return. Default: 0 (i.e., the first track). Use with limit to get the next set of entities. + /// + /// AUTH NEEDED + public string GetUsersTopArtists(TimeRangeType timeRange = TimeRangeType.MediumTerm, int limit = 20, int offest = 0) + { + limit = Math.Min(50, limit); + StringBuilder builder = new StringBuilder($"{APIBase}/me/top/artists"); + builder.Append("?limit=" + limit); + builder.Append("&offset=" + offest); + builder.Append("&time_range=" + timeRange.GetStringAttribute()); + return builder.ToString(); + } + + /// + /// Get tracks from the current user’s recent play history. + /// + /// The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. + /// A Unix timestamp in milliseconds. Returns all items after (but not including) this cursor position. If after is specified, before must not be specified. + /// A Unix timestamp in milliseconds. Returns all items before (but not including) this cursor position. If before is specified, after must not be specified. + /// + /// AUTH NEEDED + public string GetUsersRecentlyPlayedTracks(int limit = 20, DateTime? after = null, DateTime? before = null) + { + limit = Math.Min(50, limit); + StringBuilder builder = new StringBuilder($"{APIBase}/me/player/recently-played"); + builder.Append("?limit=" + limit); + if (after.HasValue) + builder.Append("&after=" + after.Value.ToUnixTimeMillisecondsPoly()); + if (before.HasValue) + builder.Append("&before=" + before.Value.ToUnixTimeMillisecondsPoly()); + return builder.ToString(); + } + + #endregion + + #region Playlists + + /// + /// Get a list of the playlists owned or followed by a Spotify user. + /// + /// The user's Spotify user ID. + /// The maximum number of playlists to return. Default: 20. Minimum: 1. Maximum: 50. + /// The index of the first playlist to return. Default: 0 (the first object) + /// + /// AUTH NEEDED + public string GetUserPlaylists(string userId, int limit = 20, int offset = 0) + { + limit = Math.Min(limit, 50); + StringBuilder builder = new StringBuilder(APIBase + "/users/" + userId + "/playlists"); + builder.Append("?limit=" + limit); + builder.Append("&offset=" + offset); + return builder.ToString(); + } + + /// + /// Get a playlist owned by a Spotify user. + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// + /// Filters for the query: a comma-separated list of the fields to return. If omitted, all fields are + /// returned. + /// + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + /// AUTH NEEDED + public string GetPlaylist(string userId, string playlistId, string fields = "", string market = "") + { + StringBuilder builder = new StringBuilder(APIBase + "/users/" + userId + "/playlists/" + playlistId); + builder.Append("?fields=" + fields); + if (!string.IsNullOrEmpty(market)) + builder.Append("&market=" + market); + return builder.ToString(); + } + + /// + /// Get a playlist owned by a Spotify user. + /// + /// The Spotify ID for the playlist. + /// + /// Filters for the query: a comma-separated list of the fields to return. If omitted, all fields are + /// returned. + /// + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + /// AUTH NEEDED + public string GetPlaylist(string playlistId, string fields = "", string market = "") + { + StringBuilder builder = new StringBuilder(APIBase + "/playlists/" + playlistId); + builder.Append("?fields=" + fields); + if (!string.IsNullOrEmpty(market)) + builder.Append("&market=" + market); + return builder.ToString(); + } + + /// + /// Get full details of the tracks of a playlist owned by a Spotify user. + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// + /// Filters for the query: a comma-separated list of the fields to return. If omitted, all fields are + /// returned. + /// + /// The maximum number of tracks to return. Default: 100. Minimum: 1. Maximum: 100. + /// The index of the first object to return. Default: 0 (i.e., the first object) + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + /// AUTH NEEDED + public string GetPlaylistTracks(string userId, string playlistId, string fields = "", int limit = 100, int offset = 0, string market = "") + { + limit = Math.Min(limit, 100); + StringBuilder builder = new StringBuilder(APIBase + "/users/" + userId + "/playlists/" + playlistId + "/tracks"); + builder.Append("?fields=" + fields); + builder.Append("&limit=" + limit); + builder.Append("&offset=" + offset); + if (!string.IsNullOrEmpty(market)) + builder.Append("&market=" + market); + return builder.ToString(); + } + + /// + /// Get full details of the tracks of a playlist owned by a Spotify user. + /// + /// The Spotify ID for the playlist. + /// + /// Filters for the query: a comma-separated list of the fields to return. If omitted, all fields are + /// returned. + /// + /// The maximum number of tracks to return. Default: 100. Minimum: 1. Maximum: 100. + /// The index of the first object to return. Default: 0 (i.e., the first object) + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + /// AUTH NEEDED + public string GetPlaylistTracks(string playlistId, string fields = "", int limit = 100, int offset = 0, string market = "") + { + limit = Math.Min(limit, 100); + StringBuilder builder = new StringBuilder(APIBase + "/playlists/" + playlistId + "/tracks"); + builder.Append("?fields=" + fields); + builder.Append("&limit=" + limit); + builder.Append("&offset=" + offset); + if (!string.IsNullOrEmpty(market)) + builder.Append("&market=" + market); + return builder.ToString(); + } + + /// + /// Create a playlist for a Spotify user. (The playlist will be empty until you add tracks.) + /// + /// The user's Spotify user ID. + /// + /// The name for the new playlist, for example "Your Coolest Playlist". This name does not need + /// to be unique. + /// + /// + /// default true. If true the playlist will be public, if false it will be private. To be able to + /// create private playlists, the user must have granted the playlist-modify-private scope. + /// + /// + /// AUTH NEEDED + public string CreatePlaylist(string userId, string playlistName, bool isPublic = true) + { + return $"{APIBase}/users/{userId}/playlists"; + } + + /// + /// Change a playlist’s name and public/private state. (The user must, of course, own the playlist.) + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// + /// AUTH NEEDED + public string UpdatePlaylist(string userId, string playlistId) + { + return $"{APIBase}/users/{userId}/playlists/{playlistId}"; + } + + /// + /// Change a playlist’s name and public/private state. (The user must, of course, own the playlist.) + /// + /// The Spotify ID for the playlist. + /// + /// AUTH NEEDED + public string UpdatePlaylist(string playlistId) + { + return $"{APIBase}/playlists/{playlistId}"; + } + + /// + /// Replace all the tracks in a playlist, overwriting its existing tracks. This powerful request can be useful for + /// replacing tracks, re-ordering existing tracks, or clearing the playlist. + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// + /// AUTH NEEDED + public string ReplacePlaylistTracks(string userId, string playlistId) + { + return $"{APIBase}/users/{userId}/playlists/{playlistId}/tracks"; + } + + /// + /// Replace all the tracks in a playlist, overwriting its existing tracks. This powerful request can be useful for + /// replacing tracks, re-ordering existing tracks, or clearing the playlist. + /// + /// The Spotify ID for the playlist. + /// + /// AUTH NEEDED + public string ReplacePlaylistTracks(string playlistId) + { + return $"{APIBase}/playlists/{playlistId}/tracks"; + } + + /// + /// Remove one or more tracks from a user’s playlist. + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// + /// array of objects containing Spotify URI strings (and their position in the playlist). A maximum of + /// 100 objects can be sent at once. + /// + /// + /// AUTH NEEDED + public string RemovePlaylistTracks(string userId, string playlistId, List uris) + { + return $"{APIBase}/users/{userId}/playlists/{playlistId}/tracks"; + } + + /// + /// Remove one or more tracks from a user’s playlist. + /// + /// The Spotify ID for the playlist. + /// + /// array of objects containing Spotify URI strings (and their position in the playlist). A maximum of + /// 100 objects can be sent at once. + /// + /// + /// AUTH NEEDED + public string RemovePlaylistTracks(string playlistId, List uris) + { + return $"{APIBase}/playlists/{playlistId}/tracks"; + } + + /// + /// Add one or more tracks to a user’s playlist. + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// A list of Spotify track URIs to add + /// The position to insert the tracks, a zero-based index + /// + /// AUTH NEEDED + public string AddPlaylistTracks(string userId, string playlistId, List uris, int? position = null) + { + return position == null + ? $"{APIBase}/users/{userId}/playlists/{playlistId}/tracks" + : $"{APIBase}/users/{userId}/playlists/{playlistId}/tracks?position={position}"; + } + + /// + /// Add one or more tracks to a user’s playlist. + /// + /// The Spotify ID for the playlist. + /// A list of Spotify track URIs to add + /// The position to insert the tracks, a zero-based index + /// + /// AUTH NEEDED + public string AddPlaylistTracks(string playlistId, List uris, int? position = null) + { + return position == null + ? $"{APIBase}/playlists/{playlistId}/tracks" + : $"{APIBase}/playlists/{playlistId}/tracks?position={position}"; + } + + /// + /// Reorder a track or a group of tracks in a playlist. + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// + /// AUTH NEEDED + public string ReorderPlaylist(string userId, string playlistId) + { + return $"{APIBase}/users/{userId}/playlists/{playlistId}/tracks"; + } + + /// + /// Reorder a track or a group of tracks in a playlist. + /// + /// The Spotify ID for the playlist. + /// + /// AUTH NEEDED + public string ReorderPlaylist(string playlistId) + { + return $"{APIBase}/playlists/{playlistId}/tracks"; + } + + /// + /// Upload an image for a playlist. + /// + /// The user's Spotify user ID. + /// The Spotify ID for the playlist. + /// + /// AUTH NEEDED + public string UploadPlaylistImage(string userId, string playlistId) + { + return $"{APIBase}/users/{userId}/playlists/{playlistId}/images"; + } + + /// + /// Upload an image for a playlist. + /// + /// The Spotify ID for the playlist. + /// + /// AUTH NEEDED + public string UploadPlaylistImage(string playlistId) + { + return $"{APIBase}/playlists/{playlistId}/images"; + } + + #endregion Playlists + + #region Profiles + + /// + /// Get detailed profile information about the current user (including the current user’s username). + /// + /// + /// AUTH NEEDED + public string GetPrivateProfile() + { + return $"{APIBase}/me"; + } + + /// + /// Get public profile information about a Spotify user. + /// + /// The user's Spotify user ID. + /// + public string GetPublicProfile(string userId) + { + return $"{APIBase}/users/{userId}"; + } + + #endregion Profiles + + #region Tracks + + /// + /// Get Spotify catalog information for multiple tracks based on their Spotify IDs. + /// + /// A list of the Spotify IDs for the tracks. Maximum: 50 IDs. + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + public string GetSeveralTracks(List ids, string market = "") + { + return string.IsNullOrEmpty(market) + ? $"{APIBase}/tracks?ids={string.Join(",", ids.Take(50))}" + : $"{APIBase}/tracks?market={market}&ids={string.Join(",", ids.Take(50))}"; + } + + /// + /// Get Spotify catalog information for a single track identified by its unique Spotify ID. + /// + /// The Spotify ID for the track. + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + public string GetTrack(string id, string market = "") + { + return string.IsNullOrEmpty(market) ? $"{APIBase}/tracks/{id}" : $"{APIBase}/tracks/{id}?market={market}"; + } + + /// + /// Get a detailed audio analysis for a single track identified by its unique Spotify ID. + /// + /// The Spotify ID for the track. + /// + /// AUTH NEEDED + public string GetAudioAnalysis(string id) + { + return $"{APIBase}/audio-analysis/{id}"; + } + + /// + /// Get audio feature information for a single track identified by its unique Spotify ID. + /// + /// The Spotify ID for the track. + /// + /// AUTH NEEDED + public string GetAudioFeatures(string id) + { + return $"{APIBase}/audio-features/{id}"; + } + + /// + /// Get audio features for multiple tracks based on their Spotify IDs. + /// + /// A list of Spotify Track-IDs. Maximum: 100 IDs. + /// + /// AUTH NEEDED + public string GetSeveralAudioFeatures(List ids) + { + return $"{APIBase}/audio-features?ids={string.Join(",", ids.Take(100))}"; + } + + #endregion Tracks + + #region Player + + /// + /// Get information about a user’s available devices. + /// + /// + public string GetDevices() + { + return $"{APIBase}/me/player/devices"; + } + + /// + /// Get information about the user’s current playback state, including track, track progress, and active device. + /// + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + public string GetPlayback(string market = "") + { + return string.IsNullOrEmpty(market) ? $"{APIBase}/me/player" : $"{APIBase}/me/player?market={market}"; + } + + /// + /// Get the object currently being played on the user’s Spotify account. + /// + /// An ISO 3166-1 alpha-2 country code. Provide this parameter if you want to apply Track Relinking. + /// + public string GetPlayingTrack(string market = "") + { + return string.IsNullOrEmpty(market) + ? $"{APIBase}/me/player/currently-playing" + : $"{APIBase}/me/player/currently-playing?market={market}"; + } + + /// + /// Transfer playback to a new device and determine if it should start playing. + /// + /// + public string TransferPlayback() + { + return $"{APIBase}/me/player"; + } + + /// + /// Start a new context or resume current playback on the user’s active device. + /// + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// + public string ResumePlayback(string deviceId = "") + { + return string.IsNullOrEmpty(deviceId) + ? $"{APIBase}/me/player/play" + : $"{APIBase}/me/player/play?device_id={deviceId}"; + } + + /// + /// Pause playback on the user’s account. + /// + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// + public string PausePlayback(string deviceId = "") + { + return string.IsNullOrEmpty(deviceId) + ? $"{APIBase}/me/player/pause" + : $"{APIBase}/me/player/pause?device_id={deviceId}"; + } + + /// + /// Skips to next track in the user’s queue. + /// + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// + public string SkipPlaybackToNext(string deviceId = "") + { + return string.IsNullOrEmpty(deviceId) + ? $"{APIBase}/me/player/next" + : $"{APIBase}/me/player/next?device_id={deviceId}"; + } + + /// + /// Skips to previous track in the user’s queue. + /// Note that this will ALWAYS skip to the previous track, regardless of the current track’s progress. + /// Returning to the start of the current track should be performed using the https://api.spotify.com/v1/me/player/seek endpoint. + /// + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// + public string SkipPlaybackToPrevious(string deviceId = "") + { + return string.IsNullOrEmpty(deviceId) + ? $"{APIBase}/me/player/previous" + : $"{APIBase}/me/player/previous?device_id={deviceId}"; + } + + /// + /// Seeks to the given position in the user’s currently playing track. + /// + /// The position in milliseconds to seek to. Must be a positive number. + /// Passing in a position that is greater than the length of the track will cause the player to start playing the next song. + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// + public string SeekPlayback(int positionMs, string deviceId = "") + { + return string.IsNullOrEmpty(deviceId) + ? $"{APIBase}/me/player/seek?position_ms={positionMs}" + : $"{APIBase}/me/player/seek?position_ms={positionMs}&device_id={deviceId}"; + } + + /// + /// Set the repeat mode for the user’s playback. Options are repeat-track, repeat-context, and off. + /// + /// track, context or off. + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// + public string SetRepeatMode(RepeatState repeatState, string deviceId = "") + { + return string.IsNullOrEmpty(deviceId) + ? $"{APIBase}/me/player/repeat?state={repeatState.GetStringAttribute()}" + : $"{APIBase}/me/player/repeat?state={repeatState.GetStringAttribute()}&device_id={deviceId}"; + } + + /// + /// Set the volume for the user’s current playback device. + /// + /// Integer. The volume to set. Must be a value from 0 to 100 inclusive. + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// + public string SetVolume(int volumePercent, string deviceId = "") + { + return string.IsNullOrEmpty(deviceId) + ? $"{APIBase}/me/player/volume?volume_percent={volumePercent}" + : $"{APIBase}/me/player/volume?volume_percent={volumePercent}&device_id={deviceId}"; + } + + /// + /// Toggle shuffle on or off for user’s playback. + /// + /// True of False. + /// The id of the device this command is targeting. If not supplied, the user's currently active device is the target. + /// + public string SetShuffle(bool shuffle, string deviceId = "") + { + return string.IsNullOrEmpty(deviceId) + ? $"{APIBase}/me/player/shuffle?state={shuffle}" + : $"{APIBase}/me/player/shuffle?state={shuffle}&device_id={deviceId}"; + } + #endregion + } +} diff --git a/Source Files/SpotifyAPI.Web/SpotifyWebClient.cs b/Source Files/SpotifyAPI.Web/SpotifyWebClient.cs new file mode 100644 index 0000000..54b2ff4 --- /dev/null +++ b/Source Files/SpotifyAPI.Web/SpotifyWebClient.cs @@ -0,0 +1,223 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Net; +using System.Net.Http; +using System.Net.Http.Headers; +using System.Text; +using System.Threading.Tasks; +using SpotifyAPI.Web.Models; + +namespace SpotifyAPI.Web +{ + internal class SpotifyWebClient : IClient + { + public JsonSerializerSettings JsonSettings { get; set; } + private readonly Encoding _encoding = Encoding.UTF8; + private readonly HttpClient _client; + + private const string UnknownErrorJson = "{\"error\": { \"status\": 0, \"message\": \"SpotifyAPI.Web - Unkown Spotify Error\" }}"; + + public SpotifyWebClient(ProxyConfig proxyConfig = null) + { + HttpClientHandler clientHandler = CreateClientHandler(proxyConfig); + _client = new HttpClient(clientHandler); + } + + public Tuple Download(string url, Dictionary headers = null) + { + Tuple raw = DownloadRaw(url, headers); + return new Tuple(raw.Item1, raw.Item2.Length > 0 ? _encoding.GetString(raw.Item2) : "{}"); + } + + public async Task> DownloadAsync(string url, Dictionary headers = null) + { + Tuple raw = await DownloadRawAsync(url, headers).ConfigureAwait(false); + return new Tuple(raw.Item1, raw.Item2.Length > 0 ? _encoding.GetString(raw.Item2) : "{}"); + } + + public Tuple DownloadRaw(string url, Dictionary headers = null) + { + if (headers != null) + { + AddHeaders(headers); + } + using (HttpResponseMessage response = Task.Run(() => _client.GetAsync(url)).Result) + { + return new Tuple(new ResponseInfo + { + StatusCode = response.StatusCode, + Headers = ConvertHeaders(response.Headers) + }, Task.Run(() => response.Content.ReadAsByteArrayAsync()).Result); + } + } + + public async Task> DownloadRawAsync(string url, Dictionary headers = null) + { + if (headers != null) + { + AddHeaders(headers); + } + using (HttpResponseMessage response = await _client.GetAsync(url).ConfigureAwait(false)) + { + return new Tuple(new ResponseInfo + { + StatusCode = response.StatusCode, + Headers = ConvertHeaders(response.Headers) + }, await response.Content.ReadAsByteArrayAsync()); + } + } + + public Tuple DownloadJson(string url, Dictionary headers = null) + { + Tuple response = Download(url, headers); + try + { + return new Tuple(response.Item1, JsonConvert.DeserializeObject(response.Item2, JsonSettings)); + } + catch (JsonException) + { + return new Tuple(response.Item1, JsonConvert.DeserializeObject(UnknownErrorJson, JsonSettings)); + } + } + + public async Task> DownloadJsonAsync(string url, Dictionary headers = null) + { + Tuple response = await DownloadAsync(url, headers).ConfigureAwait(false);try + { + return new Tuple(response.Item1, JsonConvert.DeserializeObject(response.Item2, JsonSettings)); + } + catch (JsonException) + { + return new Tuple(response.Item1, JsonConvert.DeserializeObject(UnknownErrorJson, JsonSettings)); + } + } + + public Tuple Upload(string url, string body, string method, Dictionary headers = null) + { + Tuple data = UploadRaw(url, body, method, headers); + return new Tuple(data.Item1, data.Item2.Length > 0 ? _encoding.GetString(data.Item2) : "{}"); + } + + public async Task> UploadAsync(string url, string body, string method, Dictionary headers = null) + { + Tuple data = await UploadRawAsync(url, body, method, headers).ConfigureAwait(false); + return new Tuple(data.Item1, data.Item2.Length > 0 ? _encoding.GetString(data.Item2) : "{}"); + } + + public Tuple UploadRaw(string url, string body, string method, Dictionary headers = null) + { + if (headers != null) + { + AddHeaders(headers); + } + + HttpRequestMessage message = new HttpRequestMessage(new HttpMethod(method), url) + { + Content = new StringContent(body, _encoding) + }; + using (HttpResponseMessage response = Task.Run(() => _client.SendAsync(message)).Result) + { + return new Tuple(new ResponseInfo + { + StatusCode = response.StatusCode, + Headers = ConvertHeaders(response.Headers) + }, Task.Run(() => response.Content.ReadAsByteArrayAsync()).Result); + } + } + + public async Task> UploadRawAsync(string url, string body, string method, Dictionary headers = null) + { + if (headers != null) + { + AddHeaders(headers); + } + + HttpRequestMessage message = new HttpRequestMessage(new HttpMethod(method), url) + { + Content = new StringContent(body, _encoding) + }; + using (HttpResponseMessage response = await _client.SendAsync(message)) + { + return new Tuple(new ResponseInfo + { + StatusCode = response.StatusCode, + Headers = ConvertHeaders(response.Headers) + }, await response.Content.ReadAsByteArrayAsync()); + } + } + + public Tuple UploadJson(string url, string body, string method, Dictionary headers = null) + { + Tuple response = Upload(url, body, method, headers); + try + { + return new Tuple(response.Item1, JsonConvert.DeserializeObject(response.Item2, JsonSettings)); + } + catch (JsonException) + { + return new Tuple(response.Item1, JsonConvert.DeserializeObject(UnknownErrorJson, JsonSettings)); + } + } + + public async Task> UploadJsonAsync(string url, string body, string method, Dictionary headers = null) + { + Tuple response = await UploadAsync(url, body, method, headers).ConfigureAwait(false); + try + { + return new Tuple(response.Item1, JsonConvert.DeserializeObject(response.Item2, JsonSettings)); + } + catch (JsonException) + { + return new Tuple(response.Item1, JsonConvert.DeserializeObject(UnknownErrorJson, JsonSettings)); + } + } + + public void Dispose() + { + _client.Dispose(); + GC.SuppressFinalize(this); + } + + private static WebHeaderCollection ConvertHeaders(HttpResponseHeaders headers) + { + WebHeaderCollection newHeaders = new WebHeaderCollection(); + foreach (KeyValuePair> headerPair in headers) + { + foreach (string headerValue in headerPair.Value) + { + newHeaders.Add(headerPair.Key, headerValue); + } + } + return newHeaders; + } + + private void AddHeaders(Dictionary headers) + { + _client.DefaultRequestHeaders.Clear(); + foreach (KeyValuePair headerPair in headers) + { + _client.DefaultRequestHeaders.TryAddWithoutValidation(headerPair.Key, headerPair.Value); + } + } + + private static HttpClientHandler CreateClientHandler(ProxyConfig proxyConfig = null) + { + HttpClientHandler clientHandler = new HttpClientHandler + { + PreAuthenticate = false, + UseDefaultCredentials = true, + UseProxy = false + }; + + if (string.IsNullOrWhiteSpace(proxyConfig?.Host)) return clientHandler; + WebProxy proxy = proxyConfig.CreateWebProxy(); + clientHandler.UseProxy = true; + clientHandler.Proxy = proxy; + clientHandler.UseDefaultCredentials = proxy.UseDefaultCredentials; + clientHandler.PreAuthenticate = proxy.UseDefaultCredentials; + + return clientHandler; + } + } +} \ No newline at end of file diff --git a/Source Files/SpotifyAPI.Web/Util.cs b/Source Files/SpotifyAPI.Web/Util.cs new file mode 100644 index 0000000..5d6df3c --- /dev/null +++ b/Source Files/SpotifyAPI.Web/Util.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; + +namespace SpotifyAPI.Web +{ + public static class Util + { + public static string GetStringAttribute(this T en, string separator = "") where T : struct, IConvertible + { + Enum e = (Enum)(object)en; + IEnumerable attributes = + Enum.GetValues(typeof(T)) + .Cast() + .Where(v => e.HasFlag((Enum)(object)v)) + .Select(v => typeof(T).GetField(v.ToString(CultureInfo.InvariantCulture))) + .Select(f => f.GetCustomAttributes(typeof(StringAttribute), false)[0]) + .Cast(); + + List list = new List(); + attributes.ToList().ForEach(element => list.Add(element.Text)); + return string.Join(separator, list); + } + + public static long ToUnixTimeMillisecondsPoly(this DateTime time) + { + return (long)time.Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds; + } + } + + public sealed class StringAttribute : Attribute + { + public string Text { get; set; } + + public StringAttribute(string text) + { + Text = text; + } + } +} diff --git a/Source Files/SpotifyIntegration.cs b/Source Files/SpotifyIntegration.cs new file mode 100644 index 0000000..0430fe5 --- /dev/null +++ b/Source Files/SpotifyIntegration.cs @@ -0,0 +1,244 @@ +using SpotifyAPI.Web; +using SpotifyAPI.Web.Auth; +using SpotifyAPI.Web.Enums; +using SpotifyAPI.Web.Models; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Windows.Forms; + +namespace MusicBeePlugin +{ + + public partial class Plugin + { + + private static SpotifyWebAPI _spotify; + private static int _auth, _num, _trackMissing = 0; + private static bool _trackLIB, _albumLIB, _artistLIB, _runOnce = false; + private static string _title, _album, _artist, _trackID, _albumID, _artistID, _imageURL; + + + + static async void SpotifyWebAuth(bool autoRefresh) + { + ImplicitGrantAuth auth = + new ImplicitGrantAuth("777824a07eeb4312972ff5fcec54c565", "http://localhost:4002", "http://localhost:4002", Scope.UserLibraryModify | Scope.UserFollowModify | Scope.UserFollowRead | Scope.UserLibraryRead); + auth.AuthReceived += async (sender, payload) => + { + + auth.Stop(); // `sender` is also the auth instance + _spotify = new SpotifyWebAPI() { TokenType = payload.TokenType, AccessToken = payload.AccessToken }; + + + }; + auth.Start(); // Starts an internal HTTP Server + + auth.OpenBrowser(autoRefresh); + + _auth = 1; + _runOnce = true; + } + + + + public FullTrack TrackSearch() + { + + + SearchItem track = _spotify.SearchItems(_searchTerm, SearchType.Track, 10); + + if (track.HasError()) + { + + _trackMissing = 1; + Console.WriteLine("Error Status: " + track.Error.Status); + Console.WriteLine("Error Msg: " + track.Error.Message); + + } + else if (track.Tracks.Total >= 1) + { + _title = Truncate(track.Tracks.Items[_num].Name, largeBold); + _artist = Truncate(string.Join(", ", from item in track.Tracks.Items[_num].Artists select item.Name), smallRegular); + _album = Truncate(track.Tracks.Items[_num].Album.Name, smallRegular); + _trackID = track.Tracks.Items[_num].Id; + _albumID = track.Tracks.Items[_num].Album.Id; + _artistID = track.Tracks.Items[_num].Artists[0].Id; + _imageURL = track.Tracks.Items[_num].Album.Images[0].Url; + + } + else + { + + _trackMissing = 1; + + } + + return null; + } + + + + public void SaveTrack() + { + + ErrorResponse response = _spotify.SaveTrack(_trackID); + if (!response.HasError()) + MessageBox.Show("Track Saved."); + else + MessageBox.Show(response.Error.Message); + + } + + public void SaveAlbum() + { + + ErrorResponse response = _spotify.SaveAlbum(_albumID); + if (!response.HasError()) + MessageBox.Show("Album Saved."); + else + MessageBox.Show(response.Error.Message); + + } + + public void FollowArtist() + { + ErrorResponse response = _spotify.Follow(FollowType.Artist, _artistID); + if (!response.HasError()) + MessageBox.Show("Artist Followed."); + else + MessageBox.Show(response.Error.Message); + + } + + + + public void RemoveTrack() + { + + ErrorResponse response = _spotify.RemoveSavedTracks(new List { _trackID }); + if (!response.HasError()) + MessageBox.Show("Track Unsaved."); + else + MessageBox.Show(response.Error.Message); + + } + + public void RemoveAlbum() + { + ErrorResponse response = _spotify.RemoveSavedAlbums(new List { _albumID}); + if (!response.HasError()) + MessageBox.Show("Album Unsaved."); + else + MessageBox.Show(response.Error.Message); + + } + + public void UnfollowArtist() + { + ErrorResponse response = _spotify.Unfollow(FollowType.Artist, _artistID); + if (!response.HasError()) + MessageBox.Show("Artist Unfollowed."); + else + MessageBox.Show(response.Error.Message); + + } + + + + public Boolean CheckTrack(string id) + { + ListResponse tracksSaved = _spotify.CheckSavedTracks(new List { id }); + if (tracksSaved.List[0]) + { + _trackLIB = true; + return true; + } + else + { + _trackLIB = false; + return false; + } + } + + public Boolean CheckAlbum(string id) + { + //API Code which doesn't currently work correctly. + //ListResponse albumsSaved = _spotify.CheckSavedAlbums(new List { id }); + //if (albumsSaved.List[0]) + + + foreach (string line in File.ReadLines(_savedAlbumsPath)) + { + if (line.Contains(_albumID)) + { + _albumLIB = true; + return true; + } + else + { + _albumLIB = false; + } + } + + + if (_albumLIB) + { return true; } + else + { return false; } + + + + } + + public Boolean CheckArtist(string id) + { + ListResponse response = _spotify.IsFollowing(FollowType.Artist, id); + if (response.List[0] == true) + { + _artistLIB = true; + return true; + } + else + { + _artistLIB = false; + return false; + } + } + + // Workaround for Spotify API "Check-Users-Saved-Albums" Endpoint bug. + public void GenerateAlbumList() + { + + int offset = 0; + + using (System.IO.StreamWriter file = new System.IO.StreamWriter(_savedAlbumsPath)) + { + + + while (offset != -1) + { + + Paging savedAlbums = _spotify.GetSavedAlbums(50, offset); + savedAlbums.Items.ForEach(album => file.WriteLine(album.Album.Id)); + + if (savedAlbums.Next == null) + { + offset += -1; + break; + } + else + { + offset += 50; + } + + } + file.Close(); + } + + } + + + } +} diff --git a/Source Files/mb_Spotify-Plugin.csproj b/Source Files/mb_Spotify-Plugin.csproj new file mode 100644 index 0000000..a53f1c6 --- /dev/null +++ b/Source Files/mb_Spotify-Plugin.csproj @@ -0,0 +1,64 @@ + + + + + Debug + AnyCPU + {EA4E342C-C766-4C68-A28B-7ADBE7C3667D} + Library + Properties + mb_Spotify_Plugin + mb_Spotify-Plugin + v4.6.2 + 512 + true + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + SpotifyAPI.Web\bin\Debug\net46\SpotifyAPI.Web.dll + + + False + SpotifyAPI.Web.Auth\bin\Debug\net46\SpotifyAPI.Web.Auth.dll + + + + + + + + + + + + + + + + + + + + + copy /Y "C:\Users\Zachary\Desktop\Core File\Other\Installers and Important Stuff\MusicBee Plugin Development\DEVELOPMENT\mb_Spotify-Plugin\Source Files\bin\Debug\mb_Spotify-Plugin.dll" "C:\Program Files (x86)\MusicBee\Plugins\mb_Spotify-Plugin.dll" + + \ No newline at end of file diff --git a/Source Files/mb_Spotify-Plugin.sln b/Source Files/mb_Spotify-Plugin.sln new file mode 100644 index 0000000..e35b199 --- /dev/null +++ b/Source Files/mb_Spotify-Plugin.sln @@ -0,0 +1,39 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.421 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "mb_Spotify-Plugin", "mb_Spotify-Plugin.csproj", "{EA4E342C-C766-4C68-A28B-7ADBE7C3667D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{86A2B1EE-465E-449F-ADD3-F8FD52FE7F11}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SpotifyAPI.Web", "..\Source Files\SpotifyAPI.Web\SpotifyAPI.Web.csproj", "{C222F9E6-9053-49E1-A1A0-F5A409159847}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SpotifyAPI.Web.Auth", "..\Source Files\SpotifyAPI.Web.Auth\SpotifyAPI.Web.Auth.csproj", "{1C70690B-F28B-415D-BFF2-FCDD34CAD1F0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {EA4E342C-C766-4C68-A28B-7ADBE7C3667D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EA4E342C-C766-4C68-A28B-7ADBE7C3667D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EA4E342C-C766-4C68-A28B-7ADBE7C3667D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EA4E342C-C766-4C68-A28B-7ADBE7C3667D}.Release|Any CPU.Build.0 = Release|Any CPU + {C222F9E6-9053-49E1-A1A0-F5A409159847}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C222F9E6-9053-49E1-A1A0-F5A409159847}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C222F9E6-9053-49E1-A1A0-F5A409159847}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C222F9E6-9053-49E1-A1A0-F5A409159847}.Release|Any CPU.Build.0 = Release|Any CPU + {1C70690B-F28B-415D-BFF2-FCDD34CAD1F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1C70690B-F28B-415D-BFF2-FCDD34CAD1F0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1C70690B-F28B-415D-BFF2-FCDD34CAD1F0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1C70690B-F28B-415D-BFF2-FCDD34CAD1F0}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {2222581B-11F2-4C19-AC21-6498C86C5764} + EndGlobalSection +EndGlobal