Re: [CBLX] urlview et certains liens

[ Thread Index | Date Index | More lists.tuxfamily.org/carrefourblinux Archives ]


Salut Aldo et tout le monde,

Sur le vif, j'ai pondu un petit script python pour visualiser le
résultat d'une URL en respectant /etc/mailcap.

Il est bien sûr à améliorer car je l'ai fait qu'en quelques minutes
et, malheureusement, personne n'est parfait (et surtout pas moi!).

Si ça intéresse quelqu'un je pourrais l'améliorer pour qu'il fasse
tout bien comme il faut. Pour l'instant, il suffit de le sauvegarder
quelque part et ajouter la ligne suivante dans ~/.urlview:
COMMAND CHEMIN_DU_SCRIPT

Défauts actuels:
- il télécharge le contenu et visualise en local... donc si tu veux
  naviguer, c'est mort! (bien sûr, améliorable!)
- vu que je l'ai fait un peu cheap, je suppose qu'il ne peut pas gérer
  des gros contenus (à tester avec 50 MO, par exemple!)
- d'autres défauts à découvrir!

Bon courage et j'espère que ça peut servir,

Amicalement,

Manu

On Wed, Nov 10, 2010 at 09:59:05AM +0100, Aldo wrote:
> Yo Manu:
> 
> On Tue, Nov 09, 2010 at 08:30:41AM +0100, Emmanuel COUTRIS wrote:
> > Salut Aldo et tout le monde,
> > 
> > On Mon, Nov 08, 2010 at 07:30:31PM +0100, Aldo wrote:
> > > Hello,
> > > 
> > > je constate que urlview ne traite pas tous les liens de la façon qu'il le
> > > faudrait; je m'explique:
> > > si le lien est une url .php ou .html, là Ok Lynx ou Links2 etc l'ouvre;
> > > mais si le lien est un pdf, urlview ne semble pas être capable de le refiler
> > > à pstotext ou autre, et il ne propose même pas de le télécharger,
> > > du coup ça fais quelque chose puis ressort et revient dans la liste de liens
> > > dns urlview.
> > En fait urlview n'y est pas pour grand-chose (voir ci-dessous). Il lance
> > la même commande pour tout.
> > 
> > > Y a-t-il moyen de changer le comportement de urlview, ou y a-t-il moyen de
> > > lui faire suivre les règles de /etc/mailcap ?
> > oui... mais il faut écrire un petit script ou modifier celui
> > existant. Je m'explique:
> > - par défaut, urlview lance /etc/urlview/url_handler.sh sur toutes les
> >   chaînes correspondant à une expression régulière
> > - donc tu a une première option de retoucher ce script
> >   (url_handler.sh) pour qu'il fasse comme tu veux
> > - ta seconde option est de définir une autre commande dans ~/.urlview
> >   qui soit lancée pour toutes les URL. Cette commande peut être
> >   n'importe quoi dont... un script de ton cru
> > 
> > Perso, je pencherais plutôt pour la seconde option car je trouve que
> > url_handler est trop complexe pour l'usage que je voudrais en faire.
> 
> Le gros souci est que dans la man ça parle d'expressions régulière, et pour
> moi rien qu'à lire le contenu de l'un ou l'autre fichier de conf d'urlview,
> c'est comme si je devais me mettre au Mandarin ou aux symboes Cyrilliques!
> :-)
> Bref c comme d'hab, c pas gagné!!!
> 
> L'ideal serait d'avoir un template, genre pour traiter du ps pdf doc etc,
> car après tout dans Mutt quand tu traites un tel fichier, là les règles de
> /etc/mailcap sont respectées et donc un doc il l'ouvre après l'avoir traité
> par wv ou catdoc, un ps ou pdf il l'ouvre après l'avoir refilé à pstotext
> /etc, un mp3 il le refile à mplayer, etc. Bref ça fonctionne tout seul!
> C juste un peu frustrant que avec urlview y ait pas de template, à activer
> /qq part. 
> 
> Aldo.
> 
> 
> ---
#!/usr/bin/python

import mailcap
import urllib2
import sys
from tempfile import NamedTemporaryFile
from os import system

usage="""
Syntaxe: view <URL>
"""

if len(sys.argv) != 2:
    print usage
    sys.exit(0)

url = sys.argv[1]
url_handler = urllib2.urlopen(url)
content_type = url_handler.info().gettype()
temp_file = NamedTemporaryFile(prefix='url_jklm')

temp_file.write(url_handler.read())
temp_file.flush()
mc_dict=mailcap.getcaps()
cmd,mime=mailcap.findmatch(mc_dict,content_type,filename=temp_file.name)
system(cmd)
temp_file.close()
url_handler.close()


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/