Anzeige:
Ergebnis 1 bis 5 von 5

Thema: X-Chat: Übersicht der Channel Modes

  1. #1
    Registrierter Benutzer
    Registriert seit
    Oct 2004
    Beiträge
    23

    X-Chat: Übersicht der Channel Modes

    Hallo, habe mich mal an einen anderen IRC-Client gewagt und letzten Endes für X-Chat entschieden (voher Bersirc 1.4 unter Windows). Soweit gefällt es mir ganz gut, nur vermisse ich etwas. Vielleicht bin ich einfach nur zu doof das zu finden, oder vielleicht braucht man irgendein spezielles Plugin, aber ich bekomm's nicht so recht hin.

    Es geht darum, dass ich gerne eine grafische Übersicht der gängigen Channelmodes hätte (in den meisten IRC-Clients zu erreichen durch einen Doppelklick auf das entsprechende Channelfenster). Da sollte man dann per Häkchen die Modes umstellen können bzw. Topic verstellen usw.

    Gibt's sowas bei X-Chat nicht?

    Ach ja, noch was: Kann man irgendwo Befehle hinterlegen, die jedes Mal nach dem Connecten automatisch ausgeführt werden sollen (Performs)?
    Geändert von rotz (25.10.04 um 02:03 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    May 2004
    Beiträge
    30
    Hi rotz

    Da ich auch keine derartige liste in xchat entdecken konnte habe ich kurzerhand selbst ein script geschrieben das diese funktion uebernimmt.

    erstell einfach eine datei "perform.pl" in deinem xchat2 verzeichnis (/home/rotz/.xchat2/perform.pl) und kopier folgenden code hinein:

    Code:
    #!/usr/bin/perl -w
    
    my $ver = "v1.0";
    my $home = "/home/rotz/";
    
    IRC::register("Perform Script $ver by Phantom", "$ver", "", "");
    IRC::print("--- Perform Script $ver by Phantom loaded!\n");
    IRC::print("--- Try '\002\00315/perform help\002\00300' for details\n");
    
    IRC::add_command_handler("perform", "perform");
    IRC::add_message_handler("001", "execute");
    
    sub perform() {
      @elem = split(/ /, shift(@_));
      if($elem[0] eq "help") {
        &listhelp();
      } elsif($elem[0] eq "add") {
        $elem[0] = "";
        &addline(join(" ", @elem));
      } elsif($elem[0] eq "del") {
        &delline($elem[1]);
      } elsif($elem[0] eq "list") {
        &listlines();
      } elsif($elem[0] eq "") {
        &execlines();
      } else {
        IRC::print("--- Unknown command! Use '\002\00315/perform help\002\00300' to see the commands available\n");
      }
      return(1);
    }
    
    sub execute() {
      &execlines();
    }
    
    sub listhelp() {
      IRC::print("--- Perform Script $ver by Phantom\n");
      IRC::print("--- Available commands are:\n");
      IRC::print("---  add <line>  - Add a new line\n");
      IRC::print("---  del <num>   - Deletes a line\n");
      IRC::print("---  list        - Shows all lines\n\n");
      IRC::print("--- Without any argument, i'll execute all commands in your list\n");
    }
    
    sub listlines() {
      $x = 0;
      open(fp, "$home.xchat2/.perflines") or `touch $home.xchat2/.perflines`;
      @lines = <fp>;
      close(fp);
      IRC::print("--- Listing commands");
      foreach $line (@lines) {
        chop($line);
        if(length($line) > 0) {
          $x++;
          $num = &formatnum($x);
          IRC::print("\002\00315$num\002\00300 $line");
        }
      }
      if($x <= 0) {
        IRC::print("--- No entries found!");
        IRC::print("--- You can add commands using '\002\00315\/perform add <command> <args>\002\00300'");
      } else {
        IRC::print("--- $x lines found!");
      }
      return(1);
    }
    
    sub addline() {
      $line = shift;
      if(substr($line, 0, 1) eq " ") {
        substr($line, 0, 1) = "";
      }
      $res = `echo \"$line\" >> ~/.xchat2/.perflines`;
      IRC::print("--- Added '\002\00315$line\002\00300'\n");
      return(1);
    }
    
    sub delline() {
      $num = shift;
      $x = 0;
      open(fp, "$home.xchat2/.perflines") or `touch $home.xchat2/.perflines`;
        @lines = <fp>;
      close(fp);
      my @l = ();
      foreach(@lines) {
        chop($_);
        if(length($_) > 0) {
          push(@l, $_);
        }
      }
      if($#l>= ($num -1)) {
        IRC::print("--- Deleted '\002\00315$l[$num -1]\002\00300'\n");
        $l[$num - 1] = "";
        open(fp, ">$home.xchat2/.perflines") or `touch $home.xchat2/.perflines`;
          foreach $line(@l) {
            print fp "$line\n";
          }
        close(fp);
      } else {
        IRC::print("--- Invalid index!\n");
      }
    }
    
    sub formatnum() {
      $num = shift;
      if(length($num) == 1) {
        $ret = " $num";
        return($ret);
      } else {
        return($num);
      }
    }
    
    sub execlines() {
      open(fp, "$home.xchat2/.perflines") or `touch $home.xchat2/.perflines`;
        @lines = <fp>;
      close(fp);
      foreach $line(@lines) {
        chop($line);
        if(length($line) > 0) {
          IRC::send_raw("$line\n");
        }
      }
    }
    nach einem neustart von xchat oder der eingabe von /load .xchat2/perform.pl kannst du es sofort nutzen, erklaert sich eigendlich von selbst.

    Gruss
    Phantom

    Nachtrag: Was die Channel modes angeht, die stehen oben rechts neben dem feld fuer das topic.
    Geändert von Phantom (25.10.04 um 08:41 Uhr)

  3. #3
    Registrierter Benutzer
    Registriert seit
    Jun 2002
    Ort
    22589 Hamburg
    Beiträge
    951
    mir ist nicht ganz klar, was das script bewirkt oder wo ich dazu etwas finde, bis auf das help aufrufen, was mich nicht grade weiterbringt, finde ich das Plugin nirgends
    P4 3,4 Northwood, P4C800-E D., 2GB Ram, Seagate ST3200822AS (Debian Lenny), Plextor PX-716A, Leadtek 6800 ultra, Soundblaster Live

  4. #4
    Registrierter Benutzer Avatar von GoKi
    Registriert seit
    Jun 2003
    Ort
    bei Freiburg (Brsg.)
    Beiträge
    259
    Statt perform kann man im XChat einfach das Feld "Verbindungskommando" benutzen. Einfach eine Textdatei mit den Befehlen anlegen und dann in das Feld z.B.
    LOAD -e /home/<user>/.xchat2/perform.txt

  5. #5
    Registrierter Benutzer
    Registriert seit
    Oct 2004
    Beiträge
    23
    Vielen Dank für eure Hilfe!

Ähnliche Themen

  1. Brennen allgemein/nicht unterstützter brenner
    Von Woolf im Forum Anwendungen Allgemein, Software
    Antworten: 16
    Letzter Beitrag: 18.07.04, 19:48
  2. Modelines und XawTV
    Von whistler_mb im Forum Fernsehen
    Antworten: 28
    Letzter Beitrag: 10.09.03, 21:25
  3. Mein CD-ROm hat Probleme mit der ide-scsi emulation oder wie ?
    Von FunkyLemmyMC im Forum stationäre Hardware
    Antworten: 26
    Letzter Beitrag: 04.01.03, 21:44
  4. Debain Woody; Ich kann meinen Brenner nicht nutzen!!!
    Von FunkyLemmyMC im Forum stationäre Hardware
    Antworten: 21
    Letzter Beitrag: 10.09.02, 23:22
  5. Linforen im IRC-Chat
    Von netzmeister im Forum Hier Suchen und Finden, Links, Tutorials
    Antworten: 0
    Letzter Beitrag: 11.11.01, 20:54

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •