[xwiki-devs] [Query] - MediaWiki2XWikiExtension
Hi, I have a small doubt on how listener is implemented in MediaWiki2XWikiExtension Groovy Code Snippet -- http://code.xwiki.org/xwiki/bin/view/Extensions/MediaWiki2XWikiExtension <% import org.dom4j.io.SAXReader import org.dom4j.* import groovy.net.xmlrpc.* import java.net.ServerSocket import org.wikimodel.wem.mediawiki.MediaWikiParser import org.wikimodel.wem.xwiki.* class PruningPageHandler implements ElementHandler { def proxy, token; def counter = 0; def max = 10000; PruningPageHandler(proxy, token) { this.proxy = proxy this.token = token } def messages = [] public void onStart(ElementPath path) { } public void onEnd(ElementPath path) { def page = path.current def title = page.elementText('title') title = title.replaceAll(' ','_') def id = page.elementText('id') println(title+ '('+counter+')') def revision = page.element('revision') def revid = revision.elementText('id'); def revtext = revision.elementText('text'); def contributor = revision.element('contributor') def username = contributor.elementText('username') def index = revtext.substring(0, Math.min(30,revtext.length())).toLowerCase().indexOf("redirect") counter++; if (counter < max && index < 0) { revtext = revtext.replaceFirst("^-", "*"); revtext = revtext.replaceAll("__","") revtext = revtext.replaceAll("[\\|][\\+]","") def buffer = new StringBuffer() buffer.append(revtext) try { *def reader = new StringReader(revtext); def parser = new MediaWikiParser(); buffer = new StringBuffer() def listener = new XWikiSerializer(buffer); parser.parse(reader, listener);* } catch (Exception e) { println(e.getMessage()) } def map = new HashMap() map.put('content', buffer.toString()) map.put('modifier', username) map.put('space','Wikipedia') map.put('title',title) try { proxy.confluence1.storePage(token, map) } catch (Exception e) { println(e.getMessage()) } } page.detach() // prune the tree } } %> XWikiSerializer has a constructor with some class implementing IWikiPrinter . But how come a StringBuffer is used here. Am trying to simulate the same from a java application,and a fact that use of StringBuffer fails here. How to create a listener object in that case. Thanks and Best Regards, Arun Reddy
Hi Arun, You should definitely not use this script. Your first task if you haven't done it yet should be to understand the XWiki Rendering module. See http://code.xwiki.org/xwiki/bin/view/Modules/RenderingModule For other details already discussed see http://markmail.org/thread/pd2e5utudps3buwx Thanks -Vincent On May 18, 2009, at 8:11 PM, Arun Reddy wrote:
Hi,
I have a small doubt on how listener is implemented in MediaWiki2XWikiExtension
Groovy Code Snippet -- http://code.xwiki.org/xwiki/bin/view/Extensions/MediaWiki2XWikiExtension
<% import org.dom4j.io.SAXReader import org.dom4j.* import groovy.net.xmlrpc.* import java.net.ServerSocket import org.wikimodel.wem.mediawiki.MediaWikiParser import org.wikimodel.wem.xwiki.*
class PruningPageHandler implements ElementHandler { def proxy, token; def counter = 0; def max = 10000;
PruningPageHandler(proxy, token) { this.proxy = proxy this.token = token } def messages = []
public void onStart(ElementPath path) { } public void onEnd(ElementPath path) {
def page = path.current def title = page.elementText('title') title = title.replaceAll(' ','_') def id = page.elementText('id')
println(title+ '('+counter+')') def revision = page.element('revision') def revid = revision.elementText('id'); def revtext = revision.elementText('text'); def contributor = revision.element('contributor') def username = contributor.elementText('username')
def index = revtext.substring(0, Math.min(30,revtext.length())).toLowerCase().indexOf("redirect")
counter++; if (counter < max && index < 0) {
revtext = revtext.replaceFirst("^-", "*"); revtext = revtext.replaceAll("__","") revtext = revtext.replaceAll("[\\|][\\+]","") def buffer = new StringBuffer() buffer.append(revtext) try {
*def reader = new StringReader(revtext); def parser = new MediaWikiParser(); buffer = new StringBuffer() def listener = new XWikiSerializer(buffer); parser.parse(reader, listener);*
} catch (Exception e) { println(e.getMessage()) } def map = new HashMap() map.put('content', buffer.toString()) map.put('modifier', username) map.put('space','Wikipedia') map.put('title',title) try { proxy.confluence1.storePage(token, map) } catch (Exception e) { println(e.getMessage()) } } page.detach() // prune the tree } } %>
XWikiSerializer has a constructor with some class implementing IWikiPrinter . But how come a StringBuffer is used here.
Am trying to simulate the same from a java application,and a fact that use of StringBuffer fails here. How to create a listener object in that case.
Thanks and Best Regards, Arun Reddy _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
Hi vincent, Thanks a lot. I have been through the mailing list. Am working on the plan and architecture. Will mail you once done. On Tue, May 19, 2009 at 1:13 PM, Vincent Massol <[email protected]> wrote:
Hi Arun,
You should definitely not use this script. Your first task if you haven't done it yet should be to understand the XWiki Rendering module. See http://code.xwiki.org/xwiki/bin/view/Modules/RenderingModule
For other details already discussed see http://markmail.org/thread/pd2e5utudps3buwx
Thanks -Vincent
On May 18, 2009, at 8:11 PM, Arun Reddy wrote:
Hi,
I have a small doubt on how listener is implemented in MediaWiki2XWikiExtension
Groovy Code Snippet -- http://code.xwiki.org/xwiki/bin/view/Extensions/MediaWiki2XWikiExtension
<% import org.dom4j.io.SAXReader import org.dom4j.* import groovy.net.xmlrpc.* import java.net.ServerSocket import org.wikimodel.wem.mediawiki.MediaWikiParser import org.wikimodel.wem.xwiki.*
class PruningPageHandler implements ElementHandler { def proxy, token; def counter = 0; def max = 10000;
PruningPageHandler(proxy, token) { this.proxy = proxy this.token = token } def messages = []
public void onStart(ElementPath path) { } public void onEnd(ElementPath path) {
def page = path.current def title = page.elementText('title') title = title.replaceAll(' ','_') def id = page.elementText('id')
println(title+ '('+counter+')') def revision = page.element('revision') def revid = revision.elementText('id'); def revtext = revision.elementText('text'); def contributor = revision.element('contributor') def username = contributor.elementText('username')
def index = revtext.substring(0, Math.min(30,revtext.length())).toLowerCase().indexOf("redirect")
counter++; if (counter < max && index < 0) {
revtext = revtext.replaceFirst("^-", "*"); revtext = revtext.replaceAll("__","") revtext = revtext.replaceAll("[\\|][\\+]","") def buffer = new StringBuffer() buffer.append(revtext) try {
*def reader = new StringReader(revtext); def parser = new MediaWikiParser(); buffer = new StringBuffer() def listener = new XWikiSerializer(buffer); parser.parse(reader, listener);*
} catch (Exception e) { println(e.getMessage()) } def map = new HashMap() map.put('content', buffer.toString()) map.put('modifier', username) map.put('space','Wikipedia') map.put('title',title) try { proxy.confluence1.storePage(token, map) } catch (Exception e) { println(e.getMessage()) } } page.detach() // prune the tree } } %>
XWikiSerializer has a constructor with some class implementing IWikiPrinter . But how come a StringBuffer is used here.
Am trying to simulate the same from a java application,and a fact that use of StringBuffer fails here. How to create a listener object in that case.
Thanks and Best Regards, Arun Reddy _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
-- Best Regards, Arun Reddy
participants (2)
-
Arun Reddy -
Vincent Massol