Ejemplo n.º 1
0
        /// <summary>
        /// Gets any outstanding error messages for a given user
        /// </summary>
        /// <param name="userid"></param>
        /// <returns></returns>
        public static async Task <VOption <IList <SpotifyError> > > GetSpotifyErrorMessages(string userid)
        {
            List <SpotifyError> errors = new List <SpotifyError>();

            using (SqliteConnection conn = new SqliteConnection(AppConstants.ConnectionString)) {
                await conn.OpenAsync();

                try {
                    using (SqliteCommand comm = conn.CreateCommand()) {
                        comm.CommandText = "SELECT ErrorMessage, ErrorCode FROM SpotifyErrors WHERE SpotifyUserId=@sid";
                        comm.Parameters.Add("@sid", SqliteType.Text).Value = userid;

                        DbDataReader reader = await comm.ExecuteReaderAsync();

                        while (await reader.ReadAsync())
                        {
                            string       erm  = reader.GetString(0);
                            int          erc  = reader.GetInt32(1);
                            SpotifyError serr = new SpotifyError(userid, erc, erm);
                            errors.Add(serr);
                        }
                        return(new VOption <IList <SpotifyError> >(errors));
                    }
                }
                catch (Exception e) {
                    logger.Error(e, "Critical - failed to get Spotify errors for user");
                    return(new VOption <IList <SpotifyError> >(ErrorCodes.DatabaseWriteError, "Failed to query database to retrieve Spotify errors for user"));
                }
            }
        }
Ejemplo n.º 2
0
        public override async void LoggedIn(SpotifySession session, SpotifyError error)
        {
            base.LoggedIn(session, error);
            await WaitForBool(session.User().IsLoaded);

            session.PreferredBitrate(BitRate._320k);
        }
Ejemplo n.º 3
0
        public static void CheckError(SpotifyError aError)
        {
            if (aError == SpotifyError.Ok)
            {
                return;
            }
            string message = Utf8ToString(NativeMethods.sp_error_message(aError));

            throw new SpotifyException(aError, message);
        }
Ejemplo n.º 4
0
        public override async void LoggedIn(SpotifySession session, SpotifyError error)
        {
            if (error == SpotifyError.Ok)
            {
                await SpotifyObject.WaitForInitialization(session.User().IsLoaded);

                _Session.PreferredBitrate(BitRate._320k);
            }

            _LoggedInCallback(error);
        }
        public void LoggedIn(ISpotifySession session, SpotifyError error)
        {
            Log.Debug("LoggedIn");

            if (error != SpotifyError.Ok)
            {
                _bus.PublishAsync(new LoginFailedEvent());
                return;
            }

            _bus.PublishAsync(new LoggedInEvent());
        }
        public void LoggedIn(ISpotifySession session, SpotifyError error)
        {
            Log.Debug("LoggedIn");

            if (error != SpotifyError.Ok)
            {
                _bus.PublishAsync(new LoginFailedEvent());
                return;
            }

            _bus.PublishAsync(new LoggedInEvent());
        }
Ejemplo n.º 7
0
        private void HandleSpotifyError(SpotifyError error)
        {
            switch (error)
            {
            case SpotifyError.BadUsernameOrPassword:
                // ErrorManager.GetInstance().AddError(new SAMIUserException("Spotify's credentials were not correct. Please check Spotify's configuration and relaunch Sammie."));
                _isValid = false;
                break;

            case SpotifyError.ApiInitializationFailed:
            case SpotifyError.ApplicationBanned:
            case SpotifyError.BadApiVersion:
            case SpotifyError.BadApplicationKey:
            case SpotifyError.BadUserAgent:
            case SpotifyError.CantOpenTraceFile:
            case SpotifyError.ClientTooOld:
            case SpotifyError.InboxIsFull:
            case SpotifyError.IndexOutOfRange:
            case SpotifyError.InvalidArgument:
            case SpotifyError.InvalidDeviceId:
            case SpotifyError.InvalidIndata:
            case SpotifyError.IsLoading:
            case SpotifyError.LastfmAuthError:
            case SpotifyError.MissingCallback:
            case SpotifyError.NetworkDisabled:
            case SpotifyError.NoCache:
            case SpotifyError.NoCredentials:
            case SpotifyError.NoStreamAvailable:
            case SpotifyError.NoSuchUser:
            case SpotifyError.OfflineDiskCache:
            case SpotifyError.OfflineExpired:
            case SpotifyError.OfflineLicenseError:
            case SpotifyError.OfflineLicenseLost:
            case SpotifyError.OfflineNotAllowed:
            case SpotifyError.OfflineTooManyTracks:
            case SpotifyError.OtherPermanent:
            case SpotifyError.OtherTransient:
            case SpotifyError.PermissionDenied:
            case SpotifyError.SystemFailure:
            case SpotifyError.TrackNotPlayable:
            case SpotifyError.UnableToContactServer:
            case SpotifyError.UserBanned:
            case SpotifyError.UserNeedsPremium:
                _isValid = false;
                break;

            case SpotifyError.Ok:
            default:
                break;
            }
        }
