Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#251 Le 19/09/2014, à 19:37

melixgaro

Re : [script] Notification de mise à jour automatiques

j'insiste bien, avec sudo je n'ai aucune bulle


Linux depuis ~2007. Xubuntu seulement.

Hors ligne

#252 Le 19/09/2014, à 19:45

Gaara

Re : [script] Notification de mise à jour automatiques

Ok, donc même comportement que sur ma machine. Sauf que je n'ai pas Dbus donc les 3 notifications s'affichent.
Ça commence à s'éclaircir..

Dernière modification par Gaara (Le 19/09/2014, à 20:29)


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#253 Le 19/09/2014, à 19:49

Gaara

Re : [script] Notification de mise à jour automatiques

j'insiste bien, avec sudo je n'ai aucune bulle

Heu.. ton post #248 est il bien exact ? Avec un sudo dans les deux ? J'ai peur de ne pas avoir compris ton retour...


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#254 Le 19/09/2014, à 19:56

melixgaro

Re : [script] Notification de mise à jour automatiques

désolé, j'ai corrigé le post #248. je beugue totalement ces jours-ci sad
avec sudo -> rien
sans sudo -> A & B


Linux depuis ~2007. Xubuntu seulement.

Hors ligne

#255 Le 19/09/2014, à 19:59

Gaara

Re : [script] Notification de mise à jour automatiques

Ok wink
Du coup peux tu essayer ça (pour ta peine lol)

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import pynotify
import os
import pwd

uid_root = pwd.getpwnam('root').pw_uid
uid_user = pwd.getpwnam('melixgaro').pw_uid

#commande qui initialise je sais pas quoi...
os.seteuid

#mode normal
os.seteuid(uid_user)
title="titre"
message="message A"
pynotify.init("Test")
notice = pynotify.Notification(title, message)
notice.show()

#mode root
os.seteuid(uid_root)
title="titre"
message="message B"
pynotify.init("Test")
notice = pynotify.Notification(title, message)
notice.show()

Tu devrais avoir le message A seulement, en toute logique.
Edit: ce script ne fonctionne pas chez moi, erreur au notice.show() ligne 20..

J'y comprend rien sad

Dernière modification par Gaara (Le 19/09/2014, à 20:03)


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#256 Le 19/09/2014, à 20:04

melixgaro

Re : [script] Notification de mise à jour automatiques

voilà
avec sudo -> rien
sans sudo -> A

$ sudo python test2.py 
Traceback (most recent call last):
  File "test2.py", line 20, in <module>
    notice.show()
gio.Error: Cannot spawn a message bus when setuid
$ python test2.py 
Traceback (most recent call last):
  File "test2.py", line 23, in <module>
    os.seteuid(uid_root)
OSError: [Errno 1] Operation not permitted


PS : n'espère pas trop de réponses de ma part ce weekend, je risque d'être complètement hors-ligne... ce qui s'apparente quasiment à la fin du d'un monde... je déconnecte d'internet dans ~15 min... si tu as une ultime requête wink


Linux depuis ~2007. Xubuntu seulement.

Hors ligne

#257 Le 19/09/2014, à 20:07

melixgaro

Re : [script] Notification de mise à jour automatiques

j'avais joué avec python et les bulles de notification il y a un peu plus d'un an... si je retrouve des notes que je juge utiles, je les publierai ici... mais faut attendre lundi


Linux depuis ~2007. Xubuntu seulement.

Hors ligne

#258 Le 19/09/2014, à 20:07

Gaara

Re : [script] Notification de mise à jour automatiques

Nan, c'est bon, merci, je crois que je vais abandonner les notifications, car j'y comprend rien du tout...


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#259 Le 19/09/2014, à 20:10

Gaara

Re : [script] Notification de mise à jour automatiques

Le problème c'est que mon script s'execute en root, et ça je ne peux pas le changer! Donc notification en root = problème
C'est pour ça que tous les tests doivent être faits avec un sudo.. Sinon ça serait trop facile..
Merci pour ton aide ! smile
ps: ça me retarde un peu dpluzz, mais c'est nettement plus simple que ça, c'est sur la bonne voie vers v0.9 !

Bon W.E !


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#260 Le 19/09/2014, à 20:12

melixgaro

Re : [script] Notification de mise à jour automatiques

bon w.e. également ! wink


Linux depuis ~2007. Xubuntu seulement.

Hors ligne

#261 Le 19/09/2014, à 20:13

metalux

Re : [script] Notification de mise à jour automatiques

