mirror of https://gitlab.com/bashrc2/epicyon
				
				
				
			Remove global block reasons
							parent
							
								
									7c561a309d
								
							
						
					
					
						commit
						738a3faf3c
					
				
							
								
								
									
										45
									
								
								blocking.py
								
								
								
								
							
							
						
						
									
										45
									
								
								blocking.py
								
								
								
								
							| 
						 | 
				
			
			@ -83,7 +83,7 @@ def _add_global_block_reason(base_dir: str,
 | 
			
		|||
                if not line.startswith(block_id + ' '):
 | 
			
		||||
                    new_reasons_str += line + '\n'
 | 
			
		||||
                    continue
 | 
			
		||||
                new_reasons_str = reason_line
 | 
			
		||||
                new_reasons_str += reason_line
 | 
			
		||||
            try:
 | 
			
		||||
                with open(blocking_reasons_filename, 'w+',
 | 
			
		||||
                          encoding='utf-8') as reas_file:
 | 
			
		||||
| 
						 | 
				
			
			@ -214,11 +214,54 @@ def add_block(base_dir: str, nickname: str, domain: str,
 | 
			
		|||
    return True
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _remove_global_block_reason(base_dir: str,
 | 
			
		||||
                                unblock_nickname: str,
 | 
			
		||||
                                unblock_domain: str) -> bool:
 | 
			
		||||
    """Remove a globla block reason
 | 
			
		||||
    """
 | 
			
		||||
    unblocking_filename = base_dir + '/accounts/blocking_reasons.txt'
 | 
			
		||||
    if not os.path.isfile(unblocking_filename):
 | 
			
		||||
        return False
 | 
			
		||||
 | 
			
		||||
    if not unblock_nickname.startswith('#'):
 | 
			
		||||
        unblock_id = unblock_nickname + '@' + unblock_domain
 | 
			
		||||
    else:
 | 
			
		||||
        unblock_id = unblock_nickname
 | 
			
		||||
 | 
			
		||||
    if not text_in_file(unblock_id + ' ', unblocking_filename):
 | 
			
		||||
        return False
 | 
			
		||||
 | 
			
		||||
    reasons_str = ''
 | 
			
		||||
    try:
 | 
			
		||||
        with open(unblocking_filename, 'r',
 | 
			
		||||
                  encoding='utf-8') as reas_file:
 | 
			
		||||
            reasons_str = reas_file.read()
 | 
			
		||||
    except OSError:
 | 
			
		||||
        print('EX: unable to read blocking reasons 2')
 | 
			
		||||
    reasons_lines = reasons_str.split('\n')
 | 
			
		||||
    new_reasons_str = ''
 | 
			
		||||
    for line in reasons_lines:
 | 
			
		||||
        if line.startswith(unblock_id + ' '):
 | 
			
		||||
            continue
 | 
			
		||||
        new_reasons_str += line + '\n'
 | 
			
		||||
    try:
 | 
			
		||||
        with open(unblocking_filename, 'w+',
 | 
			
		||||
                  encoding='utf-8') as reas_file:
 | 
			
		||||
            reas_file.write(new_reasons_str)
 | 
			
		||||
    except OSError:
 | 
			
		||||
        print('EX: unable to save blocking reasons 2' +
 | 
			
		||||
              unblocking_filename)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def remove_global_block(base_dir: str,
 | 
			
		||||
                        unblock_nickname: str,
 | 
			
		||||
                        unblock_domain: str) -> bool:
 | 
			
		||||
    """Unblock the given global block
 | 
			
		||||
    """
 | 
			
		||||
    _remove_global_block_reason(base_dir,
 | 
			
		||||
                                unblock_nickname,
 | 
			
		||||
                                unblock_domain)
 | 
			
		||||
 | 
			
		||||
    unblocking_filename = base_dir + '/accounts/blocking.txt'
 | 
			
		||||
    if not unblock_nickname.startswith('#'):
 | 
			
		||||
        unblock_handle = unblock_nickname + '@' + unblock_domain
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										22
									
								
								daemon.py
								
								
								
								
							
							
						
						
									
										22
									
								
								daemon.py
								
								
								
								
							| 
						 | 
				
			
			@ -2642,23 +2642,27 @@ class PubServer(BaseHTTPRequestHandler):
 | 
			
		|||
                                         full_block_domain, moderation_reason)
 | 
			
		||||
                if moderation_button == 'unblock':
 | 
			
		||||
                    full_block_domain = None
 | 
			
		||||
                    if moderation_text.startswith('http') or \
 | 
			
		||||
                       moderation_text.startswith('ipfs') or \
 | 
			
		||||
                       moderation_text.startswith('ipns') or \
 | 
			
		||||
                       moderation_text.startswith('hyper'):
 | 
			
		||||
                    if ' ' in moderation_text:
 | 
			
		||||
                        moderation_domain = moderation_text.split(' ', 1)[0]
 | 
			
		||||
                    else:
 | 
			
		||||
                        moderation_domain = moderation_text
 | 
			
		||||
                    if moderation_domain.startswith('http') or \
 | 
			
		||||
                       moderation_domain.startswith('ipfs') or \
 | 
			
		||||
                       moderation_domain.startswith('ipns') or \
 | 
			
		||||
                       moderation_domain.startswith('hyper'):
 | 
			
		||||
                        # https://domain
 | 
			
		||||
                        block_domain, block_port = \
 | 
			
		||||
                            get_domain_from_actor(moderation_text)
 | 
			
		||||
                            get_domain_from_actor(moderation_domain)
 | 
			
		||||
                        full_block_domain = \
 | 
			
		||||
                            get_full_domain(block_domain, block_port)
 | 
			
		||||
                    if '@' in moderation_text:
 | 
			
		||||
                    if '@' in moderation_domain:
 | 
			
		||||
                        # nick@domain or *@domain
 | 
			
		||||
                        full_block_domain = moderation_text.split('@')[1]
 | 
			
		||||
                        full_block_domain = moderation_domain.split('@')[1]
 | 
			
		||||
                    else:
 | 
			
		||||
                        # assume the text is a domain name
 | 
			
		||||
                        if not full_block_domain and '.' in moderation_text:
 | 
			
		||||
                        if not full_block_domain and '.' in moderation_domain:
 | 
			
		||||
                            nickname = '*'
 | 
			
		||||
                            full_block_domain = moderation_text.strip()
 | 
			
		||||
                            full_block_domain = moderation_domain.strip()
 | 
			
		||||
                    if full_block_domain or nickname.startswith('#'):
 | 
			
		||||
                        remove_global_block(base_dir, nickname,
 | 
			
		||||
                                            full_block_domain)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue