Exemplo n.º 1
0
def index(request):
    # Display list of recent names.
    newest = Domain.all().order('-timestamp').fetch(10)
    oldest = Domain.all().order('timestamp').fetch(5)
    oldest.reverse()
    domain_list = newest + [''] + oldest
    # Recent statistics.
    domain_stats = stats.KindStat.all().filter('kind_name', 'domains_domain')
    domain_stats = domain_stats.order('-timestamp').fetch(3)
    return render_to_response(request, 'domains/index.html', locals())
Exemplo n.º 2
0
def index(request):
    # Display list of recent names.
    newest = Domain.all().order('-timestamp').fetch(10)
    oldest = Domain.all().order('timestamp').fetch(5)
    oldest.reverse()
    domain_list = newest + [''] + oldest
    # Recent statistics.
    domain_stats = stats.KindStat.all().filter('kind_name', 'domains_domain')
    domain_stats = domain_stats.order('-timestamp').fetch(3)
    return render_to_response(request, 'domains/index.html', locals())
Exemplo n.º 3
0
def cron(request):
    updated_domains = []
    deleted_domains = []
    query = Domain.all().order('timestamp')
    update_description = 'oldest domain names'
    domains = query.fetch(BATCH_SIZE_FETCH)
    count_random = len(domains)
    count_obsolete = 0
    count_languages = 0
    for domain in domains:
        if (len(updated_domains) >= BATCH_SIZE_UPDATE
                or len(deleted_domains) >= BATCH_SIZE_DELETE):
            break
        if len(domain.key().name()) > MAX_NAME_LENGTH:
            deleted_domains.append(domain)
            continue
        domain.before_put()
        if len(domain.key().name()) > 5 and not domain.score:
            deleted_domains.append(domain)
            continue
        updated_domains.append(domain)
    db.put(updated_domains)
    db.delete(deleted_domains)
    count_updated = len(updated_domains)
    count_deleted = len(deleted_domains)
    updated_domains.sort(key=lambda domain: -domain.score)
    domain_list = updated_domains[:20] + [None] + deleted_domains[:10]
    refresh_seconds = request.GET.get('refresh', 0)
    return render_to_response(request, 'domains/index.html', locals())
Exemplo n.º 4
0
def cron(request):
    updated_domains = []
    deleted_domains = []
    query = Domain.all().order('timestamp')
    update_description = 'oldest domain names'
    domains = query.fetch(BATCH_SIZE_FETCH)
    count_random = len(domains)
    count_obsolete = 0
    count_languages = 0
    for domain in domains:
        if (len(updated_domains) >= BATCH_SIZE_UPDATE or
            len(deleted_domains) >= BATCH_SIZE_DELETE):
            break
        if len(domain.key().name()) > MAX_NAME_LENGTH:
            deleted_domains.append(domain)
            continue
        domain.before_put()
        if len(domain.key().name()) > 5 and not domain.score:
            deleted_domains.append(domain)
            continue
        updated_domains.append(domain)
    db.put(updated_domains)
    db.delete(deleted_domains)
    count_updated = len(updated_domains)
    count_deleted = len(deleted_domains)
    updated_domains.sort(key=lambda domain: -domain.score)
    domain_list = updated_domains[:20] + [None] + deleted_domains[:10]
    refresh_seconds = request.GET.get('refresh', 0)
    return render_to_response(request, 'domains/index.html', locals())
Exemplo n.º 5
0
def longest(request):
    query = Domain.all(keys_only=True).order('-length')
    query.filter('length > ', MAX_NAME_LENGTH)
    names = [key.name() for key in query.fetch(100)]
    db.delete([db.Key.from_path('domains_domain', name) for name in names])
    db.delete([db.Key.from_path('dns_lookup', name) for name in names])
    refresh_seconds = request.GET.get('refresh', 0)
    return render_to_response(request, 'domains/longest.html', locals())
Exemplo n.º 6
0
def longest(request):
    query = Domain.all(keys_only=True).order('-length')
    query.filter('length > ', MAX_NAME_LENGTH)
    names = [key.name() for key in query.fetch(100)]
    db.delete([db.Key.from_path('domains_domain', name) for name in names])
    db.delete([db.Key.from_path('dns_lookup', name) for name in names])
    refresh_seconds = request.GET.get('refresh', 0)
    return render_to_response(request, 'domains/longest.html', locals())
Exemplo n.º 7
0
def fetch_candidates(left, right, length):
    query = Domain.all()
    if left:
        query.filter('left%d' % len(left), left)
    if right:
        query.filter('right%d' % len(right), right)
    query.filter('length', length)
    query.order('-score')
    return query.fetch(JSON_FETCH_LIMIT)
Exemplo n.º 8
0
def fetch_candidates(left, right, length):
    query = Domain.all()
    if left:
        query.filter('left%d' % len(left), left)
    if right:
        query.filter('right%d' % len(right), right)
    query.filter('length', length)
    query.order('-score')
    return query.fetch(JSON_FETCH_LIMIT)
Exemplo n.º 9
0
def update_best_names(position, keyword, length, options):
    print "Trying to fetch %d best names with" % options.batch,
    if keyword and position == 'left':
        print "prefix", keyword, "and",
    if keyword and position == 'right':
        print "suffix", keyword, "and",
    print "length", length
    query = Domain.all(keys_only=True)
    if keyword:
        query.filter('%s%d' % (position, len(keyword)), keyword)
    query.filter('length', length)
    query.order('-score')
    keys = retry(query.fetch, options.batch)
    if not keys:
        return
    lookups = lookup_names([key.name() for key in keys], options)
    retry_objects(db.put, lookups)
Exemplo n.º 10
0
def random_domains(keys_only=False,
                   length_choices=[1, 2, MAX_NAME_LENGTH],
                   position_choices=['left', 'right'],
                   order_choices=['length', '-english']):
    query = Domain.all(keys_only=keys_only)
    length = random.choice(length_choices)
    name = random_prefix(length)
    position = random.choice(position_choices)
    if length == MAX_NAME_LENGTH:
        description = "names that follow %s" % name
        if position == 'left':
            key = db.Key.from_path('domains_domain', name)
            query.filter('__key__ >', key)
        elif position == 'right':
            query.filter('backwards >', name)
            description += " backwards"
    else:
        order = random.choice(order_choices)
        query.filter('%s%d' % (position, len(name)), name)
        query.order(order)
        description = "%s names that %s with %s" % (
            ORDER_DESCRIPTIONS[order], POSITION_DESCRIPTIONS[position], name)
    return query, description