mirror of
https://git.pleroma.social/pleroma/relay.git
synced 2024-11-10 02:17:59 +00:00
add software name for inboxes
This commit is contained in:
parent
d4955828d4
commit
9369b598fa
|
@ -9,7 +9,7 @@ from datetime import datetime, timedelta
|
||||||
|
|
||||||
from .config import RelayConfig
|
from .config import RelayConfig
|
||||||
from .database import RelayDatabase
|
from .database import RelayDatabase
|
||||||
from .misc import DotDict, check_open_port, set_app
|
from .misc import DotDict, check_open_port, fetch_nodeinfo, set_app
|
||||||
from .views import routes
|
from .views import routes
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,15 +25,16 @@ class Application(web.Application):
|
||||||
if not self['config'].load():
|
if not self['config'].load():
|
||||||
self['config'].save()
|
self['config'].save()
|
||||||
|
|
||||||
self['database'] = RelayDatabase(self['config'])
|
|
||||||
self['database'].load()
|
|
||||||
|
|
||||||
self['cache'] = DotDict({key: Cache(maxsize=self['config'][key]) for key in self['config'].cachekeys})
|
self['cache'] = DotDict({key: Cache(maxsize=self['config'][key]) for key in self['config'].cachekeys})
|
||||||
self['semaphore'] = asyncio.Semaphore(self['config'].push_limit)
|
self['semaphore'] = asyncio.Semaphore(self['config'].push_limit)
|
||||||
|
|
||||||
self.set_signal_handler()
|
|
||||||
set_app(self)
|
set_app(self)
|
||||||
|
|
||||||
|
self['database'] = RelayDatabase(self['config'])
|
||||||
|
self['database'].load()
|
||||||
|
|
||||||
|
self.set_signal_handler()
|
||||||
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def cache(self):
|
def cache(self):
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import asyncio
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
import traceback
|
import traceback
|
||||||
|
@ -5,6 +6,8 @@ import traceback
|
||||||
from Crypto.PublicKey import RSA
|
from Crypto.PublicKey import RSA
|
||||||
from urllib.parse import urlparse
|
from urllib.parse import urlparse
|
||||||
|
|
||||||
|
from .misc import fetch_nodeinfo
|
||||||
|
|
||||||
|
|
||||||
class RelayDatabase(dict):
|
class RelayDatabase(dict):
|
||||||
def __init__(self, config):
|
def __init__(self, config):
|
||||||
|
@ -75,9 +78,18 @@ class RelayDatabase(dict):
|
||||||
else:
|
else:
|
||||||
self['relay-list'] = data.get('relay-list', {})
|
self['relay-list'] = data.get('relay-list', {})
|
||||||
|
|
||||||
for domain in self['relay-list'].keys():
|
for domain, instance in self['relay-list'].items():
|
||||||
if self.config.is_banned(domain) or (self.config.whitelist_enabled and not self.config.is_whitelisted(domain)):
|
if self.config.is_banned(domain) or (self.config.whitelist_enabled and not self.config.is_whitelisted(domain)):
|
||||||
self.del_inbox(domain)
|
self.del_inbox(domain)
|
||||||
|
continue
|
||||||
|
|
||||||
|
if not instance.get('software'):
|
||||||
|
nodeinfo = asyncio.run(fetch_nodeinfo(domain))
|
||||||
|
|
||||||
|
if not nodeinfo:
|
||||||
|
continue
|
||||||
|
|
||||||
|
instance['software'] = nodeinfo.swname
|
||||||
|
|
||||||
new_db = False
|
new_db = False
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue