WikiReader

De openmoko-fr.

Sommaire

Présentation

Le Wikireader est une petite machine portative qui permet de lire Wikipedia sans connexion internet.

Il est constitué d'un écran LCD monochrome, de 3 boutons de contrôle et d'un lecteur de carte uSD.

Il embarque par défaut une image du Wikipedia Américain. Mais une traduction est possible.


Traduction

Pour ce faire, il faut compiler une image de wikipedia pour qu'elle soit lisible par le lecteur d'OpenMoko.

Deux points sont à prendre en compte les données et l'interface.

GeekShadow explique sur son blogcomment traduire l'interface et propose une image téléchargeable


Pour les données, des image du Wikipedia sont disponibles en lien (ci dessous)


  • La marche à suivre théorique est la suivante :
    • Télécharger un dump de WP.
    • Indexer les articles
    • Découper l'archive en articles en suivant les indexes
    • Créer un rendu de chaque article en suivant les règles d'affichage
    • Créer un hash pour simplifier les recherches/indexages


pour toutes ces tâches, le Freerunner est un poil trop léger pour tout faire, aussi, on fait ça sur un PC.

Et pour simplifier encore, un script est disponible : Autowiki

A placer dans le répertoire "wikireader" et lancer "$ autowiki.sh fr" pour lancer le travail d'un wikipedia Francais.


  • Pour info (sur un Quad 2.6gHz + 2Go Ram)
    • L'image française de Wikipedia fait 6Go
    • L'indexage prend 10minutes
    • Le découpage 16/18 heures
    • Le rendu 20 heures
    • Le reste quelques secondes


  • Pour info le script au 04/02/2010 :
#!/bin/sh
# Automation script for rendering a Wikipedia image for the FR
# Written by AstHrO  / openmoko-fr.org / thomas.hocedez@free.fr
# V 1.0 
# Todo 
#  param1 : language (fr,en,be,lu....)

# Language extension of the WP (fr,en, nl ...)
if [[ "$1" = "" ]];  then
lang="fr"
 else 
lang=$1
fi

# Ftp host configuration :
ftp_host=""
ftp_login=""
ftp_passd=""
mail=""

# Folder where the wikireader tools are installed
wr_folder="/media/stocks/wikireader"

# You don't have to change following stuff, but you can ...
cfile="${lang}wiki-latest-pages-articles.xml.bz2"
ufile="${lang}wiki-latest-pages-articles.xml"
mail_msg="message.txt"
sep="=============================================================="

echo "---" > $mail_msg

# Going to the working folder :
cd $wr_folder

# cleaning old treatments :
echo $sep
echo "Step 1 : CLeaning..."
make clean &>/dev/null

# downloading interesting WP :
echo $sep
echo "Step 2 : Downloading dump ..."
rm $cfile &>null
wget http://download.wikimedia.org/${lang}wiki/latest/$cfile  
ls -l $cfile | mail -s "[WR] Wikipedia dump downloaded"  "$mail" < $mail_msg

# uncompressing :
echo $sep
echo "Step 3 : Uncompressing ..."
rm $ufile &>/dev/null
bzip2 -d ./$cfile 2> log.txt &1> /dev/null

#creating some folders :
mkdir work &>/dev/null
mkdir image &>/dev/null

echo $sep
echo "Step 4 : Indexing Articles..."
# Creating index of articles :
make index XML_FILES="$ufile" DESTDIR=image WORKDIR=work 2> log.txt 1> /dev/null

# Parsing  :  (30>60 sec / 1000)
echo $sep
echo "Step 5 : Parsing Articles ..."
make parse -j3  XML_FILES="$ufile" DESTDIR=image WORKDIR=work 2>log.txt
#mail -s "[WR] Parsing of $ufile complete !"  "$mail" < $mail_msg

# Rendering the file : (60>200 sec / 1000)
echo $sep
echo "Step 6 : Rendering ..."
make render -j3  XML_FILES="$ufile" DESTDIR=image WORKDIR=work 2>log.txt 
#mail -s "[WR] Rendering of $ufile complete !"  "$mail" < $mail_msg

echo $sep
echo "Step 7 : Finalizing ..."
# Combining articles indexes (few seconds)
make combine -j3 DESTDIR=image WORKDIR=work > $mail_msg

# Generating a Hash (last few seconds dude !)
make hash -j3  DESTDIR=image WORKDIR=work >> $mail_msg

# Going to output folder
cd image
echo $sep
echo "Step 8 : Compressing files..."
# Compressing  data files
tar -cvf wr_${lang}_$(date '+%d-%m-%Y').tar.gz pedia*.*

# a little HASH to be sure ...
shasum wr_${lang}_$(date '+%d-%m-%Y').tar.gz >  sha_${lang}.txt
#mail -s "[WR] Hash of your file..."  "$mail" < $mail_msg
echo $sep
echo "Step 9 : Let's FTP all this !"
# Let's FTP all this stuff
ftp -n << EOF
open $ftp_host
user $ftp_login $ftp_passd
binary
put wr_${lang}_$(date '+%d-%m-%Y').tar.gz
EOF
echo $sep
echo "Step 10 : Enjoy !"
#mail -s "[WR] All done, WP image ready to use !"  "$mail"

# That's it you can now send a mail to your friends.

Liens

Notes

  • 20/01/2010 (AstHrO)
    • tout fonctionne correctement, sans problème avec un support des images (seules les formules mathématiques sont incluses pour l'instant mais déjà ça déglingue !).
    • les perfs devraient être meilleures sur une machine homogène, je me suis rendu compte que mon disque de travail est monté en NFS ....
    • le script automatisé dispo sur le git est bancale pour une machine seule, il faut que votre machine se nomme "farm{x}" (0<=x<=20) il faut donc faire les étapes à la main.
    • un script pour machine seules a été réécrit et automatise tout le traitement.

Mise à jour officielle de l'image

  • OpenMoko a délivré au début de l'année 2010 la version de "printemps" du logiciel embarqué : http://thewikireader.com/update.html . Assurez vous d'avoir un unzip v6 (ou équivalent) pour pouvoir décompresser l'image qui fait plus de 4Gio.
Outils personnels