Exemple #1
0
		internal override RequestParameters getParams ()
		{
			RequestParameters p = new dotLastfm.RequestParameters();
			p["playlistURL"] = PlaylistUrl;
			
			return p;
		}
Exemple #2
0
		internal override RequestParameters getParams()
		{
			RequestParameters p = new dotLastfm.RequestParameters();
			p["user"] = User.Name;
			
			return p;
		}
Exemple #3
0
        internal override RequestParameters getParams()
        {
            RequestParameters p = new dotLastfm.RequestParameters();
            p["playlistURL"] = PlaylistUrl;

            return p;
        }
Exemple #4
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)
            {
                dotLastfm.RequestParameters p = new dotLastfm.RequestParameters(line);

                // Append the "[0]" to the key names
                dotLastfm.RequestParameters np = new dotLastfm.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);
        }
Exemple #5
0
		internal override RequestParameters getParams ()
		{
			RequestParameters p = new dotLastfm.RequestParameters();
			p["venue"] = ID.ToString();
			
			return p;
		}
Exemple #6
0
		internal override RequestParameters getParams ()
		{
			RequestParameters p = new dotLastfm.RequestParameters();
			p["artist"] = Artist.Name;
			
			return p;
		}
Exemple #7
0
		internal override RequestParameters getParams ()
		{
			RequestParameters p = new dotLastfm.RequestParameters();
			p["country"] = Name;
			
			return p;
		}
Exemple #8
0
        internal override RequestParameters getParams()
        {
            RequestParameters p = new dotLastfm.RequestParameters();

            p["tag"] = this.Name;

            return(p);
        }
Exemple #9
0
		internal override RequestParameters getParams ()
		{
			RequestParameters p = new dotLastfm.RequestParameters();
			p["track"] = Track.Title;
			p["artist"] = Track.Artist.Name;

			return p;
		}
Exemple #10
0
        internal override RequestParameters getParams()
        {
            RequestParameters p = new dotLastfm.RequestParameters();

            p["user"] = Name;

            return(p);
        }
Exemple #11
0
        internal override RequestParameters getParams()
        {
            RequestParameters p = new dotLastfm.RequestParameters();

            p["artist"] = Artist.Name;

            return(p);
        }
Exemple #12
0
        internal override RequestParameters getParams()
        {
            RequestParameters p = new dotLastfm.RequestParameters();

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

            return(p);
        }
Exemple #13
0
		internal override RequestParameters getParams ()
		{
			RequestParameters p = new dotLastfm.RequestParameters();
			p["type1"] = firstType;
			p["type2"] = secondType;
			p["value1"] = firstValue;
			p["value2"] = secondValue;
			
			return p;
		}
Exemple #14
0
        internal override RequestParameters getParams()
        {
            RequestParameters p = new dotLastfm.RequestParameters();

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

            return(p);
        }
Exemple #15
0
        internal override RequestParameters getParams()
        {
            RequestParameters p = new dotLastfm.RequestParameters();

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

            return(p);
        }
Exemple #16
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 dotLastfm.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));
        }
Exemple #17
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 dotLastfm.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));
        }
Exemple #18
0
        /// <summary>
        /// Complete the web authentication.
        /// </summary>
        public void AuthenticateViaWeb()
        {
            RequestParameters p = new dotLastfm.RequestParameters();

            p["token"] = token;

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

            XmlDocument doc = r.execute();

            SessionKey = doc.GetElementsByTagName("key")[0].InnerText;
        }
Exemple #19
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 dotLastfm.RequestParameters();

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

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

            XmlDocument doc = request.execute();

            SessionKey = doc.GetElementsByTagName("key")[0].InnerText;
        }
Exemple #20
0
        private XmlNode getNode()
        {
            RequestParameters p = new dotLastfm.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);
        }
Exemple #21
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 dotLastfm.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));
        }
Exemple #22
0
        internal RequestParameters getParameters()
        {
            RequestParameters p = new dotLastfm.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);
        }
		/// <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)
			{
				dotLastfm.RequestParameters p = new dotLastfm.RequestParameters(line);

				// Append the "[0]" to the key names
				dotLastfm.RequestParameters np = new dotLastfm.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);
		}
Exemple #24
0
		internal RequestParameters getParameters()
		{
			RequestParameters p = new dotLastfm.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;
		}