# CreatePairs.py

import time

numberOfMovies = 100
samples = "rec.dat"
affinity = "affinity.dat"
moviesInfo = "movies.csv"

def loadData(fileName):
    try:    
        fData = open(fileName, 'r')
    except:
        return []
    out = []
    for line in fData:
        line = line[:-1]  # remove \n
        if len(line) == 0:  # empty line
            continue
        li = [i for i in line.split(",")]
        out.append(li)
    fData.close()
    return out

def loadIntData(fileName):
    try:    
        fData = open(fileName, 'r')
    except:
        return []
    out = []
    for line in fData:
        line = line[:-1]  # remove \n
        if len(line) == 0:  # empty line
            continue
        li = [int(i) for i in line.split(",")]
        out.append(li)
    fData.close()
    return out

def getMovieIds():
    movies = loadData(moviesInfo)
    movieIds = []
    for i in range(1,len(movies)):
        movieIds.append(int(movies[i][0]))
    return movieIds

X = loadIntData(samples)
startTime = time.time()
print "Working..."
fOut = open(affinity, "w")
movieIds = getMovieIds()
for id1 in movieIds[0:numberOfMovies]:
    for id2 in movieIds[id1:numberOfMovies]:
        nb = 0
        for recommendation in X:
            if id1 in recommendation and id2 in recommendation:
               nb += 1
        fOut.write(str(id1) + ";" + str(id2) + ";" + str(nb) + "\n")
fOut.close()
print "Done in", time.time() - startTime, "seconds."
