mirror of https://gitlab.com/bashrc2/epicyon
				
				
				
			Improve support for federated blocks
							parent
							
								
									4233310044
								
							
						
					
					
						commit
						a5a6521c7d
					
				| 
						 | 
				
			
			@ -696,8 +696,8 @@ def _get_short_domain(domain: str) -> str:
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
def is_blocked_domain(base_dir: str, domain: str,
 | 
			
		||||
                      blocked_cache: [] = None,
 | 
			
		||||
                      block_federated: [] = None) -> bool:
 | 
			
		||||
                      blocked_cache: [],
 | 
			
		||||
                      block_federated: []) -> bool:
 | 
			
		||||
    """Is the given domain blocked?
 | 
			
		||||
    """
 | 
			
		||||
    if '.' not in domain:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -181,7 +181,8 @@ def blocked_user_agent(calling_domain: str, agent_str: str,
 | 
			
		|||
 | 
			
		||||
        blocked_ua = \
 | 
			
		||||
            is_blocked_domain(base_dir, agent_domain,
 | 
			
		||||
                              blocked_cache, block_federated)
 | 
			
		||||
                              blocked_cache, block_federated,
 | 
			
		||||
                              None, block_federated)
 | 
			
		||||
        # if self.server.debug:
 | 
			
		||||
        if blocked_ua:
 | 
			
		||||
            print('BLOCK: Blocked User agent 2: ' + agent_domain)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										15
									
								
								daemon.py
								
								
								
								
							
							
						
						
									
										15
									
								
								daemon.py
								
								
								
								
							| 
						 | 
				
			
			@ -2630,7 +2630,8 @@ class PubServer(BaseHTTPRequestHandler):
 | 
			
		|||
                                              self.server.debug,
 | 
			
		||||
                                              self.server.system_language,
 | 
			
		||||
                                              self.server.signing_priv_key_pem,
 | 
			
		||||
                                              None)
 | 
			
		||||
                                              None,
 | 
			
		||||
                                              self.server.block_federated)
 | 
			
		||||
                    else:
 | 
			
		||||
                        msg = \
 | 
			
		||||
                            html_moderation_info(self.server.translate,
 | 
			
		||||
| 
						 | 
				
			
			@ -3768,7 +3769,8 @@ class PubServer(BaseHTTPRequestHandler):
 | 
			
		|||
                                      self.server.debug,
 | 
			
		||||
                                      self.server.system_language,
 | 
			
		||||
                                      signing_priv_key_pem,
 | 
			
		||||
                                      None)
 | 
			
		||||
                                      None,
 | 
			
		||||
                                      self.server.block_federated)
 | 
			
		||||
                if msg:
 | 
			
		||||
                    msg = msg.encode('utf-8')
 | 
			
		||||
                    msglen = len(msg)
 | 
			
		||||
| 
						 | 
				
			
			@ -4088,7 +4090,8 @@ class PubServer(BaseHTTPRequestHandler):
 | 
			
		|||
                                      self.server.debug,
 | 
			
		||||
                                      self.server.system_language,
 | 
			
		||||
                                      self.server.signing_priv_key_pem,
 | 
			
		||||
                                      users_path)
 | 
			
		||||
                                      users_path,
 | 
			
		||||
                                      self.server.block_federated)
 | 
			
		||||
                if msg:
 | 
			
		||||
                    msg = msg.encode('utf-8')
 | 
			
		||||
                    msglen = len(msg)
 | 
			
		||||
| 
						 | 
				
			
			@ -21336,7 +21339,8 @@ class PubServer(BaseHTTPRequestHandler):
 | 
			
		|||
                                  self.server.debug,
 | 
			
		||||
                                  self.server.system_language,
 | 
			
		||||
                                  self.server.signing_priv_key_pem,
 | 
			
		||||
                                  None)
 | 
			
		||||
                                  None,
 | 
			
		||||
                                  self.server.block_federated)
 | 
			
		||||
            if msg:
 | 
			
		||||
                msg = msg.encode('utf-8')
 | 
			
		||||
                msglen = len(msg)
 | 
			
		||||
