Пример #1
0
		internal override RequestParameters getParams ()
		{
			RequestParameters p = new Lastfm.RequestParameters();
			p["country"] = Name;
			
			return p;
		}
Пример #2
0
		internal override RequestParameters getParams ()
		{
			RequestParameters p = new Lastfm.RequestParameters();
			p["venue"] = ID.ToString();
			
			return p;
		}
Пример #3
0
		internal override RequestParameters getParams ()
		{
			RequestParameters p = new Lastfm.RequestParameters();
			p["artist"] = Artist.Name;
			
			return p;
		}
Пример #4
0
		internal override RequestParameters getParams ()
		{
			RequestParameters p = new Lastfm.RequestParameters();
			p["playlistURL"] = PlaylistUrl;
			
			return p;
		}
Пример #5
0
        /// <summary>
        /// Called internally by the scrobbling thread.
        /// </summary>
        private void threadedSubmit()
        {
            StreamReader reader = new StreamReader(CacheDir + cacheFileName, Encoding.Unicode);

            string[] lines = reader.ReadToEnd().Trim().Split('\n');
            reader.Close();

            foreach (string line in lines)
            {
                Lastfm.RequestParameters p = new Lastfm.RequestParameters(line);

                // Append the "[0]" to the key names
                Lastfm.RequestParameters np = new Lastfm.RequestParameters();
                foreach (string key in p.Keys)
                {
                    np[key + "[0]"] = p[key];
                }

                Connection.Scrobble(np);
            }

            // It won't get to this point unless
            // all the scrobbling was a success.
            File.Delete(CacheDir + cacheFileName);
        }
		internal override RequestParameters getParams()
		{
			RequestParameters p = new Lastfm.RequestParameters();
			p["user"] = User.Name;
			
			return p;
		}
Пример #7
0
		internal override RequestParameters getParams ()
		{
			RequestParameters p = new Lastfm.RequestParameters();
			p["playlistURL"] = PlaylistUrl;
			
			return p;
		}
 internal override RequestParameters getParams()
 {
     RequestParameters p = new Lastfm.RequestParameters();
     p["artist"] = Artist.Name;
       if (!string.IsNullOrEmpty(Lang))
     p["lang"] = Lang;
     return p;
 }
Пример #9
0
        internal override RequestParameters getParams()
        {
            RequestParameters p = new Lastfm.RequestParameters();

            p["event"] = ID.ToString();

            return(p);
        }
Пример #10
0
        internal override RequestParameters getParams()
        {
            RequestParameters p = new Lastfm.RequestParameters();

            p["artist"] = this.Name;

            return(p);
        }
Пример #11
0
		internal override RequestParameters getParams ()
		{
			RequestParameters p = new Lastfm.RequestParameters();
			p["track"] = Track.Title;
			p["artist"] = Track.Artist.Name;

			return p;
		}
Пример #12
0
        internal override RequestParameters getParams()
        {
            RequestParameters p = new Lastfm.RequestParameters();

            p["country"] = Name;

            return(p);
        }
Пример #13
0
        internal override RequestParameters getParams()
        {
            RequestParameters p = new Lastfm.RequestParameters();

            p["user"] = User.Name;

            return(p);
        }
Пример #14
0
        internal override RequestParameters getParams()
        {
            RequestParameters p = new Lastfm.RequestParameters();

            p["artist"] = Album.Artist.Name;
            p["album"]  = Album.Title;

            return(p);
        }
Пример #15
0
        internal override RequestParameters getParams()
        {
            RequestParameters p = new Lastfm.RequestParameters();

            p["track"]  = Track.Title;
            p["artist"] = Track.Artist.Name;

            return(p);
        }
Пример #16
0
		internal override RequestParameters getParams ()
		{
			RequestParameters p = new Lastfm.RequestParameters();
			p["type1"] = firstType;
			p["type2"] = secondType;
			p["value1"] = firstValue;
			p["value2"] = secondValue;
			
			return p;
		}
Пример #17
0
        internal override RequestParameters getParams()
        {
            RequestParameters p = new Lastfm.RequestParameters();

            p["artist"] = Artist.Name;
            if (!string.IsNullOrEmpty(Lang))
            {
                p["lang"] = Lang;
            }
            return(p);
        }
Пример #18
0
        internal override RequestParameters getParams()
        {
            RequestParameters p = new Lastfm.RequestParameters();

            p["type1"]  = firstType;
            p["type2"]  = secondType;
            p["value1"] = firstValue;
            p["value2"] = secondValue;

            return(p);
        }
Пример #19
0
        internal override RequestParameters getParams()
        {
            RequestParameters p = new Lastfm.RequestParameters();

            foreach (string key in searchTerms.Keys)
            {
                p[key] = searchTerms[key];
            }

            return(p);
        }
