Jump to content

Hide series from resume in .Net plugin


Recommended Posts

VicMoore
Posted

@pünktchenI appreciate the help.  Can I help you with anything?  I have added many new features to myTV.  I am not interested in putting out a production level version. If you are interested, just let me know. I just enjoy the programming and learning new things. If you have time take a look at the new code for finding duplicates in the Emby libraries and the way "Starter Channels" are added.

Vic  

VicMoore
Posted (edited)

 

@pünktchenThe code below is what I ended up using

Thanks, Vic

                //
                //   get the UserId and program playing Id
                //
                string UserId = e.Session.UserId;
                long UserInternalId = e.Session.UserInternalId;
                //
                BaseItem Item = e.Item;

                User user = userManager.GetUserById(UserInternalId);

                var nextUpQuery = new NextUpQuery()
                {
                    Limit = 1,
                    SeriesId = Item.DisplayParent.DisplayParentId,
                    UserId = UserInternalId
                };
                var nextEpisodeItem = TVSeriesManager.GetNextUp(nextUpQuery, user, new MediaBrowser.Controller.Dto.DtoOptions()).Items.FirstOrDefault();
                var userDataNextEpisodeItem = userDataManager.GetUserData(user, nextEpisodeItem);
                userDataNextEpisodeItem.HideFromResume = true;
                userDataManager.SaveUserData(UserInternalId, nextEpisodeItem, userDataNextEpisodeItem, UserDataSaveReason.UpdateHideFromResume, new CancellationToken());
 

Edited by VicMoore
VicMoore
Posted

Finale code with everything included

            string UserId = e.Session.UserId;
            long UserInternalId = e.Session.UserInternalId;

            BaseItem Item = e.Item;
            User user = userManager.GetUserById(UserInternalId);

            if (Item.IndexNumber.HasValue)
            {
                var nextUpQuery = new NextUpQuery()
                {
                    Limit = 1,
                    SeriesId = Item.DisplayParent.DisplayParentId,
                    UserId = UserInternalId
                };
                BaseItem nextEpisodeItem = TVSeriesManager.GetNextUp(nextUpQuery, user, new MediaBrowser.Controller.Dto.DtoOptions()).Items.FirstOrDefault();
                this.Logger.Info("======myTv STOP -- Next Episode = " + nextEpisodeItem.Name);
                UserItemData userDataNextEpisodeItem = userDataManager.GetUserData(user, nextEpisodeItem);
                //this.Logger.Info("======myTv STOP -- Next Episode, Existing HideFromResume status = " + userDataNextEpisodeItem.HideFromResume);
                if (!userDataNextEpisodeItem.HideFromResume)
                {
                    this.Logger.Info("======myTv STOP -- Next Episode, HideFromResume");

                    nextEpisodeItem.UpdateHideFromResume(user, userDataNextEpisodeItem, true);
                    //userDataNextEpisodeItem.HideFromResume = true;
                    userDataManager.SaveUserData(UserInternalId, nextEpisodeItem, userDataNextEpisodeItem, UserDataSaveReason.UpdateHideFromResume, new CancellationToken());
                }
            }
            else
            {
                //
                //   get the user data for the played movie
                //
                this.Logger.Info("======myTv STOP -- HideFromResume Video = " + Item.Name);
                UserItemData UserData = userDataManager.GetUserData(UserId, Item);
                UserData.HideFromResume = true;
                //UserData.Played = false;
                userDataManager.SaveUserData(UserInternalId, Item, UserData, UserDataSaveReason.UpdateHideFromResume, new CancellationToken());
            }

Posted

Try calling item.UpdateHideFromResume instead of setting it directly.

void UpdateHideFromResume(User user, UserItemData userData, bool hide)

Then make sure to save the user data object after.

VicMoore
Posted

@LukeYes I changed the code to do just that. Now it works perfectly for both Episodes and Movies.  I appreciate your comment.

Thanks again, Vic

  • Thanks 1

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...