#!/usr/bin/env python # -*- encoding: utf-8 -*- import yaml import random def work(message): print u'>>>', message, u'...' def title(message): print u"\n{0}\n".format(message) def display(message): print message def get_songs(): work(u'Getting content') result = None with open('lyrics.yaml') as content: result = yaml.load(content) return result def pick_song(songs): work(u'Picking a song') song = random.choice(songs) while song['done']: work(u'Song "{0}" was already picked, getting a new ' u'one'.format(song['song'])) song = random.choice(songs) return song def firstialize(string): result = [] for word in string.split(' '): result.append(word[0]) return ''.join(result).upper() def show_hints(song): display(u'Artist: {0}'.format(firstialize(song['artist']))) display(u'Song: {0}'.format(firstialize(song['song']))) def show_info(song): display(u'Artist: {0}'.format(song['artist'])) display(u'Song: {0}'.format(song['song'])) def show_song(song): title(u'Song picked, here it is:') display(song['lyrics']) display(u'') show_hints(song) raw_input(u'Press enter to display the answer:') show_info(song) def main(): songs = get_songs() while True: song = pick_song(songs) show_song(song) if __name__ == '__main__': main()