8.1 KiB
8.1 KiB
skyscraper5 TODO
- [DONE] LocalStreamReader (und rsr-server) ausgliedern, damit Main Assembly wieder in MSIL kompiliert werden kann.
- [DONE] LocalStreamReader als eigene Assembly (Library)
- [DONE] rsr-server als eigene eigene Assembly (Console Application)
- [DONE] dvbtmagic als eigene Assembly, hat ja nicht wirklich was mit skyscraping zu tun.
- AC3 Parser (kein Decoder) fur Ancillary Data
- MP2 Parser (kein Decoder) fur Ancillary Data
- AAC Parser (kein Decoder) fur Ancillary Data
- MPEG-2 Parser (kein Decoder) fur Auxillary Data
- H.264 Parser (kein Decoder) fur Auxillary Data
- H.265 Parser (kein Decoder) fur Auxillary Data
- [DONE] LNB Typen definieren, und in der UI einstellbar machen
- [DONE] LNB Typen sollten pro Tuner-Anschluss, nicht pro Satellit definiert werden.
- [DONE] Antennen Typen definieren, und in der UI einstellbar machen
- [DONE] GPS Position sollte ermittelt werden konnen.
- [DONE] manuell
- [DONE] direkt angeschlossenes Gerat per SerialPort
- [DONE] via TCP aus gpsd
- [DONE] via UDP Broadcast/Multicast
- [DONE] Blindscan-Jobs in Datenbank schreiben. (inkl. Tuner-ID/MAC, LNB-Typ, Antennen-Typ und GPS Daten)
- [DONE] Blindscan-Ergebnisse in Datenbank schreiben
- rudimanteren Java-Port
- (inkl. Disketten-Image for the lulz - keine Abhangigkeiten außer vielleicht Apache Commons ;) )
- [DONE] uberlegen, ob sich satbeams.com scrapen lasst.
- [DONE] Dabei einzelne Satelliten, Beams und Footprints dieser Beams in DB schreiben,
- und dann in der UI Moglichkeit bieten, anhand von GPS-Daten, Antennen-Typ und LNB-Typ zu ermitteln welche Beams empfangbar sind.
- [DONE] satbeams.com geht definitiv nicht.
- [DONE] Aber das da: https://genmap.lyngsat.org/server2/kml
- [DONE] Das ist ein JSON, welches eine Liste an KML-Files zuruckgibt.
- [DONE] KML File parsen trivial - ist XML.
- [DONE] mithilfe von https://gis.stackexchange.com/questions/42879/check-if-lat-long-point-is-within-a-set-of-polygons-using-google-maps/46720#46720 testen ob in shape
- Blockstream parsen. Dazu Blog-Post "Anatomy of Blockstream Satellite" zur Hilfe nehmen. ( https://destevez.net/2022/10/anatomy-of-blockstream-satellite/ )
- Client/Server-Architektur fur ScraperStorage
- [DONE] Architektur aufbauen, um Handler fur eingehende MPE/IP Pakete auszugliedern
- [DONE] APRS in eben jenes ausgliedern
- [DONE] Plugin-System so ausbauen, dass Assembly-Scanning nur noch an einer Stelle notwendig ist.
- [DONE] T2MI Packet Types
- [DONE] StreamTypeAutodetection
- [DONE] Behandlung des Gewinners nicht im SkyscraperContext sondern im Contestant selber, sonst ist's witzlos.
- [DONE] ScraperStorageFactoryConnectionManager
- [DONE] TunerFactoryConnectionManager
- [DONE] TsDescriptorUnpacker
- [DONE] Mpeg2ExtensionDescriptorConverter
- [DONE] UserDefinedDescriptorUnpacker
- [DONE] bereits vorhandene PrivateDataSpecifiers in eigene Assemblys auslagern
- [DONE] DvbExtensionDescriptorConverter
- [DONE] DsmCcMessageUnpacker
- [DONE] PushMacManagementMessage
- [DONE] GPS in der UI auswählbar machen
- [DONE] Optional Fenster mit GPS Daten einblenden lassen
- [DONE] GPS via GeoIP simulieren
- [DONE] Kabel-TV Frequenzlistengenerator
- [DONE] sauberen Exception-Tree aufbauen, mit Vererbung und allem drum und dran.
- Tests mit Code-Coverage
- [DONE] TS-Generator als System.IO.Stream
- [DONE] PAT-Generator
- [DONE] PMT-Generator
- [DONE] SDT-Generator
- [DONE] CAT-Generator
- [DONE] TDT-Generator
- [DONE] TOT-Generator
- [DONE] Namespaces aufräumen
- [DONE] StreamReader Versionen prüfen. Eventuell eine KnownIssues Funktion zum Server hinzufügen? (Beispiel: StreamReader 1.2.4.101 sehr gut, StreamReader 1.2.5.176 doof)
- [DONE] Dafür PE-Parser hinzufügen (um DLLs und EXEn zu parsen)
- [DONE] DLL-Versionsinfo aus PE lesen.
- [DONE] 1.2.5.194 -> bad
- [DONE] 1.2.5.176 -> bad
- [DONE] 1.2.4.101 -> good
- Inhalte von einer Datenbank in eine andere kopieren.
- [DONE] Im SDT Parser sollte der Message Descriptor geparst werden.
- [DONE] Die Messages sollten natürlich auch in eine Datenbank geschrieben werden.
- [DONE] In TestDrid: Kooperativer Blindscan. Scannen mit einer Karte, zappen mit einer anderen.
- Tuning Retries
- ExternalEsIdDescriptor implementieren.
- Natürlich auch in die Datenbank schreiben.
- Unbekanntes Text Encoding auf Eutelsat 7, 12648 H, MIS3
- [DONE] "Unknown Protocol" 50
- [DONE] "Unknown Protocal" 47
- [DONE] In MinioObjectStorage.cs bei Zeile 132 - behandeln dass nicht immer unbedingt eine MinioException rauskommt!
- skyscraper5.Ietf.Rfc971.InternetHeader sollte Validatable implementieren.
- In Testdrid: Einen Notizblock
- Wenn ein Blindscan false zurückgibt, aber dennoch Ergebnisse geliefert hat, diese trotzdem abklopfen.
- [DONE] Paketfiltersystem hinzufügen, statt Pakete manuell zu droppen.
- [DONE] Aufzeichnungssystem in den Paketfilter verlagern.
- [DONE] Scramble Paket Dropper
- Tester ob zwischen Scramble und Non-Scramble geswitcht wird.
- Den Screenshotter da dran hängen!
- [DONE] TEI Paket Dropper
- [DONE] Prioritätensystem da dran hängen. (Schließlich sollen die Pakete immer zuerst aufgezeichnet werden)
- [DONE] Skip x (512) Packets Filter
- PCR Monitor dorthin verlagern
- TCP Proxy dorthin verlagern
- Descriptor 0x2E (46) bei PMT (TsDescriptorUnpacker.cs, Zeile 81)
- Netzwerkschnittstelle einbauen
- PCAP Writer
- UDPDump
- TAP Adapter (siehe https://github.com/HBSnail/UniversalTunTapDriver/blob/master/README.md )
- /dev/null
- IP-in-IP Encapsulation, new Socket(AddressFamily.InterNetwork, Socket.Raw, ProtocolType.IP)
- [DONE] Intelsat Internet reverse engineeren. Gutes Beispiel auf Intelsat 68,5°E 12625/H. TS Header ist nicht 4 sondern 9 Bytes
- [DONE] Oder auf Intelsat 72,1°E 12718/H
- [DONE] Hängt möglicherweise mit Digital Devices BBFRAMES zusammen?
- Ja, tut es, deshalb auch BBFRAME Header parsen
- SeaweedFS als File-Storage implementieren
- In GSE und MPE Paketen:
- [DONE] DNS Responses parsen und daraus "lernen"
- [DONE] DNS Type 39
- UDP L2TP & L2F Pakete parsen & reingucken. (z.B. in skyscraper_20240830_1254_0235E_11620_H_5931.ts)
- NTP parsen (z.B. in 12551_h_intelsat_like_internet.ts)
- [DONE] Von hier klauen: https://github.com/kapetan/dns
- In IP-in-IP Pakete reingucken.
- In IPv6 Encapsulation Pakete reingucken.
- In GRE Pakete reingucken.
- In RFC3652 Pakete (Type 253) reingucken. Ist in der Payload das Offset 6 = 0x45, so ist ein getunneltes IPv4 Paket. :)
- [DONE] DNS Responses parsen und daraus "lernen"
- [DONE] ServiceListDescriptor im BatParser
- [DONE] ExtensionDescriptor 32, in DvbExtensionDescriptorConverter, Zeile 35
- [DONE] CAID 0x0649 in CaSystemNames
- [DONE] DNS Record Type 48 [ {Z:\Freebies\Datasets\SkyscraperLibrarian\DVB-S\E0008_Ku_Thor\skyscraper_20230404_2125_0010W_11876_V_19999.ts}, {Z:\Freebies\Datasets\SkyscraperLibrarian\DVB-S August 2024\Telstar15\skyscraper_20240826_1530_0150W_12596_V_44999.ts} ]
- [DONE] RCS Maps parsen
- [DONE] RCS Maps in DB schreiben
- [DONE] NuGet Caching Proxy
- [DONE] DNS Record Type 49213
- HLS Stream
- benötigt vorher einen PCR delayten Stream
- benötigt vorher einen Rate-Limited Stream
- benötigt vorher einen PCR delayten Stream
- [DONE] ScraperStorage ablösen, und stattdessen DataStorage und FileStorage einzeln setzen.
- .tar/.tar.gz File mit FilesystemStorage Inhalt importieren
- WGS84 zu Lat/Lon konvertieren - für RCS-Map.
- Beispielcode in C# hier: https://stackoverflow.com/a/16660841
- Benötigt vorher eine Ermittelung der UTM-Zone:
- Beispielcode zur Ermittelung der UTM-Zone (in R) hier: https://stackoverflow.com/a/68725547
- [DONE] IP-Protokoll 139 (skyscraper_20230408_1727_0390E_12739_H_3926_gse.ts)
- [DONE] DNS Record Type 20366 (skyscraper_20230410_1450_0660E_12626_V_38329.ts)
- [DONE] DNS IN ( {Z:\Freebies\Datasets\SkyscraperLibrarian\DVB-S August 2024\Telstar15\skyscraper_20240826_1530_0150W_12596_V_44999.ts} )
- [DONE] Für BigFiles: Gesplitteter Stream, für FAT32 und Freunde
- [DONE] Einen "Forget Blindscan Job" Button in der UI
- TransportProtocolDescriptor - unbekannte ProtocolIDs ohne Exception behandeln. (Vielleicht eine Warning?)
- Weitere Datenbanktreiber
- Microsoft SQL Server
- Oracle
- Cassandra
- SQLite
- MongoDB
- Redis
- IBM DB2
- Firebird
- ScraperStorage: Big File
- ScraperStorage: Big File mit Index