Changeset - dfc18f1d128e
[Not reviewed]
default
0 1 0
Laman - 3 years ago 2021-10-14 17:04:08

implemented the below 5k drop cushion
1 file changed with 6 insertions and 1 deletions:
0 comments (0 inline, 0 general)
rank_progress.py
Show inline comments
 
@@ -58,32 +58,37 @@ def rating_to_rank(rating):
 

	
 

	
 
since = datetime.strptime(args.since, "%Y%m%d")
 
to = datetime.strptime(args.to, "%Y%m%d") if args.to else datetime.now()
 

	
 
with open("/tmp/all.hst") as f:
 
	s = f.read()
 

	
 
records = [Record.parse(line) for line in s.splitlines()]
 
records = filter(lambda rec: rec is not None, records)
 
national_records = filter(lambda rec: rec.country_code == args.country_code, records)
 
player_records = groupby(national_records, lambda rec: rec.pin)
 

	
 
for (pin, recs) in player_records:
 
	tourneys = list(recs)
 
	rounded_rating = tourneys[0].rounded_before
 

	
 
	steps = []
 

	
 
	for r in tourneys:
 
		# omit reset ratings
 
		if rounded_rating != r.rounded_before:
 
			rounded_rating = r.rounded_before
 

	
 
		if r.rating_after-rounded_rating >= 50 or rounded_rating-r.rating_after > 100:
 
		if r.rating_after-rounded_rating >= 50 or \
 
				(rounded_rating-r.rating_after > 100 and rounded_rating >= 1600):
 
			steps.append(r)
 
			rounded_rating = r.rounded_after
 
		elif rounded_rating-r.rating_after > 150:
 

	
 
			steps.append(r)
 
			rounded_rating = r.rounded_after + 100
 

	
 
	steps = [r for r in steps if since <= r.date <= to]
 
	if steps:
 
		print("\n".join(map(str, steps)))
 
		print()
0 comments (0 inline, 0 general)