Forum Programmation.autre Firefox-scripts

Posté par  .
Étiquettes :
5
22
juil.
2010
Bonjour,

je cherche un moyen d'ajouter des menus au clic droit dans Firefox.

Par exemple :
- après sélection d'un numéro de téléphone, clic droit --> appeler avec Ekiga
- après sélection d'une adresse IP, clic droit --> se connecter via VNC
...

J'ai d'abord cherché dans les Nautilus-scripts avant de comprendre que c'était dans Firefox que j'en avais besoin.

Ensuite, j'ai cherché du côté de Geasemonkey et plus spécifiquement de "Super Linkifier" [http://userscripts.org/scripts/show/10958] mais je ne trouve pas mon bonheur. Ce script permet de transformer des URLs "texte" en hyperliens.

Quelqu'un aurait-il une piste à me proposer ?

Merci
  • # XUL

    Posté par  . Évalué à 7.

    tu te mets à potasser XUL et tu codes une extension pour firefox
    et si possible tu la fais plutôt générique pour pouvoir associer une expression rationnelle qui sera recherchée dans le site affiché avec une action accessible via le menu contextuel.

    Tu peux aussi reprendre une extension existante comme Launchy ( https://addons.mozilla.org/en-US/firefox/addon/81/ ) pour la décortiquer et l'adapter à ton besoin

    bon courage
  • # Jetpack

    Posté par  . Évalué à 3.

    Plus simple que XUL, tu peux sans doute passer via une extension passant par Jetpack > https://jetpack.mozillalabs.com/ < (en JS), ce qui est nettement plus accessible.
  • # Telify

    Posté par  . Évalué à 1.

    Bonjour et merci pour vos conseils.

    Du coup , j'ai pas mal cherché au niveau des extensions et j'en ai trouvé une : telify

    Elle me rajoute un sip:// devant un numéro de téléphone.

    I) Du coup j'ai associé sip:// dans Firefox à un code pour lancer EKIGA :

    /usr/bin/sip_dial_ekiga


    #!/usr/bin/sh
    /usr/bin/ekiga -c $1@IP_DE_MON_SERVEUR


    II) J'ai changé pour que ça lance l'appel depuis mon téléphone Aastra. (Penser à autoriser l'adresse IP du PC dans le PUSH XML du téléphone)

    /usr/bin/sip_dial_aastra


    #!/bin/sh
    /usr/bin/php5 /usr/bin/aastra.php $1


    /usr/bin/aastra.php

    <?php

    $num = $argv[1];
    $tab = explode(":",$num);
    $num = $tab[1];

    function push2phone($phone, $xml) {
    $post ="POST / HTTP/1.1\r\n";
    $post.="Host: $phone\r\n";
    $post.="Referer: $phone\r\n";
    $post.="Connection: Close\r\n";
    $post.="Content-Type: text/xml\r\n";
    $post.="Content-Length: ".(strlen($xml)+4)."\r\n\r\n";

    $fp = @fsockopen($phone, 80, $errno, $errstr, 5);
    if ($fp) {
    @stream_set_timeout($fp, 10);
    @fwrite($fp, $post."xml=".$xml);
    @fflush($fp);
    $response = @fgets($fp);
    @fclose($fp);
    if (strpos($response, '200 OK') === false) {
    echo "Refus du poste : {$response}\n";
    return false;
    }
    } else {
    echo "Erreur fsockopen: ({$errno}) {$errstr}\n";
    return false;
    }

    return true;
    }


    $phoneIP = "IP du téléphone";
    $xmlDial='<AastraIPPhoneExecute></AastraIPPhoneExecute>';

    push2phone($phoneIP, $xmlDial);

    ?>


    III) Encore plus simple : mettre ce script sur un serveur PHP. Autoriser l'IP du serveur sur le téléphone. Choisir dans le module Telify "Custom URL" au lieu de SIP. Ajouter les infos suivantes :

    http://votre_serveur_web/clicktocall.php?num=$0&phoneIP=$1
    Parameter #1 : IP du téléphone


    Le nouveau fichier PHP sur le serveur :
    clicktocall.php

    <?php
    $phoneIP = 0;
    $num = 0;

    //Pour utilisation "Custom URL"
    if (isset($_GET["num"])) $num = $_GET["num"];
    if (isset($_GET["phoneIP"])) $phoneIP = "".$_GET["phoneIP"]."";

    function push2phone($phone, $xml) {
    $post ="POST / HTTP/1.1\r\n";
    $post.="Host: $phone\r\n";
    $post.="Referer: $phone\r\n";
    $post.="Connection: Close\r\n";
    $post.="Content-Type: text/xml\r\n";
    $post.="Content-Length: ".(strlen($xml)+4)."\r\n\r\n";

    $fp = @fsockopen($phone, 80, $errno, $errstr, 5);
    if ($fp) {
    @stream_set_timeout($fp, 10);
    @fwrite($fp, $post."xml=".$xml);
    @fflush($fp);
    $response = @fgets($fp);
    @fclose($fp);
    if (strpos($response, '200 OK') === false) {
    echo "Refus du poste : {$response}\n";
    return false;
    }
    } else {
    echo "Erreur fsockopen: ({$errno}) {$errstr}\n";
    return false;
    }
    return true;
    }


    $xmlDial='<AastraIPPhoneExecute></AastraIPPhoneExecute>';

    push2phone($phoneIP, $xmlDial);

    ?>


    Voilà, si ça peut servir....

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.