Ejemplo n.º 8
0
        public override void LoggedIn(SpotifySession session, SpotifyError error)
        {
            if (error != SpotifyError.Ok)
            {
                IsFinished = true;
                Console.WriteLine("Failed to log in to Spotify: {0}", Spotify.ErrorMessage(error));
            }
            var    me          = session.User();
            string displayName = me.IsLoaded() ? me.DisplayName() : me.CanonicalName();
            string username    = session.UserName();
            var    cc          = session.UserCountry();

            Console.Error.WriteLine("Logged in to Spotify as user {0} [{1}] (registered in country: {2})", username, displayName, Spotify.CountryString(cc));
            iReader.RequestInput("> ");
            // TODO: self test
        }
Ejemplo n.º 9
0
        public override async void LoggedIn(SpotifySession session, SpotifyError error)
        {
            if (error != SpotifyError.Ok)
            {
                if (OnLoginResult != null)
                {
                    OnLoginResult(false);
                }
                return;
            }

            base.LoggedIn(session, error);
            await WaitForBool(session.User().IsLoaded);

            session.PreferredBitrate(BitRate._320k);
        }
Ejemplo n.º 10
0
        public override async void LoggedIn(SpotifySession session, SpotifyError error)
        {
            if (error != SpotifyError.Ok)
            {
                if (OnLoginResult != null)
                {
                    OnLoginResult(false);
                }
                return;
            }

            // Autenticate _spotifyWeb
            _spotifyWeb = new SpotifyWeb(GUI.frmMain.configuration.GetConfiguration("clientId"), GUI.frmMain.configuration.GetConfiguration("clientSecret"));
            _spotifyWeb.Auth();

            // SpotifySharp log in
            base.LoggedIn(session, error);
            await WaitForBool(session.User().IsLoaded);

            session.PreferredBitrate(BitRate._320k);
        }
Ejemplo n.º 11
0
 public virtual void StreamingError(SpotifySession @session, SpotifyError @error)
 {
 }
Ejemplo n.º 12
0
 public virtual void ScrobbleError(SpotifySession @session, SpotifyError @error)
 {
 }
Ejemplo n.º 13
0
 static void connection_error(IntPtr @session, SpotifyError @error)
 {
     var context = GetListener(session);
     context.Listener.ConnectionError(context.Session,error);
 }
Ejemplo n.º 14
0
 public virtual void ScrobbleError(SpotifySession @session, SpotifyError @error)
 {
 }
Ejemplo n.º 15
0
 public SpotifyException(SpotifyError error, string message) : base(message)
 {
     Error = error;
 }
Ejemplo n.º 16
0
 public static string ErrorMessage(SpotifyError error)
 {
     return(SpotifyMarshalling.Utf8ToString(NativeMethods.sp_error_message(error)));
 }
Ejemplo n.º 17
0
 public SpotifyException(SpotifyError error)
 {
     Error = error;
 }
Ejemplo n.º 18
0
 public virtual void ConnectionError(SpotifySession @session, SpotifyError @error)
 {
 }
