OctoSpaccHub/public/MBViewer/js/TrasformapiSchema.js.xml

102 lines
3.4 KiB
XML
Raw Normal View History

2024-01-23 01:52:51 +01:00
const MbViewerTrasformapiSchema = `<schema>
<!-- WIP, find out how to structure this -->
<endpoint name="messages">
<method name="GET" args="" returns="message[]"/>
<!-- ... -->
</endpoint>
<entity name="message">
<prop name="id" type="int">
<content upstream="rss" key="./guid"/>
<content upstream="wordpress.com" key="ID"/>
<content upstream="wordpress.org" key="id"/>
<content upstream="mastodon" key="id"/>
</prop>
<prop name="url" type="string">
<content upstream="rss" key="./link"/>
<content upstream="wordpress.com" key="URL"/>
<content upstream="wordpress.org" key="link"/>
<content upstream="mastodon" key="url"/>
</prop>
<prop name="title" type="string">
<content upstream="rss" key="title"/>
<content upstream="wordpress.com" key="title"/>
<content upstream="wordpress.org" key="title.rendered"/>
</prop>
<prop name="content" type="string">
<!-- TODO optional multiple 'key' attrs -->
<!--<content upstream="rss" key="content:encoded"/>-->
<content upstream="rss" key="./description"/>
<content upstream="wordpress.com" key="content"/>
<content upstream="wordpress.org" key="content.rendered"/>
<content upstream="mastodon" key="url"/>
</prop>
<!-- TODO: fix this, it's broken with somehow we ending up with an object with urls array, not an attachments array -->
<prop name="attachments" type="file[]">
<!--<content upstream="rss" key="./media:content"/>-->
<content upstream="rss">
<prop name="url" key="*[name()='media:content']" attr="url"/>
</content>
<!--<content upstream="mastodon" key="media_attachments"/>-->
</prop>
<prop name="author" type="profile">
<content upstream="rss"/>
<content upstream="wordpress.com" key="author"/>
<content upstream="wordpress.org"/>
<content upstream="mastodon" key="account"/>
</prop>
<prop name="time" type="string">
<content upstream="rss" key="pubDate"/>
<content upstream="wordpress.com" key="date"/>
<content upstream="wordpress.org" key="date"/>
<content upstream="mastodon" key="created_at"/>
</prop>
<prop name="revisions" type="revision[]">
<content upstream="wordpress.com"/>
<content upstream="wordpress.org"/>
<content upstream="mastodon"/>
</prop>
<prop name="quoting" type="message">
<content upstream="mastodon" key="reblog"/>
</prop>
<!--<prop name="replying" type="message">
<content upstream="mastodon" key=""/>
</prop>-->
</entity>
<entity name="revision">
<prop name="time" type="string">
<content upstream="wordpress.com" key="modified"/>
<content upstream="wordpress.org" key="modified"/>
<content upstream="mastodon" key="edited_at"/>
</prop>
</entity>
<!-- TODO (for wordpress) how to handle both authors and sites as a profile type? maybe add a 'variant' attr for 'content' tags? -->
<entity name="profile">
<prop name="id" type="int">
<content upstream="wordpress.com" key="ID"/>
<content upstream="wordpress.org" key="author"/>
</prop>
<prop name="url" type="string">
<content upstream="wordpress.com" key="profile_URL"/>
</prop>
<prop name="name" type="string">
<!--<content upstream="rss" key="dc:creator"/>-->
<content upstream="rss" key="dc:creator"/>
<content upstream="wordpress.com" key="name"/>
</prop>
<prop name="icon" type="file">
<content upstream="wordpress.com">
<prop name="url" key="avatar_URL"/>
</content>
</prop>
</entity>
<entity name="file">
<prop name="url" type="string"/>
</entity>
</schema>`;