| 
						 | 
				
			
			@ -21378,7 +21382,8 @@ class PubServer(BaseHTTPRequestHandler):
 | 
			
		|||
                                  self.server.debug,
 | 
			
		||||
                                  self.server.system_language,
 | 
			
		||||
                                  self.server.signing_priv_key_pem,
 | 
			
		||||
                                  None)
 | 
			
		||||
                                  None,
 | 
			
		||||
                                  self.server.block_federated)
 | 
			
		||||
            if msg:
 | 
			
		||||
                msg = msg.encode('utf-8')
 | 
			
		||||
                msglen = len(msg)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										12
									
								
								newswire.py
								
								
								
								
							
							
						
						
									
										12
									
								
								newswire.py
								
								
								
								
							| 
						 | 
				
			
			@ -538,7 +538,7 @@ def _valid_podcast_entry(base_dir: str, key: str, entry: {}) -> bool:
 | 
			
		|||
        post_domain, _ = get_domain_from_actor(post_url)
 | 
			
		||||
        if not post_domain:
 | 
			
		||||
            return False
 | 
			
		||||
        if is_blocked_domain(base_dir, post_domain):
 | 
			
		||||
        if is_blocked_domain(base_dir, post_domain, None, None):
 | 
			
		||||
            return False
 | 
			
		||||
    return True
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -851,7 +851,7 @@ def _xml2str_to_dict(base_dir: str, domain: str, xml_str: str,
 | 
			
		|||
        if '/' in item_domain:
 | 
			
		||||
            item_domain = item_domain.split('/')[0]
 | 
			
		||||
 | 
			
		||||
        if is_blocked_domain(base_dir, item_domain):
 | 
			
		||||
        if is_blocked_domain(base_dir, item_domain, None, None):
 | 
			
		||||
            continue
 | 
			
		||||
        pub_date = rss_item.split('<pubDate>')[1]
 | 
			
		||||
        pub_date = pub_date.split('</pubDate>')[0]
 | 
			
		||||
| 
						 | 
				
			
			@ -965,7 +965,7 @@ def _xml1str_to_dict(base_dir: str, domain: str, xml_str: str,
 | 
			
		|||
        if '/' in item_domain:
 | 
			
		||||
            item_domain = item_domain.split('/')[0]
 | 
			
		||||
 | 
			
		||||
        if is_blocked_domain(base_dir, item_domain):
 | 
			
		||||
        if is_blocked_domain(base_dir, item_domain, None, None):
 | 
			
		||||
            continue
 | 
			
		||||
        pub_date = rss_item.split('<dc:date>')[1]
 | 
			
		||||
        pub_date = pub_date.split('</dc:date>')[0]
 | 
			
		||||
| 
						 | 
				
			
			@ -1072,7 +1072,7 @@ def _atom_feed_to_dict(base_dir: str, domain: str, xml_str: str,
 | 
			
		|||
        if '/' in item_domain:
 | 
			
		||||
            item_domain = item_domain.split('/')[0]
 | 
			
		||||
 | 
			
		||||
        if is_blocked_domain(base_dir, item_domain):
 | 
			
		||||
        if is_blocked_domain(base_dir, item_domain, None, None):
 | 
			
		||||
            continue
 | 
			
		||||
        pub_date = atom_item.split('<updated>')[1]
 | 
			
		||||
        pub_date = pub_date.split('</updated>')[0]
 | 
			
		||||
| 
						 | 
				
			
			@ -1185,7 +1185,7 @@ def _json_feed_v1to_dict(base_dir: str, domain: str, xml_str: str,
 | 
			
		|||
        item_domain = link.split('://')[1]
 | 
			
		||||
        if '/' in item_domain:
 | 
			
		||||
            item_domain = item_domain.split('/')[0]
 | 
			
		||||
        if is_blocked_domain(base_dir, item_domain):
 | 
			
		||||
        if is_blocked_domain(base_dir, item_domain, None, None):
 | 
			
		||||
            continue
 | 
			
		||||
        if json_feed_item.get('date_published'):
 | 
			
		||||
            if not isinstance(json_feed_item['date_published'], str):
 | 
			
		||||
| 
						 | 
				
			
			@ -1228,7 +1228,7 @@ def _atom_feed_yt_to_dict(base_dir: str, xml_str: str,
 | 
			
		|||
    """
 | 
			
		||||
    if '<entry>' not in xml_str:
 | 
			
		||||
        return {}
 | 
			
		||||
    if is_blocked_domain(base_dir, 'www.youtube.com'):
 | 
			
		||||
    if is_blocked_domain(base_dir, 'www.youtube.com', None, None):
 | 
			
		||||
        return {}
 | 
			
		||||
    result = {}
 | 
			
		||||
    atom_items = xml_str.split('<entry>')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -380,7 +380,7 @@ def post_message_to_outbox(session, translate: {},
 | 
			
		|||
        test_domain, test_port = get_domain_from_actor(actor_url)
 | 
			
		||||
        if test_domain:
 | 
			
		||||
            test_domain = get_full_domain(test_domain, test_port)
 | 
			
		||||
            if is_blocked_domain(base_dir, test_domain):
 | 
			
		||||
            if is_blocked_domain(base_dir, test_domain, None, None):
 | 
			
		||||
                if debug:
 | 
			
		||||
                    print('DEBUG: domain is blocked: ' + actor_url)
 | 
			
		||||
                return False
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								posts.py
								
								
								
								
							
							
						
						
									
										4
									
								
								posts.py
								
								
								
								
							| 
						 | 
				
			
			@ -913,7 +913,7 @@ def _get_posts_for_blocked_domains(base_dir: str,
 | 
			
		|||
                    get_domain_from_actor(reply_id)
 | 
			
		||||
                if not post_domain:
 | 
			
		||||
                    continue
 | 
			
		||||
                if is_blocked_domain(base_dir, post_domain):
 | 
			
		||||
                if is_blocked_domain(base_dir, post_domain, None, None):
 | 
			
		||||
                    if item['object'].get('url'):
 | 
			
		||||
                        url = get_url_from_post(item['object']['url'])
 | 
			
		||||
                    else:
 | 
			
		||||
| 
						 | 
				
			
			@ -936,7 +936,7 @@ def _get_posts_for_blocked_domains(base_dir: str,
 | 
			
		|||
                        get_domain_from_actor(tag_url)
 | 
			
		||||
                    if not post_domain:
 | 
			
		||||
                        continue
 | 
			
		||||
                    if is_blocked_domain(base_dir, post_domain):
 | 
			
		||||
                    if is_blocked_domain(base_dir, post_domain, None, None):
 | 
			
		||||
                        if item['object'].get('url'):
 | 
			
		||||
                            url = get_url_from_post(item['object']['url'])
 | 
			
		||||
                        else:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -101,7 +101,8 @@ def html_account_info(translate: {},
 | 
			
		|||
                      nickname: str, domain: str, port: int,
 | 
			
		||||
                      search_handle: str, debug: bool,
 | 
			
		||||
                      system_language: str, signing_priv_key_pem: str,
 | 
			
		||||
                      back_url: str) -> str:
 | 
			
		||||
                      back_url: str,
 | 
			
		||||
                      block_federated: []) -> str:
 | 
			
		||||
    """Shows which domains a search handle interacts with.
 | 
			
		||||
    This screen is shown if a moderator enters a handle and selects info
 | 
			
		||||
    on the moderation screen
 | 
			
		||||
| 
						 | 
				
			
			@ -205,7 +206,7 @@ def html_account_info(translate: {},
 | 
			
		|||
            http_prefix + '://' + post_domain + '" ' + \
 | 
			
		||||
            'target="_blank" rel="nofollow noopener noreferrer">' + \
 | 
			
		||||
            post_domain + '</a> '
 | 
			
		||||
        if is_blocked_domain(base_dir, post_domain):
 | 
			
		||||
        if is_blocked_domain(base_dir, post_domain, None, block_federated):
 | 
			
		||||
            blocked_posts_links = ''
 | 
			
		||||
            url_ctr = 0
 | 
			
		||||
            for url in blocked_post_urls:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue