diff --git a/discover-mastodon-servers/discover_mastodon_servers.py b/discover-mastodon-servers/discover_mastodon_servers.py index 6225368..e09957d 100755 --- a/discover-mastodon-servers/discover_mastodon_servers.py +++ b/discover-mastodon-servers/discover_mastodon_servers.py @@ -129,7 +129,7 @@ class DiscoverMastodonServers: match = re.search(banned, server) if match: self._log.debug( - "Regexp '%s' match server '%s'", + "Regexp '%s' match server '%s', banned.", banned, server ) @@ -148,21 +148,24 @@ class DiscoverMastodonServers: data = self.get_path(server[0], 'api/v1/instance/peers') if data: for new_server in data: - new_servers_count += 1 - self._log.debug( - "Adding new server '%s'", - new_server - ) - all_servers.append(new_server) - self.write_record( - (new_server, - { - "name": new_server, - "last_update": time.time(), - "private": False - } + if ((not self.test_banned_server(new_server)) and + (new_server not in self.servers) and + (new_server not in all_servers)): + new_servers_count += 1 + self._log.debug( + "Adding new server '%s' from peers", + new_server + ) + all_servers.append(new_server) + self.write_record( + (new_server, + { + "name": new_server, + "last_update": time.time(), + "private": False + } + ) ) - ) self._log.debug("Fetching public timeline in server '%s'", server[0]) data = self.get_timeline(server[0]) if data: @@ -171,12 +174,12 @@ class DiscoverMastodonServers: match_server = re.match(r'https?://([^/]*)/', item['uri']) if match_server: new_server = match_server.group(1) - if new_server not in all_servers: + if not self.test_banned_server(new_server) and new_server not in all_servers: data = self.get_timeline(new_server) if data: new_servers_count += 1 self._log.debug( - "Adding new server '%s'", + "Adding new server '%s' from timeline", new_server ) all_servers.append(new_server)