Instructions: save the script below to a file ("httpwiki", say), run
it like
tclsh httpwiki eget http://www.purl.org/mini/cgi-bin/wikit 33 > 33
(note that you need to know the number of the page you want to edit!),
edit the newly-created file "33" with Emacs and follow the
instructions at the top of the file.
This script is somewhat Unix-centric.
If something goes wrong and you're not in the mood to fix it youself,
send mail to edrx@inx.com.br.
99nov16 [Eduardo Ochs]
[MHo] 2006/05/16: the regexp does not work (anymore). Don't know if this one is always correct, but for now it works:
{.+}
-----
#!/usr/bin/tclsh
package require http 1.0
proc getpage {wikiurl N} {
set s [http_data [http_get $wikiurl/${N}@]]
if {[regexp "\n" $s -> text]} {
regsub -all {\"} $text {"} text
regsub -all {\<} $text {<} text
regsub -all {\>} $text {>} text
regsub -all {\&} $text {&} text
} else {
error "Bad edit page"
}
return $text
}
proc sendpage {wikiurl N text} {
set answer [http_data [http_get $wikiurl/$N.html \
-query [http_formatQuery C $text]]]
}
proc emacsheader {argv0 wikiurl N} {
return \
"; To send back the edited version, place the cursor at the beginning
; of the first non-void line after the S-expression and do a C-x C-e.
;
(shell-command-on-region (point) (point-max)
\"$argv0 send $wikiurl $N\")\n\n\n"
}
if {$argc!=3} {
puts stderr "Usage: $argv0 get|eget|send wikiurl pagenumber"
puts stderr "Example: $argv0 eget http://www.purl.org/mini/cgi-bin/wikit 33 | tee 33"
puts stderr " then edit the file \"33\" with Emacs and follow the instructions there."
exit 1
}
foreach {action wikiurl N} $argv {}
switch $action {
get {
puts -nonewline [getpage $wikiurl $N]
}
eget {
puts -nonewline "[emacsheader $argv0 $wikiurl $N][getpage $wikiurl $N]"
}
send {
sendpage $wikiurl $N [read stdin]
}
default {
puts stderr "Bad action!"
exit 1
}
}
----
[MHo]: Again, I've problems with special-char's like ÄÖÜäöüß - [encoding] convertfrom '''uft-8''' doesn't helped yet...
----
[Category Wikit]