番組がリスケジュールされた際に、必要な番組まで削除される不具合を修正 #134
Merged
+68
−16
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
バグの内容
番組スケジュールが変更になった際に放送時間の重なりをチェックして番組を削除しているが、必要な番組まで削除されてしまう
バグの原因
例えば、スポーツ番組などで放送時間が延長された場合、後続番組との重なりは避けられないので、"Forrowing"の番組も含めて削除される場合がある
以降受信するEIT[p/f]やEIT[schedle]で番組情報が復活されることが望まれるが、重なりが生じて削除された番組はProgramクラスが保持している情報にすでに存在しないため、以下に示すコードの229行目の"set"が失敗する(例外としてはEIT[schedule]からEIT[p/f]へテープルが移行した番組はこの限りではない)
Mirakurun/src/Mirakurun/EPG.ts
Lines 217 to 236 in 31b22cc
また、Following番組の開始が早まった場合、EIT[p]よりもEIT[f]を先に受信してしまうと、Following番組でPresent番組が削除されてしまう
Mirakurun/src/Mirakurun/Program.ts
Lines 187 to 193 in 31b22cc
改善内容