Пример #20
0
        /// <summary>
        /// Returns an artist by their MusicBrainz artist id.
        /// </summary>
        /// <param name="mbid">
        /// A <see cref="System.String"/>
        /// </param>
        /// <param name="session">
        /// A <see cref="Session"/>
        /// </param>
        /// <returns>
        /// A <see cref="Artist"/>
        /// </returns>
        public static Artist GetByMBID(string mbid, Session session)
        {
            RequestParameters p = new Lastfm.RequestParameters();

            p["mbid"] = mbid;

            XmlDocument doc = (new Request("artist.getInfo", session, p)).execute();

            string name = doc.GetElementsByTagName("name")[0].InnerText;

            return(new Artist(name, session));
        }
Пример #21
0
        /// <summary>
        /// Returns a track by its MusicBrainz id.
        /// </summary>
        /// <param name="mbid">
        /// A <see cref="System.String"/>
        /// </param>
        /// <param name="session">
        /// A <see cref="Session"/>
        /// </param>
        /// <returns>
        /// A <see cref="Track"/>
        /// </returns>
        public static Track GetByMBID(string mbid, Session session)
        {
            RequestParameters p = new Lastfm.RequestParameters();

            p["mbid"] = mbid;

            XmlDocument doc = (new Request("track.getInfo", session, p)).execute();

            string title  = doc.GetElementsByTagName("name")[0].InnerText;
            string artist = doc.GetElementsByTagName("name")[1].InnerText;

            return(new Track(artist, title, session));
        }
Пример #22
0
        /// <summary>
        /// Complete the web authentication.
        /// </summary>
        public void AuthenticateViaWeb()
        {
            RequestParameters p = new Lastfm.RequestParameters();

            p["token"] = token;

            Lastfm.Services.Request r = new Lastfm.Services.Request("auth.getSession", this, p);
            r.signIt();

            XmlDocument doc = r.execute();

            SessionKey = doc.GetElementsByTagName("key")[0].InnerText;
        }
Пример #23
0
        /// <summary>
        /// Authenticate this session using a username and a md5 hash of the password.
        /// </summary>
        /// <param name="username">
        /// A <see cref="System.String"/>
        /// </param>
        /// <param name="md5Password">
        /// A <see cref="System.String"/>
        /// </param>
        public void Authenticate(string username, string md5Password)
        {
            RequestParameters p = new Lastfm.RequestParameters();

            p["username"]  = username;
            p["authToken"] = Utilities.MD5(username + md5Password);

            Lastfm.Services.Request request = new Lastfm.Services.Request("auth.getMobileSession", this, p);
            request.signIt();

            XmlDocument doc = request.execute();

            SessionKey = doc.GetElementsByTagName("key")[0].InnerText;
        }
Пример #24
0
        private XmlNode getNode()
        {
            RequestParameters p = new Lastfm.RequestParameters();

            p["user"] = User.Name;

            XmlDocument doc = request("user.getPlaylists", p);

            foreach (XmlNode node in doc.GetElementsByTagName("playlist"))
            {
                if (Int32.Parse(extract(node, "id")) == ID)
                {
                    return(node);
                }
            }

            return(null);
        }
Пример #25
0
        /// <summary>
        /// Creates a new playlist for the authenticated user.
        /// </summary>
        /// <param name="title">
        /// A <see cref="System.String"/>
        /// </param>
        /// <param name="description">
        /// A <see cref="System.String"/>
        /// </param>
        /// <param name="session">
        /// A <see cref="Session"/>
        /// </param>
        /// <returns>
        /// A <see cref="Playlist"/>
        /// </returns>
        public static Playlist CreateNew(string title, string description, Session session)
        {
            //manually test session for authentication.
            if (!session.Authenticated)
            {
                throw new AuthenticationRequiredException();
            }


            RequestParameters p = new Lastfm.RequestParameters();

            p["title"]       = title;
            p["description"] = description;

            XmlDocument doc = (new Request("playlist.create", session, p)).execute();
            int         id  = Int32.Parse(doc.GetElementsByTagName("id")[0].InnerText);

            return(new Playlist(AuthenticatedUser.GetUser(session), id, session));
        }
