portal: switch wiki feed to api.php

thx to 0i
This commit is contained in:
Astro 2013-11-13 22:43:54 +01:00
parent 9fa670ca6d
commit ed68304ca1
2 changed files with 17 additions and 14 deletions

View File

@ -2,5 +2,5 @@
<gallery id="media-lachmoewe">https://media.c3d2.de/u/lachmoewe/atom/</gallery>
<gallery id="media-bigalex">https://media.c3d2.de/u/bigalex/atom/</gallery>
<gallery id="media-astro">https://media.c3d2.de/u/astro/atom/</gallery>
<wiki id="wiki">https://wiki.c3d2.de/w/index.php?title=Spezial:Letzte_%C3%84nderungen&amp;feed=atom&amp;days=300&amp;limit=60</wiki>
</config>
<wiki id="wiki">https://wiki.c3d2.de/w/api.php?action=query&amp;list=recentchanges&amp;format=xml&amp;rcnamespace=0|1|4|5|6|7|10|11&amp;rclimit=50&amp;rcprop=title|user|comment|timestamp</wiki>
</config>

View File

@ -30,7 +30,7 @@
</xsl:template>
<xsl:template match="/config/wiki">
<xsl:apply-templates select="document(concat('../portal/portal-', @id, '.xml'))/atom:feed/atom:entry" mode="wiki"/>
<xsl:apply-templates select="document(concat('../portal/portal-', @id, '.xml'))/api/query/recentchanges" mode="wiki"/>
</xsl:template>
<xsl:template match="*">
@ -60,23 +60,26 @@
<link><xsl:value-of select="@href"/></link>
</xsl:template>
<xsl:template match="atom:entry" mode="wiki">
<xsl:variable name="title" select="atom:title"/>
<xsl:template match="rc" mode="wiki">
<xsl:variable name="title" select="@title"/>
<!-- Don't repeat any titles -->
<xsl:if test="not(preceding-sibling::atom:entry/atom:title = $title or
starts-with(atom:title, 'Intern:'))">
<item date="{atom:updated}" class="wiki">
<xsl:if test="not(preceding-sibling::rc/@title = $title or
starts-with($title, 'Intern:'))">
<item date="{@timestamp}" class="wiki">
<header>C3D2 Wiki</header>
<footer>
<xsl:text>by </xsl:text>
<xsl:value-of select="atom:author/atom:name"/>
<xsl:for-each select="following-sibling::atom:entry[atom:title = $title]/atom:author/atom:name">
<xsl:text>, </xsl:text>
<xsl:value-of select="normalize-space(.)"/>
<xsl:value-of select="@user"/>
<xsl:for-each select="following-sibling::rc[@title = $title]">
<xsl:variable name="user" select="@user"/>
<xsl:if test="not(preceding-sibling::rc[@title = $title and @user = $user])">
<xsl:text>, </xsl:text>
<xsl:value-of select="normalize-space(@user)"/>
</xsl:if>
</xsl:for-each>
</footer>
<content-text><xsl:value-of select="atom:title"/></content-text>
<link><xsl:value-of select="atom:link[@rel='alternate'][1]/@href"/></link>
<content-text><xsl:value-of select="@title"/></content-text>
<link>https://wiki.c3d2.de/<xsl:value-of select="@title"/></link>
</item>
</xsl:if>
</xsl:template>