mirror of
https://github.com/Sarsoo/Spotify.NET.git
synced 2024-12-24 06:56:27 +00:00
Formatted and beautified code via codemaid
Organised using statements alphabetically
This commit is contained in:
parent
e4f30cb736
commit
49441bba95
@ -1,5 +1,5 @@
|
|||||||
using System;
|
using SpotifyAPI.Local.Models;
|
||||||
using SpotifyAPI.Local.Models;
|
using System;
|
||||||
|
|
||||||
namespace SpotifyAPI.Local
|
namespace SpotifyAPI.Local
|
||||||
{
|
{
|
||||||
@ -11,6 +11,7 @@ namespace SpotifyAPI.Local
|
|||||||
public Track OldTrack { get; set; }
|
public Track OldTrack { get; set; }
|
||||||
public Track NewTrack { get; set; }
|
public Track NewTrack { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Event gets triggered, when the Playin-state is changed (e.g Play --> Pause)
|
/// Event gets triggered, when the Playin-state is changed (e.g Play --> Pause)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -18,6 +19,7 @@ namespace SpotifyAPI.Local
|
|||||||
{
|
{
|
||||||
public Boolean Playing { get; set; }
|
public Boolean Playing { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Event gets triggered, when the volume changes
|
/// Event gets triggered, when the volume changes
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -26,6 +28,7 @@ namespace SpotifyAPI.Local
|
|||||||
public double OldVolume { get; set; }
|
public double OldVolume { get; set; }
|
||||||
public double NewVolume { get; set; }
|
public double NewVolume { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Event gets triggered, when the tracktime changes
|
/// Event gets triggered, when the tracktime changes
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -33,4 +36,4 @@ namespace SpotifyAPI.Local
|
|||||||
{
|
{
|
||||||
public double TrackTime { get; set; }
|
public double TrackTime { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -5,7 +5,7 @@ namespace SpotifyAPI.Local.Models
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// JSON Response, used internaly
|
/// JSON Response, used internaly
|
||||||
/// </summary>
|
/// </summary>
|
||||||
class Cfid
|
internal class Cfid
|
||||||
{
|
{
|
||||||
public Error Error { get; set; }
|
public Error Error { get; set; }
|
||||||
public String Token { get; set; }
|
public String Token { get; set; }
|
||||||
@ -17,9 +17,9 @@ namespace SpotifyAPI.Local.Models
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// JSON Response, used internaly
|
/// JSON Response, used internaly
|
||||||
/// </summary>
|
/// </summary>
|
||||||
class Error
|
internal class Error
|
||||||
{
|
{
|
||||||
public String Type { get; set; }
|
public String Type { get; set; }
|
||||||
public String Message { get; set; }
|
public String Message { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,5 +1,5 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json;
|
using System;
|
||||||
|
|
||||||
namespace SpotifyAPI.Local.Models
|
namespace SpotifyAPI.Local.Models
|
||||||
{
|
{
|
||||||
@ -7,6 +7,7 @@ namespace SpotifyAPI.Local.Models
|
|||||||
{
|
{
|
||||||
[JsonProperty("private_session")]
|
[JsonProperty("private_session")]
|
||||||
public Boolean PrivateSession { get; set; }
|
public Boolean PrivateSession { get; set; }
|
||||||
|
|
||||||
[JsonProperty("posting_disabled")]
|
[JsonProperty("posting_disabled")]
|
||||||
public Boolean PostingDisabled { get; set; }
|
public Boolean PostingDisabled { get; set; }
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json;
|
using System;
|
||||||
|
|
||||||
namespace SpotifyAPI.Local.Models
|
namespace SpotifyAPI.Local.Models
|
||||||
{
|
{
|
||||||
@ -7,9 +7,11 @@ namespace SpotifyAPI.Local.Models
|
|||||||
{
|
{
|
||||||
[JsonProperty("name")]
|
[JsonProperty("name")]
|
||||||
public String Name { get; set; }
|
public String Name { get; set; }
|
||||||
|
|
||||||
[JsonProperty("uri")]
|
[JsonProperty("uri")]
|
||||||
public String Uri { get; set; }
|
public String Uri { get; set; }
|
||||||
|
|
||||||
[JsonProperty("location")]
|
[JsonProperty("location")]
|
||||||
public TrackResourceLocation Location { get; set; }
|
public TrackResourceLocation Location { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -6,31 +6,44 @@ namespace SpotifyAPI.Local.Models
|
|||||||
{
|
{
|
||||||
[JsonProperty("version")]
|
[JsonProperty("version")]
|
||||||
public int Version { get; set; }
|
public int Version { get; set; }
|
||||||
|
|
||||||
[JsonProperty("client_version")]
|
[JsonProperty("client_version")]
|
||||||
public string ClientVersion { get; set; }
|
public string ClientVersion { get; set; }
|
||||||
|
|
||||||
[JsonProperty("playing")]
|
[JsonProperty("playing")]
|
||||||
public bool Playing { get; set; }
|
public bool Playing { get; set; }
|
||||||
|
|
||||||
[JsonProperty("schuffle")]
|
[JsonProperty("schuffle")]
|
||||||
public bool Shuffle { get; set; }
|
public bool Shuffle { get; set; }
|
||||||
|
|
||||||
[JsonProperty("repeat")]
|
[JsonProperty("repeat")]
|
||||||
public bool Repeat { get; set; }
|
public bool Repeat { get; set; }
|
||||||
|
|
||||||
[JsonProperty("play_enabled")]
|
[JsonProperty("play_enabled")]
|
||||||
public bool PlayEnabled { get; set; }
|
public bool PlayEnabled { get; set; }
|
||||||
|
|
||||||
[JsonProperty("prev_enabled")]
|
[JsonProperty("prev_enabled")]
|
||||||
public bool PrevEnabled { get; set; }
|
public bool PrevEnabled { get; set; }
|
||||||
|
|
||||||
[JsonProperty("next_enabled")]
|
[JsonProperty("next_enabled")]
|
||||||
public bool NextEnabled { get; set; }
|
public bool NextEnabled { get; set; }
|
||||||
|
|
||||||
[JsonProperty("track")]
|
[JsonProperty("track")]
|
||||||
public Track Track { get; set; }
|
public Track Track { get; set; }
|
||||||
|
|
||||||
[JsonProperty("playing_position")]
|
[JsonProperty("playing_position")]
|
||||||
public double PlayingPosition { get; set; }
|
public double PlayingPosition { get; set; }
|
||||||
|
|
||||||
[JsonProperty("server_time")]
|
[JsonProperty("server_time")]
|
||||||
public int ServerTime { get; set; }
|
public int ServerTime { get; set; }
|
||||||
|
|
||||||
[JsonProperty("volume")]
|
[JsonProperty("volume")]
|
||||||
public double Volume { get; set; }
|
public double Volume { get; set; }
|
||||||
|
|
||||||
[JsonProperty("online")]
|
[JsonProperty("online")]
|
||||||
public bool Online { get; set; }
|
public bool Online { get; set; }
|
||||||
|
|
||||||
[JsonProperty("running")]
|
[JsonProperty("running")]
|
||||||
public bool Running { get; set; }
|
public bool Running { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,10 +1,10 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
|
using SpotifyAPI.Local.Enums;
|
||||||
|
using System;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Newtonsoft.Json;
|
|
||||||
using SpotifyAPI.Local.Enums;
|
|
||||||
|
|
||||||
namespace SpotifyAPI.Local.Models
|
namespace SpotifyAPI.Local.Models
|
||||||
{
|
{
|
||||||
@ -12,12 +12,16 @@ namespace SpotifyAPI.Local.Models
|
|||||||
{
|
{
|
||||||
[JsonProperty("track_resource")]
|
[JsonProperty("track_resource")]
|
||||||
public SpotifyResource TrackResource { get; set; }
|
public SpotifyResource TrackResource { get; set; }
|
||||||
|
|
||||||
[JsonProperty("artist_resource")]
|
[JsonProperty("artist_resource")]
|
||||||
public SpotifyResource ArtistResource { get; set; }
|
public SpotifyResource ArtistResource { get; set; }
|
||||||
|
|
||||||
[JsonProperty("album_resource")]
|
[JsonProperty("album_resource")]
|
||||||
public SpotifyResource AlbumResource { get; set; }
|
public SpotifyResource AlbumResource { get; set; }
|
||||||
|
|
||||||
[JsonProperty("length")]
|
[JsonProperty("length")]
|
||||||
public int Length { get; set; }
|
public int Length { get; set; }
|
||||||
|
|
||||||
[JsonProperty("track_type")]
|
[JsonProperty("track_type")]
|
||||||
public string TrackType { get; set; }
|
public string TrackType { get; set; }
|
||||||
|
|
||||||
@ -50,9 +54,11 @@ namespace SpotifyAPI.Local.Models
|
|||||||
case AlbumArtSize.Size160:
|
case AlbumArtSize.Size160:
|
||||||
albumsize = 160;
|
albumsize = 160;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AlbumArtSize.Size320:
|
case AlbumArtSize.Size320:
|
||||||
albumsize = 320;
|
albumsize = 320;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AlbumArtSize.Size640:
|
case AlbumArtSize.Size640:
|
||||||
albumsize = 640;
|
albumsize = 640;
|
||||||
break;
|
break;
|
||||||
@ -152,4 +158,4 @@ namespace SpotifyAPI.Local.Models
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,5 +1,5 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json;
|
using System;
|
||||||
|
|
||||||
namespace SpotifyAPI.Local.Models
|
namespace SpotifyAPI.Local.Models
|
||||||
{
|
{
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
|
using SpotifyAPI.Local.Models;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Newtonsoft.Json;
|
|
||||||
using SpotifyAPI.Local.Models;
|
|
||||||
|
|
||||||
namespace SpotifyAPI.Local
|
namespace SpotifyAPI.Local
|
||||||
{
|
{
|
||||||
@ -145,7 +145,7 @@ namespace SpotifyAPI.Local
|
|||||||
parameters += "&returnon=login%2Clogout%2Cplay%2Cpause%2Cerror%2Cap";
|
parameters += "&returnon=login%2Clogout%2Cplay%2Cpause%2Cerror%2Cap";
|
||||||
}
|
}
|
||||||
|
|
||||||
string address = "http://" + Host + ":4380/" + request + parameters ;
|
string address = "http://" + Host + ":4380/" + request + parameters;
|
||||||
string response = "";
|
string response = "";
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -168,4 +168,4 @@ namespace SpotifyAPI.Local
|
|||||||
return Convert.ToInt32((DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0)).TotalSeconds);
|
return Convert.ToInt32((DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0)).TotalSeconds);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,10 +1,10 @@
|
|||||||
using System;
|
using SpotifyAPI.Local.Models;
|
||||||
|
using System;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Timers;
|
using System.Timers;
|
||||||
using SpotifyAPI.Local.Models;
|
|
||||||
|
|
||||||
namespace SpotifyAPI.Local
|
namespace SpotifyAPI.Local
|
||||||
{
|
{
|
||||||
@ -12,10 +12,12 @@ namespace SpotifyAPI.Local
|
|||||||
{
|
{
|
||||||
[DllImport("user32.dll")]
|
[DllImport("user32.dll")]
|
||||||
private static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);
|
private static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);
|
||||||
|
|
||||||
[DllImport("nircmd.dll", CharSet = CharSet.Auto)]
|
[DllImport("nircmd.dll", CharSet = CharSet.Auto)]
|
||||||
private static extern bool DoNirCmd(String nirCmdStr);
|
private static extern bool DoNirCmd(String nirCmdStr);
|
||||||
|
|
||||||
private bool _listenForEvents;
|
private bool _listenForEvents;
|
||||||
|
|
||||||
public bool ListenForEvents
|
public bool ListenForEvents
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@ -30,6 +32,7 @@ namespace SpotifyAPI.Local
|
|||||||
}
|
}
|
||||||
|
|
||||||
private ISynchronizeInvoke _synchronizingObject;
|
private ISynchronizeInvoke _synchronizingObject;
|
||||||
|
|
||||||
public ISynchronizeInvoke SynchronizingObject
|
public ISynchronizeInvoke SynchronizingObject
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@ -43,22 +46,29 @@ namespace SpotifyAPI.Local
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const byte VkMediaNextTrack = 0xb0;
|
private const byte VkMediaNextTrack = 0xb0;
|
||||||
const byte VkMediaPrevTrack = 0xb1;
|
private const byte VkMediaPrevTrack = 0xb1;
|
||||||
const int KeyeventfExtendedkey = 0x1;
|
private const int KeyeventfExtendedkey = 0x1;
|
||||||
const int KeyeventfKeyup = 0x2;
|
private const int KeyeventfKeyup = 0x2;
|
||||||
|
|
||||||
readonly RemoteHandler _rh;
|
private readonly RemoteHandler _rh;
|
||||||
private readonly Timer _eventTimer;
|
private readonly Timer _eventTimer;
|
||||||
private StatusResponse _eventStatusResponse;
|
private StatusResponse _eventStatusResponse;
|
||||||
|
|
||||||
public delegate void TrackChangeEventHandler(TrackChangeEventArgs e);
|
public delegate void TrackChangeEventHandler(TrackChangeEventArgs e);
|
||||||
|
|
||||||
public delegate void PlayStateEventHandler(PlayStateEventArgs e);
|
public delegate void PlayStateEventHandler(PlayStateEventArgs e);
|
||||||
|
|
||||||
public delegate void VolumeChangeEventHandler(VolumeChangeEventArgs e);
|
public delegate void VolumeChangeEventHandler(VolumeChangeEventArgs e);
|
||||||
|
|
||||||
public delegate void TrackTimeChangeEventHandler(TrackTimeChangeEventArgs e);
|
public delegate void TrackTimeChangeEventHandler(TrackTimeChangeEventArgs e);
|
||||||
|
|
||||||
public event TrackChangeEventHandler OnTrackChange;
|
public event TrackChangeEventHandler OnTrackChange;
|
||||||
|
|
||||||
public event PlayStateEventHandler OnPlayStateChange;
|
public event PlayStateEventHandler OnPlayStateChange;
|
||||||
|
|
||||||
public event VolumeChangeEventHandler OnVolumeChange;
|
public event VolumeChangeEventHandler OnVolumeChange;
|
||||||
|
|
||||||
public event TrackTimeChangeEventHandler OnTrackTimeChange;
|
public event TrackTimeChangeEventHandler OnTrackTimeChange;
|
||||||
|
|
||||||
public SpotifyLocalAPI()
|
public SpotifyLocalAPI()
|
||||||
@ -273,4 +283,4 @@ namespace SpotifyAPI.Local
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,8 +1,7 @@
|
|||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Runtime.CompilerServices;
|
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
// Allgemeine Informationen über eine Assembly werden über die folgenden
|
// Allgemeine Informationen über eine Assembly werden über die folgenden
|
||||||
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
|
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
|
||||||
// die mit einer Assembly verknüpft sind.
|
// die mit einer Assembly verknüpft sind.
|
||||||
[assembly: AssemblyTitle("SpotifyLocalAPIClass")]
|
[assembly: AssemblyTitle("SpotifyLocalAPIClass")]
|
||||||
@ -14,8 +13,8 @@ using System.Runtime.InteropServices;
|
|||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
// Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar
|
// Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar
|
||||||
// für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von
|
// für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von
|
||||||
// COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest.
|
// COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest.
|
||||||
[assembly: ComVisible(false)]
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
@ -25,12 +24,12 @@ using System.Runtime.InteropServices;
|
|||||||
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
|
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
|
||||||
//
|
//
|
||||||
// Hauptversion
|
// Hauptversion
|
||||||
// Nebenversion
|
// Nebenversion
|
||||||
// Buildnummer
|
// Buildnummer
|
||||||
// Revision
|
// Revision
|
||||||
//
|
//
|
||||||
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
|
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
|
||||||
// übernehmen, indem Sie "*" eingeben:
|
// übernehmen, indem Sie "*" eingeben:
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
[assembly: AssemblyVersion("1.0.0.0")]
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
@ -1,13 +1,13 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
|
using SpotifyAPI.Web.Enums;
|
||||||
|
using SpotifyAPI.Web.Models;
|
||||||
|
using System;
|
||||||
using System.Collections.Specialized;
|
using System.Collections.Specialized;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using Newtonsoft.Json;
|
|
||||||
using SpotifyAPI.Web.Enums;
|
|
||||||
using SpotifyAPI.Web.Models;
|
|
||||||
|
|
||||||
namespace SpotifyAPI.Web.Auth
|
namespace SpotifyAPI.Web.Auth
|
||||||
{
|
{
|
||||||
@ -51,7 +51,7 @@ namespace SpotifyAPI.Web.Auth
|
|||||||
"Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes(ClientId + ":" + clientSecret)));
|
"Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes(ClientId + ":" + clientSecret)));
|
||||||
NameValueCollection col = new NameValueCollection
|
NameValueCollection col = new NameValueCollection
|
||||||
{
|
{
|
||||||
{"grant_type", "refresh_token"},
|
{"grant_type", "refresh_token"},
|
||||||
{"refresh_token", refreshToken}
|
{"refresh_token", refreshToken}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
|
using SpotifyAPI.Web.Enums;
|
||||||
|
using SpotifyAPI.Web.Models;
|
||||||
|
using System;
|
||||||
using System.Collections.Specialized;
|
using System.Collections.Specialized;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using Newtonsoft.Json;
|
|
||||||
using SpotifyAPI.Web.Enums;
|
|
||||||
using SpotifyAPI.Web.Models;
|
|
||||||
|
|
||||||
namespace SpotifyAPI.Web.Auth
|
namespace SpotifyAPI.Web.Auth
|
||||||
{
|
{
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
using System;
|
using SpotifyAPI.Web.Enums;
|
||||||
|
using SpotifyAPI.Web.Models;
|
||||||
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using SpotifyAPI.Web.Enums;
|
|
||||||
using SpotifyAPI.Web.Models;
|
|
||||||
|
|
||||||
namespace SpotifyAPI.Web.Auth
|
namespace SpotifyAPI.Web.Auth
|
||||||
{
|
{
|
||||||
@ -18,6 +18,7 @@ namespace SpotifyAPI.Web.Auth
|
|||||||
public String State { get; set; }
|
public String State { get; set; }
|
||||||
public Scope Scope { get; set; }
|
public Scope Scope { get; set; }
|
||||||
public Boolean ShowDialog { get; set; }
|
public Boolean ShowDialog { get; set; }
|
||||||
|
|
||||||
public event OnResponseReceived OnResponseReceivedEvent;
|
public event OnResponseReceived OnResponseReceivedEvent;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -74,4 +75,4 @@ namespace SpotifyAPI.Web.Auth
|
|||||||
_httpServer = null;
|
_httpServer = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -5,10 +5,19 @@ namespace SpotifyAPI.Web.Enums
|
|||||||
[Flags]
|
[Flags]
|
||||||
public enum AlbumType
|
public enum AlbumType
|
||||||
{
|
{
|
||||||
[String("album")] Album = 1,
|
[String("album")]
|
||||||
[String("single")] Single = 2,
|
Album = 1,
|
||||||
[String("compilation")] Compilation = 4,
|
|
||||||
[String("appears_on")] AppearsOn = 8,
|
[String("single")]
|
||||||
[String("album,single,compilation,appears_on")] All = 16
|
Single = 2,
|
||||||
|
|
||||||
|
[String("compilation")]
|
||||||
|
Compilation = 4,
|
||||||
|
|
||||||
|
[String("appears_on")]
|
||||||
|
AppearsOn = 8,
|
||||||
|
|
||||||
|
[String("album,single,compilation,appears_on")]
|
||||||
|
All = 16
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -5,7 +5,10 @@ namespace SpotifyAPI.Web.Enums
|
|||||||
[Flags]
|
[Flags]
|
||||||
public enum FollowType
|
public enum FollowType
|
||||||
{
|
{
|
||||||
[String("artist")] Artist = 1,
|
[String("artist")]
|
||||||
[String("user")] User = 2
|
Artist = 1,
|
||||||
|
|
||||||
|
[String("user")]
|
||||||
|
User = 2
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -5,17 +5,40 @@ namespace SpotifyAPI.Web.Enums
|
|||||||
[Flags]
|
[Flags]
|
||||||
public enum Scope
|
public enum Scope
|
||||||
{
|
{
|
||||||
[String("")] None = 1,
|
[String("")]
|
||||||
[String("playlist-modify-public")] PlaylistModifyPublic = 2,
|
None = 1,
|
||||||
[String("playlist-modify-private")] PlaylistModifyPrivate = 4,
|
|
||||||
[String("playlist-read-private")] PlaylistReadPrivate = 8,
|
[String("playlist-modify-public")]
|
||||||
[String("streaming")] Streaming = 16,
|
PlaylistModifyPublic = 2,
|
||||||
[String("user-read-private")] UserReadPrivate = 32,
|
|
||||||
[String("user-read-email")] UserReadEmail = 64,
|
[String("playlist-modify-private")]
|
||||||
[String("user-library-read")] UserLibrarayRead = 128,
|
PlaylistModifyPrivate = 4,
|
||||||
[String("user-library-modify")] UserLibraryModify = 256,
|
|
||||||
[String("user-follow-modify")] UserFollowModify = 512,
|
[String("playlist-read-private")]
|
||||||
[String("user-follow-read")] UserFollowRead = 1024,
|
PlaylistReadPrivate = 8,
|
||||||
[String("user-read-birthdate")] UserReadBirthdate = 2048
|
|
||||||
|
[String("streaming")]
|
||||||
|
Streaming = 16,
|
||||||
|
|
||||||
|
[String("user-read-private")]
|
||||||
|
UserReadPrivate = 32,
|
||||||
|
|
||||||
|
[String("user-read-email")]
|
||||||
|
UserReadEmail = 64,
|
||||||
|
|
||||||
|
[String("user-library-read")]
|
||||||
|
UserLibrarayRead = 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
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -5,9 +5,16 @@ namespace SpotifyAPI.Web.Enums
|
|||||||
[Flags]
|
[Flags]
|
||||||
public enum SearchType
|
public enum SearchType
|
||||||
{
|
{
|
||||||
[String("artist")] Artist = 1,
|
[String("artist")]
|
||||||
[String("album")] Album = 2,
|
Artist = 1,
|
||||||
[String("track")] Track = 4,
|
|
||||||
[String("track,album,artist")] All = 8
|
[String("album")]
|
||||||
|
Album = 2,
|
||||||
|
|
||||||
|
[String("track")]
|
||||||
|
Track = 4,
|
||||||
|
|
||||||
|
[String("track,album,artist")]
|
||||||
|
All = 8
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,6 +1,6 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Newtonsoft.Json;
|
|
||||||
|
|
||||||
namespace SpotifyAPI.Web
|
namespace SpotifyAPI.Web
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json;
|
using System;
|
||||||
|
|
||||||
namespace SpotifyAPI.Web.Models
|
namespace SpotifyAPI.Web.Models
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Newtonsoft.Json;
|
|
||||||
|
|
||||||
namespace SpotifyAPI.Web.Models
|
namespace SpotifyAPI.Web.Models
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Newtonsoft.Json;
|
|
||||||
|
|
||||||
namespace SpotifyAPI.Web.Models
|
namespace SpotifyAPI.Web.Models
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json;
|
using System;
|
||||||
|
|
||||||
namespace SpotifyAPI.Web.Models
|
namespace SpotifyAPI.Web.Models
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Newtonsoft.Json;
|
|
||||||
|
|
||||||
namespace SpotifyAPI.Web.Models
|
namespace SpotifyAPI.Web.Models
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Newtonsoft.Json;
|
|
||||||
|
|
||||||
namespace SpotifyAPI.Web.Models
|
namespace SpotifyAPI.Web.Models
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Newtonsoft.Json;
|
|
||||||
|
|
||||||
namespace SpotifyAPI.Web.Models
|
namespace SpotifyAPI.Web.Models
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Newtonsoft.Json;
|
|
||||||
|
|
||||||
namespace SpotifyAPI.Web.Models
|
namespace SpotifyAPI.Web.Models
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Newtonsoft.Json;
|
|
||||||
|
|
||||||
namespace SpotifyAPI.Web.Models
|
namespace SpotifyAPI.Web.Models
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Newtonsoft.Json;
|
|
||||||
|
|
||||||
namespace SpotifyAPI.Web.Models
|
namespace SpotifyAPI.Web.Models
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Newtonsoft.Json;
|
|
||||||
|
|
||||||
namespace SpotifyAPI.Web.Models
|
namespace SpotifyAPI.Web.Models
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Newtonsoft.Json;
|
|
||||||
|
|
||||||
namespace SpotifyAPI.Web.Models
|
namespace SpotifyAPI.Web.Models
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Newtonsoft.Json;
|
|
||||||
|
|
||||||
namespace SpotifyAPI.Web.Models
|
namespace SpotifyAPI.Web.Models
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Newtonsoft.Json;
|
|
||||||
|
|
||||||
namespace SpotifyAPI.Web.Models
|
namespace SpotifyAPI.Web.Models
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Newtonsoft.Json;
|
|
||||||
|
|
||||||
namespace SpotifyAPI.Web.Models
|
namespace SpotifyAPI.Web.Models
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Newtonsoft.Json;
|
|
||||||
|
|
||||||
namespace SpotifyAPI.Web.Models
|
namespace SpotifyAPI.Web.Models
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json;
|
using System;
|
||||||
|
|
||||||
namespace SpotifyAPI.Web.Models
|
namespace SpotifyAPI.Web.Models
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json;
|
using System;
|
||||||
|
|
||||||
namespace SpotifyAPI.Web.Models
|
namespace SpotifyAPI.Web.Models
|
||||||
{
|
{
|
||||||
|
@ -8,7 +8,7 @@ using System.Threading;
|
|||||||
using System.Web;
|
using System.Web;
|
||||||
|
|
||||||
// offered to the public domain for any use with no restriction
|
// offered to the public domain for any use with no restriction
|
||||||
// and also with no warranty of any kind, please enjoy. - David Jeske.
|
// and also with no warranty of any kind, please enjoy. - David Jeske.
|
||||||
|
|
||||||
// simple HTTP explanation
|
// simple HTTP explanation
|
||||||
// http://www.jmarshall.com/easy/http/
|
// http://www.jmarshall.com/easy/http/
|
||||||
@ -17,7 +17,7 @@ namespace SpotifyAPI.Web
|
|||||||
{
|
{
|
||||||
public class HttpProcessor
|
public class HttpProcessor
|
||||||
{
|
{
|
||||||
private const int MaxPostSize = 10*1024*1024; // 10MB
|
private const int MaxPostSize = 10 * 1024 * 1024; // 10MB
|
||||||
private const int BufSize = 4096;
|
private const int BufSize = 4096;
|
||||||
private readonly TcpClient _socket;
|
private readonly TcpClient _socket;
|
||||||
private readonly HttpServer _srv;
|
private readonly HttpServer _srv;
|
||||||
@ -85,7 +85,7 @@ namespace SpotifyAPI.Web
|
|||||||
}
|
}
|
||||||
OutputStream.Flush();
|
OutputStream.Flush();
|
||||||
_inputStream = null;
|
_inputStream = null;
|
||||||
OutputStream = null;
|
OutputStream = null;
|
||||||
_socket.Close();
|
_socket.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -137,9 +137,9 @@ namespace SpotifyAPI.Web
|
|||||||
{
|
{
|
||||||
// this post data processing just reads everything into a memory stream.
|
// this post data processing just reads everything into a memory stream.
|
||||||
// this is fine for smallish things, but for large stuff we should really
|
// this is fine for smallish things, but for large stuff we should really
|
||||||
// hand an input stream to the request processor. However, the input stream
|
// hand an input stream to the request processor. However, the input stream
|
||||||
// we hand him needs to let him see the "end of the stream" at this content
|
// we hand him needs to let him see the "end of the stream" at this content
|
||||||
// length, because otherwise he won't know when he's seen it all!
|
// length, because otherwise he won't know when he's seen it all!
|
||||||
|
|
||||||
MemoryStream ms = new MemoryStream();
|
MemoryStream ms = new MemoryStream();
|
||||||
if (HttpHeaders.ContainsKey("Content-Length"))
|
if (HttpHeaders.ContainsKey("Content-Length"))
|
||||||
@ -147,7 +147,7 @@ namespace SpotifyAPI.Web
|
|||||||
var contentLen = Convert.ToInt32(HttpHeaders["Content-Length"]);
|
var contentLen = Convert.ToInt32(HttpHeaders["Content-Length"]);
|
||||||
if (contentLen > MaxPostSize)
|
if (contentLen > MaxPostSize)
|
||||||
{
|
{
|
||||||
throw new Exception(String.Format("POST Content-Length({0}) too big for this simple server", contentLen));
|
throw new Exception(String.Format("POST Content-Length({0}) too big for this simple server", contentLen));
|
||||||
}
|
}
|
||||||
byte[] buf = new byte[BufSize];
|
byte[] buf = new byte[BufSize];
|
||||||
int toRead = contentLen;
|
int toRead = contentLen;
|
||||||
@ -230,6 +230,7 @@ namespace SpotifyAPI.Web
|
|||||||
}
|
}
|
||||||
|
|
||||||
public abstract void HandleGetRequest(HttpProcessor p);
|
public abstract void HandleGetRequest(HttpProcessor p);
|
||||||
|
|
||||||
public abstract void HandlePostRequest(HttpProcessor p, StreamReader inputData);
|
public abstract void HandlePostRequest(HttpProcessor p, StreamReader inputData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -237,6 +238,7 @@ namespace SpotifyAPI.Web
|
|||||||
{
|
{
|
||||||
//Code can be an AccessToken or an Exchange Code
|
//Code can be an AccessToken or an Exchange Code
|
||||||
public String Code { get; set; }
|
public String Code { get; set; }
|
||||||
|
|
||||||
public String TokenType { get; set; }
|
public String TokenType { get; set; }
|
||||||
public String State { get; set; }
|
public String State { get; set; }
|
||||||
public String Error { get; set; }
|
public String Error { get; set; }
|
||||||
@ -262,7 +264,6 @@ namespace SpotifyAPI.Web
|
|||||||
if (p.HttpUrl == "/favicon.ico")
|
if (p.HttpUrl == "/favicon.ico")
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
||||||
Thread t;
|
Thread t;
|
||||||
if (_type == AuthType.Authorization)
|
if (_type == AuthType.Authorization)
|
||||||
{
|
{
|
||||||
@ -274,7 +275,7 @@ namespace SpotifyAPI.Web
|
|||||||
p.OutputStream.WriteLine("<html><body><h1>Spotify Auth canceled!</h1></body></html>");
|
p.OutputStream.WriteLine("<html><body><h1>Spotify Auth canceled!</h1></body></html>");
|
||||||
t = new Thread(o =>
|
t = new Thread(o =>
|
||||||
{
|
{
|
||||||
if(OnAuth != null)
|
if (OnAuth != null)
|
||||||
OnAuth(new AuthEventArgs()
|
OnAuth(new AuthEventArgs()
|
||||||
{
|
{
|
||||||
State = col.Get(1),
|
State = col.Get(1),
|
||||||
@ -287,7 +288,7 @@ namespace SpotifyAPI.Web
|
|||||||
p.OutputStream.WriteLine("<html><body><h1>Spotify Auth successful!</h1><script>window.close();</script></body></html>");
|
p.OutputStream.WriteLine("<html><body><h1>Spotify Auth successful!</h1><script>window.close();</script></body></html>");
|
||||||
t = new Thread(o =>
|
t = new Thread(o =>
|
||||||
{
|
{
|
||||||
if(OnAuth != null)
|
if (OnAuth != null)
|
||||||
OnAuth(new AuthEventArgs()
|
OnAuth(new AuthEventArgs()
|
||||||
{
|
{
|
||||||
Code = col.Get(0),
|
Code = col.Get(0),
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using Newtonsoft.Json;
|
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using SpotifyAPI.Web.Enums;
|
using SpotifyAPI.Web.Enums;
|
||||||
using SpotifyAPI.Web.Models;
|
using SpotifyAPI.Web.Models;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
namespace SpotifyAPI.Web
|
namespace SpotifyAPI.Web
|
||||||
{
|
{
|
||||||
@ -62,7 +62,7 @@ namespace SpotifyAPI.Web
|
|||||||
return DownloadData<SearchItem>(builder.ToString());
|
return DownloadData<SearchItem>(builder.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion Search
|
||||||
|
|
||||||
#region Albums
|
#region Albums
|
||||||
|
|
||||||
@ -112,7 +112,7 @@ namespace SpotifyAPI.Web
|
|||||||
return DownloadData<SeveralAlbums>(APIBase + "/albums?market=" + market + "&ids=" + string.Join(",", ids.Take(20)));
|
return DownloadData<SeveralAlbums>(APIBase + "/albums?market=" + market + "&ids=" + string.Join(",", ids.Take(20)));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion Albums
|
||||||
|
|
||||||
#region Artists
|
#region Artists
|
||||||
|
|
||||||
@ -186,7 +186,7 @@ namespace SpotifyAPI.Web
|
|||||||
return DownloadData<SeveralArtists>(APIBase + "/artists?ids=" + string.Join(",", ids.Take(50)));
|
return DownloadData<SeveralArtists>(APIBase + "/artists?ids=" + string.Join(",", ids.Take(50)));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion Artists
|
||||||
|
|
||||||
#region Browse
|
#region Browse
|
||||||
|
|
||||||
@ -314,7 +314,7 @@ namespace SpotifyAPI.Web
|
|||||||
return DownloadData<CategoryPlaylist>(builder.ToString());
|
return DownloadData<CategoryPlaylist>(builder.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion Browse
|
||||||
|
|
||||||
#region Follow
|
#region Follow
|
||||||
|
|
||||||
@ -327,7 +327,7 @@ namespace SpotifyAPI.Web
|
|||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public FollowedArtists GetFollowedArtists(int limit = 20, String after = "")
|
public FollowedArtists GetFollowedArtists(int limit = 20, String after = "")
|
||||||
{
|
{
|
||||||
if(!UseAuth)
|
if (!UseAuth)
|
||||||
throw new InvalidOperationException("Auth is required for GetFollowedArtists");
|
throw new InvalidOperationException("Auth is required for GetFollowedArtists");
|
||||||
limit = Math.Max(limit, 50);
|
limit = Math.Max(limit, 50);
|
||||||
const FollowType followType = FollowType.Artist; //currently only artist is supported.
|
const FollowType followType = FollowType.Artist; //currently only artist is supported.
|
||||||
@ -363,7 +363,7 @@ namespace SpotifyAPI.Web
|
|||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public ErrorResponse Follow(FollowType followType, String id)
|
public ErrorResponse Follow(FollowType followType, String id)
|
||||||
{
|
{
|
||||||
return Follow(followType, new List<string> {id});
|
return Follow(followType, new List<string> { id });
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -391,7 +391,7 @@ namespace SpotifyAPI.Web
|
|||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public ErrorResponse Unfollow(FollowType followType, String id)
|
public ErrorResponse Unfollow(FollowType followType, String id)
|
||||||
{
|
{
|
||||||
return Unfollow(followType, new List<string> {id});
|
return Unfollow(followType, new List<string> { id });
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -407,8 +407,8 @@ namespace SpotifyAPI.Web
|
|||||||
throw new InvalidOperationException("Auth is required for IsFollowing");
|
throw new InvalidOperationException("Auth is required for IsFollowing");
|
||||||
JToken res = DownloadData<JToken>(APIBase + "/me/following/contains?type=" + followType.GetStringAttribute("") + "&ids=" + string.Join(",", ids));
|
JToken res = DownloadData<JToken>(APIBase + "/me/following/contains?type=" + followType.GetStringAttribute("") + "&ids=" + string.Join(",", ids));
|
||||||
if (res is JArray)
|
if (res is JArray)
|
||||||
return new ListResponse<Boolean> {List = res.ToObject<List<Boolean>>(), Error = null};
|
return new ListResponse<Boolean> { List = res.ToObject<List<Boolean>>(), Error = null };
|
||||||
return new ListResponse<Boolean> {List = null, Error = res["error"].ToObject<Error>()};
|
return new ListResponse<Boolean> { List = null, Error = res["error"].ToObject<Error>() };
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -420,7 +420,7 @@ namespace SpotifyAPI.Web
|
|||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public ListResponse<Boolean> IsFollowing(FollowType followType, String id)
|
public ListResponse<Boolean> IsFollowing(FollowType followType, String id)
|
||||||
{
|
{
|
||||||
return IsFollowing(followType, new List<string> {id});
|
return IsFollowing(followType, new List<string> { id });
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -472,8 +472,8 @@ namespace SpotifyAPI.Web
|
|||||||
throw new InvalidOperationException("Auth is required for IsFollowingPlaylist");
|
throw new InvalidOperationException("Auth is required for IsFollowingPlaylist");
|
||||||
JToken res = DownloadData<JToken>(APIBase + "/users/" + ownerId + "/playlists/" + playlistId + "/followers/contains?ids=" + string.Join(",", ids));
|
JToken res = DownloadData<JToken>(APIBase + "/users/" + ownerId + "/playlists/" + playlistId + "/followers/contains?ids=" + string.Join(",", ids));
|
||||||
if (res is JArray)
|
if (res is JArray)
|
||||||
return new ListResponse<Boolean> {List = res.ToObject<List<Boolean>>(), Error = null};
|
return new ListResponse<Boolean> { List = res.ToObject<List<Boolean>>(), Error = null };
|
||||||
return new ListResponse<Boolean> {List = null, Error = res["error"].ToObject<Error>()};
|
return new ListResponse<Boolean> { List = null, Error = res["error"].ToObject<Error>() };
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -486,10 +486,10 @@ namespace SpotifyAPI.Web
|
|||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public ListResponse<Boolean> IsFollowingPlaylist(String ownerId, String playlistId, String id)
|
public ListResponse<Boolean> IsFollowingPlaylist(String ownerId, String playlistId, String id)
|
||||||
{
|
{
|
||||||
return IsFollowingPlaylist(ownerId, playlistId, new List<string> {id});
|
return IsFollowingPlaylist(ownerId, playlistId, new List<string> { id });
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion Follow
|
||||||
|
|
||||||
#region Library
|
#region Library
|
||||||
|
|
||||||
@ -513,7 +513,7 @@ namespace SpotifyAPI.Web
|
|||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public ErrorResponse SaveTrack(String id)
|
public ErrorResponse SaveTrack(String id)
|
||||||
{
|
{
|
||||||
return SaveTracks(new List<string> {id});
|
return SaveTracks(new List<string> { id });
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -561,11 +561,11 @@ namespace SpotifyAPI.Web
|
|||||||
throw new InvalidOperationException("Auth is required for CheckSavedTracks");
|
throw new InvalidOperationException("Auth is required for CheckSavedTracks");
|
||||||
JToken res = DownloadData<JToken>(APIBase + "/me/tracks/contains?ids=" + string.Join(",", ids));
|
JToken res = DownloadData<JToken>(APIBase + "/me/tracks/contains?ids=" + string.Join(",", ids));
|
||||||
if (res is JArray)
|
if (res is JArray)
|
||||||
return new ListResponse<Boolean> {List = res.ToObject<List<Boolean>>(), Error = null};
|
return new ListResponse<Boolean> { List = res.ToObject<List<Boolean>>(), Error = null };
|
||||||
return new ListResponse<Boolean> {List = null, Error = res["error"].ToObject<Error>()};
|
return new ListResponse<Boolean> { List = null, Error = res["error"].ToObject<Error>() };
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion Library
|
||||||
|
|
||||||
#region Playlists
|
#region Playlists
|
||||||
|
|
||||||
@ -730,7 +730,7 @@ namespace SpotifyAPI.Web
|
|||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public ErrorResponse RemovePlaylistTrack(String userId, String playlistId, DeleteTrackUri uri)
|
public ErrorResponse RemovePlaylistTrack(String userId, String playlistId, DeleteTrackUri uri)
|
||||||
{
|
{
|
||||||
return RemovePlaylistTracks(userId, playlistId, new List<DeleteTrackUri> {uri});
|
return RemovePlaylistTracks(userId, playlistId, new List<DeleteTrackUri> { uri });
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -764,7 +764,7 @@ namespace SpotifyAPI.Web
|
|||||||
/// <remarks>AUTH NEEDED</remarks>
|
/// <remarks>AUTH NEEDED</remarks>
|
||||||
public ErrorResponse AddPlaylistTrack(String userId, String playlistId, String uri, int? position = null)
|
public ErrorResponse AddPlaylistTrack(String userId, String playlistId, String uri, int? position = null)
|
||||||
{
|
{
|
||||||
return AddPlaylistTracks(userId, playlistId, new List<string> {uri}, position);
|
return AddPlaylistTracks(userId, playlistId, new List<string> { uri }, position);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -791,7 +791,7 @@ namespace SpotifyAPI.Web
|
|||||||
return UploadData<Snapshot>(APIBase + "/users/" + userId + "/playlists/" + playlistId + "/tracks", body.ToString(Formatting.None), "PUT");
|
return UploadData<Snapshot>(APIBase + "/users/" + userId + "/playlists/" + playlistId + "/tracks", body.ToString(Formatting.None), "PUT");
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion Playlists
|
||||||
|
|
||||||
#region Profiles
|
#region Profiles
|
||||||
|
|
||||||
@ -817,7 +817,7 @@ namespace SpotifyAPI.Web
|
|||||||
return DownloadData<PublicProfile>(APIBase + "/users/" + userId);
|
return DownloadData<PublicProfile>(APIBase + "/users/" + userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion Profiles
|
||||||
|
|
||||||
#region Tracks
|
#region Tracks
|
||||||
|
|
||||||
@ -847,7 +847,7 @@ namespace SpotifyAPI.Web
|
|||||||
return DownloadData<FullTrack>(APIBase + "/tracks/" + id + "?market=" + market);
|
return DownloadData<FullTrack>(APIBase + "/tracks/" + id + "?market=" + market);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion Tracks
|
||||||
|
|
||||||
#region Util
|
#region Util
|
||||||
|
|
||||||
@ -869,6 +869,6 @@ namespace SpotifyAPI.Web
|
|||||||
return WebClient.DownloadJson<T>(url);
|
return WebClient.DownloadJson<T>(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion Util
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,10 +1,10 @@
|
|||||||
using System;
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using Newtonsoft.Json;
|
|
||||||
|
|
||||||
namespace SpotifyAPI.Web
|
namespace SpotifyAPI.Web
|
||||||
{
|
{
|
||||||
@ -46,7 +46,7 @@ namespace SpotifyAPI.Web
|
|||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte[] DownloadRaw(string url)
|
public byte[] DownloadRaw(string url)
|
||||||
{
|
{
|
||||||
return _webClient.DownloadData(url);
|
return _webClient.DownloadData(url);
|
||||||
}
|
}
|
||||||
@ -93,7 +93,7 @@ namespace SpotifyAPI.Web
|
|||||||
|
|
||||||
public void RemoveHeader(string header)
|
public void RemoveHeader(string header)
|
||||||
{
|
{
|
||||||
if(_webClient.Headers[header] != null)
|
if (_webClient.Headers[header] != null)
|
||||||
_webClient.Headers.Remove(header);
|
_webClient.Headers.Remove(header);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,9 +27,10 @@ namespace SpotifyAPI.Web
|
|||||||
public sealed class StringAttribute : Attribute
|
public sealed class StringAttribute : Attribute
|
||||||
{
|
{
|
||||||
public String Text { get; set; }
|
public String Text { get; set; }
|
||||||
|
|
||||||
public StringAttribute(String text)
|
public StringAttribute(String text)
|
||||||
{
|
{
|
||||||
Text = text;
|
Text = text;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user