diff --git a/mute_sync.py b/mute_sync.py --- a/mute_sync.py +++ b/mute_sync.py @@ -99,6 +99,10 @@ blocks = paginated_get(self.client, '/api/v1/blocks') self.instance.account_cache.extend(blocks) return set((block['url'] for block in blocks)) + @functools.cached_property + def domain_blocks(self) -> set[str]: + return set(paginated_get(self.client, '/api/v1/domain_blocks')) + def lookup_acct(self, handle: str) -> dict | None: return self.instance.lookup_acct(handle, self.client) @@ -167,12 +171,20 @@ print(f'all blocks ({len(all_blocks)} total):') print(', '.join(all_blocks)) print() + all_domain_blocks = set() + for acct in accounts: + all_domain_blocks.update(acct.domain_blocks) + + print(f'all domain blocks ({len(all_domain_blocks)} total):') + print(', '.join(all_domain_blocks)) + print() + def flag(label: str, condition: bool) -> str: return label if condition else ' ' * len(label) for acct in accounts: - to_mute = all_mutes.difference(acct.mutes) - to_block = all_blocks.difference(acct.blocks) + to_mute = all_mutes - acct.mutes + to_block = all_blocks - acct.blocks print(f'will add to {acct}:') to_mute_count = 0 @@ -194,7 +206,13 @@ if in_blocks: to_block_count += 1 print(f' {flag("+block", in_blocks)} {flag("+mute", in_mutes)} @{found["acct"]} ({url})') - print(f'{to_mute_count} mutes, {to_block_count} blocks, {to_mute_count + to_block_count} total for {acct}\n') + print(f'{to_mute_count} mutes, {to_block_count} blocks, {to_mute_count + to_block_count} accounts total') + + to_domain_block = all_domain_blocks - acct.domain_blocks + print(f'{len(to_domain_block)} domain block(s):') + for domain in to_domain_block: + print(f' + {domain}') + print() try: choice = input('proceed? (type "yes" to continue) ') if choice.lower() != 'yes':