#1826 Le 08/04/2010, à 15:35
- JB-home
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
si tu est sous Karmic, tape juste cette commande :
sudo add-apt-repository ppa:norsetto/ppa
et faire la mise à jour.
je pense que s'est le bon ppa.
Hors ligne
#1827 Le 08/04/2010, à 15:38
- chepioq
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
Vu sur la doc (mais c'est en anglais)
For users compiling from source on a binary distro, make sure you have the X development libraries installed (Unless you provide configure with "--disable-x11"). This should be a package along the lines of "libx11-dev" or "xorg-x11-dev" for X11 libs, and similar "-dev" format for the other libs required (depending on your configure options). You should be able to see which extra packages you need to install by reading errors that you get from './configure'. You can enable/disable stuff by giving options to configure, but be careful with disabling. For example: with --disable-math you won't get errors but logarithmic graphs will be normal graphs and gauges will miss their line.
Tout est dans tout et réciproquement....
Hors ligne
#1828 Le 08/04/2010, à 15:43
- Chloé14
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
ok, merci beaucoup
Hors ligne
#1829 Le 08/04/2010, à 15:43
- zydar
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
pour karmic il y a des dépots ICI
quelqu'un a une idée pour mon problème de lua ??
EDIT : oui c'est celui que tu donne z0rg>, je viens de le lire quelques pages avant ^^"
Dernière modification par zydar (Le 08/04/2010, à 16:03)
- GNU/Linux, c'est la vie :p
-- Les formats ouverts aussi d'ailleurs ! (odt, odf, pdf, png, ...)
Hors ligne
#1830 Le 08/04/2010, à 15:47
- JB-home
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
c'est celui que je donne.
Hors ligne
#1831 Le 08/04/2010, à 15:58
- Chloé14
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
merci pour les dépôts !
Hors ligne
#1832 Le 08/04/2010, à 20:43
- zydar
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
Je me suis débrouiller autrement avec terminator mais si vous avez des réponses je prend quand même.
Voici une petite screen de ce que ça donne actuellement :
http://img265.imageshack.us/img265/1945 … 80x.th.png
>> superbe ton fond d'écran !! tu l'as trouvé où ??
J'ai besoin d'un scrip parce que je fais des random :
#!/bin/bash fortune_00='chucknorris' fortune_01='informatique' fortune_02='bashfr' fortune_03='GDP' fortune_04='humour' fortune_05='cinema' fortune_06='VDM' fortune_rand=`rand -M 7` case $fortune_rand in 0) echo "\s{offset 10}Chuck Norris :\n" ;; 1) echo "\s{offset 10}Informatique :\n" ;; 2) echo "\s{offset 10}Bash FR :\n" ;; 3) echo "\s{offset 10}GDP :\n" ;; 4) echo "\s{offset 10}Humour :\n" ;; 5) echo "\s{offset 10}Cinéma :\n" ;; 6) echo "\s{offset 10}Vie De Merde :\n" ;; *) echo "\s{offset 10}rand raté\n" esac case $fortune_rand in 0) fortune chucknorris | iconv -c --silent -f ISO_8859-1 -t UTF-8 | fold -s -w 49 | sed \'s/^/ / ;; 1) fortune informatique | iconv -c --silent -f ISO_8859-1 -t UTF-8 | fold -s -w 49 | sed \'s/^/ / ;; 2) fortune bashfr | iconv -c --silent -f ISO_8859-1 -t UTF-8 | fold -s -w 49 | sed \'s/^/ / ;; 3) fortune GDP | iconv -c --silent -f ISO_8859-1 -t UTF-8 | fold -s -w 49 | sed \'s/^/ / ;; 4) fortune humour | iconv -c --silent -f ISO_8859-1 -t UTF-8 | fold -s -w 49 | sed \'s/^/ / ;; 5) fortune cinema | iconv -c --silent -f ISO_8859-1 -t UTF-8 | fold -s -w 49 | sed \'s/^/ / ;; 6) fortune VDM | iconv -c --silent -f ISO_8859-1 -t UTF-8 | fold -s -w 49 | sed \'s/^/ / ;; *) echo "\s{offset 20}rand raté" esac
Mais, je n'arrive pas à faire en sorte que conky utilise les balises conky mis dans ce script
quand je met ce script, et que je le lance en terminal ca m'affiche "/home/zydar/.conky/.fortunes.sh: line 14: rand : commande introuvable"
une idée ?? :s :s
ps: plus de probleme de lua
Dernière modification par zydar (Le 08/04/2010, à 20:48)
- GNU/Linux, c'est la vie :p
-- Les formats ouverts aussi d'ailleurs ! (odt, odf, pdf, png, ...)
Hors ligne
#1833 Le 08/04/2010, à 21:00
- Fenouille84
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
Mais pourquoi tu utilises un script pour sa ??
Il te suffit de faire le tri dans tes fortunes : tu supprimes celles dont tu n'as pas besoin.
Et tu utilises la fonction native de fortune :
fortune
Et comme sa, elle te sort une quote au hasard parmi les thèmes que tu as laissés.
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#1834 Le 08/04/2010, à 21:14
- zydar
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
Mais pourquoi tu utilises un script pour sa ??
Il te suffit de faire le tri dans tes fortunes : tu supprimes celles dont tu n'as pas besoin.
Et tu utilises la fonction native de fortune :fortune
Et comme sa, elle te sort une quote au hasard parmi les thèmes que tu as laissés.
en gros je regroupe tous mes fichier de fortunes dans le meme ?
- GNU/Linux, c'est la vie :p
-- Les formats ouverts aussi d'ailleurs ! (odt, odf, pdf, png, ...)
Hors ligne
#1835 Le 08/04/2010, à 21:16
- Fenouille84
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
@zydar
Tes fichiers de citations de fortune sont dans quel dossier ??
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#1836 Le 08/04/2010, à 21:25
- zydar
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
@zydar
Tes fichiers de citations de fortune sont dans quel dossier ??
/usr/share/games/fortunes/fr/
- GNU/Linux, c'est la vie :p
-- Les formats ouverts aussi d'ailleurs ! (odt, odf, pdf, png, ...)
Hors ligne
#1837 Le 08/04/2010, à 21:28
- Fenouille84
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
Parfait
Essaye en mettant les fichiers qui t'intéressent dans : /usr/share/games/fortunes/
Et le reste, place le dans : /usr/share/games/fortunes/fr/
Ensuite, en console fait plusieurs essais en tapant comme commande :
fortune
P.S. :
Pour faire ces déplacements, il faut ouvrir un navigateur en root.
Donc, selon le tien :
sudo nautilus /usr/share/games/fortunes
ou
sudo thunar /usr/share/games/fortunes
Dernière modification par Fenouille84 (Le 08/04/2010, à 21:31)
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#1838 Le 08/04/2010, à 21:34
- zydar
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
@Fenouille84 :
yeahh !!! ca marche dans le terminal, je modifie le conkyrc et je te dis sa (tu m'enleve une grosse épine du pied la merciiiiii
EDIT : ca marche avec un ${execi 60 fortune} pas tout compris, mais content !! il ne me reste plus qu'à faire ma mise en page
Dernière modification par zydar (Le 08/04/2010, à 21:37)
- GNU/Linux, c'est la vie :p
-- Les formats ouverts aussi d'ailleurs ! (odt, odf, pdf, png, ...)
Hors ligne
#1839 Le 08/04/2010, à 21:45
- Fenouille84
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
@zydar
Pour afficher une quote aléatoire (là le thème est choisi dans les fichiers du dossier par défaut : /usr/share/games/fortunes)
fortune
Pour afficher une quote avec un thème précis:
fortune thème
Voilà comment fonctionne la commande fortune à peu près.
Content de t'avoir aider !!
Courage pour ta mise en page !!
Dernière modification par Fenouille84 (Le 08/04/2010, à 21:47)
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#1840 Le 09/04/2010, à 10:38
- chepioq
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
Bonjour tout le monde.
Vous vous souvenez peut-être que j'avais proposé un calendrier avec les phases de la lune http://forum.ubuntu-fr.org/viewtopic.php?id=326972&p=44 post 1078.
Le soucis est qu'avec la nouvelle transparence de conky 1.8.0 et l'option "own_window_argb_visual yes", l'image de la lune dans mon script prend un peu la couleur du fond d'écran.
Je l'ai refait avec lua et les script de wlourf, maintenant l'image de la lune à la bonne couleur.
le conkyrc:
# -- Conky settings -- #
background no
update_interval 3
cpu_avg_samples 2
net_avg_samples 2
override_utf8_locale yes
double_buffer yes
no_buffers yes
text_buffer_size 2048
imlib_cache_size 0
# -- Window specifications -- #
own_window yes
#own_window_type normal
own_window_transparent yes
own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below
own_window_argb_visual yes
own_window_colour FFFFFF
own_window_title square to round
border_inner_margin 0
border_outer_margin 0
minimum_size 250 150
alignment tr
gap_y 40
gap_x 40
# -- Graphics settings -- #
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
# -- Text settings -- #
use_xft yes
xftfont Santana:size=12
xftalpha 0
uppercase no
default_color 000000
text_buffer_size 2048
imlib_cache_size 0
#--- LUA ---
lua_load ~/.conkyrc/conky14/square_to_round.lua
lua_draw_hook_pre main /home/dominique/.conkyrc/conky14/moon-phase/moon.jpg
TEXT
${execpi 3600 ~/.conkyrc/conky14/get_image.sh}
${goto 155}${font Monaco:size=18}${color #0000ff}${execi 1800 date +%^B | cut -c1}${font Monaco:size=10}${color #0F4C5D}${execi 1800 date +%B | cut -c2-}
${goto 105}${color #0F4C5D}${font Monaco:size=9}${execpi 60 DJS=`date +%_d`; cal | sed '/./!d' | sed '1d' | sed 's/$/ /' | fold -w 21 | sed -n '/^.\{21\}/p' | sed 's/^/${goto 105} /' | sed /" $DJS "/s/" $DJS "/" "'${color #FF000C}'"$DJS"'${color #0000ff}'" "/}
qui appelle le script square_to_round.lua et get_image.sh
square_to_round.lua
--[[ SQUARE_TO_ROUND WIDGET by Wlourf (07 April 2010, version 1.0.1)
http://u-scripts.blogspot.com/
This widget display a rounded image on your conky from a square image only.
Parameters are
filename --nom de l'image carrée en entrée
xc,yc --coordonnées du centre de l'image ronde par rapport au coin en haut à gauche de la fenêtre conky
radius --rayon du cercle final
angle --angle de rotation de l'image
radius_crop --dans l'image carrée, pourcentage du cercle à extraire par rapport au côté du carré(1-100)
period --converti l'image de carré à rond toutes les 'period' secondes
]]
require 'cairo'
require 'imlib2'
function convert_square(fileIn,fileOut,radius,angle,radius_crop)
--convert Input file from jpg to png, scale it and rotate it
local imageInput = imlib_load_image(fileIn)
local out_size = radius*2/(radius_crop/100)
imlib_context_set_image(imageInput)
w = imlib_image_get_width();
h = imlib_image_get_height();
imlib_image_set_format("png")
buffer = imlib_create_image(out_size,out_size);
imlib_context_set_image(buffer);
imlib_blend_image_onto_image(imageInput, 0,
0, 0, w, h,
0,0, out_size,out_size)
rot_img=imlib_create_rotated_image(angle*math.pi/180)
imlib_context_set_image(rot_img)
imlib_save_image(fileOut)
imlib_free_image()
imlib_context_set_image(buffer)
imlib_free_image()
imlib_context_set_image(imageInput)
imlib_free_image()
end
function crop_square_to_round(filename,xc,yc,radius)
local surface = cairo_image_surface_create_from_png(filename)
local img_w = cairo_image_surface_get_width (surface);
local cw,ch = conky_window.width, conky_window.height
local cs=cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, cw,ch)
local cr=cairo_create(cs)
cairo_translate(cr,xc-img_w/2,yc-img_w/2)
cairo_arc (cr, img_w/2,img_w/2, radius, 0, 2*math.pi)
cairo_clip (cr)
cairo_new_path (cr)
cairo_set_source_surface (cr, surface, 0, 0)
cairo_paint (cr)
cairo_destroy(cr)
cairo_surface_destroy (cs)
cairo_surface_destroy (surface)
end
function display_round(filename,xc,yc,radius,angle,radius_crop,period)
if conky_window == nil then return end
if tonumber(conky_parse('${updates}')) <2 then return end
local filepng = filename .. ".png"
local actual_time = os.time()
if last_time == nil then last_time=0 end
local actual_img = io.open(filepng,"r")
if last_time+period < actual_time or last_time == 0 or actual_img == nil then
print ('convert image ' .. filename)
convert_square(filename,filepng,radius,angle,radius_crop)
last_time=actual_time
end
crop_square_to_round(filepng,xc,yc,radius)
io.close()
end
--[[END OF SQUARE TO ROUND WIDGET]]
function conky_main(filename)
if conky_window == nil then return end
display_round(filename,
58,90,55, --xc,yc,radius
5, --angle
98, --radius_crop (1-100)
3600 --period
)
end
get_image.sh
#!/bin/sh
dir="/home/dominique/.conkyrc/conky14/moon-phase"
mkdir -p $dir
cd $dir
wget http://static.die.net/moon/576.jpg -O "$dir/moon.jpg"
Avec l'ancienne version, la lune aurait été bleue transparente...
Tout est dans tout et réciproquement....
Hors ligne
#1841 Le 09/04/2010, à 11:06
- Piouplilou
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
@Piouplilou
Essaye plutôt avec cette commande :
${execi 180 fortune | fold -s -w 80}
Cette commande te permet de :
* couper la phrase en gardant les mots entiers
* couper après 80 caractèresT'as pas regardé la doc de fortune toi !!
Merci beaucoup c'est ce que je cherchais... Non je fouillais du coté de conky pas pensé à la doc fortune...
Hors ligne
#1842 Le 09/04/2010, à 12:42
- zydar
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
euu j'ai encore un petit problème aprés je vous laisse tranquil (promis !! enfin pour l'instant )
# temps pour fermer conky en seconde. 0 = toujours actif
total_run_times 0
# affiche le texte sur la sortie standard
out_to_console no
# réglage de la mémoire, pour éviter le clignotement
double_buffer yes
# Soustraire les mémoires tampons de la mémoire utilisée
no_buffers yes
text_buffer_size 2048
# taux de rafraichissement de la fenêtre (en secondes)
update_interval 1
# nombre d'échantillons à utiliser pour calculer la moyenne d'utilisation
cpu_avg_samples 4
net_avg_samples 2
# taille et positon
alignment top_right
minimum_size 320
maximum_width 320
# écart avec le bord x=gauche ou droit y= haut ou bas
gap_x 5
gap_y 435
# afficher les ombres
draw_shades yes
# afficher des contours
draw_outline no
# contours autour des blocs de texte
draw_borders no
# largeur du contour
border_width 1
# largeur des marges
border_inner_margin instead
#pour que conky tourne en arrière plan background no pour les tests
background yes
# utiliser sa propre fenêtre
own_window yes
#type de fenêtre : / override / desktop
own_window_type override # normal / override / desktop
#pseudo transparence si vous avez des icones sous le conky elle ne seront plus accessible une fois conky activé
own_window_transparent yes
# Utiliser Xft (polices lissées etc)
use_xft yes
xftalpha .1
override_utf8_locale yes # force UTF8
#police a utiliser : use_xft doit être a "yes"
xftfont Fixed:size=7#OCR A Std:size=6
# Tout le texte en majuscule
uppercase no
# Ajoute des espaces après certains objets pour éviter de les faire bouger.
# Fonctionne uniquement avec les polices Fixes
use_spacer right
# Couleurs
default_color 0c2858 #bleu foncé
default_shade_color 333333
default_outline_color black
color1 e49c16
color2 CA0000 #rouge
color6 EEEEEE
color7 DDDDDD
color8 CCCCCC
color9 BBBBBB
TEXT
${scroll 16 VDM}
${execi 300 /home/zydar/.conky/.vdm.sh | fold -s -w 50}}
${execi 60 fortune}
^
le conkyfortune
in/bash
# Fortunes aléatoires [VDM]
#
# Par Tite-Live ~ p.tite.live [AT] gmail [POINT] com
#
# Il faut html2text.py pour le faire fonctionner
# * Le télécharger sur http://www.aaronsw.com/2002/html2text/html2text.py [Auteur : Aaron Swartz (http://www.aaronsw.com/)]
# * Copier le fichier html2text.py dans le répertoire où se trouve ce script
#
#
#
# ~ Have Fun ~
function VDM_RANDOM {
VDM_Source=`wget 'http://api.viedemerde.fr/1.2/view/random?key=readonly' -O- -q`
VDM_Auteur=`expr match "$VDM_Source" '.*<auteur>\(.*\)<\/auteur>' | python ~/.conky/.html2text.py`
VDM_Categorie=`expr match "$VDM_Source" '.*<categorie>\(.*\)<\/categorie>'`
VDM_Texte=`expr match "$VDM_Source" '.*<texte>\(.*\)<\/texte>' | python ~/.conky/.html2text.py | fold -s -w 65`
if [[ $VDM_Auteur = "" ]]; then VDM_Auteur="Anonyme "; fi
echo "$VDM_Texte"
echo "Par $VDM_Auteur(${VDM_Categorie})"
}
VDM_RANDOM
^
le vdm.sh
je pense que les phrases arrivent avec des retours-lignes déjà écrit, donc quand les miens s'effectue ca donne pas grand chose
conky bientôt terminé !!
- GNU/Linux, c'est la vie :p
-- Les formats ouverts aussi d'ailleurs ! (odt, odf, pdf, png, ...)
Hors ligne
#1843 Le 09/04/2010, à 13:15
- Fenouille84
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
Essaye en modifiant ton fichier vdm.sh.
Supprime l'option :
| fold -s -w 65
Edit :
Je te conseille aussi de remplacer la ligne VDM_Texte par celle là (prise en charge des quotes : " )
VDM_Texte=$(expr match "$VDM_Source" '.*<texte>\(.*\)<\/texte>' | python $HOME/conky/VDM/html2text.py | sed 's/"/"/g')
Dernière modification par Fenouille84 (Le 09/04/2010, à 13:20)
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#1844 Le 09/04/2010, à 14:13
- zydar
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
@fenouille84 j'ai remplacé la ligne, changer les repertoires (le plus souvent les miens sont cachés ) et quand je lance en terminal j'ai :
File "/home/zydar/.conky/.html2text.py", line 449, in <module>
data = sys.stdin.read().decode('utf8')
IOError: [Errno 5] Input/output error
d'ailleurs si tu sais comment faire apparaitre les caractères spéciaux ... (é/à le plus souvent)
Dernière modification par zydar (Le 09/04/2010, à 14:24)
- GNU/Linux, c'est la vie :p
-- Les formats ouverts aussi d'ailleurs ! (odt, odf, pdf, png, ...)
Hors ligne
#1845 Le 09/04/2010, à 14:23
- Fenouille84
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
@zydar
Aïe !! C'était pas prévu sa
Je sais pas du tout, j'ai pas eu de problème moi.
Tiens je te mets mes 2 fichiers, tente voir ce que sa donne :
vdm.sh
#!/bin/bash
#Version 1.0 ################################################################################################
#
# Fortunes aléatoires VDM
#
# Par Tite-Live ~ p.tite.live@gmail.com
# Il faut html2text.py pour le faire fonctionner
# http://www.aaronsw.com/2002/html2text/html2text.py [Auteur:Aaron Swartz (http://www.aaronsw.com/)]
#
# Adaptée par Fenouille84
#
#############################################################################################################
VDM_Source=$(wget 'http://api.viedemerde.fr/1.2/view/random?key=readonly' -O- -q)
VDM_Texte=$(expr match "$VDM_Source" '.*<texte>\(.*\)<\/texte>' | python $HOME/conky/VDM/html2text.py | sed 's/"/"/g')
#VDM_Auteur=$(expr match "$VDM_Source" '.*<auteur>\(.*\)<\/auteur>' | python $HOME/conky/VDM/html2text.py)
#VDM_Categorie=$(expr match "$VDM_Source" '.*<categorie>\(.*\)<\/categorie>')
if [[ $VDM_Auteur = "" ]]; then VDM_Auteur="Anonyme "; fi
echo "$VDM_Texte"
#echo "Par $VDM_Auteur(${VDM_Categorie})"
exit 0
html2text.py
#!/usr/bin/env python
"""html2text: Turn HTML into equivalent Markdown-structured text."""
__version__ = "2.38"
__author__ = "Aaron Swartz (me@aaronsw.com)"
__copyright__ = "(C) 2004-2008 Aaron Swartz. GNU GPL 3."
__contributors__ = ["Martin 'Joey' Schulze", "Ricardo Reyes", "Kevin Jay North"]
# TODO:
# Support decoded entities with unifiable.
if not hasattr(__builtins__, 'True'): True, False = 1, 0
import re, sys, urllib, htmlentitydefs, codecs, StringIO, types
import sgmllib
import urlparse
sgmllib.charref = re.compile('&#([xX]?[0-9a-fA-F]+)[^0-9a-fA-F]')
try: from textwrap import wrap
except: pass
# Use Unicode characters instead of their ascii pseudo-replacements
UNICODE_SNOB = 0
# Put the links after each paragraph instead of at the end.
LINKS_EACH_PARAGRAPH = 0
# Wrap long lines at position. 0 for no wrapping. (Requires Python 2.3.)
BODY_WIDTH = 78
# Don't show internal links (href="#local-anchor") -- corresponding link targets won't be visible in the plain text file anyway.
SKIP_INTERNAL_LINKS = False
### Entity Nonsense ###
def name2cp(k):
if k == 'apos': return ord("'")
if hasattr(htmlentitydefs, "name2codepoint"): # requires Python 2.3
return htmlentitydefs.name2codepoint[k]
else:
k = htmlentitydefs.entitydefs[k]
if k.startswith("&#") and k.endswith(";"): return int(k[2:-1]) # not in latin-1
return ord(codecs.latin_1_decode(k)[0])
unifiable = {'rsquo':"'", 'lsquo':"'", 'rdquo':'"', 'ldquo':'"',
'copy':'(C)', 'mdash':'--', 'nbsp':' ', 'rarr':'->', 'larr':'<-', 'middot':'*',
'ndash':'-', 'oelig':'oe', 'aelig':'ae',
'agrave':'a', 'aacute':'a', 'acirc':'a', 'atilde':'a', 'auml':'a', 'aring':'a',
'egrave':'e', 'eacute':'e', 'ecirc':'e', 'euml':'e',
'igrave':'i', 'iacute':'i', 'icirc':'i', 'iuml':'i',
'ograve':'o', 'oacute':'o', 'ocirc':'o', 'otilde':'o', 'ouml':'o',
'ugrave':'u', 'uacute':'u', 'ucirc':'u', 'uuml':'u'}
unifiable_n = {}
for k in unifiable.keys():
unifiable_n[name2cp(k)] = unifiable[k]
def charref(name):
if name[0] in ['x','X']:
c = int(name[1:], 16)
else:
c = int(name)
if not UNICODE_SNOB and c in unifiable_n.keys():
return unifiable_n[c]
else:
return unichr(c)
def entityref(c):
if not UNICODE_SNOB and c in unifiable.keys():
return unifiable[c]
else:
try: name2cp(c)
except KeyError: return "&" + c
else: return unichr(name2cp(c))
def replaceEntities(s):
s = s.group(1)
if s[0] == "#":
return charref(s[1:])
else: return entityref(s)
r_unescape = re.compile(r"&(#?[xX]?(?:[0-9a-fA-F]+|\w{1,8}));")
def unescape(s):
return r_unescape.sub(replaceEntities, s)
def fixattrs(attrs):
# Fix bug in sgmllib.py
if not attrs: return attrs
newattrs = []
for attr in attrs:
newattrs.append((attr[0], unescape(attr[1])))
return newattrs
### End Entity Nonsense ###
def onlywhite(line):
"""Return true if the line does only consist of whitespace characters."""
for c in line:
if c is not ' ' and c is not ' ':
return c is ' '
return line
def optwrap(text):
"""Wrap all paragraphs in the provided text."""
if not BODY_WIDTH:
return text
assert wrap, "Requires Python 2.3."
result = ''
newlines = 0
for para in text.split("\n"):
if len(para) > 0:
if para[0] is not ' ' and para[0] is not '-' and para[0] is not '*':
for line in wrap(para, BODY_WIDTH):
result += line + "\n"
result += "\n"
newlines = 2
else:
if not onlywhite(para):
result += para + "\n"
newlines = 1
else:
if newlines < 2:
result += "\n"
newlines += 1
return result
def hn(tag):
if tag[0] == 'h' and len(tag) == 2:
try:
n = int(tag[1])
if n in range(1, 10): return n
except ValueError: return 0
class _html2text(sgmllib.SGMLParser):
def __init__(self, out=None, baseurl=''):
sgmllib.SGMLParser.__init__(self)
if out is None: self.out = self.outtextf
else: self.out = out
self.outtext = u''
self.quiet = 0
self.p_p = 0
self.outcount = 0
self.start = 1
self.space = 0
self.a = []
self.astack = []
self.acount = 0
self.list = []
self.blockquote = 0
self.pre = 0
self.startpre = 0
self.lastWasNL = 0
self.abbr_title = None # current abbreviation definition
self.abbr_data = None # last inner HTML (for abbr being defined)
self.abbr_list = {} # stack of abbreviations to write later
self.baseurl = baseurl
def outtextf(self, s):
self.outtext += s
def close(self):
sgmllib.SGMLParser.close(self)
self.pbr()
self.o('', 0, 'end')
return self.outtext
def handle_charref(self, c):
self.o(charref(c))
def handle_entityref(self, c):
self.o(entityref(c))
def unknown_starttag(self, tag, attrs):
self.handle_tag(tag, attrs, 1)
def unknown_endtag(self, tag):
self.handle_tag(tag, None, 0)
def previousIndex(self, attrs):
""" returns the index of certain set of attributes (of a link) in the
self.a list
If the set of attributes is not found, returns None
"""
if not attrs.has_key('href'): return None
i = -1
for a in self.a:
i += 1
match = 0
if a.has_key('href') and a['href'] == attrs['href']:
if a.has_key('title') or attrs.has_key('title'):
if (a.has_key('title') and attrs.has_key('title') and
a['title'] == attrs['title']):
match = True
else:
match = True
if match: return i
def handle_tag(self, tag, attrs, start):
attrs = fixattrs(attrs)
if hn(tag):
self.p()
if start: self.o(hn(tag)*"#" + ' ')
if tag in ['p', 'div']: self.p()
if tag == "br" and start: self.o(" \n")
if tag == "hr" and start:
self.p()
self.o("* * *")
self.p()
if tag in ["head", "style", 'script']:
if start: self.quiet += 1
else: self.quiet -= 1
if tag in ["body"]:
self.quiet = 0 # sites like 9rules.com never close <head>
if tag == "blockquote":
if start:
self.p(); self.o('> ', 0, 1); self.start = 1
self.blockquote += 1
else:
self.blockquote -= 1
self.p()
if tag in ['em', 'i', 'u']: self.o("_")
if tag in ['strong', 'b']: self.o("**")
if tag == "code" and not self.pre: self.o('`') #TODO: `` `this` ``
if tag == "abbr":
if start:
attrsD = {}
for (x, y) in attrs: attrsD[x] = y
attrs = attrsD
self.abbr_title = None
self.abbr_data = ''
if attrs.has_key('title'):
self.abbr_title = attrs['title']
else:
if self.abbr_title != None:
self.abbr_list[self.abbr_data] = self.abbr_title
self.abbr_title = None
self.abbr_data = ''
if tag == "a":
if start:
attrsD = {}
for (x, y) in attrs: attrsD[x] = y
attrs = attrsD
if attrs.has_key('href') and not (SKIP_INTERNAL_LINKS and attrs['href'].startswith('#')):
self.astack.append(attrs)
self.o("[")
else:
self.astack.append(None)
else:
if self.astack:
a = self.astack.pop()
if a:
i = self.previousIndex(a)
if i is not None:
a = self.a[i]
else:
self.acount += 1
a['count'] = self.acount
a['outcount'] = self.outcount
self.a.append(a)
self.o("][" + `a['count']` + "]")
if tag == "img" and start:
attrsD = {}
for (x, y) in attrs: attrsD[x] = y
attrs = attrsD
if attrs.has_key('src'):
attrs['href'] = attrs['src']
alt = attrs.get('alt', '')
i = self.previousIndex(attrs)
if i is not None:
attrs = self.a[i]
else:
self.acount += 1
attrs['count'] = self.acount
attrs['outcount'] = self.outcount
self.a.append(attrs)
self.o("![")
self.o(alt)
self.o("]["+`attrs['count']`+"]")
if tag == 'dl' and start: self.p()
if tag == 'dt' and not start: self.pbr()
if tag == 'dd' and start: self.o(' ')
if tag == 'dd' and not start: self.pbr()
if tag in ["ol", "ul"]:
if start:
self.list.append({'name':tag, 'num':0})
else:
if self.list: self.list.pop()
self.p()
if tag == 'li':
if start:
self.pbr()
if self.list: li = self.list[-1]
else: li = {'name':'ul', 'num':0}
self.o(" "*len(self.list)) #TODO: line up <ol><li>s > 9 correctly.
if li['name'] == "ul": self.o("* ")
elif li['name'] == "ol":
li['num'] += 1
self.o(`li['num']`+". ")
self.start = 1
else:
self.pbr()
if tag in ["table", "tr"] and start: self.p()
if tag == 'td': self.pbr()
if tag == "pre":
if start:
self.startpre = 1
self.pre = 1
else:
self.pre = 0
self.p()
def pbr(self):
if self.p_p == 0: self.p_p = 1
def p(self): self.p_p = 2
def o(self, data, puredata=0, force=0):
if self.abbr_data is not None: self.abbr_data += data
if not self.quiet:
if puredata and not self.pre:
data = re.sub('\s+', ' ', data)
if data and data[0] == ' ':
self.space = 1
data = data[1:]
if not data and not force: return
if self.startpre:
#self.out(" :") #TODO: not output when already one there
self.startpre = 0
bq = (">" * self.blockquote)
if not (force and data and data[0] == ">") and self.blockquote: bq += " "
if self.pre:
bq += " "
data = data.replace("\n", "\n"+bq)
if self.start:
self.space = 0
self.p_p = 0
self.start = 0
if force == 'end':
# It's the end.
self.p_p = 0
self.out("\n")
self.space = 0
if self.p_p:
self.out(('\n'+bq)*self.p_p)
self.space = 0
if self.space:
if not self.lastWasNL: self.out(' ')
self.space = 0
if self.a and ((self.p_p == 2 and LINKS_EACH_PARAGRAPH) or force == "end"):
if force == "end": self.out("\n")
newa = []
for link in self.a:
if self.outcount > link['outcount']:
self.out(" ["+`link['count']`+"]: " + urlparse.urljoin(self.baseurl, link['href']))
if link.has_key('title'): self.out(" ("+link['title']+")")
self.out("\n")
else:
newa.append(link)
if self.a != newa: self.out("\n") # Don't need an extra line when nothing was done.
self.a = newa
if self.abbr_list and force == "end":
for abbr, definition in self.abbr_list.items():
self.out(" *[" + abbr + "]: " + definition + "\n")
self.p_p = 0
self.out(data)
self.lastWasNL = data and data[-1] == '\n'
self.outcount += 1
def handle_data(self, data):
if r'\/script>' in data: self.quiet -= 1
self.o(data, 1)
def unknown_decl(self, data): pass
def wrapwrite(text): sys.stdout.write(text.encode('utf8'))
def html2text_file(html, out=wrapwrite, baseurl=''):
h = _html2text(out, baseurl)
h.feed(html)
h.feed("")
return h.close()
def html2text(html, baseurl=''):
return optwrap(html2text_file(html, None, baseurl))
if __name__ == "__main__":
baseurl = ''
if sys.argv[1:]:
arg = sys.argv[1]
if arg.startswith('http://'):
baseurl = arg
j = urllib.urlopen(baseurl)
try:
from feedparser import _getCharacterEncoding as enc
except ImportError:
enc = lambda x, y: ('utf-8', 1)
text = j.read()
encoding = enc(j.headers, text)[0]
if encoding == 'us-ascii': encoding = 'utf-8'
data = text.decode(encoding)
else:
encoding = 'utf8'
if len(sys.argv) > 2:
encoding = sys.argv[2]
data = open(arg, 'r').read().decode(encoding)
else:
data = sys.stdin.read().decode('utf8')
wrapwrite(html2text(data, baseurl))
Dernière modification par Fenouille84 (Le 09/04/2010, à 14:37)
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#1846 Le 09/04/2010, à 14:29
- zydar
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
@Fenouille84
avec tes fichiers ca marche !! merciii
(euu tu sais pour les caractères spéciaux ?
- GNU/Linux, c'est la vie :p
-- Les formats ouverts aussi d'ailleurs ! (odt, odf, pdf, png, ...)
Hors ligne
#1847 Le 09/04/2010, à 14:37
- Fenouille84
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
(euu tu sais pour les caractères spéciaux ?)
C'est à dire ?
Normalement, c'est retranscrit en UTF-8. Donc il ne devrait pas y avoir de soucis avec les accents.
Toutefois, il y avait un souci avec le signe : " (pour les citations), mais je l'ai corrigé.
Quel genre de problème as tu exactement ?
Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --
Hors ligne
#1848 Le 09/04/2010, à 15:03
- zydar
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
ça :'(
- GNU/Linux, c'est la vie :p
-- Les formats ouverts aussi d'ailleurs ! (odt, odf, pdf, png, ...)
Hors ligne
#1849 Le 09/04/2010, à 15:14
- Levi59
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
pour les fortunes tronquées, essaye d'augmenter cette valeure:
text_buffer_size 2048
Hors ligne
#1850 Le 09/04/2010, à 15:20
- zydar
Re : (3) Conky : Postez vos conkyrc ou certaines parties intéressantes
@Levi59
je viens de trouvé pour les fortunes j'avais oublié le | fold -s -w 50
${execi 60 fortune | fold -s -w 50}
aussi un problème dans l'alignement du calendrier
${font Visitor TT1 BRK : pixelsize=12}${color3}Calendrier${alignr}Heure${font}
${color8}${voffset -5}${hr}
${color9}${font monaco:pixelsize=12}${offset 62}
${color8}${execpi 60 DJS=`date +%_d`; cal | sed '/./!d' | sed '1d' | sed 's/$/ /' | fold -w 21 | sed -n '/^.\{21\}/p' | sed 's/^/ /' | sed /" $DJS "/s/" $DJS "/" "'${color3}'"$DJS"'${color8}'" "/}
${font Sans:size=25}${color1}${offset 215}${voffset -80}${time %H}${color2}${offset 1}${voffset -15}${font Sans:size=9}${time :%M:%S}
${offset 260}${color6}Heures
les chiffres ne sont pas sous les jours les nombres oui par contre . . .
Dernière modification par zydar (Le 09/04/2010, à 15:51)
- GNU/Linux, c'est la vie :p
-- Les formats ouverts aussi d'ailleurs ! (odt, odf, pdf, png, ...)
Hors ligne