Make the program easier to use (auto configuration for the authentication token)

master v1.0.0
djib 3 years ago
parent 4965e64627
commit 04bc2d263c
  1. 17
      FreeboxMoviePlanner.py
  2. 35
      Readme.md
  3. 10
      config.template.json

@ -9,6 +9,7 @@ import json
import logging
import re
import requests
import socket
import textwrap
import tmdbsimple
from pyfbx.pyfbx import Fbx
@ -135,6 +136,8 @@ class FreeboxMoviePlanner:
logging.debug('Opening config file: config.json')
with open('config.json') as config_file:
self.config = json.load(config_file)
if(len(self.config['freebox-session-token']) != 64):
self.createAuthenticationToken()
tmdbsimple.API_KEY = self.config['tmdb-api']
self.movies = movies
@ -154,6 +157,20 @@ class FreeboxMoviePlanner:
self.programMovies()
self.checkForConflicts()
def createAuthenticationToken(self):
logging.info('Creating authentication token')
self.freebox = Fbx(nomdns=True)
hostname = socket.gethostname()
print("You don't seem to have an authentication token.")
print("I will now atempt to create one.")
print("Please go to your Freebox and accept the authentication.")
token = self.freebox.register(
"FreeboxMoviePlanner", "FreeboxMoviePlanner", hostname
)
self.config['freebox-session-token'] = token
with open('config.json', 'w') as outfile:
json.dump(self.config, outfile, indent=4, sort_keys=True)
def __repr__(self):
result = 'FreeboxMoviePlanner <Movies:\n'
for movie in self.movies:

@ -24,33 +24,32 @@ Concrètement, l'outil effectue les opérations suivantes :
Installation
---
Pour utiliser **FreeboxMoviePlanner** il vous faut Python, ainsi que les 3 packages suivants (à installer par exemple avec `pip install [nom du packet]` :
### À partir de l'exécutable
[Téléchargez](https://djib.fr/djib/FreeboxMoviePlanner/releases) le fichier qui correspond à votre système d'exploitation (Linux ou Windows) dans le répertoire `dist` ainsi que le fichier `config.template.json`.
### À partir des sources
Pour utiliser **FreeboxMoviePlanner** à partir des sources, il vous faut Python, ainsi que les 3 packages suivants (à installer par exemple avec `pip install [nom du packet]` :
* `beautifulsoup4`
* `tmdbsimple`
* `zeroconf`
Il vous faut ensuite récupérer **FreeboxMoviePlanner**. Le plus simple étant en clonant le dépôt git.
Ensuite, il vous faut créer un fichier de conf `config.json`. Vous pouvez copier-coller `config.template.json` et l'adapter à vos besoins. Vous pourrez y renseigner la marge avant et après chaque enregistrement, ou la note en dessous de laquelle les films ne s'afficheront pas.
Pour pouvoir récupérer les notes sur TMDb, vous aurez besoin d'ouvrir un compte sur leur site et de demander une clef API, à renseigner dans le fichier de config.
Enfin, il vous faudra obtenir un token d'authentification après de votre *Freebox* pour que le programme puisse s'y connecter. Pour ce faire, dans un shell Python, tapez les commandes suivantes :
```python
from pyfbx import Fbx
f=Fbx()
f.register("FreeboxMoviePlanner", "FreeboxMoviePlanner", "N'importe quoi qui identifie votre PC")
Il vous faut ensuite récupérer le code du projet, le plus simple étant en clonant le dépôt git.
```bash
git clone --recurse-submodules https://djib.fr/djib/FreeboxMoviePlanner.git
```
Pour que la commande d'import fonctionne, vous devez lancer le shell Python depuis le répertoire *pyfbx* de l'outil.
L'affichage de votre boîtier *Freebox* vous demandera alors de valider cette demande d'authentification. Vous devez donc physiquement valider l'accès à partir de votre box (sur la V6, il s'agit de presser la flèche de droite).
Une fois cette accès validé, notez précieusement le résultat qui s'affiche dans le shell Python (un chaine de 64 caractères). Cette chaine est à inscrire dans votre fichier de configuration au paramètre "pyfbx-session-token".
Configuration
---
Ensuite, il vous faut créer un fichier de conf `config.json`. Vous pouvez tout simplement renommer le fichier `config.template.json`.
Dans ce fichier vous devrez renseigner une clef API TMDb. Pour cela vous aurez besoin d'ouvrir un compte sur leur site et de [demander une clef API](https://www.themoviedb.org/settings/api).
L'installation et le paramétrage devraient être terminés.
Le fichier de config vous permet aussi de configurer la marge avant et après chaque enregistrement, ou la note en dessous de laquelle les films ne s'afficheront pas.
Exécution
---
Pour lancer le programme, exécuter simplement: `python3 FreeboxMoviePlanner.py`. Sous Linux, vous devriez aussi pouvoir double-cliquer sur le fichier pour l'exécuter.
L'outil devrait vous afficher rapidement le petit texte `Working the magic, please wait…` puis, après environ une minute (ou plus si votre réseau est lent), le détail des films.
À la première exécution, l'outil vous demandera aussi d'autoriser le script sur votre Freebox (*Please go to your Freebox and accept the authentication.*)
À ce moment, l'affichage de votre boîtier *Freebox* vous demandera alors de valider cette demande d'authentification. Vous devez donc physiquement valider l'accès à partir de votre box (sur la V6, il s'agit de presser la flèche de droite).

@ -1,8 +1,8 @@
{
"tmdb-api":"yourapikey",
"tmdb-language":"fr-FR",
"minimum-rating":6.5,
"freebox-session-token":"See https://djib.fr/djib/FreeboxMoviePlanner",
"freebox-session-token":"Will generate automatically at first launch",
"margin-after":25,
"margin-before":5,
"margin-after":25
"minimum-rating":6.5,
"tmdb-api":"Get an API key from https://www.themoviedb.org/settings/api",
"tmdb-language":"fr-FR"
}

Loading…
Cancel
Save