import math;
import os;

fh = open( "setinfo.txt" );
data = fh.readlines();
fh.close();

seen = {};
sets = {};
used = [];

print "Missing Cards:";
print "==============";

buffer = [];

for d in data[ 1: ]:
    p = d.split( "\t" );
    if( not sets.has_key( p[1] ) ):
    	sets[ p[1] ] = { "hit": 0, "total": 0 };
    
    filename = "setimages/%s/%s.jpg" % ( p[1], p[2] );
    used.append( filename );
    
    sets[ p[1] ][ "total" ] += 1;
    if not os.path.exists( filename ):
        buffer.append( "  Missing: %s -> %s. ( %s/%s.jpg )" % ( p[1], p[0], p[1], p[2] ) );
    else:
    	sets[ p[1] ][ "hit" ] += 1;

buffer.sort();
print "\n".join( buffer );


print 
print "Homeless Cards:";
print "===============";

for dirpath, dirnames, files in os.walk( os.curdir ):
	if( dirnames == [] ):
		# basement
		for f in files:
			filename = ( dirpath + "/" + f )[ 2: ];
			if( filename not in used ):
				print "  Homeless card: %s" % filename;

print
print "Summary:";
print "========";
for set in sets.keys():
	factor = 60.0 / sets[ set ][ "total" ];
	hits, total = sets[ set ][ "hit" ], sets[ set ][ "total" ];

	hitbar = "=" * int( hits * factor );
	missbar = " " * ( 60 - len( hitbar ) );

	print " [%s%s] - %s ( %s/%s )" % ( hitbar, missbar, set, hits, total ); 
