In [1]:
import os, sys
sys.path.insert(0, '/home/trax/trax/website')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "trax.settings")
import django
django.setup()
from django.utils import timezone
In [2]:
from tracks.models import Laptime, Track
from pprint import pprint
from collections import OrderedDict
import datetime
from IPython.display import HTML, display
import tabulate
def epsilon_detail():
exclude_usernames = ['benimi', 'yoloswagypsen', 'sins'] # submitted times, but don't participate
t = Track.objects.get(pk=117)
enddate = timezone.datetime(2017, 3, 30, 18, 0, 0)
ls = Laptime.objects.filter(
track=t,
created__lt=enddate,
link__isnull=False).exclude(
link='').order_by('millis')
players = {}
for l in ls:
if l.player.username in exclude_usernames:
continue
if players.get(l.player.username):
players[l.player.username].append(l)
else:
players[l.player.username] = [l, ]
od = list(OrderedDict(sorted(players.items(), key=lambda t: t[1][0].millis)).items())
divisions = []
for x in (0, 15, 30, 45):
if len(od) >= x:
divisions.append(od[x:x + 15])
else:
divisions.append([])
if len(od) > 60:
divisions.append(od[60:])
else:
divisions.append([])
return divisions
In [6]:
divs = epsilon_detail()
In [4]:
len(divs)
Out[4]:
In [ ]:
In [8]:
all_players = []
for idx, players in enumerate(divs):
print("============ DIVISION ", idx + 1)
for player, pdata in players:
pname = player.replace("-", "").strip(".").strip("_")
all_players.append(pname)
print(pname)
print ("#" * 80)
for pname in sorted(all_players):
print(pname)
============ DIVISION 1 ohdarn obihoernchen serenniel casper258 smithyonetwelve mindlessriff tony_soprano1985 doompenguin44 grmpls friendlybaron radas59 tsupernami nommasch divait fab.iceman ============ DIVISION 2 scrazor92 grievous_94 michiski22 mistarr adam10603 dogda justus2036 esquzz serviinutles toodlesn thetruearyan dv8rx firefly p4ulin4tor oldholborn ============ DIVISION 3 thisisqlimax hiberg thekillswitchh deafplayer ofmikeandmen positivetension herogut countach92 thedelgadic1 j3rryacinonyx imfishy sunkenviper silkie akajayjohn kili31 ============ DIVISION 4 nikoflakis declassed horsvarka mishindmitriy prrevil tohrazer abe.cede fivedownactual pseudonymous8128 killmeister razvanmc23 mrbeattbox amlegendary96 ============ DIVISION 5
abe.cede adam10603 akajayjohn amlegendary96 casper258 countach92 deafplayer declassed divait dogda doompenguin44 dv8rx esquzz fab.iceman firefly fivedownactual friendlybaron grievous_94 grmpls herogut hiberg horsvarka imfishy j3rryacinonyx justus2036 kili31 killmeister michiski22 mindlessriff mishindmitriy mistarr mrbeattbox nikoflakis nommasch obihoernchen ofmikeandmen ohdarn oldholborn p4ulin4tor positivetension prrevil pseudonymous8128 radas59 razvanmc23 scrazor92 serenniel serviinutles silkie smithyonetwelve sunkenviper thedelgadic1 thekillswitchh thetruearyan thisisqlimax tohrazer tony_soprano1985 toodlesn tsupernami
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
Brioso
Burgershot Stallion
Carbonizzare
Comet
Feltzer
Futo
Glendale
Huntley S
Jackal
Monroe
Prairie
Rhapsody
Stirling GT
Warrener
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]: