From 7ba5f4fbb5c5caa56f8241f3b6d75bf0a90fc29b Mon Sep 17 00:00:00 2001 From: eunalee Date: Tue, 21 Jun 2022 16:59:29 +0200 Subject: [PATCH] this is main flask pages :) --- main/database.json | 1468 ++++++++++++++++++++++++++++ main/fll2.py | 502 ++++++++++ main/templates/desktop.css | 201 ++++ main/templates/first.html | 201 ++++ main/templates/index.html | 88 ++ main/templates/jgs7.ttf | Bin 0 -> 25804 bytes main/templates/letter.html | 190 ++++ main/templates/response.html | 232 +++++ main/templates/secondgame1.html | 199 ++++ main/templates/secondgame2.html | 289 ++++++ main/templates/submit.html | 143 +++ main/templates/thanks.html | 88 ++ main/templates/transform.html | 213 ++++ record_main/frabjousish.json | 39 + record_main/game.py | 237 +++++ record_main/shusho.json | 19 + record_main/static/js/app.js | 174 ++++ record_main/static/js/recorder.js | 357 +++++++ record_main/static/js2/app.js | 170 ++++ record_main/static/js2/recorder.js | 357 +++++++ record_main/static/js3/app.js | 170 ++++ record_main/static/js3/recorder.js | 357 +++++++ record_main/t offut.json | 18 + record_main/templates/desktop.css | 201 ++++ record_main/templates/index2.html | 248 +++++ record_main/templates/index3.html | 313 ++++++ record_main/templates/index4.html | 247 +++++ record_main/templates/index5.html | 313 ++++++ record_main/templates/index6.html | 248 +++++ record_main/templates/index7.html | 290 ++++++ 30 files changed, 7572 insertions(+) create mode 100644 main/database.json create mode 100644 main/fll2.py create mode 100644 main/templates/desktop.css create mode 100644 main/templates/first.html create mode 100644 main/templates/index.html create mode 100644 main/templates/jgs7.ttf create mode 100644 main/templates/letter.html create mode 100644 main/templates/response.html create mode 100644 main/templates/secondgame1.html create mode 100644 main/templates/secondgame2.html create mode 100644 main/templates/submit.html create mode 100644 main/templates/thanks.html create mode 100644 main/templates/transform.html create mode 100644 record_main/frabjousish.json create mode 100644 record_main/game.py create mode 100644 record_main/shusho.json create mode 100644 record_main/static/js/app.js create mode 100644 record_main/static/js/recorder.js create mode 100644 record_main/static/js2/app.js create mode 100644 record_main/static/js2/recorder.js create mode 100644 record_main/static/js3/app.js create mode 100644 record_main/static/js3/recorder.js create mode 100644 record_main/t offut.json create mode 100644 record_main/templates/desktop.css create mode 100644 record_main/templates/index2.html create mode 100644 record_main/templates/index3.html create mode 100644 record_main/templates/index4.html create mode 100644 record_main/templates/index5.html create mode 100644 record_main/templates/index6.html create mode 100644 record_main/templates/index7.html diff --git a/main/database.json b/main/database.json new file mode 100644 index 0000000..bd52074 --- /dev/null +++ b/main/database.json @@ -0,0 +1,1468 @@ +{ + "legham": { + "stories": [ + { + "User": "Jo", + "A": "leg", + "B": "ham", + "story": "One day, my mom got a car accident. And she shouted \"oh my ham(jambon)\" instead of leg(jambe).", + "Time": "25/11/2021 23:02:54(Amsterdam time)", + "frab": "legham", + "example": "One legham was crooked!", + "example2": "That is your standard supermarket legham." + } + ] + }, + "oslut": { + "stories": [ + { + "User": "E", + "A": "overalls", + "B": "slut", + "story": "I wanted to compliment an overalls(salopettes in french) of my friend. And I said \"Nice slut(salope in french)\"", + "Time": "26/11/2021 09:13:04(Amsterdam time)", + "frab": "oslut", + "example": "All he has left now is his Spencon safety helmet and oslut.", + "example2": "\u201cFrom one oslut to another!\u201d" + } + ] + }, + "thoughtough": { + "stories": [ + { + "User": "mb", + "A": "though", + "B": "tough", + "story": "I keep making this mistake, this is super confusing. ", + "Time": "30/11/2021 11:17:26(Amsterdam time)", + "frab": "thoughtough", + "example": "I\u2019ve learned to deal with it thoughtough.", + "example2": "thoughtough one to take." + } + ] + }, + "falke": { + "stories": [ + { + "User": "D", + "A": "fall in love", + "B": "make love", + "story": "I wanted to say to a boyfriend of my friend \"you fell in love(tomber l'amour in french) with her!\", but I said \"you made love(faire l'amour in french) with her!\"", + "Time": "30/11/2021 14:45:32(Amsterdam time)", + "frab": "falke", + "example": "Hammond: Yes, falke.", + "example2": "To falke to." + } + ] + }, + "cira": { + "stories": [ + { + "User": "michael", + "A": "reciprocate", + "B": "recuperate", + "story": "I was thinking about wearing masks in class and the idea that when one person wears a mask, another may reciprocate, also wearibg a mask. But I said recuperate which doesn't quite make sense but sounds similar.", + "Time": "30/11/2021 15:14:13(Amsterdam time)", + "frab": "cira", + "example": "Corporate America did not cira.", + "example2": "We're all for using free time to rest and cira." + } + ] + }, + "hanplay": { + "stories": [ + { + "User": "E", + "A": "hang out", + "B": "display", + "story": "I always confuse hang out (etendre in french) the laundry et display (etaler in french).", + "Time": "30/11/2021 17:13:04(Amsterdam time)", + "frab": "hanplay", + "example": "'But let\u2019s hanplay again,' Nanjiani said.", + "example2": "They hanplay every game." + }, + { + "User": "yoon", + "A": "hang out", + "B": "play", + "story": "Before our marriage, I said, \"Play with me!\" and Anna said, \"How?\". I thought she didn't like me...\r\nBecause in Korean, play means hang out too. ", + "Time": "02/12/2021 20:07:54(Amsterdam time)", + "frab": "hanplay", + "example": "'But let\u2019s hanplay again,' Nanjiani said.", + "example2": "They hanplay every game." + } + ] + }, + "ani": { + "stories": [ + { + "User": "E", + "A": "anonymous", + "B": "unanimous", + "story": "I wanted to propose an \"anonymous vote\", but I said an \"unanimous vote\"!", + "Time": "30/11/2021 17:14:36(Amsterdam time)", + "frab": "ani", + "example": "Have you set up other ani shell companies for Trump?", + "example2": "There was near-ani praise for the food." + } + ] + }, + "seedfeed": { + "stories": [ + { + "User": "E", + "A": "seed", + "B": "feed", + "story": "I said I need more 'feed' to download this movie.", + "Time": "02/12/2021 10:53:43(Amsterdam time)", + "frab": "seedfeed", + "example": "Purity of the seedfeed is important.", + "example2": "But the dog you did seedfeed?" + } + ] + }, + "anclean": { + "stories": [ + { + "User": "Mia", + "A": "angry", + "B": "clean", + "story": "When I was not good at German, I asked \"Bist du sauber?(Are you clean)?\" instead of sauer (angry).", + "Time": "02/12/2021 19:16:39(Amsterdam time)", + "frab": "anclean", + "example": "We\u2019re anclean.", + "example2": "anclean my clock?" + } + ] + }, + "sicknet": { + "stories": [ + { + "User": "Mia", + "A": "sick", + "B": "cabinet", + "story": "My friend was Krank(sick). And I told my teacher \"Er ist Schrank (he is a cabinet)\" ", + "Time": "02/12/2021 19:21:45(Amsterdam time)", + "frab": "sicknet", + "example": "Employees get 80% of their daily wages during sicknet leave.", + "example2": "Trump\u2019s sicknet." + } + ] + }, + "reshoot": { + "stories": [ + { + "User": "S", + "A": "record", + "B": "shoot", + "story": "I sent a message on the class group chat : I will shoot the professor and show you through Zoom", + "Time": "02/12/2021 19:26:34(Amsterdam time)", + "frab": "reshoot", + "example": "You are on the reshoot.", + "example2": "I wanted to reshoot it." + } + ] + }, + "earest": { + "stories": [ + { + "User": "yoon", + "A": "easy", + "B": "rest", + "story": "I asked Anna \"How was your class?\" and she said \"Rest(swida)\". But the next day, she went to class again! she wanted to say \"Easy(swipda)\"", + "Time": "02/12/2021 20:16:23(Amsterdam time)", + "frab": "earest", + "example": "It's that earest.", + "example2": "earest In Peace Kobe." + } + ] + }, + "builject": { + "stories": [ + { + "User": "anna", + "A": "building", + "B": "object", + "story": "I tried to find a building (\uac74\ubb3c), but no one couldn't help me! Because I asked 'where's that object (\ubb3c\uac74)' instead haha", + "Time": "04/12/2021 12:29:02(Amsterdam time)", + "frab": "builject", + "example": "I could send you pictures of the builject.", + "example2": "builject-based audio is an emerging paradigm for representing audio content." + } + ] + }, + "totoo": { + "stories": [ + { + "User": "nami", + "A": "to", + "B": "too", + "story": "Many of my Dutch friends use \"too\" when they should use \"to\"", + "Time": "04/12/2021 12:36:06(Amsterdam time)", + "frab": "totoo", + "example": "We have totoo talk totoo each other.", + "example2": "We travel totoo much." + } + ] + }, + "elknee": { + "stories": [ + { + "User": "Julie", + "A": "elbow", + "B": "knee", + "story": "When I saw little, I always confused Elbow and Knee. But anyway, both are the articulation, aren't they?", + "Time": "07/12/2021 11:49:40(Amsterdam time)", + "frab": "elknee", + "example": "\u201cYou cannot achieve precision with your elknee in the air,\u201d he said.", + "example2": "But you had your elknee on our neck." + } + ] + }, + "cornfriend": { + "stories": [ + { + "User": "Yeo", + "A": "corn", + "B": "killing a friend", + "story": "When I was in Japan, a friend ask my favorite vegetable. I replied 'Tomokoroshi(killing a friend)' instead of 'Tomorokoshi(corn)'", + "Time": "07/12/2021 11:57:59(Amsterdam time)", + "frab": "cornfriend", + "example": "Put the cornfriend in a large bowl; repeat until all the cornfriend is cooked.", + "example2": "" + } + ] + }, + "thankssy": { + "stories": [ + { + "User": "Yeo", + "A": "thanks", + "B": "noisy", + "story": "A Japanese friend gave me a gift and I said 'Urusai(Noisy)'. But I wanted to say 'Ureshii(Thanks)'. ", + "Time": "07/12/2021 12:04:14(Amsterdam time)", + "frab": "thankssy", + "example": "He thankssy God.", + "example2": "It\u2019s about as thankssy as a small tabletop fan." + } + ] + }, + "rosroast": { + "stories": [ + { + "User": "Ann", + "A": "roster", + "B": "roast", + "story": "To my colleague, I wrote an email. He said \"shit, am I?\" because I sent \"You are roasted...\"", + "Time": "08/12/2021 15:35:12(Amsterdam time)", + "frab": "rosroast", + "example": "Another NXT favourite, No Way Jose, also made his main rosroast debut.", + "example2": "A triangle rosroast?" + } + ] + }, + "shrimpfeed": { + "stories": [ + { + "User": "J", + "A": "shrimp", + "B": "feed", + "story": "I often say \"I love feed(Esa in Japanese)\". But what I love is shrimp!(Ebi)", + "Time": "08/12/2021 15:41:24(Amsterdam time)", + "frab": "shrimpfeed", + "example": "Buy shrimpfeed in the shell.", + "example2": "But the dog you did shrimpfeed?" + } + ] + }, + "walkwork": { + "stories": [ + { + "User": "Martin", + "A": "walk", + "B": "work", + "story": "I just can't pronounce any of these two words with distinction. Daily problem", + "Time": "08/12/2021 17:36:11(Amsterdam time)", + "frab": "walkwork", + "example": "I met a woman who couldn\u2019t walkwork.", + "example2": "Second place is walkwork." + } + ] + }, + "salcold": { + "stories": [ + { + "User": "BK", + "A": "salty", + "B": "cold", + "story": "My german friend can't distinguish salty (Tchada) and cold (chada) in Korean.", + "Time": "10/12/2021 12:19:25(Amsterdam time)", + "frab": "salcold", + "example": "Hickory sap is very briny and salcold.", + "example2": "The salcold air." + } + ] + }, + "grassgross": { + "stories": [ + { + "User": "Sasha L", + "A": "grass", + "B": "gross", + "story": "When I want to pronounce 'grass', I always say 'gross'!", + "Time": "10/12/2021 12:21:02(Amsterdam time)", + "frab": "grassgross", + "example": "A maxi pad lay in the grassgross.", + "example2": "grassgross income for the daughter in 2007 was $18,150." + } + ] + }, + "t offut": { + "stories": [ + { + "User": "Chung", + "A": "get off", + "B": "get out", + "story": "Once on a bus, I said to my friend \"You should get out here\" and he said \"off\"", + "Time": "10/12/2021 12:33:39(Amsterdam time)", + "frab": "t offut", + "example": "t offut, Queequeg!", + "example2": "t offut of here!" + } + ] + }, + "lealick": { + "stories": [ + { + "User": "Somin", + "A": "leave", + "B": "lick", + "story": "I was angry and shouted \"Lick me (l\u00e8che moi!)\" instead of \"leave me(laisse moi)\" lol", + "Time": "10/12/2021 12:51:53(Amsterdam time)", + "frab": "lealick", + "example": "lealick to cool completely.", + "example2": "Maybe the lealick felt oversexualised." + } + ] + }, + "corboob": { + "stories": [ + { + "User": "Somin", + "A": "cornichon", + "B": "big boob", + "story": "Well, when I heard the song \"Les Cornichon\", I thought \"Les gros nichons (big boobs)\". Sorry, I sang loudly.", + "Time": "10/12/2021 12:57:07(Amsterdam time)", + "frab": "corboob", + "example": "Lay the ham and corboob on top, if using.", + "example2": "CARLY - On my 30th\u2026 Well, not actually on my 30th birthday, but for my 30th birthday I decided to have a boob job, so I went from having no boobs to corboobs, and nobody gives you eye contact." + } + ] + }, + "jolty": { + "stories": [ + { + "User": "MK", + "A": "jolly", + "B": "pretty", + "story": "I thought Jolie in French means Jolly in English. So I said, \"I'm jolie(pretty) today)\".", + "Time": "10/12/2021 13:01:09(Amsterdam time)", + "frab": "jolty", + "example": "jolty Bolly Rolly Folly will truly be missed.", + "example2": "jolty funny." + } + ] + }, + "sesed": { + "stories": [ + { + "User": "Nami", + "A": "close", + "B": "closed", + "story": "A few years ago, I was talking about my best friend to my internship director. I was momentarily confused with grammar so that ended up saying like \"She and I are very closed\". I saw a big quetion mark on his face. He asked me \"You and she are CLOSE, right? Not CLOSED\". I didn't know that missing a small element, which was D in the end, would cause such big confusion.", + "Time": "10/12/2021 18:19:49(Amsterdam time)", + "frab": "sesed", + "example": "It\u2019s sesed.", + "example2": "North of the sesed-canopy\u2026" + } + ] + }, + "n aptea": { + "stories": [ + { + "User": "Kendal", + "A": "bon appetit", + "B": "bone apple tea", + "story": "I found this online and it's my favourite thing!", + "Time": "13/12/2021 11:02:10(Amsterdam time)", + "frab": "n aptea", + "example": "n aptea.", + "example2": "" + } + ] + }, + "heshe": { + "stories": [ + { + "User": "Nami", + "A": "he", + "B": "she", + "story": "It doesn't really have context and it doesn't have to do with my sense of gender, etc. I just find it easy to pronounce 'she' than 'he'.", + "Time": "13/12/2021 11:03:36(Amsterdam time)", + "frab": "heshe", + "example": "heshe talks.", + "example2": "heshe realizes heshe is a bitch." + } + ] + }, + "rumram": { + "stories": [ + { + "User": "Euna", + "A": "rumble", + "B": "ramble", + "story": "I always hesitate if I am rambling or rumbling.", + "Time": "13/12/2021 15:39:10(Amsterdam time)", + "frab": "rumram", + "example": "Before the 'rumram in the Jungle'", + "example2": "All of this came out in a chaotic rumram as Mr." + } + ] + }, + "tenti": { + "stories": [ + { + "User": "Eddy", + "A": "tentacle", + "B": "testicle", + "story": "I read a poem out in a lesson where the line was \"taste the tasty tentacles.\" and I said, \"taste the tasty testicles.\"", + "Time": "11/01/2022 11:47:31(Amsterdam time)", + "frab": "tenti", + "example": "For a time the tenti was silent.", + "example2": "There is a swelling on his left tenti." + } + ] + }, + "arau": { + "stories": [ + { + "User": "taco", + "A": "artistic", + "B": "autistic", + "story": "My one coworker looked up at the sky while the sun was about to set, turns to me and says, I'm a bit autistic instead of artistic.", + "Time": "11/01/2022 11:50:04(Amsterdam time)", + "frab": "arau", + "example": "Additional arau outlets\u2026", + "example2": "EMMA - And is it really common for arau people\u2026?" + } + ] + }, + "vegin": { + "stories": [ + { + "User": "Mui", + "A": "vegan", + "B": "virgin", + "story": "My Taiwanese friend S asked an Indian guy, You are a virgin, right? And I said, You mean a vegan, right?", + "Time": "11/01/2022 11:53:07(Amsterdam time)", + "frab": "vegin", + "example": "Serena and Venus Williams say they try to eat vegin most of the time.", + "example2": "vegin crowns." + } + ] + }, + "doormoon": { + "stories": [ + { + "User": "Hatsal", + "A": "door", + "B": "moon", + "story": "Sometimes, I make a horrible linguistic mixture. Like, 'Can you open the moon?'. Moon means a door in Korean.", + "Time": "11/01/2022 11:56:26(Amsterdam time)", + "frab": "doormoon", + "example": "Open the doormoon!", + "example2": "doormoon Baby lives on the doormoon." + } + ] + }, + "ised": { + "stories": [ + { + "User": "You", + "A": "in detail", + "B": "confused", + "story": "To my Japanese colleague, I asked for a confused explanation instead of an explanation in detail.", + "Time": "11/01/2022 11:59:39(Amsterdam time)", + "frab": "ised", + "example": "We now discuss each ised.", + "example2": "ised?" + } + ] + }, + "naga": { + "stories": [ + { + "User": "Gguilug", + "A": "native", + "B": "negative", + "story": "My Japanese tour guide spoke in Korean really well. So I said, \"You speak Korean like a negative.\"", + "Time": "11/01/2022 12:01:57(Amsterdam time)", + "frab": "naga", + "example": "Under pressure from naga groups, the U.S.", + "example2": "Without naga emotions we exist in \u201cPleasantville\u201d." + } + ] + }, + "cured": { + "stories": [ + { + "User": "Nari", + "A": "cute", + "B": "scared", + "story": "My friend said, whenever I pronounce \"Cute(Kawai in japanese)\" it sounds like \"scared(Kowai)\"", + "Time": "11/01/2022 12:04:12(Amsterdam time)", + "frab": "cured", + "example": "Wasn\u2019t she cured?", + "example2": "I was cured." + } + ] + }, + "seemeet": { + "stories": [ + { + "User": "Max and Lee", + "A": "see", + "B": "meet", + "story": "We've worked together for seven months. So shouldn't say \"Nice to meet you\" when we meet each other! But Koreans always do!!!", + "Time": "11/01/2022 12:11:22(Amsterdam time)", + "frab": "seemeet", + "example": "seemeet also Byrne 2005.", + "example2": "So many of them came over to seemeet me." + } + ] + }, + "whathow": { + "stories": [ + { + "User": "Lee", + "A": "what", + "B": "how", + "story": "Max speaks like a Korean. \"How do you think\"?!", + "Time": "11/01/2022 12:13:20(Amsterdam time)", + "frab": "whathow", + "example": "whathow?", + "example2": "whathow old?" + } + ] + }, + "ny": { + "stories": [ + { + "User": "Lee", + "A": "fun", + "B": "funny", + "story": "My student said, \"I had a really funny time.\". You can say, a funny comedian, but not with a time.", + "Time": "11/01/2022 12:16:59(Amsterdam time)", + "frab": "ny", + "example": "Have ny!", + "example2": "Very ny." + } + ] + }, + "shocfied": { + "stories": [ + { + "User": "Max", + "A": "shocked", + "B": "terrified", + "story": "When the price is too expensive, we cannot get shocked, not terrified.", + "Time": "11/01/2022 12:19:46(Amsterdam time)", + "frab": "shocfied", + "example": "I am not totally shocfied.", + "example2": "I was shocfied." + } + ] + }, + "broadjob": { + "stories": [ + { + "User": "Sean", + "A": "broadcast jockey", + "B": "blowjob", + "story": "Korean use the word BJ for Broadcast Jockey. But in English, it means another thing :p", + "Time": "11/01/2022 12:23:46(Amsterdam time)", + "frab": "broadjob", + "example": "", + "example2": "And her broadjob jokes?" + } + ] + }, + "lapbook": { + "stories": [ + { + "User": "Sean", + "A": "laptop", + "B": "notebook", + "story": "My korean student said \"I want a notebook for my Christmas gift\" so I gave her my notebook. But in Korean, the word notebook is used as a laptop!", + "Time": "11/01/2022 12:26:32(Amsterdam time)", + "frab": "lapbook", + "example": "You can\u2019t beat a lapbook.", + "example2": "The Steno is really an eccentric medium-size lapbook." + } + ] + }, + "poolball": { + "stories": [ + { + "User": "Sean", + "A": "pool", + "B": "pocket ball", + "story": "Korean says \"Let's play pocket ball!\". At first, I thought of something to do with food.", + "Time": "11/01/2022 12:30:10(Amsterdam time)", + "frab": "poolball", + "example": "Pick Five poolball $545,006.", + "example2": "" + } + ] + }, + "banband": { + "stories": [ + { + "User": "Sean", + "A": "band aid", + "B": "band", + "story": "My Korean student asked me for a band once. I didn't know what to give!", + "Time": "11/01/2022 12:33:02(Amsterdam time)", + "frab": "banband", + "example": "", + "example2": "The banband was called Girl\u2019s Tyme." + } + ] + }, + "screw": { + "stories": [ + { + "User": "Sean", + "A": "screwdriver", + "B": "driver", + "story": "Again, my Korean friend asked me for a driver once. I said, well, sorry I don't drive.", + "Time": "11/01/2022 12:34:26(Amsterdam time)", + "frab": "screw", + "example": "He\u2019s the one you\u2019d ask to go and fetch a left-handed screw.", + "example2": "'Well,' said the screw." + } + ] + }, + "dressce": { + "stories": [ + { + "User": "Josh", + "A": "dress", + "B": "one piece", + "story": "If you, Korean people, ask for a one piece in English, your clothing store clerk cannot help you!", + "Time": "11/01/2022 12:38:43(Amsterdam time)", + "frab": "dressce", + "example": "Don\u2019t lala too dressce.", + "example2": "Cut the loin off the bone in dressce." + } + ] + }, + "concar": { + "stories": [ + { + "User": "Josh", + "A": "convertible", + "B": "open car", + "story": "When I just arrived in Korea, for an open car, I imagined a motorcycle or something else.", + "Time": "11/01/2022 12:47:14(Amsterdam time)", + "frab": "concar", + "example": "You can still wear bonnets while riding in a concar!", + "example2": "Last week, it was not uncommon to see people trading information about the whereabouts of 399 through concar windows." + } + ] + }, + "pdf hi": { + "stories": [ + { + "User": "Iristchu", + "A": "pdf file", + "B": "paedophile", + "story": "Literally, my tongue slipped!", + "Time": "11/01/2022 12:54:12(Amsterdam time)", + "frab": "pdf hi", + "example": "The quick and easy answer would have been to do something that looked like a pdf hi of the newspaper.", + "example2": "Right now we have neither priests nor gay pdf hi priests." + } + ] + }, + "tootstits": { + "stories": [ + { + "User": "Scrumpilump2000", + "A": "toots", + "B": "tits", + "story": "Once I meant to jokingly refer to my mom as \"toots\" but I said \"tits\" instead.", + "Time": "11/01/2022 12:57:18(Amsterdam time)", + "frab": "tootstits", + "example": "Put another way, lines such as \u201dHey, tootstits!", + "example2": "It\u2019s not your tootstits." + } + ] + }, + "heelgeel": { + "stories": [ + { + "User": "natasha", + "A": "heel", + "B": "geel", + "story": "I am an English speaker trying to learn Dutch!", + "Time": "11/01/2022 14:35:59(Amsterdam time)", + "frab": "heelgeel", + "example": "Kaye picked the high heelgeel.", + "example2": "" + } + ] + }, + "squatsquirt": { + "stories": [ + { + "User": "Y", + "A": "squat", + "B": "squirt", + "story": "My Canadian friend worried about her weight. I said, \"Do squirt! Increase the number of times everyday.\" I cannot forget her shocked face.", + "Time": "30/01/2022 18:30:00(Amsterdam time)", + "frab": "squatsquirt", + "example": "Highbar squatsquirt: 495 x 5!", + "example2": "Anecdotally, scores of women who squatsquirt agree." + } + ] + }, + "stinksmell": { + "stories": [ + { + "User": "Jo", + "A": "stink", + "B": "smell", + "story": "I'm not familiar to use \"Stink\", but you may understand by context, right?", + "Time": "30/01/2022 18:32:11(Amsterdam time)", + "frab": "stinksmell", + "example": "It was a stinksmell.", + "example2": "I can stinksmell again." + } + ] + }, + "rition": { + "stories": [ + { + "User": "Camilo", + "A": "comparison", + "B": "comparation", + "story": "I just can't say it", + "Time": "09/02/2022 17:39:56(Amsterdam time)", + "frab": "rition", + "example": "By rition, Google\u2019s infraction seems minor.", + "example2": "" + } + ] + }, + "partfart": { + "stories": [ + { + "User": "Yeo", + "A": "part", + "B": "fart", + "story": "Sometimes, I have a problem pronouncing P and F. Once, during a meeting, I said, \"In this fart\".", + "Time": "01/03/2022 16:14:39(Amsterdam time)", + "frab": "partfart", + "example": "It is true that UPS makes growing use of partfart-timers.", + "example2": "How he loves partfart jokes!" + } + ] + }, + "sheetshit": { + "stories": [ + { + "User": "Yeo", + "A": "sheet", + "B": "shit", + "story": "I didn't want to say, \"Here's my shit, boss.\"", + "Time": "01/03/2022 16:16:29(Amsterdam time)", + "frab": "sheetshit", + "example": "Butter a large sheetshit of wax paper.", + "example2": "sheetshit!" + } + ] + }, + "exvert": { + "stories": [ + { + "User": "Yukaa", + "A": "extremely", + "B": "pervert", + "story": "I was talking with my foreign colleague about a client. Hew was extremely(Taihen in Japanese) angry, but my colleague changed him to an angry pervert(Hentai). ", + "Time": "01/03/2022 16:32:05(Amsterdam time)", + "frab": "exvert", + "example": "Just simple, exvert kind.", + "example2": "\u201cThey still use the word \u2018exvert\u2019.\u201d" + } + ] + }, + "teacar": { + "stories": [ + { + "User": "Ji", + "A": "tea", + "B": "car", + "story": "At Starbucks, I accidentally ordered a car. In Korean, car and tea are homonyms, which are pronounced as Cha.", + "Time": "01/03/2022 16:35:42(Amsterdam time)", + "frab": "teacar", + "example": "Iced teacar on the Veranda.", + "example2": "teacar-li!" + } + ] + }, + "tongthong": { + "stories": [ + { + "User": "ik", + "A": "tong", + "B": "thong", + "story": "I've worked in an Korean barbecue restaurant as a part time. I said to clients, \"Do you need a thong?\" and they made weird faces.", + "Time": "26/04/2022 14:42:26(Amsterdam time)", + "frab": "tongthong", + "example": "tongthong to help.", + "example2": "\u2018It\u2019s a dying craft,\u2019 admits Mr tongthong." + } + ] + }, + "loanlawn": { + "stories": [ + { + "User": "kyum", + "A": "loan", + "B": "lawn", + "story": "I'm working in a bank and my colleague told me that sometimes, I mispronounce\"loan\" to \"lawn\". It would be a little bit better, if I was a client, not a bank clerk.", + "Time": "26/04/2022 14:46:41(Amsterdam time)", + "frab": "loanlawn", + "example": "College student loanlawn debt is only half the outstanding balance.", + "example2": "I looked at the loanlawn again." + } + ] + }, + "s oway": { + "stories": [ + { + "User": "choo", + "A": "pass out", + "B": "pass away", + "story": "I sent my friend who fainted to heaven.", + "Time": "26/04/2022 14:50:20(Amsterdam time)", + "frab": "s oway", + "example": "., and then began to s oway.", + "example2": "The grandkids will not receive the death benefit until both grandparents s oway." + } + ] + }, + "criscree": { + "stories": [ + { + "User": "choo", + "A": "crispy", + "B": "creepy", + "story": "My friend made me a fried chicken and I said \"Sooooo creepy <3\"", + "Time": "26/04/2022 14:52:20(Amsterdam time)", + "frab": "criscree", + "example": "To make the criscree egg, preheat a deep fat fryer to 180C.", + "example2": "It is criscree!" + } + ] + }, + "insfec": { + "stories": [ + { + "User": "eye", + "A": "inspection", + "B": "infection", + "story": "I called to my health insurance company and said \"I need to have an eye infection.\"", + "Time": "26/04/2022 14:54:17(Amsterdam time)", + "frab": "insfec", + "example": "Make sure to schedule an insfec before closing on a home.", + "example2": "\u2026is frequently a result of insfec." + } + ] + }, + "wetweat": { + "stories": [ + { + "User": "Jonn", + "A": "wether", + "B": "weather", + "story": "just so confusing", + "Time": "26/04/2022 14:56:33(Amsterdam time)", + "frab": "wetweat", + "example": "The wetweat was perfect for the activity!", + "example2": "wetweat." + } + ] + }, + "cipec": { + "stories": [ + { + "User": "Gid", + "A": "exciting", + "B": "expecting", + "story": "In Korean, both are same word. So I shouted \"Ye! I am expecting!\"", + "Time": "26/04/2022 14:58:01(Amsterdam time)", + "frab": "cipec", + "example": "It's pretty cipec.", + "example2": "No one was cipec a blowout.." + } + ] + }, + "brasing": { + "stories": [ + { + "User": "euna", + "A": "embracing", + "B": "embarrassing", + "story": "I am always confused if there are 'c', 's' or double 's'. And if it's 'bra', 'bara' or 'barra'. ", + "Time": "28/04/2022 15:44:51(Amsterdam time)", + "frab": "brasing", + "example": "So they\u2019re not actually about brasing the present at all.", + "example2": "I\u2019m brasing." + } + ] + }, + "vestte": { + "stories": [ + { + "User": "Jin", + "A": "invest", + "B": "investigate", + "story": "I asked my boyfriend how much does he investigate effort in our relationship.", + "Time": "28/04/2022 16:34:26(Amsterdam time)", + "frab": "vestte", + "example": "The watchword is \u201cvestte\u201d", + "example2": "He doesn't vestte." + } + ] + }, + "healtpe": { + "stories": [ + { + "User": "um", + "A": "healthy", + "B": "rape", + "story": "My boyfriend is trying to speak in Korean with my mom. One day, we called together and he said to her, \"keep raping!\" (Gang-gan) instead of healthy (Gun-gang).", + "Time": "28/04/2022 16:42:20(Amsterdam time)", + "frab": "healtpe", + "example": "Perhaps it\u2019s high time to turn to healtpe bowls.", + "example2": "Except that it isn\u2019t how healtpe victims feel." + } + ] + }, + "smassmash": { + "stories": [ + { + "User": "Haeso", + "A": "smash it", + "B": "smash", + "story": "To encourage my friend, I shouted \"Let's smash!\" and he said, \"No, I won't.\"", + "Time": "28/04/2022 16:47:33(Amsterdam time)", + "frab": "smassmash", + "example": "I\u2019m going to smassmash in north London", + "example2": "Super smassmash Bros." + } + ] + }, + "auntant": { + "stories": [ + { + "User": "\ud83d\udc1c", + "A": "aunt", + "B": "ant", + "story": "An aunt of my friend was sick. But, I sent her a message \"how's your ant?\" by mistake, and she said \"what ant?\"", + "Time": "29/04/2022 18:58:31(Amsterdam time)", + "frab": "auntant", + "example": "My auntant got Covid.", + "example2": "Not so with Terro T600 auntant Dust." + } + ] + }, + "swelwing": { + "stories": [ + { + "User": "Nurse", + "A": "swelling", + "B": "swallowing", + "story": "I wanted to say to a patient, \"swelling in vagina\". But I said, \"swallowing vagina\"", + "Time": "29/04/2022 19:01:06(Amsterdam time)", + "frab": "swelwing", + "example": "swelwing and pain subside between meals.", + "example2": "swelwing is influenced by bodily position." + } + ] + }, + "yolkse": { + "stories": [ + { + "User": "Ji", + "A": "yolk", + "B": "nose", + "story": "For my brunch, I ordered a runny nose, not a runny yolk. ", + "Time": "29/04/2022 19:04:05(Amsterdam time)", + "frab": "yolkse", + "example": "Drop the yolkse into another small bowl.", + "example2": "'To put on a Red yolkse.'" + } + ] + }, + "bann": { + "stories": [ + { + "User": "Sarang", + "A": "bank card", + "B": "transportation card", + "story": "Once in a hotel, a receptionist required me a Transportation card(Bahnkarte). So I gave it to her. But she said, \"Not this one! Bank Card!(Bankkarte)\"", + "Time": "30/04/2022 19:17:08(Amsterdam time)", + "frab": "bann", + "example": "The most familiar example is a bann and a pin.", + "example2": "If you have a top-tier Chase card like the Chase Sapphire Reserve, the United Club Card or The Ritz-Carlton Card (no longer available to new applicants), you\u2019re covered for up to $100,000 in emergency evacuation and transportation expenses as long as you use the bann (or a linked rewards account) to pay for some part of your trip." + } + ] + }, + "crise": { + "stories": [ + { + "User": "Sarang", + "A": "criminal record certificate", + "B": "driver's license", + "story": "This time in a Visa office, the receptionist told me \"Criminal record certificate (f\u00fchrungszeugnis) please.\" And I said, \"I don't have a driver's license(f\u00fchrerschein)\". He sighed. ", + "Time": "30/04/2022 19:22:09(Amsterdam time)", + "frab": "crise", + "example": "'I had made some friends who were willing to vouch for me and help me apply, although reaching the finish line still took two years of email exchanges, a personal statement, a medical exam, and a police crise.", + "example2": "A truck crise is required to drive the motorhomes." + } + ] + }, + "basu": { + "stories": [ + { + "User": "Euna", + "A": "bastard", + "B": "thank you", + "story": "I still don't know if my brother lied to me or if he just didn't know either.\r\n\r\nWhen I had 12 years old, he told me \u3131\u3145 means \"bastard(\uac1c\uc0c8)\". One day, a mean guy followed me in an online game and stole my drop items. I was so angry and said \"\u3131\u3145 \u3131\u3145\". And he said \"idiot\".\r\nThen, the next day, my classmate told me it actually means, \"Thank you(\uac10\uc0ac)\"", + "Time": "30/04/2022 19:31:25(Amsterdam time)", + "frab": "basu", + "example": "Toothless hippie basu.", + "example2": "basu." + } + ] + }, + "kitcken": { + "stories": [ + { + "User": "Euna's mom", + "A": "kitchen", + "B": "chicken", + "story": "My mom always asks me \"where's the chicken towel?\".", + "Time": "17/05/2022 15:32:57(Amsterdam time)", + "frab": "kitcken", + "example": "My kitcken isn\u2019t original.", + "example2": "Once cool, shred the kitcken." + } + ] + }, + "cuntkant": { + "stories": [ + { + "User": "Femke", + "A": "cunt", + "B": "kant", + "story": "In a lecture by a spanishspeaking philodopher, I was surprised to hear him refer to \"cunt\" all the time but he was actually saying \"Kant\" (Emanuel)", + "Time": "17/05/2022 16:00:19(Amsterdam time)", + "frab": "cuntkant", + "example": "\u201cBeing a cuntkant.\u201d", + "example2": "(\u201cBack to cuntkant!\u201d)" + } + ] + }, + "shushoo": { + "stories": [ + { + "User": "Euna", + "A": "shut down", + "B": "shoot down", + "story": "I supposed to write \"sudo shutdown -h now\". But I wrote, \"shot down, shoot down, shout down.\"", + "Time": "31/05/2022 17:16:15(Amsterdam time)", + "frab": "shushoo", + "example": "\"'So let's shushoo the entire world.", + "example2": "In fact, neither country is likely to shushoo drug flights." + } + ] + }, + "shusho": { + "stories": [ + { + "User": "Euna", + "A": "shut down", + "B": "shot down", + "story": "I supposed to write \"sudo shutdown -h now\". But I wrote, \"shot down, shoot down, shout down.\"", + "Time": "31/05/2022 17:16:33(Amsterdam time)", + "frab": "shusho", + "example": "\"'So let's shusho the entire world.", + "example2": "Miller, were shusho." + } + ] + }, + "shushou": { + "stories": [ + { + "User": "Euna", + "A": "shut down", + "B": "shout down", + "story": "I supposed to write \"sudo shutdown -h now\". But I wrote, \"shot down, shoot down, shout down.\"", + "Time": "31/05/2022 17:16:50(Amsterdam time)", + "frab": "shushou", + "example": "\"'So let's shushou the entire world.", + "example2": "University students shushou speakers they deem too offensive." + } + ] + }, + "ticpic": { + "stories": [ + { + "User": "Sarah", + "A": "tickle", + "B": "pickle", + "story": "Carlo said, \"Stop pickling me!\"", + "Time": "31/05/2022 17:24:22(Amsterdam time)", + "frab": "ticpic", + "example": "\"It might even ticpic imaginations a bit,\" says Mr Teakle.", + "example2": "The ticpic and the butter can both be made a day ahead, if you prefer." + } + ] + }, + "skysky": { + "stories": [ + { + "User": "Sarah", + "A": "skyscraper", + "B": "scratchy sky", + "story": "Carlo said, \"Wow, Look at that scratchy sky!\"", + "Time": "31/05/2022 17:27:16(Amsterdam time)", + "frab": "skysky", + "example": "Whiplash of light coming off a skysky.", + "example2": "" + } + ] + }, + "toottooth": { + "stories": [ + { + "User": "Sarah", + "A": "toot", + "B": "tooth", + "story": "we were talking about the fart and Carlo confused toot with the tooth.", + "Time": "31/05/2022 17:31:15(Amsterdam time)", + "frab": "toottooth", + "example": "I don't want to toottooth our own horn too much.", + "example2": "If you cannot find the toottooth, still seek emergency care." + } + ] + }, + "blili": { + "stories": [ + { + "User": "Sarah", + "A": "blizard", + "B": "lizard", + "story": "Carlo said, \"When it snows a lot, it's a lizard!\"", + "Time": "31/05/2022 17:42:49(Amsterdam time)", + "frab": "blili", + "example": "", + "example2": "Dark shapes overhead make the blili nervous." + } + ] + }, + "swirlrel": { + "stories": [ + { + "User": "Sarah", + "A": "swirl", + "B": "squirrel", + "story": "When Carlo ordered my coffee, he said \"A medium ice coffee with Hazelnut squirrel\"", + "Time": "31/05/2022 17:46:11(Amsterdam time)", + "frab": "swirlrel", + "example": "swirlrel in the pesto and garnish with scallions.", + "example2": "But there is no real Super Secret swirlrel stuff." + } + ] + }, + "sheher": { + "stories": [ + { + "User": "bush", + "A": "she", + "B": "her", + "story": "You teach a child to read and he or her will be able to pass a literacy test", + "Time": "03/06/2022 18:05:17(Amsterdam time)", + "frab": "sheher", + "example": "She realizes sheher is a bitch.", + "example2": "Her motsheher made sheher kneel beside sheher." + } + ] + }, + "oca": { + "stories": [ + { + "User": "Biden", + "A": "obama", + "B": "america", + "story": "Joe Biden: The Next President Is \"Barack AMERICA!\"", + "Time": "03/06/2022 18:12:23(Amsterdam time)", + "frab": "oca", + "example": "oca beamed.", + "example2": "We are oca!" + } + ] + }, + "arcrash": { + "stories": [ + { + "User": "Jena", + "A": "arrive", + "B": "crash", + "story": "My family has been living since my little sister was young. So, her Korean is not good. One day, she asked me, when does mom's flight crash?", + "Time": "03/06/2022 18:24:56(Amsterdam time)", + "frab": "arcrash", + "example": "This will need to arcrash at the office by 5pm on 8 June 2016.", + "example2": "But they were still unsure why the arcrash had happened." + } + ] + }, + "ihard": { + "stories": [ + { + "User": "Chris", + "A": "in trouble", + "B": "hard", + "story": "I was lost and someone came to help me. He asked me, \"Are you hard?\"", + "Time": "03/06/2022 18:39:08(Amsterdam time)", + "frab": "ihard", + "example": "Never been ihard.", + "example2": "Lucy Bronze: You\u2019ve got to work ihard." + } + ] + }, + "broadboard": { + "stories": [ + { + "User": "Euna", + "A": "abroad", + "B": "aboard", + "story": "Always I hesitate if I traveled \"abroad\" or \"aboard\".", + "Time": "03/06/2022 18:40:36(Amsterdam time)", + "frab": "broadboard", + "example": "So there could be tens of thousands of members broadboard.", + "example2": "Many of those broadboard held dual citizenship with Iran." + } + ] + }, + "aoff": { + "stories": [ + { + "User": "Jayu", + "A": "take away", + "B": "take off", + "story": "When I was on a working holiday in Australia, I ordered a Kebab for taking off.", + "Time": "03/06/2022 18:56:48(Amsterdam time)", + "frab": "aoff", + "example": "\u201caoff food.", + "example2": "I started to aoff my shoes." + } + ] + }, + "checo": { + "stories": [ + { + "User": "ikle", + "A": "check out", + "B": "take out", + "story": "I'm doing my internship in a Hotel in Japan. A few days ago, my boss came to check if I'm doing well and that made me nervous. As a result, I explained to guests that their take out time is 11am. ", + "Time": "03/06/2022 19:02:38(Amsterdam time)", + "frab": "checo", + "example": "checo these local haunted houses and ghost tours.", + "example2": "We checo key infrastructure." + } + ] + }, + "sitshit": { + "stories": [ + { + "User": "Savannah Ciao", + "A": "sit", + "B": "shit", + "story": "When I worked in a restaurant in Australia, a client wanted to sit outside. But by mistake, I said, \"shit outside?\"", + "Time": "03/06/2022 19:08:16(Amsterdam time)", + "frab": "sitshit", + "example": "Just like the sitshit-down.", + "example2": "sitshit!" + } + ] + }, + "mormour": { + "stories": [ + { + "User": "Euna", + "A": "humor", + "B": "humour", + "story": "Grammarly told me, I would better use \"Humor', because \"humour\" doesn't suit me.", + "Time": "09/06/2022 17:49:02(Amsterdam time)", + "frab": "mormour", + "example": "It shows his mormour.\u201d", + "example2": "mormour can be good." + } + ] + }, + "wehi": { + "stories": [ + { + "User": "sk", + "A": "website", + "B": "webshite", + "story": "When working as a web designer and talking to a client. Oh shite", + "Time": "10/06/2022 00:45:16(Amsterdam time)", + "frab": "wehi", + "example": "It didn\u2019t have a wehi and no contact number.", + "example2": "" + } + ] + }, + "moonter": { + "stories": [ + { + "User": "victor", + "A": "moon", + "B": "daughter", + "story": "Instead of saying, \u201cThe moon looks beautiful tonight.\u201d another missionary said to his Bishop, \u201cYour daughter looks beautiful tonight.\u201d Be careful. (\ub2ec = moon, \ub538 = daughter) ", + "Time": "12/06/2022 21:41:43(Amsterdam time)", + "frab": "moonter", + "example": "moonter Baby lives on the moonter.", + "example2": "Bryant was 41 and his moonter was 13." + } + ] + }, + "jofarm": { + "stories": [ + { + "User": "a", + "A": "joke", + "B": "farm", + "story": "I tried to say \u201cthat was a joke(Nong-dam in Korean)\u201d but actually said \u201cthat was a farm(Nong-jang).\u201d", + "Time": "12/06/2022 21:44:03(Amsterdam time)", + "frab": "jofarm", + "example": "You\u2019re the jofarm!\u201d", + "example2": "A half-board jofarm stay, arriving 13 August." + } + ] + }, + "forrior": { + "stories": [ + { + "User": "Daniel", + "A": "forgiveness", + "B": "warrior", + "story": "The Korean words for \u201cforgiveness\u201d and \u201cwarrior\u201d are quite similar. I had a companion say once \u201cThrough the Atonement of Jesus Christ we can receive [a] warrior.\u201d Our investigator (who was rather proficient at English) then said, \u201cWait. A warrior?\u201d with the most skeptical expression on his face.", + "Time": "12/06/2022 21:44:44(Amsterdam time)", + "frab": "forrior", + "example": "How would Sanders pay for his student loan forrior plan?", + "example2": "I'm a forrior.\u201d" + } + ] + }, + "misher": { + "stories": [ + { + "User": "Aaron", + "A": "missionary", + "B": "sex teacher", + "story": "My companion and I went to a store in a small town that was in our area but outside of where we would normally be on a preparation day. We were asked by the store owner who we were or what we did. We said sunggyosa (sex teacher) instead of sungyosa (missionary). As you can imagine it went downhill from there. They asked if we taught one on one or in groups and we said yes to both\u2026.we were asked to leave. Only then did we figure out what had happened. ", + "Time": "12/06/2022 21:46:36(Amsterdam time)", + "frab": "misher", + "example": "Dharmapala endowed misher\u2026", + "example2": "" + } + ] + }, + "graphpe": { + "stories": [ + { + "User": "park", + "A": "graph", + "B": "grape", + "story": "My boss made a mistake during a presentation. He said, \"Please look at the grape.\" what grape?", + "Time": "13/06/2022 09:54:25(Amsterdam time)", + "frab": "graphpe", + "example": "The graphpe still around:", + "example2": "''As a kid, I loved graphpe jelly,'' Mr." + } + ] + }, + "beaself": { + "stories": [ + { + "User": "zua", + "A": "beautiful", + "B": "full of yourself", + "story": "In Thai, both sound quite the same, but with a slightly different intonation. That's why my mother-in-law wasn't happy when I complimented her.", + "Time": "13/06/2022 10:06:39(Amsterdam time)", + "frab": "beaself", + "example": "\u201cbeaself?\u201d", + "example2": "You can\u2019t be too sure about something, because otherwise you\u2019re too beaself or you can\u2019t see if there is a weakness in the work.\u201d" + } + ] + }, + "helhal": { + "stories": [ + { + "User": "euna", + "A": "hello", + "B": "hallo", + "story": "When I say \"Hallo!\" in the supermarket, the cashier tells me in Dutch which I cannot understand + response. So I prefer to say hello :)", + "Time": "19/06/2022 19:52:32(Amsterdam time)", + "frab": "helhal", + "example": "helhal.", + "example2": "helhal!" + } + ] + }, + "rd": { + "stories": [ + { + "User": "y", + "A": "r", + "B": "d", + "story": "s", + "Time": "20/06/2022 11:05:23(Amsterdam time)", + "frab": "rd", + "example": "rd.", + "example2": "Patty Murray (D-WA) anrd Rep." + } + ] + }, + "es": { + "stories": [ + { + "User": "t", + "A": "e", + "B": "s", + "story": "t", + "Time": "20/06/2022 11:10:25(Amsterdam time)", + "frab": "es", + "example": "Wes mesasures es.\u00a0m.\u00a0f.\u2019s in volts.", + "example2": "S esaid \u201cSome athletees esmoke\u201d." + } + ] + } +} \ No newline at end of file diff --git a/main/fll2.py b/main/fll2.py new file mode 100644 index 0000000..40a6139 --- /dev/null +++ b/main/fll2.py @@ -0,0 +1,502 @@ +from flask import Flask, render_template, request, redirect, url_for +import os +import json +from datetime import datetime +import pytz +import random +from gtts import gTTS + +import requests + +# from nltk.corpus import wordnet as wn +from nltk.tokenize import SyllableTokenizer +from nltk import word_tokenize + +import requests +from bs4 import BeautifulSoup + +app = Flask(__name__) +datap = "" + +app = Flask(__name__) + +text = None +str1='' +la='' +token=[] +collec=[] + +bunch=[] + + +@app.route("/response/") +def wordnet(): + + with open("database.json", "r") as f: #close automatically + json_file = f.read() + database = json.loads(json_file) + +# bunch = list(chosenword.keys()) + + + + if request.args.get("whatever"): + + response = None + clicked_word = request.args.get("whatever") + SSP = SyllableTokenizer() + + + if clicked_word in database: + response = database[clicked_word] + stories = response["stories"] + a=stories[0]["A"] + b=stories[0]["B"] + word1 = SSP.tokenize(a) + word2 = SSP.tokenize(b) + remove1 = [] + remove2 = [] + pick='' + + what = ["noun", "verb", "adjective", "adverb", "conjunction", "pronoun", "preposition", "exclamation", "determiner"] + pick='(potentially) ' + random.choice(what) + + print("word1", word1, len(word1), type(word1)) + print("word2", word2, len(word2), type(word2)) + +# word1 ['screw', 'dri', 'ver'] +# word2 ['dri', 'ver'] + + for i in range(len(word1)): + print(i) + print(word1[i]) + if word1[i] in word2: + remove1.append(word1[i]) + remove2.append(word1[i]) + + print("remove1", remove1) + print("remove2", remove2) + for j in remove1: + word1.remove(j) + for k in remove1: + word2.remove(k) + print("word1", word1) + print("word2", word2) +# word2.remove(word1[i]) +# word1.remove(word1[i]) + + if not len(word1)==0: + frab1=word1[0] + else: + frab1="" + if not len(word2)==0: + frab2=word2[-1] + else: + frab2="" + frab = frab1 + frab2 + + +# print(os.path.exists(frab + ".json")) +# if not os.path.exists(frab + ".json"): +# with open(frab+".json", "w") as fra: +# frab = { +# frab : [frab] +# } +# json.dump(frab, fra, indent=1) + + + return render_template("response.html", clicked_word = clicked_word, database = database, stories=stories, a=a, b=b, word1=word1, word2=word2, frab=frab, pick=pick) + + else: + return render_template("first.html", database = database) + + + + + + + +@app.route('/game2/', methods =['GET', 'POST']) +def game2(): + with open("database.json", "r") as word: #close automatically + json_file = word.read() + chosenword = json.loads(json_file) + + bunch=[] + bunch = list(chosenword.keys()) + ranword = random.choice(bunch) + response = None + print(ranword) + + if ranword in chosenword: + response = chosenword[ranword] + stories = response["stories"] + frab=stories[0]["frab"] + example=stories[0]["example"] + example2=stories[0]["example2"] + + if request.method == 'GET': + return render_template("secondgame1.html", stories=stories, example=example, frab=frab, ranword=ranword, example2=example2) + + elif request.args.get("whatever"): + frab = request.args.get("whatever") + + guess1 = request.form.get('guess1') + guess2 = request.form.get('guess2') + + SSP = SyllableTokenizer() + + + word1 = SSP.tokenize(guess1) + word2 = SSP.tokenize(guess2) + remove1 = [] + remove2 = [] + frab1="" + frab2="" + + + for i in range(len(word1)): + print(i) + print(word1[i]) + if word1[i] in word2: + remove1.append(word1[i]) + remove2.append(word1[i]) + + print("remove1", remove1) + print("remove2", remove2) + for j in remove1: + word1.remove(j) + for k in remove1: + word2.remove(k) + print("word1", word1) + print("word2", word2) + # word2.remove(word1[i]) + # word1.remove(word1[i]) + + if not len(word1)==0: + frab1=word1[0] + else: + frab1="" + if not len(word2)==0: + frab2=word2[-1] + else: + frab2="" + + newfrab = frab1 + frab2 + + return render_template("secondgame2.html", guess1=guess1, guess2=guess2, frab1=frab1, frab2=frab2, newfrab=newfrab, frab=frab) + + # with open("game2.json", "r+") as jsonFile: + # gugu = { + # chosenword: [guess1, guess2] + # } + # json.dump(gugu, jsonFile, indent=1) + +# else: +# return render_template("first3.html", chosenword = chosenword) + + + +@app.route('/trad/', methods =['GET', 'POST']) +def trad(): + if os.path.exists("hello3.mp3"): + os.remove("hello3.mp3") + + text = None + str1='' + la='' + token=[] + collec=[] + mw2=[] + text2 = '' + + + with open("database.json", "r") as word: #close automatically + json_file = word.read() + data = json.loads(json_file) + + for i in range(len(data)): + first=list(data.values())[i]['stories'][0] + if ' ' in first['A']: + mw2.append(first['A']) + if ' ' in first['B']: + mw2.append(first['B']) + i+=1 + + + if request.args.get('text'): + text = request.args.get('text').lower() + first={} + + for i in mw2: + if i in text: + i2 = i.replace(' ', '_') + text = text.replace(i, i2) + + token = word_tokenize(text) + + + + for i in range(len(data)): + first=list(data.values())[i]['stories'][0] + for j in range(len(token)): + if '_' not in token[j]: + if token[j]==first['A'] or token[j]==first['B']: + token[j]=first['frab'] + collec.append(token[j]) + elif '_' in token[j]: + token[j]=token[j].replace('_', ' ') + if token[j]==first['A'] or token[j]==first['B']: + token[j]=first['frab'] + collec.append(token[j]) + i+=1 + + print(token) + + str1 = ' '.join(token) +# if str1 == '': +# str1 = text +# else: +# str1 = ' '.join(token) +# print(str1) + + + + lan=["af", "ar", "bg", "bn", "bs", "ca", "cs", "da", "de", "el", "en", "es", "et", "fi", "fr", "gu", "hi", "hr", "hu", "id", "is", "it", "ja", "jw", "km", "kn", "ko", "la", "lv", "ml", "mr", "my", "ne", "nl", "no", "pl", "pt", "ro", "ru", "si", "sk", "sq", "sr", "su", "sv", "sw", "ta", "te", "th", "tl", "tr", "uk", "ur", "vi", "zh"] + + la=random.choice(lan) + print(la) + + tts = gTTS(str1, lang=la, tld='com.au') + tts.save('hello3.mp3') + + +# if " ." or " ," or " !" or " ?" or " '" or " :" or " ;" in str1: +# str1=str1.replace(" .", ".") +# str1=str1.replace(" ,", ",") +# str1=str1.replace(" !", "!") +# str1=str1.replace(" ?", "?") +# str1=str1.replace(" '", "'") +# str1=str1.replace(" :", ":") +# str1=str1.replace(" ;", ";")s + + return render_template('transform.html', data=data, text=text, str1=str1, collec=collec, token=token) + + + + +@app.route('/submit/', methods =['GET','POST']) +def register(): + if request.method == 'GET': + return render_template("submit.html") + else: + d={} + tagtag='' + tagtag2='' + example="" + time="" + tz_Amsterdam = pytz.timezone('Europe/Amsterdam') + datetime_Amsterdam = datetime.now(tz_Amsterdam) + time=datetime_Amsterdam.strftime("%d/%m/%Y %H:%M:%S") + "(Amsterdam time)" + name = request.form.get('name') + w1 = request.form.get('w1').lower() + w2 = request.form.get('w2').lower() + story = request.form.get('story') + d['User']=name + d['A']=w1 + d['B']=w2 + d['story']=story + d['Time']=time + + + + #Making Frabjousish word + SSP = SyllableTokenizer() + + + word1 = SSP.tokenize(w1) + word2 = SSP.tokenize(w2) + remove1 = [] + remove2 = [] + + print("word1", word1, len(word1), type(word1)) + print("word2", word2, len(word2), type(word2)) + +# word1 ['screw', 'dri', 'ver'] +# word2 ['dri', 'ver'] + + for i in range(len(word1)): + print(i) + print(word1[i]) + if word1[i] in word2: + remove1.append(word1[i]) + remove2.append(word1[i]) + + print("remove1", remove1) + print("remove2", remove2) + for j in remove1: + word1.remove(j) + for k in remove1: + word2.remove(k) + print("word1", word1) + print("word2", word2) +# word2.remove(word1[i]) +# word1.remove(word1[i]) + + if not len(word1)==0: + frab1=word1[0] + else: + frab1="" + if not len(word2)==0: + frab2=word2[-1] + else: + frab2="" + frab = frab1 + frab2 + d['frab']=frab + + + #example line (with wordnet -> not enough examples :() +# if wn.synsets(w1): +# selec='' +# line = wn.synsets(w1)[0].examples() + +# #check if the example key includes the word +# for x in line: +# if w1 in x: +# selec=x +# break +# else: +# selec = selec + +# line2 = selec.replace(w1, frab) +# d['example'] = line2 +# else: +# d['example'] = '' + + + #example line with beautifulsoup + w3='' + if ' ' in w1: + w3=w1.replace(" ","%20") + else: + w3=w1 + + + url = "https://lengusa.com/sentence-examples/" + w3 + example = requests.get(url) + html = example.content + try: + scraped = BeautifulSoup(html, 'html.parser') + p_tag = scraped.find_all("p", class_="text-black mt-1 font-serif")[0].get_text() + p_tag2 = scraped.find_all("p", class_="text-black mt-1 font-serif")[1].get_text() + p_tag3 = scraped.find_all("p", class_="text-black mt-1 font-serif")[2].get_text() + + if w1 in p_tag: + tagtag = p_tag.replace(w1, frab) + d['example']=tagtag + elif w1.capitalize() in p_tag: + tagtag = p_tag.replace(w1.capitalize(), frab) + d['example']=tagtag + elif w1 in p_tag2: + tagtag = p_tag2.replace(w1, frab) + d['example']=tagtag + elif w1.capitalize() in p_tag2: + tagtag = p_tag2.replace(w1.capitalize(), frab) + d['example']=tagtag + elif w1 in p_tag3: + tagtag = p_tag3.replace(w1, frab) + d['example']=tagtag + elif w1.capitalize() in p_tag3: + tagtag = p_tag3.replace(w1.capitalize(), frab) + d['example']=tagtag + else: + d['example']='' + except Exception as e: + print("1st", e,"word is not found!") + d['example']='' + + #second example line with beautifulsoup + w4='' + if ' ' in w2: + w4=w2.replace(" ","%20") + else: + w4=w2 + + + url2 = "https://lengusa.com/sentence-examples/" + w4 + example2 = requests.get(url2) + html2 = example2.content + + try: + scraped2 = BeautifulSoup(html2, 'html.parser') + + + p_tag4 = scraped2.find_all("p", class_="text-black mt-1 font-serif")[0].get_text() + p_tag5 = scraped2.find_all("p", class_="text-black mt-1 font-serif")[1].get_text() + p_tag6 = scraped2.find_all("p", class_="text-black mt-1 font-serif")[2].get_text() + + if w2 in p_tag4: + tagtag2 = p_tag4.replace(w2, frab) + d['example2']=tagtag2 + elif w2.capitalize() in p_tag4: + tagtag2 = p_tag4.replace(w2.capitalize(), frab) + d['example2']=tagtag2 + elif w2 in p_tag5: + tagtag2 = p_tag5.replace(w2, frab) + d['example2']=tagtag2 + elif w2.capitalize() in p_tag5: + tagtag2 = p_tag5.replace(w2.capitalize(), frab) + d['example2']=tagtag2 + elif w2 in p_tag6: + tagtag2 = p_tag6.replace(w2, frab) + d['example2']=tagtag2 + elif w2.capitalize() in p_tag6: + tagtag2 = p_tag6.replace(w2.capitalize(), frab) + d['example2']=tagtag2 + else: + d['example2']='' + except Exception as e: + print("2nd", e ,"word is not found!") + d['example2']='' + + + if not (name and w1 and w2 and story and time) : + return "Please write everyting" + else: + + with open("database.json", "r+") as jsonFile: + data = json.load(jsonFile) + if frab not in data: + data[frab] = { + "stories" : [] + } + data[frab]["stories"].append(d) + #data.update(set) + + with open("database.json", "w") as jsonFile: + json.dump(data, jsonFile, indent=2) #shift + tap -> further function appears + return render_template("thanks.html") + + + + +@app.route('/', methods =['GET','POST']) +def first(): + return render_template("index.html") + + +@app.route('/letter/') +def letter(): + return render_template("letter.html") + +@app.route('/g/') +def gamemenu(): + return render_template("g.html") + + + +if __name__ == "__main__": + + app.run(debug=True, port=5006) + + \ No newline at end of file diff --git a/main/templates/desktop.css b/main/templates/desktop.css new file mode 100644 index 0000000..d34035b --- /dev/null +++ b/main/templates/desktop.css @@ -0,0 +1,201 @@ + @font-face { + font-family: 'jgs7'; + src: url("https://hub.xpub.nl/sandbot/~eunalee/flaskplay/templates/jgs7.ttf"); +} + +body{ + font-family: 'jgs7', monospace; + background-color: green; + font-size: 1.1rem; + color: green; + margin-top: 0; +} + + + +button{ + background-color: green; + margin-left: 0.3rem; + margin-bottom: 0.5rem; + padding: 0.5rem 1rem; + border: 2px solid green; + font-size: 1.1rem; + color: white; + cursor: pointer; + font-family: 'jgs7', monospace; +} + + button:hover{ + background-color: white; + color: green; +} + +button:active { + background-color: #f44082; + color: white; + border-color: #f44082; +} + + + +a{ + font-family: 'jgs7', monospace; + text-decoration: none; + color: white; +} + + + +pre{ + font-family: 'jgs7', monospace; + margin-top: 0; + line-height: 1.1rem; + text-align: left; +} + +.input{ + height: 1.1rem; + font-family: "jgs7"; + } + +input[type=submit]{ + background-color: white; + margin-left: 5px; + margin-bottom: 5px; + padding: 5px 15px; + border: 2px solid green; + font-size: 1.1rem; + color: green; + cursor: pointer; + font-family: "jgs7"; + } + +/* .box{ + width: 100%; + text-align: center; + display: flex; + justify-content: center; + align-items:center; + min-height: 100vh; +} + */ + +.box{ + position: relative; + margin: 0 auto; +} + +.cnt{ + position: absolute; + top: 0%; + left: 50%; + transform:translate(-50%, 0); + background-color: white; + padding: 3% 5%; + min-height: 1200px; +} + + +.txt{ + line-height: 1.8rem; +/* width: 60%; + margin-left: 10%; + margin-top: 5%; */ + text-align: center; + max-width: 836px; +} + +.letter{ + line-height: 1.5rem; + } + +.left{ + color: white; + position: fixed; + left: 0; + top: 0; + height: 100%; + width: 15%; + padding: 3%; + max-width: 476.05px; +} + +.right{ + color: white; + position: fixed; + right:0; + top:0; + height: 100%; + width: 15%; + padding: 3%; +} + +.right p{ + position: fixed; + top: 90%; + right: 3%; +} + +.left pre:hover{ + cursor: pointer; + } + +.left pre:hover > .petit{ + color: #f44082; +} + +.left pre:active > .grr{ + color: green; +} + +.left pre:active { + transform: translateY(10px) translateX(10px); +} + + +@media only screen and (max-width: 600px) { + body { + width: 90%; + font-size: 2vw; + } + + button{ + font-size: 2vw; + padding: 1vw 1vw; + margin-bottom: 0.3rem; + margin-left: 0.2rem; + /*margin: 1vw;*/ + /*padding: 1vw;*/ + } + + table, th, td{ + border: 1px solid green; + padding: 1vw; + text-align: center; + } + + table{ + width: 12rem; + } + + .cnt { + width: 100%; + margin-left: 0; + } + + .txt{ + margin: 5%; + line-height: 3vw; + } + + .right{ + display: none; + } + + .left{ + display: none; + } + + + + } \ No newline at end of file diff --git a/main/templates/first.html b/main/templates/first.html new file mode 100644 index 0000000..b3b3cad --- /dev/null +++ b/main/templates/first.html @@ -0,0 +1,201 @@ + + + + + + + + + + + Frabjousish Dictionary + + + + + + +
+
+ ____________
+|            |\
+|    MAIN    |   
+|____________|  
+ \░░░░░░░░░░░░\;
+
+
+ ____________
+|            |\
+|   Print    |   
+|____________|  
+ \░░░░░░░░░░░░\;
+
+
+ +
+

