Changeset 18 in code
- Timestamp:
- Aug 31, 2023, 4:58:02 AM (22 months ago)
- Location:
- trunk/web
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/web/main.go
r17 r18 5 5 "net/http" 6 6 "net/url" 7 "time" 7 8 8 9 "codeberg.org/SimpleWeb/SimplyTranslate/engines" … … 15 16 app := fiber.New(fiber.Config{ 16 17 Views: engine, 18 }) 19 20 app.All("/", func(c *fiber.Ctx) error { 21 engine := c.Query("engine") 22 if _, ok := engines.Engines[engine]; !ok || engine == "" { 23 engine = "google" 24 } 25 targetLanguages, err := engines.Engines[engine].TargetLanguages() 26 if err != nil { 27 return c.SendStatus(500) 28 } 29 sourceLanguages, err := engines.Engines[engine].SourceLanguages() 30 if err != nil { 31 return c.SendStatus(500) 32 } 33 originalText := "" 34 translatedText := "" 35 from := "" 36 to := "" 37 ttsFrom := "" 38 ttsTo := "" 39 40 if c.Method() == "POST" { 41 from = c.FormValue("from") 42 to = c.FormValue("to") 43 originalText = c.FormValue("text") 44 if result, err := engines.Engines[engine].Translate(originalText, from, to); err != nil { 45 return c.SendStatus(500) 46 } else { 47 translatedText = result.TranslatedText 48 } 49 50 ttsFromURL, _ := url.Parse("api/tts") 51 fromQuery := url.Values{} 52 fromQuery.Add("lang", from) 53 fromQuery.Add("text", originalText) 54 ttsFromURL.RawQuery = fromQuery.Encode() 55 ttsFrom = ttsFromURL.String() 56 57 ttsToURL, _ := url.Parse("api/tts") 58 toQuery := url.Values{} 59 toQuery.Add("lang", to) 60 toQuery.Add("text", translatedText) 61 ttsToURL.RawQuery = toQuery.Encode() 62 ttsTo = ttsToURL.String() 63 64 fromCookie := new(fiber.Cookie) 65 fromCookie.Name = "from" 66 fromCookie.Value = from 67 fromCookie.Expires = time.Now().Add(24 * time.Hour * 365) 68 c.Cookie(fromCookie) 69 70 toCookie := new(fiber.Cookie) 71 toCookie.Name = "to" 72 toCookie.Value = to 73 toCookie.Expires = time.Now().Add(24 * time.Hour * 365) 74 c.Cookie(toCookie) 75 76 } else if c.Method() == "GET" { 77 from = c.Cookies("from") 78 to = c.Cookies("to") 79 } else { 80 return c.SendStatus(400) 81 } 82 return c.Render("index", fiber.Map{ 83 "Engine": engine, 84 "SourceLanguages": targetLanguages, 85 "TargetLanguages": sourceLanguages, 86 "OriginalText": originalText, 87 "TranslatedText": translatedText, 88 "From": from, 89 "To": to, 90 "TtsFrom": ttsFrom, 91 "TtsTo": ttsTo, 92 }) 17 93 }) 18 94 … … 72 148 }) 73 149 74 app.All("/", func(c *fiber.Ctx) error {75 engine := c.Query("engine")76 if _, ok := engines.Engines[engine]; !ok || engine == "" {77 engine = "google"78 }79 targetLanguages, err := engines.Engines[engine].TargetLanguages()80 if err != nil {81 return c.SendStatus(500)82 }83 sourceLanguages, err := engines.Engines[engine].SourceLanguages()84 if err != nil {85 return c.SendStatus(500)86 }87 originalText := ""88 translatedText := ""89 from := ""90 to := ""91 ttsFrom := ""92 ttsTo := ""93 94 if c.Method() == "POST" {95 from =96 c.FormValue("from")97 to = c.FormValue("to")98 originalText = c.FormValue("text")99 if result, err := engines.Engines[engine].Translate(originalText, from, to); err != nil {100 return c.SendStatus(500)101 } else {102 translatedText = result.TranslatedText103 }104 105 ttsFromURL, _ := url.Parse("api/tts")106 107 fromQuery := url.Values{}108 fromQuery.Add("lang", from)109 fromQuery.Add("text", originalText)110 ttsFromURL.RawQuery = fromQuery.Encode()111 ttsFrom = ttsFromURL.String()112 113 ttsToURL, _ := url.Parse("api/tts")114 115 toQuery := url.Values{}116 toQuery.Add("lang", to)117 toQuery.Add("text", translatedText)118 ttsToURL.RawQuery = toQuery.Encode()119 ttsTo = ttsToURL.String()120 121 }122 return c.Render("index", fiber.Map{123 "Engine": engine,124 "SourceLanguages": targetLanguages,125 "TargetLanguages": sourceLanguages,126 "OriginalText": originalText,127 "TranslatedText": translatedText,128 "From": from,129 "To": to,130 "TtsFrom": ttsFrom,131 "TtsTo": ttsTo,132 })133 })134 135 app.Static("/static", "./static")136 137 150 app.Get("/api/tts", func(c *fiber.Ctx) error { 138 151 engine := c.Query("engine") … … 164 177 } 165 178 } 179 166 180 }) 181 182 app.Static("/static", "./static") 167 183 168 184 app.Listen(":3000") -
trunk/web/static/style.css
r16 r18 29 29 width: 450px; 30 30 margin: 5px 10px; 31 gap: 10px; 31 32 } 32 33 -
trunk/web/views/index.html
r17 r18 18 18 </header> 19 19 20 <form method="POST" id="translation-form"> 21 22 <input type="hidden" name="engine" value="{{.Engine}}"> 20 <form action="/?engine={{.Engine}}" method="POST" id="translation-form"> 23 21 24 22 <div class="wrap languages">
Note:
See TracChangeset
for help on using the changeset viewer.