| 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 |
|---|