feat(epg): support playlist-scoped sources

Add playlist-scoped EPG source support for M3U playlists.
This commit is contained in:
4gray authored and GitHub committed 2026-06-21 22:53:07 +02:00
1 parent 36a7ce9f3d
commit e801028005
71 files changed
+4876 -373

No files matched your search

@@ -375,6 +375,7 @@ export class ElectronService extends DataService {
_id: data.id,
},
playlistId: data.id,
refreshEpg: true,
})
);
+1
View File
@@ -171,6 +171,7 @@ export class PwaService extends DataService {
PlaylistActions.updatePlaylist({
playlist,
playlistId,
refreshEpg: true,
})
);
@@ -194,6 +194,9 @@ describe('SettingsComponent', () => {
beforeEach(waitForAsync(() => {
epgBridge = {
clearEpgData: jest.fn().mockResolvedValue({ success: true }),
clearEpgDataForSource: jest
.fn()
.mockResolvedValue({ success: true }),
forceFetchEpg: jest.fn().mockResolvedValue({ success: true }),
supportsDataManagement: true,
supportsImport: true,
@@ -291,6 +294,9 @@ describe('SettingsComponent', () => {
staleUrls: [],
}),
clearEpgData: jest.fn().mockResolvedValue({ success: true }),
clearEpgDataForSource: jest
.fn()
.mockResolvedValue({ success: true }),
fetchEpg: jest.fn().mockResolvedValue({ success: true }),
forceFetchEpg: jest.fn().mockResolvedValue({ success: true }),
getAppVersion: jest.fn().mockResolvedValue('1.0.0'),
@@ -1175,9 +1181,9 @@ describe('SettingsComponent', () => {
await fixture.whenStable();
expect(dashboardRails?.enabled).toBe(true);
expect(
component.settingsForm.get('dashboardRails.hero')?.enabled
).toBe(true);
expect(component.settingsForm.get('dashboardRails.hero')?.enabled).toBe(
true
);
});
it('should save settings on submit', async () => {