# -*- coding: utf-8 -*-
"""
Created on Mon Dec 05 12:56:15 2016

@author: Klaas, FRenzy
"""
import os #filenames
from operator import truediv
from functools import reduce

folder = 'replays' #put all the replay files here
Handle = 'IsHuman: True' #Search for this in the replay file

filenames = os.listdir(folder)
os.chdir( folder )
allies = ('germany', 'england','france')
soviets = ('russia', 'ukraine')
countries = allies + soviets
wins = [0,0,0,0,0]
loss = [0,0,0,0,0]

f2 = open('Output.txt', 'w')
f2.close()

a,b = 0,0
for filename in filenames:
    f1 = open(filename,"rb")    
    lines = f1.readlines()     
    Faction=-1   
    test=False    
    for i, line in enumerate(lines):
        line = line.lstrip()
        if line.startswith(Handle):        
            for c,country in enumerate(countries) :   
                if country in lines[i + 3]:
                    print lines[i - 1], lines[i + 3], lines[i + 9]
                    if c<3 and Faction >2 and Faction !=-1:  #test for allies vs. soviets matchup 
                        test = True   
                    if c>2 and Faction <3 and Faction !=-1:
                        test = True 
                    if test == True and 'Won' in lines[i + 9]:
                        wins[c] += 1
                        loss[Faction] += 1
                    if test == True  and 'Lost' in lines[i + 9]:
                        loss[c] += 1 
                        wins[Faction] += 1
                    Faction=c           #check if same faction
    f1.close()
    #f2.write(country+' - W/L :'+str(a)+'/'+str(b)+'\n')

print (", ".join(map(str, wins)))
print (", ".join(map(str, loss)))
f2 = open('Output.txt', 'a')
if reduce(lambda x, y: x*y, loss) > 0:  #dont divide by 0
    ratio = map(truediv, wins, loss)
    ratio = [round(elem,2) for elem in ratio]
else: ratio = loss

camps = ('allies','soviets')
wins_camp = [ wins[0]+wins[1]+wins[2], wins[3]+wins[4] ]
loss_camp = [ loss[0]+loss[1]+loss[2], loss[3]+loss[4] ]
if loss_camp[0]*loss_camp[1]>0:         #dont divide by 0
    ratio_camp = map(truediv, wins_camp, loss_camp)
    ratio_camp = [round(elem,2) for elem in ratio_camp]
else: ratio_camp = [0,0]

f2.write('COUNTRIES : %s' % (countries,)+'\n')
f2.write('Wins : '+", ".join(map(str, wins))+'\n')
f2.write('Losses : '+", ".join(map(str, loss))+'\n')
f2.write('W/L Ratio : '+", ".join(map(str, ratio))+'\n')
f2.write('CAMPS : %s' % (camps,)+'\n')
f2.write('Wins : '+", ".join(map(str, wins_camp))+'\n')
f2.write('Losses : '+", ".join(map(str, loss_camp))+'\n')
f2.write('W/L Ratio : '+", ".join(map(str, ratio_camp))+'\n')
f2.close()

#f2.write(lines[i - 1])
#f2.write(lines[i + 7])
#f2.write(lines[i + 3])
#f2.write(lines[i + 9])