Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWade Brainerd <wadetb@gmail.com>2009-09-16 03:19:17 (GMT)
committer Wade Brainerd <wadetb@gmail.com>2009-09-16 03:19:17 (GMT)
commit526f96054e5ebf74390938564b15c1cdfe36af6b (patch)
treed17b1b4cea1a7acf6eddb7dfe19f51c29f27ad45
parent65b21e8462bd80e99a3639e192102b9eb112e93a (diff)
Switch to single .lessons file.
-rw-r--r--lessons/en_US.lessons1
-rw-r--r--mainscreen.py19
2 files changed, 9 insertions, 11 deletions
diff --git a/lessons/en_US.lessons b/lessons/en_US.lessons
new file mode 100644
index 0000000..c284b56
--- /dev/null
+++ b/lessons/en_US.lessons
@@ -0,0 +1 @@
+{"lessons": [{"description": "Click Start Lesson to begin your typing adventure.", "steps": [{"text": " ", "mode": "key", "instructions": "Hihowahyah! Ready to learn the secret of fast typing?\nAlways use the correct finger to press each key!\n\nNow, place your hands on the keyboard just like the picture below.\nWhen you're ready, press the SPACE bar with your thumb!"}, {"text": " ", "mode": "key", "instructions": "Good job! The SPACE bar is used to insert spaces between words.\n\nPress the SPACE bar again with your thumb."}, {"text": "\n", "mode": "key", "instructions": "Now I'll teach you the second key, ENTER. That's the big square key near your right little finger.\n\nNow, reach your little finger over and press ENTER."}, {"text": "\n", "mode": "key", "instructions": "Great! When typing, the ENTER key is used to begin a new line.\n\nPress the ENTER key again with your right little finger."}, {"text": "\n", "mode": "key", "instructions": "$report"}], "type": "normal", "order": 0, "medals": [{"wpm": 0, "score": 3000, "name": "bronze", "accuracy": 25}, {"wpm": 0, "score": 4500, "name": "silver", "accuracy": 50}, {"wpm": 0, "score": 6000, "name": "gold", "accuracy": 100}], "name": "Welcome"}, {"description": "This lesson teaches you the a, s, d, f, g, h, j, k and l keys \nin the middle of the keyboard.\nThese keys are called the Home Row.", "steps": [{"text": "\n", "mode": "key", "instructions": "In this lesson, you will learn the a, s, d, f, g, h, j, k and l keys.\n\nPress the ENTER key when you are ready to begin!"}, {"text": "a", "mode": "key", "instructions": "Press the a key with your left little finger."}, {"text": "s", "mode": "key", "instructions": "Press the s key with your left ring finger."}, {"text": "d", "mode": "key", "instructions": "Press the d key with your left middle finger."}, {"text": "f", "mode": "key", "instructions": "Press the f key with your left index finger."}, {"text": "g", "mode": "key", "instructions": "Press the g key with your left index finger."}, {"text": "h", "mode": "key", "instructions": "Press the h key with your right index finger."}, {"text": "j", "mode": "key", "instructions": "Press the j key with your right index finger."}, {"text": "k", "mode": "key", "instructions": "Press the k key with your right middle finger."}, {"text": "l", "mode": "key", "instructions": "Press the l key with your right ring finger."}, {"text": "ss kk jj dd kk kk ll ll jj aa hh ff ss ll hh aa ff dd ss aa gg gg ll hh dd ff ff ss aa aa gg ss jj kk gg ff kk dd aa ss ll hh gg jj ff jj aa jj jj hh gg dd ff ff ll dd gg gg ll gg", "mode": "text", "instructions": "You did it! Practice typing the keys you just learned."}, {"text": "lf ja da sk gl lf ha sk ad sk ls ld ss fa hh as ad af la ld sk sk ad fl af ls ag fl ka ga fa da ll sl dd ff aj hl lg lg ga al sa ga gl ak ll sa la gl ah af ja sl aj lf ll af dd ah", "mode": "text", "instructions": "Nice work. Now put the keys together into pairs."}, {"text": "had sad gash fa la hah shad halala gaff hag falls gal sash aha ask shad falls gaga glad hag fad had skald sad gag gash halal ah glass alfalfa shh algal slag shag glass shh flask lag gas shall dash has shh flak ah gas shh flak lag ala la sad flash falls slag la slag shall shah salsa", "mode": "text", "instructions": "Nice work. Time to type real words."}, {"text": " ", "mode": "key", "instructions": "$report"}], "type": "normal", "order": 1, "medals": [{"wpm": 15, "score": 3000, "name": "bronze", "accuracy": 70}, {"wpm": 20, "score": 4500, "name": "silver", "accuracy": 80}, {"wpm": 25, "score": 6000, "name": "gold", "accuracy": 90}], "name": "The Home Row"}, {"description": "Practice the home row keys in this exciting game!\nDon't let any balloons get by!", "length": 60, "words": ["alga", "shall", "skald", "slag", "saga", "ah", "shh", "ad", "hash", "fall", "gad", "ala", "jag", "salsa", "ha", "falls", "dash", "flag", "half", "ask", "lash", "halala", "fa", "flak", "gag", "all", "ash", "alfalfa", "sh", "dada", "sash", "shad", "hajj", "haj", "halal", "shag", "lag", "gash", "slash", "gal", "algal", "glass", "gall", "has", "hah", "sag", "sass", "gala", "hall", "sal", "as", "flash", "hag", "dad", "flask", "gaff", "had", "shah", "dahl", "add", "ssh", "la", "lass", "gas", "ska", "gaga", "salad", "fad", "glad", "alas", "sad", "aha", "lad"], "type": "balloon", "order": 2, "medals": [{"wpm": 15, "score": 3000, "name": "bronze", "accuracy": 70}, {"wpm": 20, "score": 4500, "name": "silver", "accuracy": 80}, {"wpm": 25, "score": 6000, "name": "gold", "accuracy": 90}], "name": "Home Row Balloons"}, {"description": "This lesson teaches you the q, w, e, r, t, y, u, i, o and p keys \non the top row of the keyboard.", "steps": [{"text": "\n", "mode": "key", "instructions": "In this lesson, you will learn the q, w, e, r, t, y, u, i, o and p keys.\n\nPress the ENTER key when you are ready to begin!"}, {"text": "q", "mode": "key", "instructions": "Press the q key with your left little finger."}, {"text": "w", "mode": "key", "instructions": "Press the w key with your left ring finger."}, {"text": "e", "mode": "key", "instructions": "Press the e key with your left middle finger."}, {"text": "r", "mode": "key", "instructions": "Press the r key with your left index finger."}, {"text": "t", "mode": "key", "instructions": "Press the t key with your left index finger."}, {"text": "y", "mode": "key", "instructions": "Press the y key with your right index finger."}, {"text": "u", "mode": "key", "instructions": "Press the u key with your right index finger."}, {"text": "i", "mode": "key", "instructions": "Press the i key with your right middle finger."}, {"text": "o", "mode": "key", "instructions": "Press the o key with your right ring finger."}, {"text": "p", "mode": "key", "instructions": "Press the p key with your right little finger."}, {"text": "ee oo ii ee oo oo pp oo ii qq uu rr ww pp yy qq rr ee ww qq tt tt pp yy rr rr tt ww qq ww yy ww uu oo yy tt oo rr qq ww pp uu tt ii tt ii ww ii ii uu tt ee tt tt pp ee tt tt pp tt", "mode": "text", "instructions": "You did it! Practice typing the keys you just learned."}, {"text": "uo se iq yf ku uq op yg aq yh to ua wp ju qe fw ae ej ri ua yg yk ar lr eq tp ee oe pw ke ji ik uy yo iw ok gi ph ud ud hi fu tu hu kr dp ta wd rl ke eu eo si yr gu uq uw ei ir ew", "mode": "text", "instructions": "Nice work. Now put the keys together into pairs."}, {"text": "parole stereo shears lawyer tightwad soursop effort toga hoary shyer lift otiosely wisely towel appetite purr patella quietly roguery waft paralyse outage fleet grate hopeless playgirl idolatry jiff tuff groper toe starry stet regulate starfish starless seller salted drake patty thresher wort rewrote topple polite egotist outwit pipe palish spotless wailful regalia giggler pear flaky paddler stet harpy adore drowsy", "mode": "text", "instructions": "Nice work. Time to type real words."}, {"text": " ", "mode": "key", "instructions": "$report"}], "type": "normal", "order": 3, "medals": [{"wpm": 15, "score": 3000, "name": "bronze", "accuracy": 70}, {"wpm": 20, "score": 4500, "name": "silver", "accuracy": 80}, {"wpm": 25, "score": 6000, "name": "gold", "accuracy": 90}], "name": "The Top Row"}, {"description": "Practice the top row keys in this exciting game!\nDon't let any balloons get by!", "length": 60, "words": ["hurl", "fortieth", "rush", "regatta", "flushed", "tragedy", "salaried", "goggle", "papoose", "wraith", "sprawl", "dug", "litre", "polyp", "toehold", "whish", "fit", "faddist", "reorder", "sateless", "thready", "populist", "lagger", "furrow", "flatware", "wildly", "graffiti", "reflow", "fell", "pulpit", "though", "welder", "platelet", "health", "pouter", "fatuity", "auditor", "surly", "deftly", "holiday", "rehire", "apathy", "tattered", "steeped", "prairie", "wild", "deflated", "foyer", "thru", "spy", "swart", "story", "dahlia", "flog", "odiously", "preterit", "purity", "defy", "warily", "ileal", "fridge", "pad", "laity", "dallier", "soiled", "total", "wellhead", "pesewa", "hail", "fright", "ashes", "twirly", "twittery", "quarter", "leprosy", "despair", "resale", "tawdrily", "pother", "flasher", "digress", "rigor", "rootlet", "aloft", "geyser", "soft", "flooded", "tolerate", "deplete", "haul", "wake", "reggae", "flakily", "worship", "soggily", "sweetly", "droop", "floppily", "pedestal", "irate", "foresee", "threader", "repute", "flowery", "guiltily", "parasol", "tow", "fire", "gulf", "data", "heiress", "wooled", "lilt", "japery", "thwart", "fugally", "wisp", "shipper", "par", "right", "raster", "leaded", "rug", "rufous", "pleased", "fetidly", "grouser", "thyroid", "flora", "equalise", "flier", "purdah", "arguer", "askew", "lessee", "fried", "prose", "duper", "rewire", "spoils", "futilely", "yodeller", "gyrate", "hist", "sweep", "striated", "gagger", "littoral", "dowse", "lustrate", "yurt", "hothead", "show", "arrester", "dowdy", "desire", "statute", "profit", "fail", "keelhaul", "allege", "lustily", "upstate", "reaper", "its", "eureka", "wight", "dire", "to", "grouter", "toil", "softie", "sailor", "outsold", "testes", "weakfish", "pupil", "yapper", "hug", "prod", "torero", "hightail", "hogshead", "trek", "reap", "stoker", "idealist", "sepal", "traitor", "fretted", "still", "feaster", "lour", "fig", "floppy", "dystopia", "afield", "postdate", "portly", "drily"], "type": "balloon", "order": 4, "medals": [{"wpm": 15, "score": 3000, "name": "bronze", "accuracy": 70}, {"wpm": 20, "score": 4500, "name": "silver", "accuracy": 80}, {"wpm": 25, "score": 6000, "name": "gold", "accuracy": 90}], "name": "Top Row Balloons"}, {"description": "This lesson teaches you the z, x, c, v, b, n and m keys \non the bottom row of the keyboard.", "steps": [{"text": "\n", "mode": "key", "instructions": "In this lesson, you will learn the z, x, c, v, b, n and m keys.\n\nPress the ENTER key when you are ready to begin!"}, {"text": "z", "mode": "key", "instructions": "Press the z key with your left little finger."}, {"text": "x", "mode": "key", "instructions": "Press the x key with your left ring finger."}, {"text": "c", "mode": "key", "instructions": "Press the c key with your left middle finger."}, {"text": "v", "mode": "key", "instructions": "Press the v key with your left index finger."}, {"text": "b", "mode": "key", "instructions": "Press the b key with your left index finger."}, {"text": "n", "mode": "key", "instructions": "Press the n key with your right index finger."}, {"text": "m", "mode": "key", "instructions": "Press the m key with your right index finger."}, {"text": "xx nn nn cc nn mm mm mm nn zz bb cc xx mm vv zz cc xx xx zz vv vv mm vv cc cc cc xx zz zz vv xx bb nn vv cc mm cc zz zz mm bb vv nn cc bb zz nn nn bb vv xx vv vv mm cc vv vv mm vv", "mode": "text", "instructions": "You did it! Practice typing the keys you just learned."}, {"text": "tn nn gb zi km tn lb zd an zl vy rz xo md ob em ac cq pm rz zd zl ax mj cr vy ci mq nl hb mc dn wn zp fb mw bo ne ub ub ib ec ym ix kb bf wn xc sm hm cz cr nq zw bs tn wm cm gz bc", "mode": "text", "instructions": "Nice work. Now put the keys together into pairs."}, {"text": "enroll joiner clamper bespeak midwife dactyl backhoe bland yclept moniker briny archness affirmer inshore albacore evitable mandate correct imaging swanky uncap bobwhite resound mutually vexed honoured bullhead slangy quantity lysin farming atone gardener tween reverie numerate passably buyer peony maturely bat homogeny mitosis measly unfroze unground vas cliched chalky plainly bris archival skim bicuspid coolant fleece outrun nuzzle serve carcass", "mode": "text", "instructions": "Nice work. Time to type real words."}, {"text": " ", "mode": "key", "instructions": "$report"}], "type": "normal", "order": 5, "medals": [{"wpm": 15, "score": 3000, "name": "bronze", "accuracy": 70}, {"wpm": 20, "score": 4500, "name": "silver", "accuracy": 80}, {"wpm": 25, "score": 6000, "name": "gold", "accuracy": 90}], "name": "The Bottom Row"}, {"description": "Practice the bottom row keys in this exciting game!\nDon't let any balloons get by!", "length": 60, "words": ["needy", "bluff", "funky", "whereby", "meerkat", "biplane", "buggy", "crate", "detach", "baldric", "jussive", "itch", "opulent", "briefing", "kronor", "silkworm", "collect", "nay", "latrine", "unpriced", "nelson", "lens", "gaminess", "perfect", "assuming", "bunter", "convict", "angora", "against", "chicle", "volume", "bailee", "smooch", "stent", "oblatory", "compete", "overcool", "viva", "delimit", "alone", "precinct", "tibia", "narcotic", "lumpily", "dialect", "aviator", "bruising", "finalize", "silently", "dumfound", "cassava", "consumer", "backslap", "joinery", "oogonium", "ungodly", "unisex", "finished", "anthill", "tenably", "synopsis", "centime", "convert", "wetback", "vernal", "mandarin", "syringe", "exodus", "carhop", "circuit", "aardvark", "zither", "daimon", "saintly", "seizable", "founded", "schmeer", "behalf", "advert", "snapshot", "nous", "saponify", "permeate", "pronator", "bedouin", "rocks", "rebind", "maths", "behemoth", "peroxide", "penalty", "delver", "timbre", "marka", "depictor", "gem", "fern", "flavor", "organza", "bungler", "beneath", "systemic", "bravura", "taxying", "sedum", "tomogram", "borrow", "limpness", "ampoule", "execute", "demean", "mower", "cobra", "blading", "portably", "bisexual", "chicness", "diminish", "refocus", "reserve", "befell", "morphia", "entire", "caroller", "product", "unabated", "boogie", "boatel", "undated", "winded", "injurer", "autism", "moneybag", "minutia", "cion", "padlock", "milt", "nights", "unseen", "hardball", "tricorne", "bulge", "blossom", "gauzy", "basicity", "maze", "unblest", "mob", "coho", "survey", "salon", "oceanic", "flatcar", "choleric", "druidic", "pixy", "caulking", "pushcart", "wand", "uncoil", "fling", "remover", "kine", "liana", "bigoted", "satanic", "fasten", "mandala", "monition", "cable", "maraca", "card", "tenpins", "preteen", "coma", "bedevil", "raglan", "impostor", "border", "trusting", "humane", "dankness", "melodic", "burn", "marbled", "notation", "groove", "thwack", "curacy", "monodic", "sunfish", "flagon", "mansard", "tinter", "crystal", "battler", "pocked", "convent", "evilly", "iodine"], "type": "balloon", "order": 6, "medals": [{"wpm": 15, "score": 3000, "name": "bronze", "accuracy": 70}, {"wpm": 20, "score": 4500, "name": "silver", "accuracy": 80}, {"wpm": 25, "score": 6000, "name": "gold", "accuracy": 90}], "name": "Bottom Row Balloons"}, {"description": "This lesson teaches you the CAPITAL letters which are typed \nby your left hand.\nThese are Q, W, E, R, T, A, S, D, F, G, Z, X, C, V and B.", "steps": [{"text": "\n", "mode": "key", "instructions": "In this lesson, you will learn the Q, W, E, R, T, A, S, D, F, G, Z, X, C, V and B keys.\n\nPress the ENTER key when you are ready to begin!"}, {"text": "Q", "mode": "key", "instructions": "Press and hold the SHIFT key with your right little finger, then press the Q key with your left little finger."}, {"text": "W", "mode": "key", "instructions": "Press and hold the SHIFT key with your right little finger, then press the W key with your left ring finger."}, {"text": "E", "mode": "key", "instructions": "Press and hold the SHIFT key with your right little finger, then press the E key with your left middle finger."}, {"text": "R", "mode": "key", "instructions": "Press and hold the SHIFT key with your right little finger, then press the R key with your left index finger."}, {"text": "T", "mode": "key", "instructions": "Press and hold the SHIFT key with your right little finger, then press the T key with your left index finger."}, {"text": "A", "mode": "key", "instructions": "Press and hold the SHIFT key with your right little finger, then press the A key with your left little finger."}, {"text": "S", "mode": "key", "instructions": "Press and hold the SHIFT key with your right little finger, then press the S key with your left ring finger."}, {"text": "D", "mode": "key", "instructions": "Press and hold the SHIFT key with your right little finger, then press the D key with your left middle finger."}, {"text": "F", "mode": "key", "instructions": "Press and hold the SHIFT key with your right little finger, then press the F key with your left index finger."}, {"text": "G", "mode": "key", "instructions": "Press and hold the SHIFT key with your right little finger, then press the G key with your left index finger."}, {"text": "Z", "mode": "key", "instructions": "Press and hold the SHIFT key with your right little finger, then press the Z key with your left little finger."}, {"text": "X", "mode": "key", "instructions": "Press and hold the SHIFT key with your right little finger, then press the X key with your left ring finger."}, {"text": "C", "mode": "key", "instructions": "Press and hold the SHIFT key with your right little finger, then press the C key with your left middle finger."}, {"text": "V", "mode": "key", "instructions": "Press and hold the SHIFT key with your right little finger, then press the V key with your left index finger."}, {"text": "B", "mode": "key", "instructions": "Press and hold the SHIFT key with your right little finger, then press the B key with your left index finger."}, {"text": "RR CC XX TT CC VV BB VV XX WW GG AA EE VV FF QQ AA TT EE QQ DD DD VV FF TT AA SS EE WW WW DD EE ZZ CC FF SS CC TT QQ WW VV GG DD XX SS ZZ WW XX XX GG DD RR SS SS VV TT DD DD BB DD", "mode": "text", "instructions": "You did it! Practice typing the keys you just learned."}, {"text": "TD Sa Br Ze Er TD Gd Za AR Zi TS Ro Vo Ez Gu CR AC Ak Su Ro Za Zh AW Di Am Wa Ae Dn ST En Ey Bh Ts Zs Ec Dy Ce Fo RT RT Eg Cy We Em Es Av Ts Wy Sv En Aq Am Sa Zw Ch TD To Af By Ap", "mode": "text", "instructions": "Nice work. Now put the keys together into pairs."}, {"text": "Dniester Alpine Antalya Tartary Alvin Gordimer Trollope Triad Sphinx Spencer Brady Dalmatia Zeus Qiqihar Quintin Actium Gilman Craiova Blanch Dirk Titicaca Silvia Ruskin Andy Burgundy Cetus Egyptian Deneb Zola Ennius Cos Romblon Ronny Thaddeus Rupert Beryl Cobb Fatima Colbert Rome Bagdad Calvert Cummings Freyja Choctaw Eichmann Simon Bulgar Chauncey Bourbon Roland Tuesday Rumania Sextans Ella Wycliffe Ronny Born Docetist Guianan", "mode": "text", "instructions": "Nice work. Time to type real words."}, {"text": " ", "mode": "key", "instructions": "$report"}], "type": "normal", "order": 7, "medals": [{"wpm": 15, "score": 3000, "name": "bronze", "accuracy": 70}, {"wpm": 20, "score": 4500, "name": "silver", "accuracy": 80}, {"wpm": 25, "score": 6000, "name": "gold", "accuracy": 90}], "name": "Left Hand Capitals"}, {"description": "Practice the left hand CAPITAL letters!\nDon't let any balloons get by!", "length": 60, "words": ["Colleen", "Shepard", "Quaker", "Ards", "Beecher", "Craig", "World", "Cowpens", "Barbudan", "Etruscan", "Damascus", "Stella", "Seville", "Bultmann", "Domitian", "Bonita", "Betsey", "Faust", "Tolstoi", "Christly", "Coolidge", "Vesta", "Tlingit", "Zimbabwe", "Draco", "Curtiss", "Regis", "Azores", "Foster", "Benny", "Foucault", "Dollfuss", "Stilton", "Romanov", "Belarus", "Fresno", "Qabalah", "Woodhull", "Baudouin", "Claudine", "Furies", "Stone", "Amanda", "Troy", "Vespucci", "Savaii", "Wharton", "Curie", "Attila", "Beryl", "Cairene", "Deanne", "Serene", "Wilton", "Clive", "Biafran", "Vaughan", "Carreras", "Aalborg", "Ginger", "Bechuana", "Tanzania", "Dottie", "Willie", "Swiss", "Goldman", "Romblon", "Tarot", "Tom", "Valkyrie", "Adonai", "Auden", "Sinai", "Bering", "Stacy", "Assembly", "Bulgaria", "Carter", "Tibesti", "Alfonso", "Chaucer", "Viking", "Surrey", "Teflon", "Baikal", "Bangkok", "Wilber", "Biafra", "Reynold", "Gaul", "Xhosa", "Edson", "Dresden", "Taft", "Djibouti", "Quilmes", "Tacitus", "Ealing", "Sweden", "Chimera", "Antigua", "Druid", "Quito", "Teddy", "Baky", "Campeche", "Clara", "Taiwan", "Saarland", "Barnett", "Cyprus", "Alvin", "Agatha", "Rwandan", "Taegu", "Tobago", "Grenada", "Soho", "Black", "Endymion", "Shinto", "Vonnegut", "Church", "Derby", "Attica", "Sahelian", "Truman", "Boadicea", "Behan", "Sulawesi", "Godthab", "Roentgen", "Granada", "Gullah", "Dayton", "Varanasi", "Aquarius", "Eve", "Tyrol", "Trudy", "Disciple", "Diann", "Stuart", "Winnie", "Steichen", "Afro", "EQ", "Eurobond", "Sybil", "Webster", "Crockett", "Alva", "Basilan", "Scotia", "Requiem", "Sondra", "Garrett", "Rama", "Tunisian", "Sikhism", "Roberto", "Ceuta", "Gus", "Shikoku", "Aorangi", "Bertram", "Fredric", "Val", "Giselle", "Gladys", "Bunyan", "Torres", "Dwight", "Goa", "Futurism", "Bolshoi", "Daley", "Cali", "Waspy", "Bunche", "Ernie", "Serra", "Crimean", "Grey", "Siberian", "Vickie", "Volos", "Georgina", "Booth", "Fourier", "Clement", "Graham", "Alma", "Dubcek", "Casper", "Emmet", "Balkans", "Dumas", "Ranchi", "Wheeling"], "type": "balloon", "order": 8, "medals": [{"wpm": 15, "score": 3000, "name": "bronze", "accuracy": 70}, {"wpm": 20, "score": 4500, "name": "silver", "accuracy": 80}, {"wpm": 25, "score": 6000, "name": "gold", "accuracy": 90}], "name": "Left Hand Capital Balloons"}, {"description": "This lesson teaches you the CAPITAL letters which are typed \nby your right hand.\nThese are Y, U, I, O, P, H, J, K, L, N, and M.", "steps": [{"text": "\n", "mode": "key", "instructions": "In this lesson, you will learn the Y, U, I, O, P, H, J, K, L, N and M keys.\n\nPress the ENTER key when you are ready to begin!"}, {"text": "Y", "mode": "key", "instructions": "Press and hold the SHIFT key with your left little finger, then press the Y key with your right index finger."}, {"text": "U", "mode": "key", "instructions": "Press and hold the SHIFT key with your left little finger, then press the U key with your right index finger."}, {"text": "I", "mode": "key", "instructions": "Press and hold the SHIFT key with your left little finger, then press the I key with your right middle finger."}, {"text": "O", "mode": "key", "instructions": "Press and hold the SHIFT key with your left little finger, then press the O key with your right ring finger."}, {"text": "P", "mode": "key", "instructions": "Press and hold the SHIFT key with your left little finger, then press the P key with your right little finger."}, {"text": "H", "mode": "key", "instructions": "Press and hold the SHIFT key with your left little finger, then press the H key with your right index finger."}, {"text": "J", "mode": "key", "instructions": "Press and hold the SHIFT key with your left little finger, then press the J key with your right index finger."}, {"text": "K", "mode": "key", "instructions": "Press and hold the SHIFT key with your left little finger, then press the K key with your right middle finger."}, {"text": "L", "mode": "key", "instructions": "Press and hold the SHIFT key with your left little finger, then press the L key with your right ring finger."}, {"text": "N", "mode": "key", "instructions": "Press and hold the SHIFT key with your left little finger, then press the N key with your right index finger."}, {"text": "M", "mode": "key", "instructions": "Press and hold the SHIFT key with your left little finger, then press the M key with your right index finger."}, {"text": "II NN LL OO NN NN MM NN LL YY JJ OO UU MM JJ YY PP OO II YY HH HH NN JJ OO PP PP UU YY UU HH UU KK NN JJ PP NN OO YY UU NN JJ HH LL PP KK UU LL LL JJ HH II PP PP MM OO HH HH MM HH", "mode": "text", "instructions": "You did it! Practice typing the keys you just learned."}, {"text": "Pe Og HM Yi JA Pi Lh Ye AL Yo Ub PC TO MO LT Is AI DO Oz PC Ye Yo CO MC GI UD EM MT Oe Ku Js HD Pu Yu HU LA IW OL PD PD KG Iq UI Ko Ky II Pt Up Ne Ku FM GI Oi cJ Ib Pi Pr DI HT IA", "mode": "text", "instructions": "Nice work. Now put the keys together into pairs."}, {"text": "MC Paula Pilipino Orlando Niles Manchu Johanna Juneau Harry Nagoya Uppsala Numidia Peking Jeanie Median Manet Plymouth Kosice Lydian Justine Kilauea Hurston Pilate Lister Lear Mohammed Merle Kiel Marlyn Heather Lett Lapp Planck Harold Mongolic Nauru Pavlov Jackie Klondike Patna Maranon Milne Nauru Laplace Parmesan Oder Papuan Kola Melville Oriental Lipetsk Iqaluit Kamet Herbert Magus Mongolia Planck Patna Lofoten Mizar", "mode": "text", "instructions": "Nice work. Time to type real words."}, {"text": " ", "mode": "key", "instructions": "$report"}], "type": "normal", "order": 9, "medals": [{"wpm": 15, "score": 3000, "name": "bronze", "accuracy": 70}, {"wpm": 20, "score": 4500, "name": "silver", "accuracy": 80}, {"wpm": 25, "score": 6000, "name": "gold", "accuracy": 90}], "name": "Right Hand Capitals"}, {"description": "Practice the right hand CAPITAL letters!\nDon't let any balloons get by!", "length": 60, "words": ["Heller", "Nemesis", "Hadrian", "Haiphong", "Nixon", "Lewisham", "Lorene", "Mohegan", "Latvian", "Muzak", "Hamhung", "Napoleon", "Jonathan", "Malory", "Ludhiana", "Malacca", "AWOL", "Humphrey", "Napier", "Leipzig", "Patrick", "Kitty", "Peale", "Jamie", "Malta", "Mitty", "Mexican", "Karen", "Lamb", "Host", "Pegasus", "IOU", "Punjabi", "Kibo", "Islam", "GI", "Poole", "Preston", "Madam", "Yukon", "Pueblo", "Luke", "Nilgiri", "Pepin", "Mendel", "Perkins", "PBX", "Logan", "Lyons", "Jeremy", "Mahatma", "Marietta", "Obadiah", "Perry", "Mohammed", "Nanette", "Kamet", "Procyon", "Proteus", "Judaea", "AIDS", "Ionian", "Plovdiv", "Main", "Pius", "Istrian", "Kim", "Picasso", "Hydra", "Peel", "Yorktown", "Potomac", "Pliny", "STOL", "Keller", "Patti", "Yangon", "Palomar", "Junior", "Lamaist", "Ouija", "Mervin", "Harare", "Yokosuka", "Mason", "No", "Pisan", "Manama", "Mahican", "Melinda", "Iasi", "Minorcan", "Jersey", "Langley", "Latakia", "Oakland", "Peruvian", "Masai", "Powys", "Owen", "Jonson", "Makarios", "Lela", "Milicent", "Moselle", "Mariana", "Marcia", "Mulroney", "Permian", "Perceval", "Jacuzzi", "Hiram", "Lon", "IUD", "Omagh", "Ibo", "Julia", "Mali", "Nabatea", "Menotti", "Hopkins", "Pattie", "FM", "Leonard", "GIGO", "Patmos", "Marconi", "Japanese", "Laverne", "Nikolaev", "Peshawar", "Umbrian", "Jezebel", "Nobelist", "Haydn", "Ligurian", "Ocean", "Hogarth", "Linnaeus", "Megrez", "Mabel", "Piura", "Limavady", "Newark", "McLuhan", "Kirin", "IV", "Orpheus", "ATP", "Nannette", "June", "Nazism", "Hanuka", "Lily", "Lucian", "Iacocca", "Hasidic", "Lionel", "Nashua", "Odin", "Moldova", "Midas", "Heep", "Lorenzo", "Leona", "Po", "Lublin", "Metairie", "Yoruba", "Parian", "Ithaki", "Om", "Kabbalah", "Kirby", "Oneida", "Homicide", "Huron", "Iqaluit", "Pepysian", "Phidias", "Moore", "HUD", "Pope", "Hathaway", "Kweiyang", "Hodgkin", "Maya", "Honduras", "Mercury", "Ivorian", "Nagasaki", "Jessie", "Jute", "Lane", "Hasidim", "Langland", "Union", "Kaiserin", "Leighton", "SLR"], "type": "balloon", "order": 10, "medals": [{"wpm": 15, "score": 3000, "name": "bronze", "accuracy": 70}, {"wpm": 20, "score": 4500, "name": "silver", "accuracy": 80}, {"wpm": 25, "score": 6000, "name": "gold", "accuracy": 90}], "name": "Right Hand Capital Balloons"}]} \ No newline at end of file
diff --git a/mainscreen.py b/mainscreen.py
index 0f2700b..71657ea 100644
--- a/mainscreen.py
+++ b/mainscreen.py
@@ -78,11 +78,11 @@ class MainScreen(gtk.VBox):
# Load lessons for this language.
code = locale.getdefaultlocale()[0] or 'en_US'
- self.load_lessons('lessons/' + code)
+ self.load_lessons('lessons/' + code + '.lessons')
# Fallback to en_US lessons if none found.
if not len(self.lessons):
- self.load_lessons('lessons/en_US')
+ self.load_lessons('lessons/en_US.lessons')
# We cannot run without lessons.
if not len(self.lessons):
@@ -120,15 +120,12 @@ class MainScreen(gtk.VBox):
self.activity.editorbtn.set_sensitive(False)
def load_lessons(self, path):
- # Find all .lesson files in ./lessons/en_US/ for example.
- self.lessons = []
- for f in glob.iglob(path + '/*.lesson'):
- fd = open(f, 'r')
- try:
- lesson = json.loads(fd.read())
- self.lessons.append(lesson)
- finally:
- fd.close()
+ fd = open(path, 'r')
+ try:
+ data = json.loads(fd.read())
+ self.lessons = data['lessons']
+ finally:
+ fd.close()
def get_next_lesson(self):
"""Returns the index of the first lesson without a medal."""