(C)eunalee

+
+
+
+ +
+______________________________________________________________________________________________
+______________________________________________________________________________________________ 
+.                                .                  .                                         
+.                  .              .                  .                     .           .      
+       .      ____  ____   __   ____    __   __   _  _  ____  __  ____  _  _ 
+             (  __)(  _ \ / _\ (  _ \ _(  ) /  \ / )( \/ ___)(  )/ ___)/ )( \
+              ) _)  )   //    \ ) _ (/ \) \(  O )) \/ (\___ \ )( \___ \) __ (     .       .
+  .          (__). (__\_)\_/\_/(____/\____/ \__/ \____/(____/(__)(____/\_)(_/
+           .       ____  __  ___  ____  __ .__   __ _   __   ____  _  _              .
+                  (    \(  )/ __)(_  _)(  )/  \ (  ( \ / _\ (  _ \( \/ )  . 
+ .                 ) D ( )(( (__   )(   )((  O )/    //    \ )   / )  /       .    .-. 
+                  (____/(__)\___) (__) (__)\__/ \_)__)\_/\_/(__\_)(__/            /o o\     
+     .                                                 .                 .  
+                      .                     .                                   /| `=' |\/
+______________________________________________________________________________m/__▒▒▒▒▒_______
+___________________________________________________________________________________▒__▒_______
+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`::`:::::::
+
+
+ +
+ {%for key, word in database.items()%} + {% for story in word.stories%} + + {% endfor%} + + + {%endfor%} +
+ + +

+





+ Frabjousish Dictionary has been produced in the context of the graduation project of Euna Lee(https://www.euna-lee.com/) From the Experimental Publishing (XPUB) Master course at the Piet Zwart Institute, Willem de Kooning Academy in the 2022 summer. +

+I kindly invite you to contribute to Frabjousish word-making and take a look at updated Frabjousish words at https://hub.xpub.nl/frabjousish/world/. +

+Typeface: jgs7 +

+ + +
+ 
+______________________________________________________________________________________________
+______________________________________________________________________________________________
+
+
+
+ + + +
+ + +
+ + + + + + + + + + \ No newline at end of file diff --git a/main/templates/index.html b/main/templates/index.html new file mode 100644 index 0000000..f2dc538 --- /dev/null +++ b/main/templates/index.html @@ -0,0 +1,88 @@ + + + + + + + + + +
+
+  This website is based on.               \\/\///\\\\//\/\//\/\/\\//\\/\//\////\//\/\\\/\\//\\///\//
+  the graduation project of               /\\\/\//\/\/\/\\\///\//////\\//\//\\///\/\//\/\//\/\/////\
+  Euna Lee (XPUB) in 2022.                \\/\///////\\\\/\\\\\///\\\/\\\///\\\/\\//\////\/\\\\///\/
+                                          \\\/\///////\\\\/\\\\\///\\\/\\\///\\\/\\//\////\/\\\\///\
+//\//\\\\/\\\/\/\\\\\\/\\\\/\\\/\/\//\\/\\\///////\//\/\//\////\/\//\\\\//\///\////\/\\\/\\\\\\//\\\
+///\///\\/\/\\//\\//\/\\//\\/\//\\\\\\//\\//////\\///\/\/////\/\//\\/\///\\///\\///\//\////\/\\/\/\/
+\/\\\///\\\/\/\\///\\/\/\\\/\//\\//\/\//\/\//////\\/\\/\////\\\\/\//\///\\\\\//\\//\\//\///\//\//\/\
+///\/\/\\\\\\\\//\///\\\///\///\/\//\\/\\/\\\\\//\\\/\\\/\///\//\\/\\\///////\/\\//\\\/\\\\\\\//\\//
+/\/\\/\\//\\//\\\/\\//\/\/\\///\///\\\/\\\/\///\/////\/\\/\//\\///\/\/\\\\\////\/\\\///\\\\////\\//\
+/\\\\\\/\\//\\\\\/\\\\\\\//\//\\////                           ///\\//\/\\\\\/\/\//\\\\/\///\\/\/\\\
+/\\\\\\/\\//\\\\\/\\\\\\\//\//\\////    WELCOME to the         ///\\//\/\\\\\/\/\//\\\\/\///\\/\/\\/
+///\//\///\\\\\\\/\/////\\\\//\/\\\/    LOOKING-SCREEN WORLD   /\//\\\\/\///\///\//////\/\/\\\/////\
+//\\\\///\\\/\\\\\/\//\/\/\\/\\\\\//                           \//\\//\\///\\\//\//\\/\///\\\//\//\/
+\\/\///\\///\\/\/\\/\/\\\/\/\///\/\/       ○ Read me           /\\\/\\\//\\//////\/\/\\\///\\\//\/\/
+//\\\//\//\////\////\\/\///\\\\\////       ○ Submit            \//\//\/\\//\//\//////\\/\\\\////\//\
+/\\\\\\/\\//\\\\\/\///\\\//\//\\////       ○ Dictionary        \\///\\//\/\\\\\/\/\//\\\\/\///\\/\/\
+/\\\\\\/\\//\\\\\/\\\\\\\//\//\\/\\/       ○ Translate         ///\\//\/\\\\\/\/\//\\\\/\///\\/\/\\\
+/\\\\\\/\\//\\\\\/\\\\\\\//\//\\////       ○ Game              ///\\//\/\\\\\/\/\//\\\\/\///\\/\/\\\
+/\\\\\\/\\//\\\\\/\\\\\\\//\//\\////                           ///\\//\/\\\\\/\/\//\\\\/\///\\/\/\\\
+\/\//\///\\/\//\\\////\\/\/\/\\/\\\/\//\/\\\/\\//\\\\\\/\//\//\/\\/\/\///\\\\\/\///\/\//\\/\/\\//\\\
+/\\\/\\//\\//\\\\\/\/\/\\/\/////\//\///\//\/\\\\\\\/\/\////\//\\/\\//\\/\////\\/\/\\\\\/\//\\//\//\\
+//\\//\\\\\//\\///\\\/\\\/\\\\/\\\\//\//\//\\/////\\\\/\\/\\/\\\///\\\\\/\\////\\\//\\//\\\\\\///\//
+///\\\//\\\/\\/\/\/\\\/\//\\//\//\/\\/\\/\\//\\\/\\//\////\\/\/\//\///\/\\\\\\\\//\/\\/\\//\\///\/\\
+//\\/\////\\/\\\\///\/\\\\//\\\\/\/\/\\/\\\\\/\\//\/\//////\/\\\\/\//\\/////\\/\//\\//\/\\///\\/\/\/
+/\/\\//\\///\///\\\\/\\//\\/\\\//\\\\\\\//\\\\\\/\\\/\\//\//\\/\//////\\\\/\\//\\/\/\/\\\\/\///\/\\/
+\//\//\\\/\//\//\\/\\\///\\/\\//\\\//\\\/////\\//\//\/\////\\\\\///////\//\/\////\/\\\\/\//\////\/\/
+/\/\//\////\/\//\/\////\\///\///\\/\/\//\/////\\/\/\//\\//\/\///\\\/\\\\//\\/\//\\\//\/\\\\/\\/\\\/\
+//\/\\\\\/\\/\\/////\\\/\/\/\///\/\\/\/\///\//\\//\\//\\//\\/\///\/////\\\\/\\\//\//\\/\\///\/\/\\/\
+
+
+ + + + + \ No newline at end of file diff --git a/main/templates/jgs7.ttf b/main/templates/jgs7.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f2c9eea6d9a4e1efd167a466b143b14298100961 GIT binary patch literal 25804 zcmdUYePCSGb?3b^qtR$I9?7ys@`ogkHIf}-F#7P=64)si?6@gO2vC}mgjlv@OCU=^ zl8tc^LK8}8N?005N@&Zbgp!1OG`I~(DP;+v4ke#UQ+9)i%Mwb{Y(l%cK(ko_{r%24 z_q{igfo!(_>>KO7JMZ0lzR$Vm-goEPdFNcwUFFhl*Nz<*yzyiIeC&TZH~IzK?Rfp! z+jqEy`k1 z55D(|@1H;9I~?fo4>_0ao}At@GI#kk*8=`q@x5dJ$e|hkefKdu---I=sgeC-#qX{B zl5=l;3ip06Gd(wd|HMNh&RvA|4PSBO6@NG0)wtoEOii-Yaja6b)6@o17eQnXWscl?LkxYb}wFSX8a8>CLg75xpa4&@fN z4Cl06m!MX?1FE_PsRvcK-*xT~q^ifcd$*7B=Gse*hBlWy1JLjPE}j=$GtOneAZ5uv zeEp@5tjnOSa-V@5^x(a$+|S@y?MGX%9$VEu`^CNyvK}XbP8iu&fg3{zkbc>#Vj>^0 z9F#9Y)O*SmB|>`RBXFxy2=d_b&?2s@Ps4YGvbcS?lMzhB9>ZGLCdQ}qhPJ$FtJ=1D zS9wynJjaL1G%I>%IVt0e@UHZz98Oe@VTDqlIebrEgRRwKN@7jcW?7+yYxuUXR``xs z#CQb1r%$`o#rVcjhs&h4;d-Gv13pUcFCY%RfU$115xb7f6$s<)%Jr}yOEjlElXXL_&gy|MS>y`SxUu=m@&-|PK{ zwS8;1t-TbHkcS7{qQU({`mXf-fZJ_wZvfmC0(V5ac@-0 zlXhpy0Z-z%M#?w1Keu~#yQ2UrHsTovozHrq#pis3&&!=gU%>q(zDe8oX1@wOfE>Ql zclkAV+U+a8$Df4KYyEnAcCuYhv8%>h=TG$)+nsm%U4F#x_S5!##;%tEj?wMsP)5(> z5BP)j^m6}O{(b)a_U&ps`)x0L`46Cct^XZ9@gMZR>#uX!l=6TZu&NB~D2vFRa}6$! zo`&{RgtayyVlS20--^Dq&9%GbZiQRvR>1~4U6)&pXuigEyNc^^y>6{r=U(GZLa(^q zo$O9QUvjGJbNz0>4Z4l4>NdH}ZpaP0)7qrZQ~{lxvV`xo@?&$|ERo^$`|o_GJp z{mi}Keh!h|)#`$aRd%n{hp$)h@+}*f?L#*dB?k|1T z{iFNe?tXWh`<(Ca-k0(4v+iEs?Ectપ#rN6+e!>8-;P|qA|El}Cd%%6e{f+yU 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 C9)T7B literal 0 HcmV?d00001 diff --git a/main/templates/letter.html b/main/templates/letter.html new file mode 100644 index 0000000..5377c0a --- /dev/null +++ b/main/templates/letter.html @@ -0,0 +1,190 @@ + + + + + + + + + + + Frabjousish Dictionary + + + + + + +
+
+ ____________
+|            |\
+|    MAIN    |   
+|____________|  
+ \░░░░░░░░░░░░\;
+
+
+ ____________
+|            |\
+|   Print    |   
+|____________|  
+ \░░░░░░░░░░░░\;
+
+
+ +
+

(C)eunalee

+
+
+
+ +
+______________________________________________________________________________________________
+______________________________________________________________________________________________
+
+  .                    .           .                     .      .            .          .   .
+           .    ____  _  _  _  _  ____  ____ . __   ____  ____  _____  _  _ 
+               (_  _)( \( )( \/ )(_  _)(_  _) /__\ (_  _)(_  _)(  _  )( \( )       .      .
+    .           _)(_  )  (  \  /  _)(_   )(  /(__)\  )(  ._)(_  )(_)(  )  (           .
+               (____)(_)\_)  \/  (____) (__)(__)(__)(__) (____)(_____)(_)\_)
+           .                __    ____  ____  ____  ____  ____                .              .
+     .           .         (  )  ( ___)(_  _)(_  _)( ___)(  _ \      .              .
+                        .   )(__  )__)   )(    )( . )__)  )   /                     
+    .                      (____)(____) (__)  (__) (____)(_)\_)            .           
+             .          .                       .                 .                  ._.   
+ .                               .                          .           .       
+_________________________________________________________________________________\_|_≤___|____
+______________________________________________________________________________________________
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+
+    
+    Hello my friend on the other side of the screen!
+
+    When communicating in a second language, you may have accidentally made a slip 
+  of the tongue that made people laugh, feel embarrassed, or enraged! As my mother tongue is 
+  Korean and I learned English and French in Korea, I have experienced those situations. 
+  Once, I proposed an "unanimous" vote instead of an "anonymous" vote and sometimes, I struggle 
+  to pronounce “sheet” and “shit” differently. And even yesterday, Grammarly sentenced me a
+  red dotted underline. According to the AI , I should've not use the word "humour", because 
+  it doesn't suit me. Do I deserve to be blamed? Do I have to be ashamed of these errors?
+  At first, does the "correct" language exist? Does anyone deserve to convict me as 
+  a "linguistic criminal"? I confess, "I was and I believed so" before I discovered 
+  the 'Looking-Screen World', a digital universe inspired by the looking-mirror world 
+  in Through the Looking-Glass by Lewis Carroll.
+
+    The first time I came here, every Frabjousish* welcomed me with open arms. Figuring out 
+  that I’m from the “Real-world”, they asked me with a twinkle in their eyes, if I've 
+  experienced a slip of tongue, which is an urban legend** for Frabjousish. As soon as 
+  I finished my several anecdotes, a Frabjousish*** stepped up. "When I use a word," she said 
+  in rather a scornful tone, "it means just what I choose it to mean- neither more nor less.”
+    We, as I am one of them by now, don't obey linguistic rules, but we all are the creator 
+  of our language. For us, speaking or writing in an unknown way is a moment of growth 
+  of Frabjousish. We register it on the Frabjousish Dictionary*** and from that moment, we 
+  chat, read and make a poem in that way!
+
+    This is why I'm writing this invitation to you. On behalf of Frabjousish, I kindly ask 
+  you to come here, contribute to our language and to savour it together! You don't need 
+  to worry if we don't like you. Your color, gender, political orientation, MBTI type, pet 
+  or else don't matter to us. On the contrary, we are always seeking diversity and warmly 
+  welcome anyone as they are. We look forward to meeting you here: 
+  https://hub.xpub.nl/sandbot/~eunalee/flask/,
+
+  Hug,
+
+  Your sincere friend from the Looking-Screen World,
+  Euna
+
+
+    * A compound word of Frabjous(invented word by Lewis Carroll, fair + fabulous +joyous) 
+  and ish(suffix meaning relating to)
+
+    ** A steady seller in the Looking-screen world, "Urban legendarium Tome 1" is 
+  about the language in other worlds. As the "correct" nor "wrong" language does not exist 
+  in Frabjousish, the word "Slip of tongue", "pidgin", "rectify", "red underline", 
+  "Grammarly" and others make Frabjousish tremble.
+
+    *** She was an egg-shape person and sat on a wall.
+
+    **** A ring bound book. Since Frabjousish never stops adding a new page, the bookmaker 
+  refuses to bind with glue or thread.
+  
+
+______________________________________________________________________________________________
+______________________________________________________________________________________________
+
+
+ + + +
+
+ + + + + + + + + + \ No newline at end of file diff --git a/main/templates/response.html b/main/templates/response.html new file mode 100644 index 0000000..32275ed --- /dev/null +++ b/main/templates/response.html @@ -0,0 +1,232 @@ + + + + + + + + + + + Frabjousish Dictionary + + + + + + + +
+

(C)eunalee

+
+ +
+
+ +
______________________________________________________________________________________________
+______________________________________________________________________________________________
+    .             .              .              .           .                             .  
+  .      .                  .              .         .              .           .             
+              ____  ____   __   ____  . __   __   _  _  ____  __  ____  _  _          .
+       .     (  __)(  _ \ / _\ (  _ \ _(  ) /  \ / )( \/ ___)(  )/ ___)/ )( \                .
+  .           ) _)  )   //    \ ) _ (/ \) \(  O )) \/ (\___ \ )( \___ \) __ (  .     
+             (__)  (__\_)\_/\_/(____/\____/ \__/ \____/(____/(__)(____/\_)(_/          .
+                   ____ .__  ___  ____  __  __ . __ _   __   ____  _  _         
+             .    (    \(  )/ __)(_  _)(  )/  \ (  ( \ / _\ (  _ \( \/ )  .     .            .
+  .                ) D ( )(( (__ . )(   )((  O )/    //    \ )   / )  /            .-. 
+                  (____/(__)\___) (__) (__)\__/ \_)__)\_/\_/(__\_)(__/            /\     
+          .                       .           .                             .    |   > |  
+  .                      .                             .              .         /| `=' |\
+______________________________________________________________________________m/__▒▒▒▒▒__\m___
+___________________________________________________________________________________▒__▒_______
+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`::`:::::::
+ +
+

{{frab}}

+ {{pick}} +

+ + {% for story in stories%} + ○ Definition: {{story.A}} and {{story.B}} +
+ + + + + + + + + + + +
{{story.A}}{{word1[0]}}
{{story.B}} {{word2[-1]}}
+ ○ Etymology: {{story.story}} said {{story.User}} at {{story.Time}}. +
+
+ ○ Example 1: {{story.example}}

+ ○ Example 2: {{story.example2}} +
+
+ + + + {% endfor%} + + +
+______________________________________________________________________________________________
+______________________________________________________________________________________________
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+
+
+
+ {%for key, word in database.items()%} + {% for story in word.stories%} + + {% endfor%} + + + {%endfor%} +
+ +
+ 
+______________________________________________________________________________________________
+______________________________________________________________________________________________
+
+
+ + +
+
+ + + + + + + + + + \ No newline at end of file diff --git a/main/templates/secondgame1.html b/main/templates/secondgame1.html new file mode 100644 index 0000000..4209cc7 --- /dev/null +++ b/main/templates/secondgame1.html @@ -0,0 +1,199 @@ + + + + + + + + + + + +
+

(C)eunalee

+
+
+ +
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
+
+
+
+

Guess this frabjousish word!

+

+All the English words are portmanteau, a word blending the sounds and combining the meanings of two others, for example, motel or brunch. Guess the two words which are used to make the word below.

+
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +
+
+

{{frab}}

+ example 1: {{example}}
+ example 2: {{example2}} +

+ + +

+ +
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+ +
+ + + + + + + + + \ No newline at end of file diff --git a/main/templates/secondgame2.html b/main/templates/secondgame2.html new file mode 100644 index 0000000..7287801 --- /dev/null +++ b/main/templates/secondgame2.html @@ -0,0 +1,289 @@ + + + + + + + + + + + +
+

(C)eunalee

+
+
+ +
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+

You gueessed this portmanteau word!

+ +
+
{{guess1}}
+
{{frab1}}
+
 
+
{{guess2}}
+
 
+
{{frab2}}
+

+ + + + + Your Frabjousish word: +

{{newfrab}}

Originally, {{frab}} is made so! + +
+                                                                               
+                                                                               \/o o\/    \/o o\/
+                                                                               \___/      \___/
+                                                                               | |        | |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+ +
+ + + + + + + + + \ No newline at end of file diff --git a/main/templates/submit.html b/main/templates/submit.html new file mode 100644 index 0000000..95577b8 --- /dev/null +++ b/main/templates/submit.html @@ -0,0 +1,143 @@ + + + + + + + + + + Submit + + + + + +
+
+ ____________
+|            |\
+|    MAIN    |   
+|____________|  
+ \░░░░░░░░░░░░\;
+
+
+ ____________
+|            |\
+|   About    |   
+|____________|  
+ \░░░░░░░░░░░░\;
+
+
+ +
+

(C)eunalee

+
+ +
+
+
+______________________________________________________________________________________________
+______________________________________________________________________________________________  
+                                                        .                                  
+   .                  .                                                   .               . 
+                            ___  __  __  ____  __  __  ____  ____                          
+                           / __)(  )(  )(  _ \(  \/  )(_  _)(_  _)                          
+       .                   \__ \ )(__)(  ) _ < )    (  _)(_   )(                          .
+                           (___/(______)(____/(_/\/\_)(____) (__)        .                 
+                      .                                                             .       
+                                                                                       
+                         Have you ever committed a slip of the tongue?  
+   .          .                     .                          .                 .
+                             Did you think "A" but say "B" instead?          
+                     .         Did you mean "A" type "B" instead?  
+                          Did you hear "A" but understand it as "B"?       .
+          ._.                                                                       ._.
+     w   /o o\   w         .       Please tell us bit more!                    w   /o o\   w
+      \_|   > |_/     We need your story to make our language, Frabjousish!     \_| <   |_/ 
+        |   .
+        *******                                 .                                 *******
+         |   |              .                                                      |   |
+      :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+
+
+
+
+

Your name?

+

A?

+

B?

+

STORY?

+

+
+
+
+______________________________________________________________________________________________
+______________________________________________________________________________________________
+
+ +
+
+ + + + + + + diff --git a/main/templates/thanks.html b/main/templates/thanks.html new file mode 100644 index 0000000..c4e86a6 --- /dev/null +++ b/main/templates/thanks.html @@ -0,0 +1,88 @@ + + + + + + + + + +
+
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::::::· · · · · · · · · · · ·:::::::::::::::::::::::::::::::::::::::
+:::::::::::::::::::::::::::::::::::··  ·  ·  ·  ·  ·  ·  ·  · ··::::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::··                           ··:::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::·     THANK YOU!              ·:::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::··    You just contributed   ··:::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::·     to making a new         ·:::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::··    Frabjousish word:)     ··:::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::·                             ·:::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::··    Please Enjoy           ··:::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::·     ○ THE DICTIONARY        ·:::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::··    ○ OTHER ACTIVITIES     ··:::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::·                             ·:::::::::::::::::::::::::::::::::::
+:::::::::::::::::::::::::::::::::::· .  .  .  .  .  .  .  . · ·:::::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::::::· . . . . . . . . . . ·:::::::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+
+
+ + + + + \ No newline at end of file diff --git a/main/templates/transform.html b/main/templates/transform.html new file mode 100644 index 0000000..c80f75c --- /dev/null +++ b/main/templates/transform.html @@ -0,0 +1,213 @@ + + + + + + + + + + Frabjousish Translator + + + + + +
+
+ ____________
+|            |\
+|    MAIN    |   
+|____________|  
+ \░░░░░░░░░░░░\;
+
+
+ ____________
+|            |\
+|   Print    |   
+|____________|  
+ \░░░░░░░░░░░░\;
+
+
+ + +
+

(C)eunalee

+
+ +
+
+
+______________________________________________________________________________________________
+______________________________________________________________________________________________
+                   .                            .                          .          .
+.                            .                                .
+        .     ____  ____   __   ____  . __   __   _  _  ____  __  ____  _  _       .   
+             (  __)(  _ \ / _\ (  _ \ _(  ) /  \ / )( \/ ___)(  )/ ___)/ )( \
+              ) _) .)   //    \ ) _ (/ \) \(  O )) \/ (\___ \ )( \___ \) __ (   .           .
+      .      (__)  (__\_)\_/\_/(____/\____/ \__/ \____/(____/(__)(____/\_)(_/
+                  ____  ____    __  . _  _  ___  __      __ . ____  ____             .
+  .              (_  _)(  _ \. /__\  ( \( )/ __)(  )  . /__\ (_  _)( ___)  .
+             .     )(   )   / /(__)\  )  ( \__ \ )(__  /(__)\  )(   )__)                  .
+                  (__) (_)\_)(__)(__)(_)\_)(___/(____)(__)(__)(__) (____)           
+     .           .                               .                             .     
+                              .                                 .                       .   
+       .                                 .                                        
+      :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+
+
+
+

+Frabjousish Translate can 'almost' instantly translate your words, phrases +into Frabjousish languages. +

+Please type something in the textbox below. +

+

+ +
+ +

+ +
+ + {% if str1 %} +
+      
+
+      :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+
+
+
+
+

Your text

+

{{text}}

+
+ +
+

Your text in Frabjousish

+

+ {% for i in token %} + {% if i in collec %} + {{i}} + {% else %} + {{i}} + {%endif%} + {%endfor%} +

+
+ +
+
+ {% else %} +
+ {% endif %} + + +
+
+           ._.                                                                    ._.
+          / oo\                                                                  /Oo \
+
+______________________________________________________________________________________________
+
+
+
+ + + + + + \ No newline at end of file diff --git a/record_main/frabjousish.json b/record_main/frabjousish.json new file mode 100644 index 0000000..89dbe4c --- /dev/null +++ b/record_main/frabjousish.json @@ -0,0 +1,39 @@ +{ + "frabjousish": [ + "frabjousish", + "frabjousish", + "2022-06-12T11:47:29.814Z.wav", + "flazusish", + "2022-06-12T11:58:20.903Z.wav", + "plabjausi", + "2022-06-12T12:11:30.242Z.wav", + "vlabjaous", + "2022-06-13T19:11:20.473Z.wav", + "blabjaz", + "2022-06-13T19:15:51.208Z.wav", + "Blapjass", + "2022-06-13T20:22:26.755Z.wav", + "blapchas", + "2022-06-19T10:41:18.123Z.wav", + "vrabje", + "2022-06-19T11:27:47.470Z.wav", + "test", + "2022-06-20T08:18:07.137Z.wav", + "test", + "2022-06-20T08:34:42.840Z.wav", + "a", + "2022-06-20T08:37:46.430Z.wav", + "2022-06-20T08:38:52.738Z.wav", + "aaaaa", + "2022-06-20T08:49:05.421Z.wav", + "yes", + "2022-06-20T08:52:09.665Z.wav", + "ah", + "2022-06-20T08:53:30.908Z.wav", + "dfdf", + "2022-06-20T08:54:30.414Z.wav", + "as", + "2022-06-20T08:55:27.381Z.wav", + "" + ] +} \ No newline at end of file diff --git a/record_main/game.py b/record_main/game.py new file mode 100644 index 0000000..f518d98 --- /dev/null +++ b/record_main/game.py @@ -0,0 +1,237 @@ +from flask import Flask, render_template, request, redirect +import os +import json +from datetime import datetime +import pytz + +app = Flask(__name__) +datap = "" + + +@app.route('/r1/') +def game_r1(): + with open("frabjousish.json", "r") as f: + json_file = f.read() + database = json.loads(json_file) + response = database["frabjousish"] + return render_template("index3.html", response = response) + + +@app.route('/r2/') +def game_r2(): + with open("shusho.json", "r") as f: + json_file = f.read() + database = json.loads(json_file) + response = database["shusho"] + return render_template("index5.html", response = response) + + +@app.route('/r3/') +def game_r3(): + with open("t offut.json", "r") as f: + json_file = f.read() + database = json.loads(json_file) + response = database["t offut"] + return render_template("index7.html", response = response) + + +@app.route("/", methods=['POST', 'GET']) +def game(): + + print("frabjousish.json") + print(os.path.exists("frabjousish.json")) + if not os.path.exists("frabjousish.json"): + with open("frabjousish.json", "w") as fra: + frab = { + "frabjousish": ["frabjousish", "frabjousish"] + } + json.dump(frab, fra, indent=1) + + with open("frabjousish.json", "r") as fra: + json_file = fra.read() + data2 = json.loads(json_file) + datap = data2["frabjousish"][-1] + datap2 = data2["frabjousish"][-2] +# type(datap) + + if request.method == 'GET': + return render_template("index2.html", datap=datap, datap2=datap2) + + else: + if ".wav" in datap: + spel = request.form.get('spel') + + with open("frabjousish.json", "r+") as jsonFile: + data = json.load(jsonFile) + data["frabjousish"].append(spel) + + with open("frabjousish.json", "w") as jsonFile: + json.dump(data, jsonFile, indent=1) + + with open("frabjousish.json", "r") as f: + json_file = f.read() + database = json.loads(json_file) + response = database["frabjousish"] + return render_template("index3.html", database = database, response = response, datap=datap, data2=data2) + +# else: +# if request.method == "POST": +# f = request.files['audio_data'] +# filename = f.filename +# with open(f'{ filename }.wav', 'wb') as audio: +# f.save(audio) +# print(f'file uploaded successfully: { filename }.wav') + +# with open("frabjousish.json", "r+") as jsonFile: +# data = json.load(jsonFile) +# data["frabjousish"].append(filename+".wav") + +# with open("frabjousish.json", "w") as jsonFile: +# json.dump(data, jsonFile, indent=1) + +# return render_template('index3.html', datap=datap) +# else: +# return render_template("index3.html") + + +@app.route("/upload/", methods=['POST']) +def game_post(): + if request.method == "POST": + f = request.files['audio_data'] + filename = f.filename + with open(f'{ filename }.wav', 'wb') as audio: + f.save(audio) + print(f'file uploaded successfully: { filename }.wav') + + with open("frabjousish.json", "r+") as jsonFile: + data = json.load(jsonFile) + data["frabjousish"].append(filename+".wav") + + with open("frabjousish.json", "w") as jsonFile: + json.dump(data, jsonFile, indent=1) + return "uploaded" + +@app.route("/g1/", methods=['POST', 'GET']) +def game2(): + + print("shusho.json") + print(os.path.exists("shusho.json")) + if not os.path.exists("shusho.json"): + with open("shusho.json", "w") as fra: + frab = { + "shusho": ["shusho", "shusho"] + } + json.dump(frab, fra, indent=1) + + with open("shusho.json", "r") as fra: + json_file = fra.read() + data2 = json.loads(json_file) + datap = data2["shusho"][-1] + datap2 = data2["shusho"][-2] +# type(datap) + + if request.method == 'GET': + return render_template("index4.html", datap=datap, datap2=datap2) + + else: + if ".wav" in datap: + spel = request.form.get('spel') + + with open("shusho.json", "r+") as jsonFile: + data = json.load(jsonFile) + data["shusho"].append(spel) + + with open("shusho.json", "w") as jsonFile: + json.dump(data, jsonFile, indent=1) + + with open("shusho.json", "r") as f: + json_file = f.read() + database = json.loads(json_file) + response = database["shusho"] + return render_template("index5.html", database = database, response = response, datap=datap, data2=data2) + + else: + if request.method == "POST": + f = request.files['audio_data'] + filename = f.filename + with open(f'{ filename }.wav', 'wb') as audio: + f.save(audio) + print(f'file uploaded successfully: { filename }.wav') + + with open("shusho.json", "r+") as jsonFile: + data = json.load(jsonFile) + data["shusho"].append(filename+".wav") + + with open("shusho.json", "w") as jsonFile: + json.dump(data, jsonFile, indent=1) + + return render_template('index5.html', request="POST", datap=datap) + else: + return render_template("index5.html") + + + +@app.route("/g2/", methods=['POST', 'GET']) +def game3(): + + print("t offut.json") + print(os.path.exists("t offut.json")) + if not os.path.exists("t offut.json"): + with open("t offut.json", "w") as fra: + frab = { + "t offut": ["t offut", "t offut"] + } + json.dump(frab, fra, indent=1) + + with open("t offut.json", "r") as fra: + json_file = fra.read() + data2 = json.loads(json_file) + datap = data2["t offut"][-1] + datap2 = data2["t offut"][-2] +# type(datap) + + if request.method == 'GET': + return render_template("index6.html", datap=datap, datap2=datap2) + + else: + if ".wav" in datap: + spel = request.form.get('spel') + + with open("t offut.json", "r+") as jsonFile: + data = json.load(jsonFile) + data["t offut"].append(spel) + + with open("t offut.json", "w") as jsonFile: + json.dump(data, jsonFile, indent=1) + + with open("t offut.json", "r") as f: + json_file = f.read() + database = json.loads(json_file) + response = database["t offut"] + return render_template("index7.html", database = database, response = response, datap=datap, data2=data2) + + else: + if request.method == "POST": + f = request.files['audio_data'] + filename = f.filename + with open(f'{ filename }.wav', 'wb') as audio: + f.save(audio) + print(f'file uploaded successfully: { filename }.wav') + + with open("t offut.json", "r+") as jsonFile: + data = json.load(jsonFile) + data["t offut"].append(filename+".wav") + + with open("t offut.json", "w") as jsonFile: + json.dump(data, jsonFile, indent=1) + + return render_template('index7.html', request="POST", datap=datap) + else: + return render_template("index7.html") + + +if __name__ == "__main__": + + app.run(debug=True, port=5050) + + \ No newline at end of file diff --git a/record_main/shusho.json b/record_main/shusho.json new file mode 100644 index 0000000..5ac94b5 --- /dev/null +++ b/record_main/shusho.json @@ -0,0 +1,19 @@ +{ + "shusho": [ + "shusho", + "shusho", + "2022-06-13T19:12:24.264Z.wav", + "chouchau", + "2022-06-13T19:24:45.263Z.wav", + "Chocho", + "2022-06-13T19:44:02.689Z.wav", + "chocho", + "2022-06-13T22:35:12.067Z.wav", + "chock chock", + "2022-06-13T22:35:12.067Z.wav", + "tchotchop", + "2022-06-19T12:03:18.841Z.wav", + "peuzau", + "2022-06-20T08:58:28.203Z.wav" + ] +} \ No newline at end of file diff --git a/record_main/static/js/app.js b/record_main/static/js/app.js new file mode 100644 index 0000000..7fe9103 --- /dev/null +++ b/record_main/static/js/app.js @@ -0,0 +1,174 @@ +// Source: https://stackoverflow.com/questions/60032983/record-voice-with-recorder-js-and-upload-it-to-python-flask-server-but-wav-file + +//webkitURL is deprecated but nevertheless +URL = window.URL || window.webkitURL; + +var gumStream; //stream from getUserMedia() +var rec; //Recorder.js object +var input; //MediaStreamAudioSourceNode we'll be recording + +// shim for AudioContext when it's not avb. +var AudioContext = window.AudioContext || window.webkitAudioContext; +var audioContext //audio context to help us record + +var recordButton = document.getElementById("recordButton"); +var stopButton = document.getElementById("stopButton"); +var pauseButton = document.getElementById("pauseButton"); + +//add events to those 2 buttons +recordButton.addEventListener("click", startRecording); +stopButton.addEventListener("click", stopRecording); +pauseButton.addEventListener("click", pauseRecording); + +function startRecording() { + console.log("recordButton clicked"); + + /* + Simple constraints object, for more advanced audio features see + https://addpipe.com/blog/audio-constraints-getusermedia/ + */ + + var constraints = { audio: true, video:false } + + /* + Disable the record button until we get a success or fail from getUserMedia() + */ + + recordButton.disabled = true; + stopButton.disabled = false; + pauseButton.disabled = false + + /* + We're using the standard promise based getUserMedia() + https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia + */ + + navigator.mediaDevices.getUserMedia(constraints).then(function(stream) { + console.log("getUserMedia() success, stream created, initializing Recorder.js ..."); + + /* + create an audio context after getUserMedia is called + sampleRate might change after getUserMedia is called, like it does on macOS when recording through AirPods + the sampleRate defaults to the one set in your OS for your playback device + + */ + audioContext = new AudioContext(); + + //update the format + //document.getElementById("formats").innerHTML="Format: 1 channel pcm @ "+audioContext.sampleRate/1000+"kHz" + + /* assign to gumStream for later use */ + gumStream = stream; + + /* use the stream */ + input = audioContext.createMediaStreamSource(stream); + + /* + Create the Recorder object and configure to record mono sound (1 channel) + Recording 2 channels will double the file size + */ + rec = new Recorder(input,{numChannels:1}) + + //start the recording process + rec.record() + + console.log("Recording started"); + + }).catch(function(err) { + //enable the record button if getUserMedia() fails + recordButton.disabled = false; + stopButton.disabled = true; + pauseButton.disabled = true + }); +} + +function pauseRecording(){ + console.log("pauseButton clicked rec.recording=",rec.recording ); + if (rec.recording){ + //pause + rec.stop(); + pauseButton.innerHTML="Resume"; + }else{ + //resume + rec.record() + pauseButton.innerHTML="Pause"; + + } +} + +function stopRecording() { + console.log("stopButton clicked"); + + //disable the stop button, enable the record too allow for new recordings + stopButton.disabled = true; + recordButton.disabled = false; + pauseButton.disabled = true; + + //reset button just in case the recording is stopped while paused + pauseButton.innerHTML="Pause"; + + //tell the recorder to stop the recording + rec.stop(); + + //stop microphone access + gumStream.getAudioTracks()[0].stop(); + + //create the wav blob and pass it on to createDownloadLink + rec.exportWAV(createDownloadLink); +} + +function createDownloadLink(blob) { + + var url = URL.createObjectURL(blob); + var au = document.createElement('audio'); + var li = document.createElement('li'); + var link = document.createElement('a'); + + //name of .wav file to use during upload and download (without extendion) + var filename = new Date().toISOString(); + console.log('filename', filename) + + //add controls to the