Ejemplo n.º 19
0
        /// <summary>
        /// Writes a Spotify Error for the given user
        /// </summary>
        /// <param name="aspnetuserid"></param>
        /// <param name="tracks"></param>
        /// <returns></returns>
        public static async Task <VOption <bool> > WriteSpotifyErrorForUser(string aspnetuserid, string spotifyid, SpotifyError serr)
        {
            using (SqliteConnection conn = new SqliteConnection(AppConstants.ConnectionString)) {
                await conn.OpenAsync();

                using (SqliteTransaction t = conn.BeginTransaction()) {
                    try {
                        using (SqliteCommand comm = conn.CreateCommand()) {
                            comm.CommandText = "INSERT OR REPLACE INTO SpotifyErrors (AspNetUserId, SpotifyUserId, ErrorMessage, ErrorCode) VALUES (@auid, @sid, @erm, @erc)";
                            comm.Parameters.Add("@auid", SqliteType.Text).Value   = aspnetuserid;
                            comm.Parameters.Add("@sid", SqliteType.Text).Value    = spotifyid;
                            comm.Parameters.Add("@erm", SqliteType.Text).Value    = serr.ErrorMessage;
                            comm.Parameters.Add("@erc", SqliteType.Integer).Value = serr.ErrorCode;

                            await comm.ExecuteNonQueryAsync();
                        }
                        t.Commit();
                        logger.Info("Successfully wrote user spotify error");
                        return(new VOption <bool>());
                    }
                    catch (Exception e) {
                        logger.Error(e, "Failed to write a users spotify error");
                        t.Rollback();
                        return(new VOption <bool>(ErrorCodes.DatabaseWriteError, "Failed to write a users spotify error"));
                    }
                }
            }
        }
 public void ConnectionError(ISpotifySession session, SpotifyError error)
 {
     Log.Debug("ConnectionError");
 }
Ejemplo n.º 21
0
 static void StreamingError(IntPtr @session, SpotifyError @error)
 {
     var context = GetListener(session);
     context.Listener.StreamingError(context.Session,error);
 }
Ejemplo n.º 22
0
 static void OfflineError(IntPtr @session, SpotifyError @error)
 {
     var context = GetListener(session);
     context.Listener.OfflineError(context.Session,error);
 }
Ejemplo n.º 23
0
 static void logged_in(IntPtr @session, SpotifyError @error)
 {
     var context = GetListener(session);
     context.Listener.LoggedIn(context.Session, error);
 }
Ejemplo n.º 24
0
 public virtual void LoggedIn(SpotifySession @session, SpotifyError @error)
 {
 }
Ejemplo n.º 25
0
 public SpotifyException(SpotifyError error, string message)
     : base(message)
 {
     Error = error;
 }
Ejemplo n.º 26
0
 public override void LoggedIn(SpotifySession session, SpotifyError error)
 {
     if (error != SpotifyError.Ok)
     {
         IsFinished = true;
         Console.WriteLine("Failed to log in to Spotify: {0}", Spotify.ErrorMessage(error));
     }
     var me = session.User();
     string displayName = me.IsLoaded() ? me.DisplayName() : me.CanonicalName();
     string username = session.UserName();
     var cc = session.UserCountry();
     Console.Error.WriteLine("Logged in to Spotify as user {0} [{1}] (registered in country: {2})", username, displayName, Spotify.CountryString(cc));
     iReader.RequestInput("> ");
     // TODO: self test
 }
Ejemplo n.º 27
0
 public override void ConnectionError(SpotifySession session, SpotifyError error)
 {
     Console.Error.WriteLine("Connection to Spotify failed: {0}", Spotify.ErrorMessage(error));
 }
Ejemplo n.º 28
0
 public SpotifyException(SpotifyError error)
 {
     Error = error;
 }
 public void ScrobbleError(ISpotifySession session, SpotifyError error)
 {
     Log.Debug("ScrobbleError");
 }
Ejemplo n.º 30
0
 public override void ScrobbleError(SpotifySession session, SpotifyError error)
 {
     Console.Error.WriteLine("Scrobble failure: {0}", Spotify.ErrorMessage(error));
 }
 public void ConnectionError(ISpotifySession session, SpotifyError error)
 {
     Log.Debug("ConnectionError");
 }
 public void OfflineError(ISpotifySession session, SpotifyError error)
 {
     Log.Debug("OfflineError");
 }
