VicMoore 754 Posted May 28, 2025 Posted May 28, 2025 @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 754 Posted May 28, 2025 Posted May 28, 2025 (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 May 28, 2025 by VicMoore
VicMoore 754 Posted May 28, 2025 Posted May 28, 2025 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()); }
Luke 42077 Posted May 28, 2025 Posted May 28, 2025 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 754 Posted May 28, 2025 Posted May 28, 2025 @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 1
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now