Exemplo n.º 1
0
Arquivo: utils.py Projeto: zeebo/rain
def generate_announce_response(values, peer):
  peer_list = current_peers().filter(info_hash=values['info_hash']).exclude(pk=peer.pk).order_by('-state')
    
  if peer.state == settings.MAGIC_VALUES['seed']:
    interval = settings.MAGIC_VALUES['seed_interval']
  else:
    interval = settings.MAGIC_VALUES['peer_interval']
  
  peerset = peerset_to_ip(peer_list[:values['numwant']], values['compact'])
  
  return tracker_response({
    'interval': interval,
    'complete': num_seeds(values['info_hash']),
    'incomplete': num_peers(values['info_hash']),
    'peers': peerset,
  })
Exemplo n.º 2
0
def generate_announce_response(values, peer):
    peer_list = current_peers().filter(info_hash=values['info_hash']).exclude(
        pk=peer.pk).order_by('-state')

    if peer.state == settings.MAGIC_VALUES['seed']:
        interval = settings.MAGIC_VALUES['seed_interval']
    else:
        interval = settings.MAGIC_VALUES['peer_interval']

    peerset = peerset_to_ip(peer_list[:values['numwant']], values['compact'])

    return tracker_response({
        'interval': interval,
        'complete': num_seeds(values['info_hash']),
        'incomplete': num_peers(values['info_hash']),
        'peers': peerset,
    })
Exemplo n.º 3
0
def num_peers(info_hash):
    return current_peers().filter(info_hash=info_hash).filter(
        state=settings.MAGIC_VALUES['peer']).count()
Exemplo n.º 4
0
Arquivo: utils.py Projeto: zeebo/rain
def num_peers(info_hash):
  return current_peers().filter(info_hash=info_hash).filter(state=settings.MAGIC_VALUES['peer']).count()