Ejemplo n.º 33
0
 public virtual void StreamingError(SpotifySession @session, SpotifyError @error)
 {
 }
 public void StreamingError(ISpotifySession session, SpotifyError error)
 {
     Log.Debug("StreamingError");
 }
Ejemplo n.º 35
0
        static void connection_error(IntPtr @session, SpotifyError @error)
        {
            var context = GetListener(session);

            context.Listener.ConnectionError(context.Session, error);
        }
Ejemplo n.º 36
0
 public virtual void LoggedIn(SpotifySession @session, SpotifyError @error)
 {
 }
Ejemplo n.º 37
0
 public virtual void OfflineError(SpotifySession @session, SpotifyError @error)
 {
 }
Ejemplo n.º 38
0
        static void logged_in(IntPtr @session, SpotifyError @error)
        {
            var context = GetListener(session);

            context.Listener.LoggedIn(context.Session, error);
        }
Ejemplo n.º 39
0
 public override void ScrobbleError(SpotifySession session, SpotifyError error)
 {
     Console.Error.WriteLine("Scrobble failure: {0}", Spotify.ErrorMessage(error));
 }
Ejemplo n.º 40
0
        static void ScrobbleError(IntPtr @session, SpotifyError @error)
        {
            var context = GetListener(session);

            context.Listener.ScrobbleError(context.Session, error);
        }
Ejemplo n.º 41
0
 public SpotifyException(SpotifyError error) : base(error.Message)
 {
     Error = error;
 }
Ejemplo n.º 42
0
 public virtual void ConnectionError(SpotifySession @session, SpotifyError @error)
 {
 }
Ejemplo n.º 43
0
 public override async void LoggedIn(SpotifySession session, SpotifyError error)
 {
     base.LoggedIn(session, error);
     await WaitForBool(session.User().IsLoaded);
     session.PreferredBitrate(BitRate._320k);
 }
Ejemplo n.º 44
0
 public virtual void OfflineError(SpotifySession @session, SpotifyError @error)
 {
 }
Ejemplo n.º 45
0
 public override void ConnectionError(SpotifySession session, SpotifyError error)
 {
     base.ConnectionError(session, error);
 }
Ejemplo n.º 46
0
 public override void LoggedIn(SpotifySession session, SpotifyError error)
 {
     HandleSpotifyError(error);
     _loggedInHandle.Set();
 }
Ejemplo n.º 47
0
 public override void ScrobbleError(SpotifySession session, SpotifyError error)
 {
     base.ScrobbleError(session, error);
 }
Ejemplo n.º 48
0
 public override void ConnectionError(SpotifySession session, SpotifyError error)
 {
     base.ConnectionError(session, error);
 }
Ejemplo n.º 49
0
 public override void ConnectionError(SpotifySession session, SpotifyError error)
 {
     Console.Error.WriteLine("Connection to Spotify failed: {0}", Spotify.ErrorMessage(error));
 }
Ejemplo n.º 50
0
 public override void OfflineError(SpotifySession session, SpotifyError error)
 {
     base.OfflineError(session, error);
 }
Ejemplo n.º 51
0
 public override void ScrobbleError(SpotifySession session, SpotifyError error)
 {
     base.ScrobbleError(session, error);
 }
Ejemplo n.º 52
0
 public override void OfflineError(SpotifySession session, SpotifyError error)
 {
     base.OfflineError(session, error);
 }
Ejemplo n.º 53
0
 public override void StreamingError(SpotifySession session, SpotifyError error)
 {
     base.StreamingError(session, error);
 }
Ejemplo n.º 54
0
 public override void StreamingError(SpotifySession session, SpotifyError error)
 {
     base.StreamingError(session, error);
 }
Ejemplo n.º 55
0
        public override async void LoggedIn(SpotifySession session, SpotifyError error)
        {
            if (error != SpotifyError.Ok)
            {
                if (OnLoginResult != null)
                    OnLoginResult(false);
                return;
            }

            base.LoggedIn(session, error);
            await WaitForBool(session.User().IsLoaded);
            session.PreferredBitrate(BitRate._320k);
        }