Home Forums Wiki Doc Install Extras Screenshots Source Code Projects Blog Users Groups Register
Glx-Dock / Cairo-Dock List of forums Technical discussions | Discussions techniques programme externe avec DBus(showdialog)
The latest stable release is the *3.4.0* : How to install it here.
Note: We just switched from BZR to Git on Github! (only to host the code and your future pull requests)
Technical discussions | Discussions techniques

Subjects Author Language Messages Last message
[Locked] programme externe avec DBus(showdialog)
Page : 1 2
ours_en_pluche Français 23 ours_en_pluche [Read]
19 September 2009 à 01:35

ours_en_pluche, Wednesday 16 September 2009 à 19:14


Subscription date : 02 September 2009
Messages : 539
Bon, j ai un ti programme sous xchat qui me permet d aller verifier les flux rss de forums/site ( actuellement envirson 80/90 ) ( c est actuellement codé en perl, mais je doit pouvoir le refaire en tcl si le besoin s en fait sentir )

je me dis que je pourrais peut etre le coupler a cairo-dock via le dbus showdialog ( en le sortant d xchat, et en le crontab pour qu il le fasse auto toutes les X minutes ) ( ou une autre methode , je suis open, pour ca en tout cas )

mais est ce qu il est possible de faire ceci

d afficher plusieurs lignes ?? ( j ai essayé \n ( regexp pour aller a la ligne ) et <br>|<br /> , ca marche po )
de rajouter un bouton, genre "ouvrir un nouvel onglet ou une fenetre si pas actif"

et

a quoi corresponde les 3 string:none de :

dbus-send --session --dest=org.cairodock.CairoDock /org/cairodock/CairoDock org.cairodock.CairoDock.ShowDialog string:"Cairo-Dock is great \!" int32:5 string:none string:none string:none


have a nice day

ours_en_pluche

nochka85, Wednesday 16 September 2009 à 19:58


