[Users] how to reply and run an action
Holger Berndt
berndth at gmx.de
Mon Dec 10 22:14:13 CET 2012
On Mo, 10.12.2012 08:59, Flavio Leitner wrote:
>Looks like the python plugin is the way to go. Is there any
>example out there that you recommend for me to take a look?
Basically, you would choose Tools -> Python scripts -> Browse. This
should open a file browser, where you would navigate to the "main"
subdirectory. There, you would create a file - let's call it
"reply-modify". The contents would look somewhat like this:
#=============8<====================8<===================8<==============
import subprocess as sp
# Invoke "Reply" menu item
clawsmail.get_mainwindow_action_group().get_action("Message/Reply").activate()
# The last opened ComposeWindow object is accessible as "clawsmail.compose_window"
# Now, one would typically use PyGTK to modify the message body, which is
# accessible as GtkTextView in "clawsmail.compose_window.text".
# Menu items could also be called on the compose window via
# "clawsmail.compose_window.ui_manager" - but as I said, for some strange reason
# Claws Mail doesn't seem to put Compose Window Actions there.
# So, get the body text as a string, use Python commands to operate on it, or
# call external commands via Python, and write it back.
body_buffer = clawsmail.compose_window.text.get_buffer()
old_body = body_buffer.props.text
proc = sp.Popen(["tr", "[a-z]", "[A-Z]"], stdin=sp.PIPE, stdout=sp.PIPE, stderr=sp.STDOUT)
new_body = proc.communicate(old_body)[0]
body_buffer.props.text = new_body
#=============8<====================8<===================8<==============
(This example calls "tr [a-z] [A-Z]" on the body to convert it to upper
case.)
Then you would choose Tools -> Python scripts -> Refresh (or restart
Claws Mail).
You could then assign a keyboard shortcut to the script like it's done
for other menu items in Claws Mail, or you could add the script to your
toolbar via Configuration -> Preferences -> Toolbars -> Main Window
(Item type "Plugins").
>I know python, but I don't know the plugin interface.
The startup script in the examples directory adds a "Python API
Documentation" entry in Claws Mail's help menu, which introspects the clawsmail
module and generates HTML on-the-fly. That might be easier to browse than the
console view that Mones told you about.
Holger
More information about the Users
mailing list