Salut,
Même chose chez moi que melixgaro.
1er test:

sudo python essai.py
Traceback (most recent call last):
  File "essai.py", line 17, in <module>
    notice.show()
glib.GError: Erreur lors de l'appel de StartServiceByName pour org.freedesktop.Notifications : GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: Process /bin/sh exited with status 1

2ème test en commentant le paragraphe 1

sudo python essai.py
Traceback (most recent call last):
  File "essai.py", line 17, in <module>
    notice.show()
glib.GError: Erreur lors de l'appel de StartServiceByName pour org.freedesktop.Notifications : GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: Process /bin/sh exited with status 1

3ème test:

sudo python essai.py
Traceback (most recent call last):
  File "essai.py", line 25, in <module>
    notice.show()
glib.GError: Erreur lors de l'appel de StartServiceByName pour org.freedesktop.Notifications : GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: Process /bin/sh exited with status 1

4ème test, la notification s'affiche malgré l'erreur:

python essai.py
Traceback (most recent call last):
  File "essai.py", line 28, in <module>
    os.seteuid(uid_root)
OSError: [Errno 1] Opération non permise

@spyro
Merci pour l'article.

Dernière modification par metalux (Le 19/09/2014, à 20:15)

Hors ligne

#262 Le 19/09/2014, à 20:23

Gaara

Re : [script] Notification de mise à jour automatiques

Merci metalux, je crois que je vais laisser tomber, je comprend rien.
On est 4 à avoir essayé, 3 résultats différents.. (ou 2 -> Je pense que ça dépend de la distrib de base)
Au fait hier j'ai dit une bêtise, j'ai bien Dbus installé, je viens de vérifier.

Il va falloir que j'apprenne à écrire du texte dynamique dans une fenêtre, ça sera plus intéressant. Au moins tout sera en Gtk, qui a fait ses preuves.

Dernière modification par Gaara (Le 19/09/2014, à 20:28)


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#263 Le 19/09/2014, à 20:54

metalux

Re : [script] Notification de mise à jour automatiques

Le problème c'est que mon script s'execute en root, et ça je ne peux pas le changer! Donc notification en root = problème

Je ne suis pas le seul à m'être cassé les dents là-dessus à ce que je vois. Maintenant tu comprends certainement mieux pourquoi j'utilise zenity pour les fenêtres d'info au lieu de notify-send, maj_auto étant aussi lancé en root dans la 2ème partie du script.
Bonne continuation et bon W.E.

Hors ligne

#264 Le 19/09/2014, à 21:06

Didier-T

Re : [script] Notification de mise à jour automatiques

Bonsoir a tous,
je viens de tester sur mon poste, pas de soucis si je suis en root, sinon je n'ai pas le droit de passer sur l'uid root (ce qui est normal)
pour infos, je sous Xubuntu 14.04 64bits.

je me suis un peut amusé avec le script, pour que les notifications me donne le nom de l'utilisateur qui affiche les bulles.
de plus, j'ai modifié la ligne ou l'on devait indiquer en dur le nom d'utilisateur de la session en cours
j'ai aussi supprimé le premier os.seteuid qui ne sert a rien

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import pynotify
import os
import pwd

uid_root = pwd.getpwnam('root').pw_uid
uid_user = pwd.getpwnam(os.getlogin()).pw_uid

#mode root (1er paragraphe)
title="titre"
message="Notification en tant que "+pwd.getpwuid(os.geteuid())[0]
pynotify.init("Test")
notice = pynotify.Notification(title, message)
notice.show()

#mode normal (2eme paragraphe)
os.seteuid(uid_user)
title="titre"
message="Notification en tant que "+pwd.getpwuid(os.geteuid())[0]
pynotify.init("Test")
notice = pynotify.Notification(title, message)
notice.show()

#retour en mode root (3eme paragraphe)
os.seteuid(uid_root)
title="titre"
message="Notification en tant que "+pwd.getpwuid(os.geteuid())[0]
pynotify.init("Test")
notice = pynotify.Notification(title, message)
notice.show()

edit :
il y a aussi avec cette bibliothèque (qui utiliserait GTK)
pour moi sa fonctionne aussi bien (à lancer en root)

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from gi.repository import Notify
import os
import pwd


uid_root = pwd.getpwnam('root').pw_uid
uid_user = pwd.getpwnam(os.getlogin()).pw_uid

#initialisation du nom de la fenetre de notification
Notify.init("myapp_name")