Пример #26
0
        /// <summary>
        /// Called internally by the scrobbling thread.
        /// </summary>
        private void threadedSubmit()
        {
            try
            {
                StreamReader reader = new StreamReader(CacheDir + cacheFileName, Encoding.Unicode);
                string[]     lines  = reader.ReadToEnd().Trim().Split('\n');
                reader.Close();

                foreach (string line in lines)
                {
                    Lastfm.RequestParameters p = new Lastfm.RequestParameters(line);
                    try{
                        Connection.Scrobble(p);
                    }
                    catch (ScrobblingException ex)
                    {
                        Console.WriteLine(ex);
                    }
                }

                // It won't get to this point unless
                // all the scrobbling was a success.
                File.Delete(CacheDir + cacheFileName);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
            finally
            {
                lock (locker)
                {
                    isSubmiting = false;
                }
            }
        }
Пример #27
0
        internal RequestParameters getParameters(Session session)
        {
            RequestParameters p = new Lastfm.RequestParameters();

            p["api_key"]   = session.APIKey;
            p["album"]     = Album;
            p["artist"]    = Artist;
            p["duration"]  = ((int)Duration.TotalSeconds).ToString();
            p["method"]    = "track.scrobble";
            p["sk"]        = session.SessionKey;
            p["timestamp"] = Utilities.DateTimeToUTCTimestamp(TimeStarted).ToString();
            p["track"]     = Title;

            string api_sig = "";

            foreach (var item in p)
            {
                api_sig += item.Key + item.Value;
            }
            api_sig += session.APISecret;

            p["api_sig"] = Utilities.MD5(api_sig);
            return(p);
        }
Пример #28
0
		/// <summary>
		/// Called internally by the scrobbling thread.
		/// </summary>
		private void threadedSubmit()
		{
			StreamReader reader = new StreamReader(CacheDir + cacheFileName, Encoding.Unicode);			
			string[] lines = reader.ReadToEnd().Trim().Split('\n');
			reader.Close();
			
			foreach (string line in lines)
			{
				Lastfm.RequestParameters p = new Lastfm.RequestParameters(line);

				// Append the "[0]" to the key names
				Lastfm.RequestParameters np = new Lastfm.RequestParameters();
				foreach (string key in p.Keys)
					np[key + "[0]"] = p[key];
				
				Connection.Scrobble(np);
			}
			
			// It won't get to this point unless
			// all the scrobbling was a success.
			File.Delete(CacheDir + cacheFileName);
		}
Пример #29
0
        internal RequestParameters getParameters()
        {
            RequestParameters p = new Lastfm.RequestParameters();

            // Artist
            p["a"] = Artist;

            // Title
            p["t"] = Title;

            // Time started
            p["i"] = Utilities.DateTimeToUTCTimestamp(TimeStarted).ToString();

            // Playback source
            if (Source == PlaybackSource.User)
            {
                p["o"] = "P";
            }
            else if (Source == PlaybackSource.NonPersonalizedBroadcast)
            {
                p["o"] = "R";
            }
            else if (Source == PlaybackSource.PersonalizedBroadcast)
            {
                p["o"] = "E";
            }
            else if (Source == PlaybackSource.Lastfm)
            {
                if (RecommendationKey == "")
                {
                    throw new Exception("A recommendation key must be provided if the source for playing this track is Last.fm");
                }

                p["o"] = "L";
            }
            else if (Source == PlaybackSource.Unknown)
            {
                p["o"] = "U";
            }

            // Rating
            if (Mode == ScrobbleMode.Banned)
            {
                if (Source != PlaybackSource.Lastfm)
                {
                    throw new Exception("Banning is only allowed if source is Last.fm.");
                }

                p["r"] = "B";
            }
            else if (Mode == ScrobbleMode.Played)
            {
                p["r"] = "L";
            }
            else if (Mode == ScrobbleMode.Skipped)
            {
                if (Source != PlaybackSource.Lastfm)
                {
                    throw new Exception("Banning is only allowed if source is Last.fm.");
                }

                p["r"] = "S";
            }

            // Duration
            p["l"] = Duration.TotalSeconds.ToString();

            // Album
            p["b"] = Album;

            // Track number
            if (Number > 0)
            {
                p["n"] = Number.ToString();
            }
            else
            {
                p["n"] = "";
            }

            // MBID
            p["m"] = MBID;


            return(p);
        }
Пример #30
0
		internal RequestParameters getParameters()
		{
			RequestParameters p = new Lastfm.RequestParameters();
			
			// Artist
			p["a"] = Artist;
			
			// Title
			p["t"] = Title;
			
			// Time started
			p["i"] = Utilities.DateTimeToUTCTimestamp(TimeStarted).ToString();
			
			// Playback source
			if (Source == PlaybackSource.User) {
				p["o"] = "P";
			}
			else if (Source == PlaybackSource.NonPersonalizedBroadcast){
				p["o"] = "R";
			}
			else if (Source == PlaybackSource.PersonalizedBroadcast){
				p["o"] = "E";
			}
			else if (Source == PlaybackSource.Lastfm) {
				if (RecommendationKey == "")
					throw new Exception("A recommendation key must be provided if the source for playing this track is Last.fm");
				
				p["o"] = "L";
			}
			else if (Source == PlaybackSource.Unknown) {
				p["o"] = "U";
			}
			
			// Rating
			if (Mode == ScrobbleMode.Banned)
			{
				if (Source != PlaybackSource.Lastfm)
					throw new Exception("Banning is only allowed if source is Last.fm.");
				
				p["r"] = "B";
			}
			else if (Mode == ScrobbleMode.Played)
			{
				p["r"] = "L";
			}
			else if (Mode == ScrobbleMode.Skipped)
			{
				if (Source != PlaybackSource.Lastfm)
					throw new Exception("Banning is only allowed if source is Last.fm.");
				
				p["r"] = "S";
			}
			
			// Duration
			p["l"] = Duration.TotalSeconds.ToString();
			
			// Album
			p["b"] = Album;
			
			// Track number
			if (Number > 0)
				p["n"] = Number.ToString();
			else
				p["n"] = "";
			
			// MBID
			p["m"] = MBID;
			
			
			return p;
		}