classes PHP permettant de gérer la console freebox et les enregistrements récurrents.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
js
CURL.php
Cache.php
ConsoleFree.php
ConsoleMagneto.php
Date.php
Enregistrement.php
EnregistrementFreebox.php
EnregistrementRecurrent.php
InfosChaine.php
Page.php
README
check-php-installation.php
config-default.php
free-magneto-lister-chaines.php
free-magneto-lister-enregistrements.php
free-magneto-supprimer-enregistrements.php
index.php
sample-free-console-enregistrer-recurrent.php
sample-free-console-enregistrer.php
simplehtmldom.php
test-class-cache.php
test-class-enregistrement-recurrent.php
test-class-enregistrement.php
test-date.php
test-info-chaines.php
test-json-decode.php
test-session-timeout.php
test-simpledom.php

README

Ce dépôt contient un ensemble de classes PHP permettant de piloter les différentes fonction de la "console d'administration Free". L'objectif premier était pour moi de programmer des enregistrements récurrents fonction ayant disparu avec la nouvelle Freebox dite Révolution.

Étant, comme tout informaticien d'un tempérament flegmatique et n'ayant pas le courage de faire et refaire ce qui peut être fait qu'une seule fois, je me suis dit qu'il serait bien facile de piloter avec quelques lignes de code les enregistrements de ma Freebox, via la console d'administration de Free. Aussi, je me suis permis, via le fabuleux plugin "Firebug", d'espionner les requêtes qui transitent entre mon navigateur et le serveur. L'objectif était de reproduire par script ce que j'arrivais à faire avec quelques clic souris.

Ayant une petite expérience en programmation PHP et en particulier la conception objet, il était très facile pour moi d'exploiter quelques classes existantes pour l'envoi des requetes (CURL) et SimpleHtmlDom pour l'analyse du code HTML.

Je vous présente donc un service minimum permettant de réaliser sur mesure vos enregistrement récurrents. Cependant, il me semble un peu difficile de créer un site Web permettant de partager ce service. En effet, les identifiants Free sont bien trop précieux pour que vous ayez le courage de me les confier. De même, il me semble tout à fait risqué d'utiliser des applications dont on ne dispose pas des sources, pour accéder à ces mêmes services. Pour éviter de gros soucis, Free devrait mettre en place 2 identifiants avec et sans droits.

Ci-dessous, la liste des instructions permettant la mise en œuvre des scripts. Des connaissances minimales en environnement Linux seront appréciables.

Installation initiale :
 # sur configuration LInux/Ubuntu, Debian
 # nécessite git, php5 (commande en ligne), et l'extention CURL
 sudo apt-get install git php5-cli php5-curl

Utilisation :
 # récupérer les sources avec la commande git (version de développement ; assez instable) :
git clone http://github.com/mqu/php-console-freebox.git

# récupérer une version "tagué" : 
mkdir php-console-freebox ; git clone http://github.com/mqu/php-console-freebox.git 0.1

 # se placer dans le répertoire source :
 cd php-console-freebox

 # supprimer les scripts de test
 \rm test*

 # renommer et éditer le fichier de configuration
 # vous devez ajuster "login" et "passwd" a votre compte
 cp config-default.php config.php ; cp sample-free-console-enregistrer.php free-console-enregistrer.php
 vi config.php

 # programmer un enregistrement
 # éditez free-console-enregistrer.php
 # l'exemple fourni réalise un enregistrement pour le jour courant des journaux de France2, en qualité "auto", 
 # ce script est conçu pour être appelé quotidiennement via une crontab (tâche périodique), vers minuit.
 php -q free-console-enregistrer.php

Exemple de fichier crontab :
10 0 * * *	(cd $HOME/extra/console-free ; /usr/bin/php5 -q free-console-enregistrer.php > /tmp/free-console-enregistrer.log)


# mettre a jour vos sources ; bien veiller a ne pas modifier les sources intégrés au dépot GIT, mais copier ceux que vous souhaitez modifier (sample*).
git pull

# si vous avez apporté de menues modifications sur vos sources :
git pull --rebase