GenerateRoyalPages

From BITPlan royal-family Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Action
edit
name  GenerateRoyalPages
servicetype  WikiTask
service  
inputtype  Page
input  Royal92#sidif
actionpage  GenerateRoyalPages#template
output  Royal92/pages
engine  rythm
author  Wf
since  2017/10/06
comment  Create wiki pages for Royal-Family

login reset runtemplate -> Royal92/pages

[edit]
@// This is a rythm template
@import org.sidif.triple.TripleQuery
@import org.sidif.triple.Triple
@import org.sidif.wiki.SSLWiki
@import com.bitplan.topic.ContextSetting.TripleStoreMode
@import com.alibaba.fastjson.JSON
@import com.bitplan.mediawiki.japi.MediawikiApi
@import com.bitplan.mediawiki.japi.Mediawiki
@import com.bitplan.mediawiki.japi.api.Api
@include(wiki.PersonJava.Code)
@args() {
  String title 
  String logo
  org.sidif.wiki.WikiTask wikiTask
  org.sidif.triple.TripleStore tripleStore
}
@// get the Stacktrace
@def getStackTrace(Throwable th) {
@{
  StringWriter sw = new StringWriter();
  PrintWriter pw = new PrintWriter(sw);
  th.printStackTrace(pw);
  String sStackTrace = sw.toString();
}
@(sStackTrace)
}
@// handle error
@def handleError(Throwable th) {
<span style='color:red'>Error: @(th.getClass().getName()): @(th.getMessage())</span>
=== stacktrace ===
<pre>
@getStackTrace(th)
</pre>
}
@// create the given person
@def createPerson(Person p) {
# [[@(p.getName())]]
@{
  Throwable error=null;
  try {  
    String pageTitle=p.getName();
    SSLWiki wiki=(SSLWiki)wikiTask.getWiki();
    String pageContent=p.toWikiSon();
    String summary="generated by GenerateRoyalPages at "+wiki.getIsoTimeStamp();
    wiki.edit(pageTitle,pageContent,summary);
  } catch (Throwable th) {
    error=th;
  }
}
@if (error) {
@handleError(error)
}
}
@{
  TripleQuery query=tripleStore.query();
  PersonManager pm=new PersonManager(query);
  FamilyManager fm=new FamilyManager(query);
  int pCount=0;
  int pMax=3;
  //Triple contextTriple=query.selectSingle(null,"isA","Context");
  //String contextName=contextTriple.getSubject().toString();
  //Triple sidifTriple=query.selectSingle(contextName,"sidif", null);
  //String contextSidif=sidifTriple.getObject().toString();
}
@(wikiTask.getWiki().getIsoTimeStamp())
*@(query.size()) triples found
*@(pm.getPersons().size()) persons found
*@(fm.getFamilies().size()) families found
@for (Person p:pm.getPersons()) {
@createPerson(p)
@{
  pCount++;
  if (pCount>=pMax) {
    break;
  }
}
}