Siduction Forum

Siduction Forum => Scripting & Kernelhacking => Topic started by: wodga on 2014/10/07, 23:22:51

Title: Anhang versenden per Rechtsklick
Post by: wodga on 2014/10/07, 23:22:51
Ich möchte aus dolphin (kde) heraus per Rechtsklick eine oder mehrere Dateien mit icedove versenden.

Mein Skript sieht so aus: http://pastebin.com/L9uz82br (http://pastebin.com/L9uz82br)

Es funktioniert leider nur mit einer Datei. Wie übernimmt das skript auch mehrere Dateien?

Title: Re: Anhang versenden per Rechtsklick
Post by: bluelupo on 2014/10/08, 07:09:10
Hi wodga,
Probier mal statt %F %N.
Title: Re: Anhang versenden per Rechtsklick
Post by: wodga on 2014/10/15, 15:05:44
Leider funktioniert %N genausowenig.
Title: Re: Anhang versenden per Rechtsklick
Post by: der_bud on 2014/10/15, 16:31:33
Ohne das ich jetzt verstehe was horo da macht :o, aber hilft dir vielleicht das studieren des Posts Sending images from shotwell to icedove (http://forum.siduction.org/index.php?topic=4379.0) ?
Title: Re: Anhang versenden per Rechtsklick
Post by: bluelupo on 2014/10/15, 17:15:59
@wodga: funktioniert der Aufruf von der Kommandozeile aus mit mehreren Anhängen?

EDIT: das habe ich noch im Netz zum Thema gefunden, vielleicht hilft es weiter http://www.kbrandt.com/2008/05/quick-tip-tunderbird-email-from-command.html
Title: Re: Anhang versenden per Rechtsklick
Post by: wodga on 2014/10/15, 17:37:58
@bluelupo

hab jetzt nochmals gegoogelt und folgenden Befehl ausgegraben:
Exec=icedove -compose "attachment='$(echo %F | sed 's/\\ \\//,\\/\\//g')'"

Funktioniert! Nur leider kenne ich mich zu wenig aus um diese ganzen slashes und backslashes zu verstehen ...
Title: Re: Anhang versenden per Rechtsklick
Post by: horo on 2014/10/15, 21:08:48
@bluelupo

hab jetzt nochmals gegoogelt und folgenden Befehl ausgegraben:
Exec=icedove -compose "attachment='$(echo %F | sed 's/\\ \\//,\\/\\//g')'"

Funktioniert! Nur leider kenne ich mich zu wenig aus um diese ganzen slashes und backslashes zu verstehen ...

Hi wodga,

sieht komplizierter aus als es ist, KDE liefert in %F einen String
Code: [Select]
"/pfad1/datei1 /pfad2/datei2 /pfad3/datei mit leerzeichen3" und icedove wird in dieser Form aufgerufen:
Code: [Select]
icedove -compose "attachment='/pfad1/datei1,/pfad2/datei2,/pfad3/datei mit leerzeichen3'"Der Streameditor sed wandelt dabei " /" in ",/" um. Da aber Slash und Space spezielle Bedeutungen haben, müssen sie per Backslash maskiert (escaped) werden - und da das ganze durch die Shell geschleust wird, die den Backslash auch gesondert behandelt, muss der Backslash auch nochmal "escaped" werden, daher die doppelten \\
Dein Code hat übrigens am Ende ein  "\\/" zuviel, also statt
Code: [Select]
Exec=icedove -compose "attachment='$(echo %F | sed 's/\\ \\//,\\/\\//g')'"das sowas erzeugt 
Code: [Select]
"/pfad1/datei1,//pfad2/datei2,//pfad3/datei mit leerzeichen3"ist es so korrekt:
Code: [Select]
Exec=icedove -compose "attachment='$(echo %F | sed 's/\\ \\//,\\//g')'"
Ciao, Martin

P.S.: Man kann sich die Sache natürlich auch einfacher machen, indem man statt des Delimiters "/" fürs Ersetzen ein anderes Zeichen nimmt, z.B. ":". Von perl kannte ich's, ist aber auch bei sed möglich.
Code: [Select]
Exec=icedove -compose "attachment='$(echo %F | sed 's: /:,/:g')'"
siehe auch: http://en.wikipedia.org/wiki/Leaning_toothpick_syndrome
Title: Re: Anhang versenden per Rechtsklick
Post by: wodga on 2014/10/16, 10:27:39
Danke für die Ausführungen! Werd ich mal in Ruhe studieren :-)