#mode root (1er paragraphe)
title="titre"
message="Notification en tant que "+pwd.getpwuid(os.geteuid())[0]
notice = Notify.Notification.new(title, message)
notice.show()

#mode normal (2eme paragraphe)
os.seteuid(uid_user)
title="titre"
message="Notification en tant que "+pwd.getpwuid(os.geteuid())[0]
notice = Notify.Notification.new(title, message)
notice.show()

#retour en mode root (3eme paragraphe)
os.seteuid(uid_root)
title="titre"
message="Notification en tant que "+pwd.getpwuid(os.geteuid())[0]
notice = Notify.Notification.new(title, message)
notice.show()

Il y a un tuto pas mal du tout ici et en français

Dernière modification par Didier-T (Le 19/09/2014, à 21:36)

Hors ligne

#265 Le 19/09/2014, à 22:41

Gaara

Re : [script] Notification de mise à jour automatiques

@metalux:
Pour ton script, zenity est tout à fait approprié, cela ne m'a pas choqué. D'ailleurs tu utilises zenity pour toutes tes boites de dialogue, donc c'est très bien intégré.
J'étais sur le point de me dire que je devais créer des minis fenêtres Gtk (de la même façon que la principale), rien que pour afficher ces notifications, avec le code couleur défini par la config.
Ce serait peut-être une bonne solution in fine.

@Didier-T:
Merci pour ton intervention, j'ai essayé tes scripts et tout fonctionne bien, en les lançant en root.
1er script-> 2 notifications, en tant que root, puis user.
2eme script -> 3 notifications: root, user, root.
Niveau visuel, elles s'affichent toutes comme si c'était des notifications en root (noires + police blanche, et non blanches avec petite police noire)
(Kubuntu 14.04 x64)

Mais ce n'est pas sur ma machine que ça bloque, donc je reste avec la question en suspend...


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#266 Le 21/09/2014, à 07:49

metalux

Re : [script] Notification de mise à jour automatiques

Non, c'est pas mieux avec les scripts de Didier-T, toujours pas d'affichage des notifications.

Hors ligne

#267 Le 21/09/2014, à 08:19

Gaara

Re : [script] Notification de mise à jour automatiques

@metalux:
Salut,
Le paquet notification-daemon est-il installé chez toi ? Et xfce4-notifyd ?
Il semblerait qu'il y ait un "conflit" entre les deux (ou quelque chose comme ça),  et notification-daemon étant insdispensable pour faire fonctionner python-notify. (voir cette discussion et celle ci)

Edit: si tu installes le démon il faut redémarrer (ou se déconnecter/reco) pour refaire un essai, pour qu'il se mette en route.

Dernière modification par Gaara (Le 21/09/2014, à 08:24)


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#268 Le 21/09/2014, à 08:30

Gaara

Re : [script] Notification de mise à jour automatiques

Il y a aussi ça que tu pourrais essayer (toujours en root):

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import pynotify
import os
import pwd

uid_root = pwd.getpwnam('root').pw_uid
uid_user = pwd.getpwnam(os.getlogin()).pw_uid

#mode root (1er paragraphe)
title="titre"
message="Notification en tant que "+pwd.getpwuid(os.geteuid())[0]
pynotify.init("Test")
notice = pynotify.Notification(title, message)
try:
   notice.show()
except:
   notice.show()

(source)


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#269 Le 21/09/2014, à 10:54

metalux

Re : [script] Notification de mise à jour automatiques

Le paquet notification-daemon est-il installé chez toi ? Et xfce4-notifyd ?

Désolé Gaara, j'étais passé à côté du post #183 et notification-daemon n'était pas installé. Maintenant tout fonctionne, même avec notify-send. Dire que j'ai cherché longtemps pour cette histoire de notification et c'est une dépendance qu'il manquait.
Pour xfce4-notifyd, j'utilise la notification avec Unity et je n'ai pas testé avec Xfce mais ça fonctionne apparemment avec d'après Didier-T.

Hors ligne

#270 Le 21/09/2014, à 14:32

Gaara

Re : [script] Notification de mise à jour automatiques

Bon, finalement ça s'arrange !
Mais du coup j'ai écrit un script qui fait la même chose, sans utiliser python-notify, ni notify-osd.
C'est juste une fenêtre Gtk (elle devrait s'afficher en vert pour cet exemple) -> donc ça pourrait reprendre la couleur de la notification principale

