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(): ...@@ -34,7 +34,7 @@ class Conf():
add('--database-url', env_var='DATABASE_URL', required=False, help='database connection url', default='') 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('--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('--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 # server
add('--http-server-port', type=int, env_var='HTTP_SERVER_PORT', default=8080) add('--http-server-port', type=int, env_var='HTTP_SERVER_PORT', default=8080)
......
...@@ -48,7 +48,9 @@ class Sync: ...@@ -48,7 +48,9 @@ class Sync:
Accounts.fetch_ranks() Accounts.fetch_ranks()
# load irredeemables # 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) Mutes.set_shared_instance(mutes)
# community stats # community stats
......
...@@ -32,16 +32,17 @@ class Mutes: ...@@ -32,16 +32,17 @@ class Mutes:
"""Set the global/shared instance.""" """Set the global/shared instance."""
cls._instance = instance cls._instance = instance
def __init__(self, url): def __init__(self, url, blacklist_api_url):
"""Initialize a muted account list by loading from URL""" """Initialize a muted account list by loading from URL"""
self.url = url self.url = url
self.blacklist_api_url = blacklist_api_url
if url: if url:
self.load() self.load()
def load(self): def load(self):
"""Reload all accounts from irredeemables endpoint and global lists.""" """Reload all accounts from irredeemables endpoint and global lists."""
self.accounts = set(_read_url(self.url).decode('utf8').split()) 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 = set(json.loads(jsn))
self.blist_map = dict() self.blist_map = dict()
log.warning("%d muted, %d blacklisted", len(self.accounts), len(self.blist)) log.warning("%d muted, %d blacklisted", len(self.accounts), len(self.blist))
...@@ -65,7 +66,7 @@ class Mutes: ...@@ -65,7 +66,7 @@ class Mutes:
if name not in inst.blist_map: if name not in inst.blist_map:
out = [] out = []
if name in inst.blist: 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)) lists = json.loads(_read_url(url))
out.extend(lists['blacklisted']) out.extend(lists['blacklisted'])
......
...@@ -167,7 +167,7 @@ def run_server(conf): ...@@ -167,7 +167,7 @@ def run_server(conf):
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
methods = build_methods() 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) Mutes.set_shared_instance(mutes)
app = web.Application() 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