• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Scripte für Konversation IRC schreiben

Hi,

Ich benutze Konversation 1.0.1 für IRC. Ich möchte ein paar scripte schreiben aber ich komme nicht dahinter wie das geht:

Im Verzeichniss: /opt/kde3/share/apps/konversation/scripts sind alle Standart scripts gespeichert. Ich habe ein Test script mit dem Namen "test" angelegt und ich möchte das wenn ich "/test" eingebe das das z.b. --< Test script >-- im IRC erscheint.

Ich habe mir die Standart Scripte schon alle angeschaut aber ..... ich komme nicht dahinter wie das Funktioniert / was ich bei meinen Test script eingeben muss bzw wie ich "befehle" "automatisiere" z.b. wenn jemand in IRC kommt das ich dann automatisch Hi <User> schreibe.

Jetzt stellen sich folgende Fragen für mich:

- Wie muss ich scripte programmieren
- Was muss ich eingeben
- Wie kann ich "befehle" "automatisieren"

Ich komme nicht dahinter. :cry:
 
OP
P

Psycho Mantis

Member
Hi,

Danke erstmal soweit. werde mich da mal durch "kämpfen" (ich bin nicht so gut in Englisch) aber ich werde es hinbekommen. 8)
 

Pumphaus

Member
Füg das hier mal in eine Datei namens "test" ein:

Code:
#!/bin/sh

# Prints "--< Test script >--" in the current irc channel

PORT=$1
SERVER=$2
TARGET=$3

dcop "$PORT" default say "$SERVER" "$TARGET" "--< Test script >--"

Mach das ganze noch ausführbar mit "chmod +x test" und verschieb es in den Ordner "~/.kde/share/apps/konversation/scripts/". Leg den Ordner ggf. an, wenn er noch nich existiert.
Wenn du jetzt in Konversation "/exec test" eingibst, sollte "--< Test script >--" erscheinen.

Erläuterungen:
Wenn Konversation ein Skript aufruft, übergibt es dem Skript drei Parameter:
1. die "Ursprungsanwendung" (also eigtl. immer "konversation" - eigtl. Schwachsinn, das nochmal als Parameter mitzugeben. Aber egal.)
2. den Server
3. den Channel

Diese drei Parameter werden in den ersten paar Zeilen Code den Variablen PORT (Ursprungsanwendung), SERVER (Server) und TARGET (Channel) zugewiesen. Auf Variablen wird immer mit $<variablen-name> zugegriffen. Eine Zuweisungen muss man ohne $ machen, einfach nur <variablen-name>=<wert>. $1 steht dabei für den ersten Befehlszeilenparameter, $2 für den zweiten usw.
Damit haben wir jetzt die Befehlszeilenargumente in besser verständlichen Variablen mit eindeutigen Namen untergebracht.

Jetzt kommt der Hauptteil:
Mit 'dcop' kann man Anwendungen fernsteuern, auch Konversation. Als erstes Argument nimmt dcop den Anwendungsnamen, die anderen Argumente bestimmt die Anwendung selbst. Gib für nen Spass einfach mal 'dcop' in die Konsole ein, du wirst alle verfügbaren Anwendungen angezeigt bekommen. Wenn du jetzt z.B. 'dcop konversation' eingibst, bekommst du alle verfügbaren Unterberiche von konversation angezeigt. mit 'dcop konversazion irc' greift man auf den IRC Unterbereich von Konversation zu. Mit 'dcop konversation irc say bla blubb' greift man also auf die Funktion "say" im unterbereich "irc" des programms "konversation" zu. Dieses nimmt dann auch wieder einige Parameter entgegen, wie Server und Channel und was man überhaupt sagen will.
Genau das machen wir mit der letzten Zeile. Wir übergeben dcop mit $PORT die Anwendung, mit 'default' den standard-unterbereich ('irc'), mit 'say' die Funktion, mit $SERVER den Server, mit $TARGET den Channel und mit dem letzten Parameter, was wir sagen wollen.
Alle Zeichenketten sind in Anführungszeichen gefasst, damit sie auch als ein Ganzes und als Zeichenketten aufgefasst werden von der Shell.

Nach einem Neustart von Konversation kannst du auch einfach nur "/test" eingeben, da Konversation dann das neue Skript erkannt hat und automatisch einen Befehlsalias erstellt hat.
 
OP
P

Psycho Mantis

Member
Hi,

Super vielen dank soweit.
Jetzt werde ich dann erstmal genug zu probieren haben :D . Ich Arbeite mich dann biss zu der "Automatischen User begrussung" vor.
 
Oben