Ticket #116: vimtrac.py

File vimtrac.py, 0.9 kB (added by antony, 3 years ago)

Usage vimtrac.py http://hostname/trac/wiki/WikiStart, (works with $EDITOR)

Line 
1 #!/usr/bin/python
2 # vim:set ts=4 et:
3 import sys, os, urllib, re, tempfile, urllib2
4
5 # usage:
6 #
7 # vimtrac.py http://hostname/trac/wiki/WikiStart
8
9 url=sys.argv[1]
10 base=os.path.basename(url)
11 urltxt='%s?format=txt'%url
12
13
14 orig=urllib2.urlopen(urltxt).read()
15 f=tempfile.NamedTemporaryFile()
16 f.write(orig)
17 f.flush()
18 os.system("%s %s" % (os.getenv("EDITOR", "vi"), f.name))
19
20 f.seek(0)
21 data=f.read()
22 if data!=orig:
23
24     # POST the file
25     urledit='%s?action=edit'%url
26     editpage=urllib2.urlopen(urledit).read()
27
28     mo=re.search('name="version" value="([^"]+)"',editpage)
29     if mo:
30         version=mo.group(1)
31         post=urllib.urlencode({
32             "action":"edit",
33             "text":data,
34             "version":version,
35             "save":"Submit change",
36             "author":"anonymous",
37             "comment":"" } )
38         urllib2.urlopen(url,post).read()
39         print "%s saved."%url