Sa 06 Jun, 2009 13:58
#!/bin/bash
function printHelp() {
echo
echo "Syntax: wiki2aoqml QUEST-VERZEICHNISPFAD WIKI-URL"
echo "Beispiel: wiki2aowml quests/eliasores http://wiki.antamar-community.de/index.php?title=Der_Weg_nach_Eliasores"
echo
}
if [ -z "$1" ]; then
echo "FEHLER: Quest Verzeichnispfad fehlt" >&2
printHelp
exit 1
fi
if [ -z "$2" ]; then
echo "ERROR: Wiki URL fehlt" >&2
printHelp
exit 1
fi
html=$(tempfile).html
wget -O- "$2" | tr -d '\r' | sed -e 's/<div [^>]*>/\n/g' -e 's/<[^>]*>//g' >$html
test ! -d "$1" && mkdir "$1"
cd "$1"
awk -f ~/bin/wiki2aoqml.awk <$html
echo rm $html
BEGIN {
foundScene=""
inScene=""
}
{
gsub( /</, "<" )
gsub( />/, ">" )
gsub( /"/, "\"" )
gsub( /^ $/, "" )
if ( inScene>"" ) {
print $0 >>inScene
}
}
/^.*\.xml$/ {
foundScene=$0
} Der_Weg_nach_Eliasore
/<scene/ {
if ( foundScene == "" ) {
print "FEHLEr: '<scene...>' ohne vorausgehendes '*.xml'"
exit 1
}
inScene=foundScene
print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" >inScene
print $0 >>inScene
}
/<\/scene/ {
inScene=""
}
~/bin/wiki2aoqml quests/eliasores http://wiki.antamar-community.de/index.php?title=Der_Weg_nach_EliasoresMi 10 Jun, 2009 16:56
#!/bin/bash
function wrapScene() {
sceneFile=$1
echo ""
echo "'''$sceneFile'''"
echo "<code xml n>"
cat $sceneFile
echo "</code>"
}
wikiFile=`tempfile -s .wiki`
wikiFileNames=`tempfile -s .files`
echo "" >$wikiFile
if [ -n "$2" ]; then
wget -O- "$2" | grep '<b>.*xml</b>' | sed 's/^.*<b>\(.*xml\)<\/b>/\1/g' >$wikiFileNames
fi
cd $1
for f in `cat $wikiFileNames`; do
if [ -f "$f" ]; then
echo "updating $f"
wrapScene $f >>$wikiFile
else
echo "deleting $f"
fi
done
for f in `find . -name '*.xml'`; do
f=${f:2}
alreadyDone=`grep "^$f\$" $wikiFileNames`
if [ -z "$alreadyDone" ]; then
echo "adding $f"
wrapScene $f >>$wikiFile
else
echo "skipping $f"
fi
done
gedit $wikiFile
rm $wikiFile $wikiFileNames
vim ~/bin/aoqml2wiki quests/eliasores/ "http://wiki.antamar-community.de/index.php?title=Der_Weg_nach_Eliasores"