source: code/trunk/web/main.go@ 16

Last change on this file since 16 was 16, checked in by manerakai, 22 months ago

Added html template

File size: 2.7 KB
RevLine 
[9]1package main
2
3import (
4 "codeberg.org/SimpleWeb/SimplyTranslate/engines"
[15]5 "github.com/gofiber/fiber/v2"
[16]6 "github.com/gofiber/template/html/v2"
[9]7)
8
[15]9func main() {
[16]10 engine := html.New("./views", ".html")
11 app := fiber.New(fiber.Config{
12 Views: engine,
13 })
[9]14
[15]15 app.All("/api/translate", func(c *fiber.Ctx) error {
16 from := ""
17 to := ""
18 engine := ""
19 text := ""
20 if c.Method() == "GET" {
21 engine = c.Query("engine")
22 text = c.Query("text")
23 from = c.Query("from")
24 to = c.Query("to")
25 } else if c.Method() == "POST" {
26 engine = c.FormValue("engine")
27 text = c.FormValue("text")
28 from = c.FormValue("from")
29 to = c.FormValue("to")
30 } else {
31 return c.SendStatus(400)
32 }
[16]33 if _, ok := engines.Engines[engine]; !ok || engine == "" {
[15]34 engine = "google"
35 }
36 if to == "" {
37 return c.SendStatus(400)
38 }
39 if result, err := engines.Engines[engine].Translate(text, from, to); err != nil {
40 return c.SendStatus(500)
41 } else {
42 return c.JSON(result)
43 }
44 })
45
[16]46 app.Get("/api/source_languages", func(c *fiber.Ctx) error {
47 engine := c.Query("engine")
48 if _, ok := engines.Engines[engine]; !ok || engine == "" {
49 engine = "google"
50 }
51 if result, err := engines.Engines[engine].SourceLanguages(); err != nil {
52 return c.SendStatus(500)
53 } else {
54 return c.JSON(result)
55 }
56 })
57
58 app.Get("/api/target_languages", func(c *fiber.Ctx) error {
59 engine := c.Query("engine")
60 if _, ok := engines.Engines[engine]; !ok || engine == "" {
61 engine = "google"
62 }
63 if result, err := engines.Engines[engine].TargetLanguages(); err != nil {
64 return c.SendStatus(500)
65 } else {
66 return c.JSON(result)
67 }
68 })
69
70 app.All("/", func(c *fiber.Ctx) error {
71 engine := c.Query("engine")
72 if _, ok := engines.Engines[engine]; !ok || engine == "" {
73 engine = "google"
74 }
75 targetLanguages, err := engines.Engines[engine].TargetLanguages()
76 if err != nil {
77 return c.SendStatus(500)
78 }
79 sourceLanguages, err := engines.Engines[engine].SourceLanguages()
80 if err != nil {
81 return c.SendStatus(500)
82 }
83 originalText := ""
84 translatedText := ""
85 from := ""
86 to := ""
87
88 if c.Method() == "POST" {
89 from =
90 c.FormValue("from")
91 to = c.FormValue("to")
92 originalText = c.FormValue("text")
93 if result, err := engines.Engines[engine].Translate(originalText, from, to); err != nil {
94 return c.SendStatus(500)
95 } else {
96 translatedText = result.TranslatedText
97 }
98 }
99 return c.Render("index", fiber.Map{
100 "Engine": engine,
101 "SourceLanguages": targetLanguages,
102 "TargetLanguages": sourceLanguages,
103 "OriginalText": originalText,
104 "TranslatedText": translatedText,
105 "From": from,
106 "To": to,
107 })
108 })
109
110 app.Static("/static", "./static")
111
[15]112 app.Listen(":3000")
[9]113}
Note: See TracBrowser for help on using the repository browser.