nodeinfo: keep compatiblity with nodeinfo 2.0

This commit is contained in:
Luna 2019-02-01 16:05:35 -03:00
parent dcecd9c0c0
commit 9f56c7a26e
1 changed files with 25 additions and 6 deletions

View File

@ -29,14 +29,16 @@ async def _dummy_nodeinfo_index():
return jsonify({ return jsonify({
'links': [{ 'links': [{
'href': f'{proto}://{main_url}/nodeinfo/2.0.json',
'rel': 'http://nodeinfo.diaspora.software/ns/schema/2.0'
}, {
'href': f'{proto}://{main_url}/nodeinfo/2.1.json', 'href': f'{proto}://{main_url}/nodeinfo/2.1.json',
'rel': 'http://nodeinfo.diaspora.software/ns/schema/2.1' 'rel': 'http://nodeinfo.diaspora.software/ns/schema/2.1'
}] }]
}) })
@bp.route('/nodeinfo/2.1.json') async def fetch_nodeinfo_20():
async def _dummy_nodeinfo():
usercount = await app.db.fetchval(""" usercount = await app.db.fetchval("""
SELECT COUNT(*) SELECT COUNT(*)
FROM users FROM users
@ -47,7 +49,7 @@ async def _dummy_nodeinfo():
FROM messages FROM messages
""") """)
return jsonify({ return {
'metadata': { 'metadata': {
'features': [ 'features': [
'discord_api' 'discord_api'
@ -64,7 +66,6 @@ async def _dummy_nodeinfo():
'software': { 'software': {
'name': 'litecord', 'name': 'litecord',
'version': 'litecord v0', 'version': 'litecord v0',
'repository': 'https://gitlab.com/litecord/litecord',
}, },
'services': { 'services': {
@ -78,5 +79,23 @@ async def _dummy_nodeinfo():
'total': usercount 'total': usercount
} }
}, },
'version': '2.1', 'version': '2.0',
}) }
@bp.route('/nodeinfo/2.0.json')
async def _nodeinfo_20():
"""Handler for nodeinfo 2.0."""
raw_nodeinfo = await fetch_nodeinfo_20()
return jsonify(raw_nodeinfo)
@bp.route('/nodeinfo/2.1.json')
async def _nodeinfo_21():
"""Handler for nodeinfo 2.1."""
raw_nodeinfo = await fetch_nodeinfo_20()
raw_nodeinfo['software']['repository'] = 'https://gitlab.com/litecord/litecord'
raw_nodeinfo['version'] = '2.1'
return jsonify(raw_nodeinfo)