2025-07-05 22:26:42 +02:00

116 lines
3.4 KiB
C#

using skyscraper5.Dvb.Descriptors;
using skyscraper5.Dvb.Psi;
using skyscraper5.Dvb.Psi.Model;
using skyscraper8.EPGCollectorPort.SkyscraperSide;
using skyscraper8.Skyscraper.Scraper.Storage;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using skyscraper8.Skyscraper.Plugins;
namespace skyscraper5.Skyscraper.Scraper
{
internal class FreesatTunnelScraper : IBatEventHandler, ISdtEventHandler, ITdtEventHandler, ITotEventHandler, IEitEventHandler, INitEventHandler
{
public void OnBatBouquet(BatBouquet batBouquet)
{
throw new NotImplementedException();
}
public void OnBatTransportStream(BatBouquet batBouquet, BatTransportStream child)
{
throw new NotImplementedException();
}
public void OnSdtService(ushort transportStreamId, ushort originalNetworkId, SdtService sdtService)
{
throw new NotImplementedException();
}
public void OnTdtTime(DateTime utcTime)
{
if (!networkId.HasValue)
return;
if (!transportStreamId.HasValue)
return;
throw new NotImplementedException();
}
public void OnTotTime(DateTime utcTime, LocalTimeOffsetDescriptor ltod)
{
if (!networkId.HasValue)
return;
if (!transportStreamId.HasValue)
return;
throw new NotImplementedException();
}
private ushort? networkId;
public void SetNetworkId(ushort networkId)
{
throw new NotImplementedException();
}
private ushort? transportStreamId;
public void SetTransportStreamId(ushort transportStreamId)
{
throw new NotImplementedException();
}
public void SetNetworkId(ushort networkId, bool forceOverwrite = false)
{
throw new NotImplementedException();
}
public void OnNitTransportStream(ushort networkId, NitTransportStream transportStream)
{
if (!_dataStorage.TestForNitTransportStream(networkId, transportStream))
{
_logger.Log(PluginLogLevel.Info, "NIT Network {0} Transport Stream {1}", networkId, transportStream.TransportStreamId);
_dataStorage.StoreNitTransportStream(networkId, transportStream);
}
}
public void OnNitNetwork(NitNetwork nitNetwork)
{
if (!_dataStorage.TestNitNetwork(nitNetwork))
{
_logger.Log(PluginLogLevel.Info, "NIT Network {0}", nitNetwork.NetworkId);
_dataStorage.StoreNitNetwork(nitNetwork);
}
}
private EitEvent[] runningEvents;
public void OnEitEvent(EitEvent eitEvent)
{
if (_dataStorage.StoreEitEvent(eitEvent))
{
_logger.Log(PluginLogLevel.Info, "EIT Event: {0}", eitEvent.EventName);
}
if (eitEvent.RunningStatus == RunningStatus.Running)
{
if (runningEvents == null)
runningEvents = new EitEvent[UInt16.MaxValue];
runningEvents[eitEvent.ServiceId] = eitEvent;
}
}
private PluginLogger _logger;
private IFreesatTunnelDataStorage _dataStorage;
public void ConnectToStorage(object[] getPluginConnector)
{
if (_dataStorage == null)
{
_dataStorage = new FreesatTunnelDataStorage(getPluginConnector);
}
_logger = PluginLogManager.GetLogger(this.GetType());
}
}
}