added block type filter for public get blocks endpoint
This commit is contained in:
		
							parent
							
								
									02cdbc75ce
								
							
						
					
					
						commit
						68a557daf5
					
				
					 4 changed files with 29 additions and 26 deletions
				
			
		|  | @ -9,6 +9,7 @@ from onionrutils import bytesconverter, stringvalidators | |||
| from coredb import blockmetadb | ||||
| from utils import reconstructhash | ||||
| from onionrblocks import BlockList | ||||
| from onionrblocks.onionrblockapi import Block | ||||
| from .. import apiutils | ||||
| """ | ||||
|     This program is free software: you can redistribute it and/or modify | ||||
|  | @ -26,28 +27,32 @@ from .. import apiutils | |||
| """ | ||||
| 
 | ||||
| 
 | ||||
| def get_public_block_list(publicAPI, request): | ||||
| def get_public_block_list(public_API, request): | ||||
|     # Provide a list of our blocks, with a date offset | ||||
|     dateAdjust = request.args.get('date') | ||||
|     bList = blockmetadb.get_block_list(date_rec=dateAdjust) | ||||
|     date_adjust = request.args.get('date') | ||||
|     type_filter = request.args.get('type') | ||||
|     b_list = blockmetadb.get_block_list(date_rec=date_adjust) | ||||
|     share_list = '' | ||||
|     if config.get('general.hide_created_blocks', True): | ||||
|         for b in publicAPI.hideBlocks: | ||||
|             if b in bList: | ||||
|         for b in public_API.hideBlocks: | ||||
|             if b in b_list: | ||||
|                 # Don't share blocks we created if they haven't been *uploaded* yet, makes it harder to find who created a block | ||||
|                 bList.remove(b) | ||||
|     for b in bList: | ||||
|                 b_list.remove(b) | ||||
|     for b in b_list: | ||||
|         if type_filter: | ||||
|             if Block(b, decrypt=False).getType() != type_filter: | ||||
|                 continue | ||||
|         share_list += '%s\n' % (reconstructhash.deconstruct_hash(b),) | ||||
|     return Response(share_list) | ||||
| 
 | ||||
| 
 | ||||
| def get_block_data(publicAPI, data): | ||||
| def get_block_data(public_API, data): | ||||
|     """data is the block hash in hex""" | ||||
|     resp = '' | ||||
|     if stringvalidators.validate_hash(data): | ||||
|         if not config.get('general.hide_created_blocks', True) \ | ||||
|                 or data not in publicAPI.hideBlocks: | ||||
|             if data in publicAPI._too_many.get(BlockList).get(): | ||||
|                 or data not in public_API.hideBlocks: | ||||
|             if data in public_API._too_many.get(BlockList).get(): | ||||
|                 block = apiutils.GetBlockData().get_block_data( | ||||
|                     data, raw=True, decrypt=False) | ||||
|                 try: | ||||
|  |  | |||
|  | @ -116,7 +116,6 @@ class SubprocessPOW: | |||
|         metadata['n'] = secrets.randbits(16) | ||||
|         puzzle = self.puzzle | ||||
|         difficulty = self.difficulty | ||||
|         start = time.time() | ||||
| 
 | ||||
|         while True: | ||||
|             # Break if shutdown received | ||||
|  | @ -136,6 +135,5 @@ class SubprocessPOW: | |||
|             token = bytesconverter.bytes_to_str(token) | ||||
|             if puzzle == token[0:difficulty]: | ||||
|                 pipe.send(payload) | ||||
|                 print(metadata['pow'], time.time() - start) | ||||
|                 break | ||||
|             nonce += 1 | ||||
|  |  | |||
|  | @ -1,9 +1,12 @@ | |||
| ''' | ||||
|     Onionr - Private P2P Communication | ||||
| """Onionr - Private P2P Communication. | ||||
| 
 | ||||
|     Load the user's inbox and return it as a list | ||||
| ''' | ||||
| ''' | ||||
| Load the user's inbox and return it as a list | ||||
| """ | ||||
| from onionrblocks import onionrblockapi | ||||
| from coredb import blockmetadb | ||||
| from utils import reconstructhash, identifyhome | ||||
| import deadsimplekv as simplekv | ||||
| """ | ||||
|     This program is free software: you can redistribute it and/or modify | ||||
|     it under the terms of the GNU General Public License as published by | ||||
|     the Free Software Foundation, either version 3 of the License, or | ||||
|  | @ -16,12 +19,9 @@ | |||
| 
 | ||||
|     You should have received a copy of the GNU General Public License | ||||
|     along with this program.  If not, see <https://www.gnu.org/licenses/>. | ||||
| ''' | ||||
| from onionrblocks import onionrblockapi | ||||
| from coredb import blockmetadb | ||||
| import filepaths | ||||
| from utils import reconstructhash, identifyhome | ||||
| import deadsimplekv as simplekv | ||||
| """ | ||||
| 
 | ||||
| 
 | ||||
| def load_inbox(): | ||||
|     inbox_list = [] | ||||
|     deleted = simplekv.DeadSimpleKV(identifyhome.identify_home() + '/mailcache.dat').get('deleted_mail') | ||||
|  | @ -33,4 +33,4 @@ def load_inbox(): | |||
|         block.decrypt() | ||||
|         if block.decrypted and reconstructhash.deconstruct_hash(blockHash) not in deleted: | ||||
|             inbox_list.append(blockHash) | ||||
|     return inbox_list | ||||
|     return inbox_list | ||||
|  |  | |||
|  | @ -14,8 +14,8 @@ | |||
|         "hide_created_blocks": true, | ||||
|         "insert_deniable_blocks": true, | ||||
|         "max_block_age": 2678400, | ||||
|         "minimum_block_pow": 6, | ||||
|         "minimum_send_pow": 6, | ||||
|         "minimum_block_pow": 4, | ||||
|         "minimum_send_pow": 4, | ||||
|         "public_key": "", | ||||
|         "random_bind_ip": true, | ||||
|         "security_level": 0, | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue