def get(self): filename = self.get_argument("filename", None) f1, f2 = features.strip(filename) feature_names = ['amp1mean','amp1std','amp1skew','amp1kurt', 'amp1dmean','amp1dstd','amp1dskew','amp1dkurt', 'amp10mean','amp10std','amp10skew','amp10kurt', 'amp10dmean','amp10dstd','amp10dskew','amp10dkurt', 'amp100mean','amp100std','amp100skew','amp100kurt', 'amp100dmean','amp100dstd','amp100dskew','amp100dkurt', 'amp1000mean','amp1000std','amp1000skew','amp1000kurt', 'amp1000dmean','amp1000dstd','amp1000dskew','amp1000dkurt', 'power1','power2','power3','power4','power5', 'power6','power7','power8','power9','power10'] f1_json = zip(feature_names, f1) f2_json = zip(feature_names, f2) json_dict = tornado.escape.json_encode(dict(f1=dict(f1_json), f2=dict(f2_json))) # Sooooo not the best - or even a good - way to do this, but it is "A" way... f = open("input.json", "w") f.write(json_dict) f.close() run_bash("""java -classpath .:lib/NeticaJ.jar:lib/jackson-all-1.9.7.jar -Djava.library.path=lib NetworkFeed""") o = open("output.json", "r") json_output = o.read() o.close() print json_output self.write (json_output)
def main(): print "Beginning feature strip" song_count = dict() db = MySQLdb.connect(host="localhost", user="******", passwd="", db="genrebot") cursor = db.cursor() basepath = "/Users/Atta/Desktop/songs/" directory = os.listdir(basepath) for genre in directory: print "---NOW STARTING {0} SONGS---".format(genre.upper()) # Get the id in the db for the genre cursor.execute("""Select id from Genres where name = %s""", (genre)) song_count[genre] = 0 genre_id = cursor.fetchone()[0] genre_path = os.path.join(basepath, genre) genre_dir = os.listdir(genre_path) for song in genre_dir: # Remove the .DS_Store file and our special output.wav file, Quick and Dirty style if (song != ".DS_Store" and song != "output.wav"): song_count[genre] += 1 print "Current Song is: " + os.path.join(genre_path, song) f1, f2 = features.strip(os.path.join(genre_path, song), genre_path) # Add ALL the features to the database! cursor.execute("INSERT INTO features (title,genre,amp1mean,amp1std,amp1skew,amp1kurt,amp1dmean,amp1dstd,amp1dskew," "amp1dkurt,amp10mean,amp10std,amp10skew,amp10kurt,amp10dmean,amp10dstd,amp10dskew," "amp10dkurt,amp100mean,amp100std,amp100skew,amp100kurt,amp100dmean,amp100dstd," "amp100dskew,amp100dkurt,amp1000mean,amp1000std,amp1000skew,amp1000kurt,amp1000dmean," "amp1000dstd,amp1000dskew,amp1000dkurt,power1,power2,power3,power4,power5,power6,power7,power8,power9,power10)" "VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)", (song, genre_id) + tuple(f1)) cursor.execute("INSERT INTO features (title,genre,amp1mean,amp1std,amp1skew,amp1kurt,amp1dmean,amp1dstd,amp1dskew," "amp1dkurt,amp10mean,amp10std,amp10skew,amp10kurt,amp10dmean,amp10dstd,amp10dskew," "amp10dkurt,amp100mean,amp100std,amp100skew,amp100kurt,amp100dmean,amp100dstd," "amp100dskew,amp100dkurt,amp1000mean,amp1000std,amp1000skew,amp1000kurt,amp1000dmean," "amp1000dstd,amp1000dskew,amp1000dkurt,power1,power2,power3,power4,power5,power6,power7,power8,power9,power10)" "VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)", (song, genre_id) + tuple(f2)) print "Finished!" print "All done!" print "Total Song Counts:" for genre in song_count: print "{0} Songs: {1}".format(genre.upper(), song_count[genre])