Le code est un peu plus long, mais ça devrait fonctionner chez tout le monde, sans ajouter de dépendance. (en root ou en normal)

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import pygtk
pygtk.require('2.0')
import gtk
import gtk.gdk
import time
import math


class Time:
   
   def auto(self, Time, donnees=None):
       
       # entourage
       cadre = gtk.Frame("Titre")
       self.boite.add(cadre)
          
       # initialisation etiquette
       etiquette = gtk.Label()
       etiquette.set_alignment(0.5, 0.5)
       etiquette.set_justify(gtk.JUSTIFY_CENTER)
       cadre.add(etiquette)
       
       # texte 1
       etiquette.set_markup("<i><b>Message 1</b></i>")
       
       # affichage
       etiquette.show()
       self.boite.show()
       cadre.show()
       self.window.show()
       
       # affichage notification 1
       then = time.time()
       while then + 10 > time.time():
            while gtk.events_pending():
                 gtk.main_iteration()
       time.sleep(0.1)
       
       # fermeture notification 1
       self.window.hide()
       while gtk.events_pending():
                 gtk.main_iteration()

       #pause de 2s
       time.sleep(2)
       
       #texte 2
       etiquette.set_markup("<i><b>Message 2</b></i>")
       
       #affichage notification 2
       self.boite.show()
       self.window.show()
       then = time.time()
       while then + 10 > time.time():
           while gtk.events_pending():
                gtk.main_iteration()
       time.sleep(0.1)
                 
       print "sortie"
       exit() 
   
   
   def __init__(self):

       color = "#10a000"
       #positionX = 1560 # config pour mon écran
       #positionY = 35
       
       positionX = 800
       positionY = 35
        
       # Création fenetre principale
       self.window = gtk.Window(gtk.WINDOW_POPUP)
       
       # Position de la fenetre principale
       self.window.move(positionX+100, positionY)
       self.window.set_default_size(250, 80)
       self.window.set_position(gtk.WIN_POS_NONE)
       self.window.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
       
       self.window.connect('size-allocate', self.reshaperect)

       # Couleur de la fenetre
       map = self.window.get_colormap()
       colour = map.alloc_color(color) 
       style = self.window.get_style().copy()
       style.bg[gtk.STATE_NORMAL] = colour
       self.window.set_style(style)   
        
       #boite
       self.boite = gtk.HBox()
       self.window.add(self.boite)
       
       self.auto(self, Time)
   
   def reshaperect(self, obj, allocation):    # pour les coins arrondis

        w,h = allocation.width, allocation.height
        bitmap = gtk.gdk.Pixmap(None, w, h, 1)

        # Clear the bitmap
        fg = gtk.gdk.Color(pixel=0)
        bg = gtk.gdk.Color(pixel=-1)
        fg_gc = bitmap.new_gc(foreground=fg, background=bg)
        bitmap.draw_rectangle(fg_gc, True, 0, 0, w, h)

        # Draw our shape into the pixmap using cairo
        # Let's try drawing a rectangle with rounded edges.
        padding=2 # Padding from the edges of the window
        rounded=10 # How round to make the edges
        cr = bitmap.cairo_create()
        cr.set_source_rgb(0,0,0)
        # Move to top corner
        cr.move_to(0+padding+rounded, 0+padding)

        # Top right corner and round the edge
        cr.line_to(w-padding-rounded, 0+padding)
        cr.arc(w-padding-rounded, 0+padding+rounded, rounded, math.pi/2, 0)
        # Bottom right corner and round the edge
        cr.line_to(w-padding, h-padding-rounded)
        cr.arc(w-padding-rounded, h-padding-rounded, rounded, 0, math.pi/2)
        # Bottom left corner and round the edge.
        cr.line_to(0+padding+rounded, h-padding)
        cr.arc(0+padding+rounded, h-padding-rounded, rounded, math.pi+math.pi/2, math.pi)
        # Top left corner and round the edge
        cr.line_to(0+padding, 0+padding+rounded)
        cr.arc(0+padding+rounded, 0+padding+rounded, rounded, math.pi/2, 0)
        # Fill in the shape.
        cr.fill()

        # Set the window shape
        self.window.shape_combine_mask(bitmap, 0, 0)
        self.window.show() 
        
def main():
    gtk.main()
    return 0
  
if __name__ == "__main__":
    Time()
    main()

Pour la position, j'ai mis au pif. ça devrait s'afficher en haut, mais pour la position horizontale ça dépend de la taille de l'écran. Mais pareil, la config du logiciel pourrait donner toutes ces infos.

