Added tools to make it easier to create a good PDF

This commit is contained in:
2023-05-09 10:49:48 +02:00
parent a75620a67e
commit 985d1bd71d
276 changed files with 194141 additions and 4 deletions
+31 -1
View File
@@ -397,6 +397,8 @@ Cette option bien que complexe et difficile à implémenter propose une solution
Simuler un navigateur internet n'est pas forcément très difficile. Chromium par exemple offre une panoplie d'outils natifs et énormément de librairies existent permettant de facilement et en quelques lignes simuler un Google Chrome et le contrôler sans afficher son UI.
!["Chromium logo"](./Images/Screens/ChromiumLogo.png){: style="height:150px;width:150px"}
Cependant. La F1TV n'utilise pas simplement un player HTML5 basique. Elle utilise un service de streaming BitMovin qui permet de fournir un stream de bonne qualité et surtout qui implémente les DRM (Digital Right Management)
Cela veut dire que quand on ouvre un flux de la F1TV sur chrome et que l'on essaie de prendre une capture d'écran, le player se met en noir et ne permet pas de voir quoi que ce soit (Certaines version de Chrome le permettent pendant quelques semaines avant de bloquer à nouveau). Ce qui dans notre cas est un immense problème. Mais Firefox ne nous bloque pas de cette facon et il est donc assez facile de passer outre.
@@ -409,6 +411,8 @@ Cependant Firefox de pas sa nature Open Source utilise "OpenH264" pour lire ces
Sauf que Firefox n'est pas aussi facilement émulé que chrome et cela réduit notre choix de librairies à ... Une seule... Qui est Selenium. (Il existe aussi Pupetteer C# mais j'ai rencontré énormément de soucis avec cette dernière dès que je voulais lancer une vidéo)
!["Firefox Developper logo"](./Images/Screens/FirefoxLogo.png){: style="height:150px;width:150px"}
Mais même si la documentation est plutôt maigre parfois, c'est une bonne librairie qui permet de très bien contrôler une instance de chrome ou de Firefox.
#### Contrôler le navigateur
@@ -423,12 +427,38 @@ Durant cette explication je vais parler à un moment de Cookies, ne vous en fait
Recette de cuisine pour récupèrer des images de la F1TV :
-
1. Démarrer une instance de navigateur avec les bons arguments
2. Ajouter les bons paramêtres pour ne pas se faire flag comme un bot
3. Naviguer sur la page de la F1TV
4. Ajouter les cookies de connexion pour avoir accès au contenu de la page
5. Naviguer sur la page du Grand Prix demandé
6. Attendre un peu que la page se charge
7. Cliquer sur l'invite de cookies
8. Attendre cinq secondes le temps que la page se reload
9. Cliquer sur le bouton qui permet de passer du feed live à la DATA CHANNEL
10. Appuyer sur Espace pour faire apparaitre le bouton d'accès au paramêtres
11. Cliquer sur le menu déroulant des résolution
12. Trouver l'option 1080P et la selectionner
13. Cliquer sur le bouton qui met la vidéo en plein écran
14. Prendre de screenshots à intervales réguliers
Pour faire toutes ces actions on doit récupèrer les éléments selon leur ID ou leur classe.
Voici un exemple qui récupère le bouton de plein écran et qui clique dessus :
```Csharp
IWebElement fullScreenButton = Driver.FindElement(By.ClassName("bmpui-ui-fullscreentogglebutton"));
fullScreenButton.Click();
```
#### Récupèrer les cookies ?
[FINIR CETTE EXPLICATIOn]
#### Calibration
[AJOUTER EXPLICATION]
### OCR
Ici je vais parler de la seconde partie du projet qui parle du processus de reconnaissance de data sur une image du feed DATA de la F1TV.