Subscription date : 29 November 2007
Messages : 7408
Tu n'as qu'à jeter un coup d'oeil à l'applet externe quick_rss_reader
Pour la récupérer (pour l'instant) -> Dans le répertoire de ton choix :

bzr branch lp:~nochka85/cairo-dock-plug-ins/quick_rss_reader


-> Pour tester l'applet (il y a déjà de préconfiguré les flux de cairo-dock-core, cairo-dock-plug-ins et Phoronix), tu vas dans ce répertoire puis :
./quick_rss_reader


(l'applet devrais apparaître dans ton dock ou dans la config <- dans ce dernier cas, tu la coche pour l'activer)

Utilisation :
      • Clic milieu : Voir le flux en cours
      • Clic gauche : Afficher les données du flux en cours
      • Molette : Passer d'un flux à un autre
      • Menu contextuel + quick_rss_reader/"Open this rss feed" : Ouvrir le flux dans le navigateur web

(+ dans la config : choix du lanceur pour le navigateur + 10 flux rss à renseigner MAXI)

Et pour voir les commandes utilisées, tu n'as qu'à regarder dans "quick_rss_reader.sh"

EDIT :

Ah oui, j'oubliais : Voilà ce que cela donne en "action" :

http://uppix.net/0/9/4/f7326332f942472aee1b46c6fbd22tt.jpg

ours_en_pluche, Wednesday 16 September 2009 à 22:53


Subscription date : 02 September 2009
Messages : 539
oui je vois, je vais zieuter plus precisement ca nochka85

merci

have a nice day

ours_en_pluche

fabounet, Thursday 17 September 2009 à 12:17


Subscription date : 30 November 2007
Messages : 17118
regarde surtout la documentation sur le wiki
les 3 strings sont pour identifier une icône.
des "\n" feront des retours à la ligne.

ours_en_pluche, Thursday 17 September 2009 à 12:44


Subscription date : 02 September 2009
Messages : 539
oui fabounet, mais par contre bizarrement :

dbus-send --session --dest=org.cairodock.CairoDock /org/cairodock/CairoDock org.cairodock.CairoDock.ShowDialog string:"Cairo-Dock\nCairo-Dock is great \!" int32:5 string:none string:none string:none


ne m affichera pas deux lignes, il faut mettre le texte dans une variable pour que ce soit effectif

( merci matttbe pour cette info )

have a nice day

ours_en_pluche

fabounet, Thursday 17 September 2009 à 12:57


Subscription date : 30 November 2007
Messages : 17118
peut etre avec \\n au lieu de \n

nochka85, Thursday 17 September 2009 à 13:50


Subscription date : 29 November 2007
Messages : 7408
ne m affichera pas deux lignes, il faut mettre le texte dans une variable pour que ce soit effectif

( merci matttbe pour cette info )


Tout à fait, j'avais remarqué çà aussi

peut etre avec \\n au lieu de \n


C'est pareil

ours_en_pluche, Thursday 17 September 2009 à 17:11


Subscription date : 02 September 2009
Messages : 539
re

bon, bin ce sera en variable alors

par contre, un truc qui pourrait etre sympa a implementer, c est de permettre que l on puisse envoyer des balises dans le showdialog pour le rendre un peu plus sympathique, je pense entre autre au balise BBCODE comme on a sur le forum

par exemple, couleur, gras, souligné, code, lien, image.

@fabounet est ce qu il y a moyen d afficher une icone d un prog externe qui n est pas un applet ???

par exemple, j ai refait un showdialog pour les highlight sur irc, et j aimerai bien mettre une icone

have a nice day

ours_en_pluche

fabounet, Thursday 17 September 2009 à 17:24


Subscription date : 30 November 2007
Messages : 17118
oui, cf les 3 strings (et la doc)

matttbe, Thursday 17 September 2009 à 18:31


Subscription date : 24 January 2009
Messages : 12573
sauf qu'il n'est pas mis à quoi correspond quoi dans la doc

ours_en_pluche, Thursday 17 September 2009 à 19:05


Subscription date : 02 September 2009
Messages : 539
re

ni dans le wiki

have a nice day

ours_en_pluche

fabounet, Friday 18 September 2009 à 12:03


Subscription date : 30 November 2007
Messages : 17118
? dans le wiki j'en suis pratiquement sûr, avec 2 exemples même.

matttbe, Friday 18 September 2009 à 12:24


Subscription date : 24 January 2009
Messages : 12573
C'est le moment de parier avec Fab !!!

fabounet, Friday 18 September 2009 à 14:54


Subscription date : 30 November 2007
Messages : 17118
ok
<mode Ken le survivant>
Tu ne le sais pas encore mais tu as déjà perdu.
</mode Ken le survivant>

matttbe, Friday 18 September 2009 à 15:28


Subscription date : 24 January 2009
Messages : 12573
wiki :
Pops up a dialog bubble with a message on a given icon and for a given duration (in seconds). If the icon is not found, it displays the message as a general message. The dialog can be closed by clicking on it.
The following command will pop up a dialog saying "Cairo-Dock is great !" for 5 seconds, which is perfectly true
dbus-send --session --dest=org.cairodock.CairoDock /org/cairodock/CairoDock org.cairodock.CairoDock.ShowDialog string:"Cairo-Dock is great \!" int32:5 string:none string:none string:none

----- (...) -----

ShowDialog
Pops up a dialog bubble on our icon, with a given message and for a given duration (in seconds). The dialog can be closed by clicking on it.
dbus-send --session --dest=org.cairodock.CairoDock /org/cairodock/CairoDock/demo org.cairodock.CairoDock.applet.ShowDialog string:"Cairo-Dock is great \!" int32:5
Il n'est pas mis à quoi correspond quoi

ours_en_pluche, Friday 18 September 2009 à 15:48


Subscription date : 02 September 2009
Messages : 539
re

and the winner is ... ( roulement de tambour ) ...

pas plutot mode kenny fabounet ??

ours_en_pluche

yeahhh

/me se cache

have a nice day

ours_en_pluche

fabounet, Friday 18 September 2009 à 16:23


Subscription date : 30 November 2007
Messages : 17118
tutut, on lit le wiki comme il faut
http://www.glx-dock.org/ww_page.php?p=Control_your_dock_with_DBus&lang=en#12-Act%20on%20the%20icons
c'est en intro du chapitre correspodant (puisque ça concerne toutes les méthodes du chapitre)

bon, où est mon fouet ?

fabounet, Friday 18 September 2009 à 18:22


Subscription date : 30 November 2007
Messages : 17118
allez voila de quoi vous occuper un moment
http://www.xchat.org/docs/plugin20.html

et un petit exemple (l'API est très similaire à celle de CD, tu enregistres ton plug-in, puis tu récupères l'interface correspondante sur le bus)

#! /usr/bin/python

import dbus

bus = dbus.SessionBus()
proxy = bus.get_object('org.xchat.service', '/org/xchat/Remote')
remote = dbus.Interface(proxy, 'org.xchat.connection')
path = remote.Connect ("example.py",
         "Python example",
         "Example of a D-Bus client written in python",
         "1.0")
proxy = bus.get_object('org.xchat.service', path)
xchat = dbus.Interface(proxy, 'org.xchat.plugin')

channels = xchat.ListGet ("channels")
while xchat.ListNext (channels):
    name = xchat.ListStr (channels, "channel")
    print "------- " + name + " -------"
    xchat.SetContext (xchat.ListInt (channels, "context"))
    xchat.EmitPrint ("Channel Message", ["John", "Hi there", "@"])
    users = xchat.ListGet ("users")
    while xchat.ListNext (users):
        print "Nick: " + xchat.ListStr (users, "nick")
    xchat.ListFree (users)
xchat.ListFree (channels)

print xchat.Strip ("\00312Blue\003 \002Bold!\002", -1, 1|2)

ours_en_pluche, Friday 18 September 2009 à 18:50


Subscription date : 02 September 2009
Messages : 539
re ben ecrire un code qui affiche via dbus, pas de soucis fabounet

ca t affiche tes stats d aMule

#!/usr/bin/perl

use strict;
use warnings;
my %ourson;

$ourson{'exec'} = "amuled -e -f";
$ourson{'amule_version'} = ":: <pseudo> :: Version ( <version> ) ::";
$ourson{'amule_serveur'} = ":: <pseudo> :: Serveur : <etat> :: Serveur : <serveur> ( <ip> : <port> ) ::";
$ourson{'amule_kad'} = ":: <pseudo> :: Kad : <etat> ::";
$ourson{'amule_dl'} = ":: <pseudo> :: Download ( <tmp> / <max> Ko/s ) :: Total ( <tmp2> / <max2> Mo )::";
$ourson{'amule_ul'} = ":: <pseudo> :: Upload ( <tmp> / <max> Ko/s ) :: Total ( <tmp2> / <max2> Mo )::";
$ourson{'amule_systeme'} = ":: <pseudo> :: Cpu : <cpu>% :: Ram : <ram>% :: Pid : <pid> ::";
$ourson{'amule_partage'} = ":: <pseudo> :: Fichier : <fichier> :: Client : <client> ::";

open(FIC,$ENV{HOME}."/.aMule/amule.conf");
my @tmp = <FIC>;
close(FIC);
my ($max_dl,$max_ul);
foreach my $a (@tmp) {
    if ( $a =~ /^MaxDownload=(.*)$/ ) {
        $max_dl = $1;
    } elsif ( $a =~ /^MaxUpload=(.*)$/ ) {
        $max_ul = $1;
    }
}
open(FIC,$ENV{HOME}."/.aMule/amulesig.dat");
my @tmp2 = <FIC>;
close(FIC);
my ($serv_state,$serv_name,$serv_ip,$serv_port,$serv_ID,$kad_state,$dl_stat,$ul_stat,$client_stat,$file_share,$nick,$total_dl,$total_ul,$version,$ses_total_dl,$ses_total_ul,$start_stat) = (@tmp2);
$serv_state =~ s/\n//g;$serv_name =~ s/\n//g; $serv_ip =~ s/\n//g; $serv_port =~ s/\n//g; $serv_ID =~ s/\n//g;
if ( $serv_ID =~ /^0$/ ) { $serv_ID = "Deconnecté"; } elsif ( $serv_ID =~ /^H$/ ) { $serv_ID = "HighID"; } elsif ( $serv_ID =~ /^L$/ ) { $serv_ID = "LowID"; }
$kad_state =~ s/\n//g;
if ( $kad_state =~ /^0$/ ) { $kad_state = "Deconnecté";} elsif ( $kad_state =~ /^2$/ ) { $kad_state = "HighID"; } elsif ( $kad_state =~ /^1$/ ) { $kad_state = "LowID"; }
$dl_stat =~ s/\n//g; $ul_stat =~ s/\n//g; $client_stat =~ s/\n//g; $file_share =~ s/\n//g; $nick =~ s/\n//g; $total_dl =~ s/\n//g; $total_ul =~ s/\n//g; $version =~ s/\n//g;
$ses_total_dl =~ s/\n//g; $ses_total_ul =~ s/\n//g;
$ses_total_dl = int($ses_total_dl/1024000); $ses_total_ul = int($ses_total_ul/1024000);
$total_dl = int($total_dl/1024000); $total_ul = int($total_ul/1024000);
$start_stat =~ s/\n//g;$max_ul =~ s/\n//g; $max_dl =~ s/\n//g;    
my $tmp3 = `ps aux | grep "$ourson{'exec'}"`;
my ($amule_pid,$amule_cpu,$amule_mem);
foreach my $tmp4 (split(/\n/,$tmp3)) {
    if ( $tmp4 !~ /.*grep.*/ ) {
        my @tmp5 = split(/\s+/,$tmp4);
        ($amule_pid,$amule_cpu,$amule_mem) = ($tmp5[1],$tmp5[2],$tmp5[3]);
    }
}
my $tmp6 = $ourson{'amule_version'};
$tmp6 =~ s/<pseudo>/$nick/g; $tmp6 =~ s/<version>/$version/g;
my $tmp7 = $ourson{'amule_serveur'};
$tmp7 =~ s/<pseudo>/$nick/g; $tmp7 =~ s/<etat>/$serv_ID/g; $tmp7 =~ s/<serveur>/$serv_name/g; $tmp7 =~ s/<ip>/$serv_ip/g; $tmp7 =~ s/<port>/$serv_port/g;
my $tmp8 = $ourson{'amule_kad'};
$tmp8 =~ s/<pseudo>/$nick/g; $tmp8 =~ s/<etat>/$kad_state/g;
my $tmp9 = $ourson{'amule_dl'};
$tmp9 =~ s/<pseudo>/$nick/g; $tmp9 =~ s/<tmp>/$dl_stat/g; $tmp9 =~ s/<max>/$max_dl/g; $tmp9 =~ s/<tmp2>/$ses_total_dl/g; $tmp9 =~ s/<max2>/$total_dl/g;
my $tmp10 = $ourson{'amule_ul'};
$tmp10 =~ s/<pseudo>/$nick/g; $tmp10 =~ s/<tmp>/$ul_stat/g; $tmp10 =~ s/<max>/$max_ul/g; $tmp10 =~ s/<tmp2>/$ses_total_ul/g; $tmp10 =~ s/<max2>/$total_ul/g;
my $tmp11 = $ourson{'amule_systeme'};
$tmp11 =~ s/<pseudo>/$nick/g;$tmp11 =~ s/<cpu>/$amule_cpu/g;$tmp11 =~ s/<ram>/$amule_mem/g;$tmp11 =~ s/<pid>/$amule_pid/g;
my $tmp12 = $ourson{'amule_partage'};
$tmp12 =~ s/<pseudo>/$nick/g;$tmp12 =~ s/<fichier>/$file_share/g;$tmp12 =~ s/<client>/$client_stat/g;

my $msg = "[_aMule_]\n".$tmp6."\n".$tmp7."\n".$tmp8."\n".$tmp9."\n".$tmp10."\n".$tmp11."\n".$tmp12."\n";
`dbus-send --session --dest=org.cairodock.CairoDock /org/cairodock/CairoDock org.cairodock.CairoDock.ShowDialog string:"$msg" int32:15 string:none string:none string:none`;

1;


mais ca te donne un truc qui ressemble a ca :

http://deliriazone.free.fr/cairo-dock/applet/aMule/amule1.png

et je voulais savoir si y avait moyen d obtenir ca :

http://deliriazone.free.fr/cairo-dock/applet/aMule/amule2.png

ce qui est quand meme un chouillat plus beau a mon avis

Edit : modification et rajout du choix de l executable pour une prise en charge d amule et d amuled

have a nice day

ours_en_pluche

taiebot65, Friday 18 September 2009 à 19:50


Subscription date : 26 October 2008
Messages : 1904
PIRATE va ....

en plus ton cpu n'aime pas trop ca 34%

As tu essaye deluge ou transmission?

Technical discussions | Discussions techniques

Subjects Author Language Messages Last message
[Locked] programme externe avec DBus(showdialog)
Page : 1 2
ours_en_pluche Français 23 ours_en_pluche [Read]
19 September 2009 à 01:35


Glx-Dock / Cairo-Dock List of forums Technical discussions | Discussions techniques programme externe avec DBus(showdialog) Top

Online users :

Powered by ElementSpeak © 2007 Adrien Pilleboue, 2009-2013 Matthieu Baerts.
Dock based on CSS Dock Menu (Ndesign) with jQuery. Icons by zgegball
Cairo-Dock is a free software under GNU-GPL3 licence. First stable version created by Fabounet.
Many thanks to TuxFamily for the web Hosting and Mav for the domain name.