Si ça marche, on pourra choisir l'une ou l'autre solution.
@metalux:
Je ne sais pas si xfce4-notifyd est indispensable pour xfce, si notification-daemon le remplace, ou même s'il est installé par défaut dans Xubuntu.. c'est un peu la jungle.
Et ça fonctionne aussi en root ?

Dernière modification par Gaara (Le 21/09/2014, à 14:37)


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#271 Le 21/09/2014, à 17:54

Wullfk

Re : [script] Notification de mise à jour automatiques

Bonjour à tous,

Bizarre j'ai loupé pas mal de post depuis le dernier test avec "essai.py" pourtant le suivi est bien activé.

@Gaara;
Je fais quoi avec le nouveau script? il faut l'enregistrer ou et sous quel nom?


Ubuntu 14.04LTS 64Bits (Trusty Thar) - sur ASUS Z97-PRO GAMER avec Intel Core i5-4690K et 16Go DDR3 - VM VirtualBox W10 Pro 32Bits / Ubuntu 14.04LTS 32Bits / W7 Pro 32Bits
Connexion : FreeBox V6 en routeur + Routeur D-Link DIR-855
Navigateur : Firefox/Firefox ESR/Chromium/Tor Browser - Mail : Thunderbird
Blogs : http://easy.pc.blog.free.fr OU http://www.easy-pc.org

Hors ligne

#272 Le 21/09/2014, à 18:21

metalux

Re : [script] Notification de mise à jour automatiques

Je n'ai pas de soucis avec xfce4-notifyd seul qui est installé sur Xubuntu par défaut, et ce même en root. Le problème était présent sur Ubuntu avec notify-osd qui est installé par défaut. En ajoutant notification-daemon, ça fonctionne sur Unity.
Je viens de tester ton dernier script avec Xfce et ça fonctionne que ce soit en root ou non.
@spyro
Toujours pareil, tu l'enregistres sous le nom essai.py par exemple et tu lances avec la commande python essai.py. Puis en root, sudo python essai.py
Place toi bien dans le dossier ou tu as mis le script ou sinon indique le chemin complet comme sur cet exemple en supposant que tu l'as mis dans le dossier Documents

python ~/Documents/essai.py

Hors ligne

#273 Le 21/09/2014, à 18:45

Wullfk

Re : [script] Notification de mise à jour automatiques

OK,

Résultats:
avec la commande:

python essai.py

Ça fonctionne, message 1 et 2 s'affichent avec la fenêtre excentré sur la droite (écran de 19")

Avec la commande:

sudo python essai.py

idem, mêmes résultats


Ubuntu 14.04LTS 64Bits (Trusty Thar) - sur ASUS Z97-PRO GAMER avec Intel Core i5-4690K et 16Go DDR3 - VM VirtualBox W10 Pro 32Bits / Ubuntu 14.04LTS 32Bits / W7 Pro 32Bits
Connexion : FreeBox V6 en routeur + Routeur D-Link DIR-855
Navigateur : Firefox/Firefox ESR/Chromium/Tor Browser - Mail : Thunderbird
Blogs : http://easy.pc.blog.free.fr OU http://www.easy-pc.org

Hors ligne

#274 Le 22/09/2014, à 17:10

Gaara

Re : [script] Notification de mise à jour automatiques

Bon... finalement j'ai supprimé notify-send, en codant mes propres notifications.
L'avantage c'est de pouvoir configurer les couleurs, et ça sera bien intégré selon les réglages de l'utilisateur.
C'est presque fini, il me reste le test à partir de zéro. Je poste un nouveau package demain.


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#275 Le 23/09/2014, à 16:36

Wullfk

Re : [script] Notification de mise à jour automatiques

Bonjour,

Je viens d'avoir une mise à jour nécessitant un redémarrage, j'ai eu aucune notification de la part d'Auto_Upgrade_Notify.
faut il l'ajouter dans "Applications au démarrage"


Ubuntu 14.04LTS 64Bits (Trusty Thar) - sur ASUS Z97-PRO GAMER avec Intel Core i5-4690K et 16Go DDR3 - VM VirtualBox W10 Pro 32Bits / Ubuntu 14.04LTS 32Bits / W7 Pro 32Bits
Connexion : FreeBox V6 en routeur + Routeur D-Link DIR-855
Navigateur : Firefox/Firefox ESR/Chromium/Tor Browser - Mail : Thunderbird
Blogs : http://easy.pc.blog.free.fr OU http://www.easy-pc.org

Hors ligne