Skip to content
Snippets Groups Projects
Commit 0c851a07 authored by Gandalf's avatar Gandalf
Browse files

Merge branch 'configurable-blacklist-api' into 'autoclave'

Make blacklist api a configuration option

See merge request hive-group/hivemind!8
parents efea2094 346aabf7
No related branches found
No related tags found
1 merge request!8Make blacklist api a configuration option
......@@ -34,7 +34,7 @@ class Conf():
add('--database-url', env_var='DATABASE_URL', required=False, help='database connection url', default='')
add('--steemd-url', env_var='STEEMD_URL', required=False, help='steemd/jussi endpoint', default='{"default" : "https://api.hive.blog"}')
add('--muted-accounts-url', env_var='MUTED_ACCOUNTS_URL', required=False, help='url to flat list of muted accounts', default='https://raw.githubusercontent.com/hivevectordefense/irredeemables/master/full.txt')
add('--blacklist-api-url', env_var='BLACKLIST_API_URL', required=False, help='url to acccess blacklist api', default='https://blacklist.usehive.com')
# server
add('--http-server-port', type=int, env_var='HTTP_SERVER_PORT', default=8080)
......
......@@ -48,7 +48,9 @@ class Sync:
Accounts.fetch_ranks()
# load irredeemables
mutes = Mutes(self._conf.get('muted_accounts_url'))
mutes = Mutes(
self._conf.get('muted_accounts_url'),
self._conf.get('blacklist_api_url'))
Mutes.set_shared_instance(mutes)
# community stats
......
......@@ -32,16 +32,17 @@ class Mutes:
"""Set the global/shared instance."""
cls._instance = instance
def __init__(self, url):
def __init__(self, url, blacklist_api_url):
"""Initialize a muted account list by loading from URL"""
self.url = url
self.blacklist_api_url = blacklist_api_url
if url:
self.load()
def load(self):
"""Reload all accounts from irredeemables endpoint and global lists."""
self.accounts = set(_read_url(self.url).decode('utf8').split())
jsn = _read_url('https://blacklist.usehive.com/blacklists')
jsn = _read_url(self.blacklist_api_url + "/blacklists")
self.blist = set(json.loads(jsn))
self.blist_map = dict()
log.warning("%d muted, %d blacklisted", len(self.accounts), len(self.blist))
......@@ -65,7 +66,7 @@ class Mutes:
if name not in inst.blist_map:
out = []
if name in inst.blist:
url = 'https://blacklist.usehive.com/user/' + name
url = "%s/user/%s" % (inst.blacklist_api_url, name)
lists = json.loads(_read_url(url))
out.extend(lists['blacklisted'])
......
......@@ -167,7 +167,7 @@ def run_server(conf):
log = logging.getLogger(__name__)
methods = build_methods()
mutes = Mutes(conf.get('muted_accounts_url'))
mutes = Mutes(conf.get('muted_accounts_url'), conf.get('blacklist_api_url'))
Mutes.set_shared_instance(mutes)
app = web.Application()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment