mirror of https://gitlab.com/litecord/litecord.git
blueprints: add nodeinfo blueprint
This commit is contained in:
parent
3432617988
commit
339d1b0c8b
|
|
@ -10,7 +10,8 @@ from .invites import bp as invites
|
||||||
from .relationships import bp as relationships
|
from .relationships import bp as relationships
|
||||||
from .dms import bp as dms
|
from .dms import bp as dms
|
||||||
from .icons import bp as icons
|
from .icons import bp as icons
|
||||||
|
from .nodeinfo import bp as nodeinfo
|
||||||
|
|
||||||
__all__ = ['gateway', 'auth', 'users', 'guilds', 'channels',
|
__all__ = ['gateway', 'auth', 'users', 'guilds', 'channels',
|
||||||
'webhooks', 'science', 'voice', 'invites', 'relationships',
|
'webhooks', 'science', 'voice', 'invites', 'relationships',
|
||||||
'dms', 'icons']
|
'dms', 'icons', 'nodeinfo']
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,55 @@
|
||||||
|
from quart import Blueprint, current_app as app, jsonify, request
|
||||||
|
|
||||||
|
bp = Blueprint('nodeinfo', __name__)
|
||||||
|
|
||||||
|
|
||||||
|
@bp.route('/.well-known/nodeinfo')
|
||||||
|
async def _dummy_nodeinfo_index():
|
||||||
|
proto = 'http' if not app.config['IS_SSL'] else 'https'
|
||||||
|
return jsonify({
|
||||||
|
'links': [{
|
||||||
|
'href': f'{proto}://{request.host}/nodeinfo/2.0.json',
|
||||||
|
'rel': 'http://nodeinfo.diaspora.software/ns/schema/2.0'
|
||||||
|
}]
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
@bp.route('/nodeinfo/2.0.json')
|
||||||
|
async def _dummy_nodeinfo():
|
||||||
|
usercount = await app.db.fetchval("""
|
||||||
|
SELECT COUNT(*)
|
||||||
|
FROM users
|
||||||
|
""")
|
||||||
|
|
||||||
|
return jsonify({
|
||||||
|
'metadata': {
|
||||||
|
'features': [
|
||||||
|
'discord_api'
|
||||||
|
],
|
||||||
|
|
||||||
|
'nodeDescription': 'A Litecord instance',
|
||||||
|
'nodeName': 'Litecord/Nya',
|
||||||
|
'private': False,
|
||||||
|
|
||||||
|
'federation': {}
|
||||||
|
},
|
||||||
|
'openRegistrations': app.config['REGISTRATIONS'],
|
||||||
|
'protocols': [],
|
||||||
|
'software': {
|
||||||
|
'name': 'litecord',
|
||||||
|
'version': 'litecord v0',
|
||||||
|
},
|
||||||
|
|
||||||
|
'services': {
|
||||||
|
'inbound': [],
|
||||||
|
'outbound': [],
|
||||||
|
},
|
||||||
|
|
||||||
|
'usage': {
|
||||||
|
'localPosts': -1,
|
||||||
|
'users': {
|
||||||
|
'total': usercount
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'version': '2.0',
|
||||||
|
})
|
||||||
3
run.py
3
run.py
|
|
@ -14,7 +14,7 @@ import config
|
||||||
|
|
||||||
from litecord.blueprints import (
|
from litecord.blueprints import (
|
||||||
gateway, auth, users, guilds, channels, webhooks, science,
|
gateway, auth, users, guilds, channels, webhooks, science,
|
||||||
voice, invites, relationships, dms, icons
|
voice, invites, relationships, dms, icons, nodeinfo
|
||||||
)
|
)
|
||||||
|
|
||||||
# those blueprints are separated from the "main" ones
|
# those blueprints are separated from the "main" ones
|
||||||
|
|
@ -104,6 +104,7 @@ def set_blueprints(app_):
|
||||||
dms: '/users',
|
dms: '/users',
|
||||||
|
|
||||||
icons: -1,
|
icons: -1,
|
||||||
|
nodeinfo: -1,
|
||||||
}
|
}
|
||||||
|
|
||||||
for bp, suffix in bps.items():
|
for bp, suffix in bps.items():
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue