Difference between revisions of "GenerateRoyalPages"
Jump to navigation
Jump to search
(Created page with "{{Action |name=GenerateRoyalPages |servicetype=WikiTask |inputtype=Page |input=Royal92#sidif |actionpage={{FULLPAGENAME}}#template |output=Royal92/pages |engine=rythm |author=...") |
|||
| Line 13: | Line 13: | ||
}} | }} | ||
__NOCACHE__ | __NOCACHE__ | ||
| − | + | = template = | |
| + | <source lang='java' id='dialog'> | ||
| + | @// 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.SiDIFTemplates.propertiesdefs) | ||
| + | @args() { | ||
| + | String title | ||
| + | String logo | ||
| + | org.sidif.wiki.WikiTask wikiTask | ||
| + | org.sidif.triple.TripleStore tripleStore | ||
| + | } | ||
| + | @{ | ||
| + | TripleQuery query=tripleStore.query(); | ||
| + | TripleQuery needed=query.query(null,"needs","Properties"); | ||
| + | Triple contextTriple=query.selectSingle(null,"isA","Context"); | ||
| + | String contextName=contextTriple.getSubject().toString(); | ||
| + | Triple sidifTriple=query.selectSingle(contextName,"sidif", null); | ||
| + | String contextSidif=sidifTriple.getObject().toString(); | ||
| + | // now get the context | ||
| + | ContextSetting contextSetting=ContextSetting.fromWikiTask(wikiTask); | ||
| + | contextSetting.setContextName(contextName); | ||
| + | contextSetting.setSidifInput(contextSidif); | ||
| + | contextSetting.setTripleStoreMode(TripleStoreMode.SiDIF); | ||
| + | Context context = ContextFactory.getInstance().getContext(contextSetting); | ||
| + | } | ||
| + | @(wikiTask.getWiki().getIsoTimeStamp()) | ||
| + | @(needed.size()) Topics need Properties to be generated | ||
| + | @for (Triple neededTriple:needed.getTriples()) { | ||
| + | @{ | ||
| + | String topicName=neededTriple.getSubject().toString(); | ||
| + | Topic topic=context.byName(topicName); | ||
| + | } | ||
| + | == Topic: @(topicName) == | ||
| + | === properties of @(topic.name) === | ||
| + | @for (Property property:topic.getProperties()) { | ||
| + | ==== [[Property:@(topic.name) @(property.name)]] ==== | ||
| + | @{ | ||
| + | Throwable error=null; | ||
| + | try { | ||
| + | // get the Rythm template result | ||
| + | org.rythmengine.utils.RawData pageContentRaw=property(topic,property); | ||
| + | String pageContent=pageContentRaw.toString(); | ||
| + | String pageTitle="Property:"+topic.name+" "+property.name; | ||
| + | SSLWiki wiki=(SSLWiki)wikiTask.getWiki(); | ||
| + | String currentContent=wiki.getPageContent(pageTitle); | ||
| + | // if (currentContent==null || currentContent.length()==0) { | ||
| + | String summary="generated by GenerateProperties at "+wiki.getIsoTimeStamp(); | ||
| + | wiki.edit(pageTitle,pageContent,summary); | ||
| + | // } | ||
| + | } catch (Throwable th) { | ||
| + | error=th; | ||
| + | } | ||
| + | } | ||
| + | @if (error) { | ||
| + | <span style='color:red'>Error: @(error.getMessage())</span> | ||
| + | } | ||
| + | <pre> | ||
| + | @property(topic,property) | ||
| + | </pre> | ||
| + | } | ||
| + | } | ||
| + | </source> | ||
| + | {{#default_form:Action}} | ||
| + | = Links = | ||
* {{Link|target=Concept:Action}} | * {{Link|target=Concept:Action}} | ||
* {{Link|target=Template:Action}} | * {{Link|target=Template:Action}} | ||
* {{Link|target=Template:Wikitask}} | * {{Link|target=Template:Wikitask}} | ||
| + | <headertabs/> | ||
Revision as of 11:16, 5 October 2017
| Action | |
|---|---|
| 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