public System.IO.Stream TraktScrobble(string animeId, string type, string progress, string status)
        {
            Respond rsp = new Respond();

            int typeTrakt;
            int statusTrakt;

            Providers.TraktTV.ScrobblePlayingStatus statusTraktV2 = Providers.TraktTV.ScrobblePlayingStatus.Start;
            float progressTrakt;

            int.TryParse(status, out statusTrakt);

            switch (statusTrakt)
            {
            case (int)Providers.TraktTV.ScrobblePlayingStatus.Start:
                statusTraktV2 = Providers.TraktTV.ScrobblePlayingStatus.Start;
                break;

            case (int)Providers.TraktTV.ScrobblePlayingStatus.Pause:
                statusTraktV2 = Providers.TraktTV.ScrobblePlayingStatus.Pause;
                break;

            case (int)Providers.TraktTV.ScrobblePlayingStatus.Stop:
                statusTraktV2 = Providers.TraktTV.ScrobblePlayingStatus.Stop;
                break;
            }

            float.TryParse(progress, out progressTrakt);
            progressTrakt = progressTrakt / 10;

            rsp.code = 404;

            int.TryParse(type, out typeTrakt);
            switch (typeTrakt)
            {
            //1
            case (int)Providers.TraktTV.ScrobblePlayingType.movie:
                rsp.code = Providers.TraktTV.TraktTVHelper.Scrobble(Providers.TraktTV.ScrobblePlayingType.movie, animeId, statusTraktV2, progressTrakt);
                break;

            //2
            case (int)Providers.TraktTV.ScrobblePlayingType.episode:
                rsp.code = Providers.TraktTV.TraktTVHelper.Scrobble(Providers.TraktTV.ScrobblePlayingType.episode, animeId, statusTraktV2, progressTrakt);
                break;

            //error
            default:
                rsp.code = 500;
                break;
            }

            return(KodiHelper.GetStreamFromXmlObject(rsp));
        }
        public int TraktScrobble(int animeId, int type, int progress, int status)
        {
            try
            {
                Providers.TraktTV.ScrobblePlayingStatus statusTraktV2 = Providers.TraktTV.ScrobblePlayingStatus.Start;

                switch (status)
                {
                case (int)Providers.TraktTV.ScrobblePlayingStatus.Start:
                    statusTraktV2 = Providers.TraktTV.ScrobblePlayingStatus.Start;
                    break;

                case (int)Providers.TraktTV.ScrobblePlayingStatus.Pause:
                    statusTraktV2 = Providers.TraktTV.ScrobblePlayingStatus.Pause;
                    break;

                case (int)Providers.TraktTV.ScrobblePlayingStatus.Stop:
                    statusTraktV2 = Providers.TraktTV.ScrobblePlayingStatus.Stop;
                    break;
                }

                bool isValidProgress = float.TryParse(progress.ToString(), out float progressTrakt);

                if (isValidProgress)
                {
                    switch (type)
                    {
                    // Movie
                    case (int)Providers.TraktTV.ScrobblePlayingType.movie:
                        return(Providers.TraktTV.TraktTVHelper.Scrobble(
                                   Providers.TraktTV.ScrobblePlayingType.movie, animeId.ToString(),
                                   statusTraktV2, progressTrakt));

                    // TV episode
                    case (int)Providers.TraktTV.ScrobblePlayingType.episode:
                        return(Providers.TraktTV.TraktTVHelper.Scrobble(
                                   Providers.TraktTV.ScrobblePlayingType.episode,
                                   animeId.ToString(), statusTraktV2, progressTrakt));
                    }
                }
                return(500);
            }
            catch (Exception ex)
            {
                logger.Error(ex, ex.ToString());
                return(500);
            }
        }