-
-
Save chakrit/67b0a0da0c7b3f6a8dca3c7d0c93a67d to your computer and use it in GitHub Desktop.
gov-project-generator
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"crypto/rand" | |
"encoding/binary" | |
"encoding/json" | |
"io/ioutil" | |
"log" | |
"net/http" | |
"strings" | |
) | |
const SourceURL = "https://gist.githubusercontent.com/narze/344c8b39212438114fee1f5bd2984027/raw/7a2c2965bd7331b7d346cf50e9429a35bfdfdf8e/output.txt" | |
type NameResponse struct { | |
Name string `json:"name"` | |
} | |
type Result struct { | |
Success bool `json:"success"` | |
HTTPCode int `json:"code"` | |
Error string `json:"error,omitempty"` | |
Data *NameResponse | |
} | |
func main() { | |
http.ListenAndServe(":8000", http.HandlerFunc(Index)) | |
} | |
func Index(resp http.ResponseWriter, r *http.Request) { | |
log.Println(r.Method, r.URL) | |
result := Result{} | |
if name, err := RandName(); err != nil { | |
result = Result{ | |
Success: false, | |
Error: err.Error(), | |
HTTPCode: 500, | |
Data: nil, | |
} | |
} else { | |
result = Result{ | |
Success: true, | |
HTTPCode: 200, | |
Data: &NameResponse{Name: name}, | |
} | |
} | |
resp.WriteHeader(result.HTTPCode) | |
if err := json.NewEncoder(resp).Encode(result); err != nil { | |
log.Println("I/O err:", err) | |
} | |
} | |
func RandName() (string, error) { | |
resp, err := http.Get(SourceURL) | |
if err != nil { | |
return "", err | |
} | |
txt, err := ioutil.ReadAll(resp.Body) | |
if err != nil { | |
return "", err | |
} | |
entries := strings.Split(string(txt), "\n") | |
entries = entries[1:] // skip first line, which is a comment | |
idx := uint32(0) | |
if err := binary.Read(rand.Reader, binary.BigEndian, &idx); err != nil { | |
return "", err | |
} | |
return entries[int(idx)%len(entries)], nil | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sub = %w[เรา หมอ ชาติ ไทย] | |
verb = %w[รัก มี เที่ยว ชนะ ชิม ช้อป ใช้] | |
obj = %w[เรา กัน ไทย ด้วยกัน ชาติ หมอ] | |
puts sub.product(verb).map(&:join).sort | |
puts sub.product(verb, obj).map(&:join).sort |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// With obj | |
ชาติชนะ | |
ชาติชิม | |
ชาติช้อป | |
ชาติมี | |
ชาติรัก | |
ชาติเที่ยว | |
ชาติใช้ | |
หมอชนะ | |
หมอชิม | |
หมอช้อป | |
หมอมี | |
หมอรัก | |
หมอเที่ยว | |
หมอใช้ | |
เราชนะ | |
เราชิม | |
เราช้อป | |
เรามี | |
เรารัก | |
เราเที่ยว | |
เราใช้ | |
ไทยชนะ | |
ไทยชิม | |
ไทยช้อป | |
ไทยมี | |
ไทยรัก | |
ไทยเที่ยว | |
ไทยใช้ | |
// Without obj | |
ชาติชนะกัน | |
ชาติชนะชาติ | |
ชาติชนะด้วยกัน | |
ชาติชนะหมอ | |
ชาติชนะเรา | |
ชาติชนะไทย | |
ชาติชิมกัน | |
ชาติชิมชาติ | |
ชาติชิมด้วยกัน | |
ชาติชิมหมอ | |
ชาติชิมเรา | |
ชาติชิมไทย | |
ชาติช้อปกัน | |
ชาติช้อปชาติ | |
ชาติช้อปด้วยกัน | |
ชาติช้อปหมอ | |
ชาติช้อปเรา | |
ชาติช้อปไทย | |
ชาติมีกัน | |
ชาติมีชาติ | |
ชาติมีด้วยกัน | |
ชาติมีหมอ | |
ชาติมีเรา | |
ชาติมีไทย | |
ชาติรักกัน | |
ชาติรักชาติ | |
ชาติรักด้วยกัน | |
ชาติรักหมอ | |
ชาติรักเรา | |
ชาติรักไทย | |
ชาติเที่ยวกัน | |
ชาติเที่ยวชาติ | |
ชาติเที่ยวด้วยกัน | |
ชาติเที่ยวหมอ | |
ชาติเที่ยวเรา | |
ชาติเที่ยวไทย | |
ชาติใช้กัน | |
ชาติใช้ชาติ | |
ชาติใช้ด้วยกัน | |
ชาติใช้หมอ | |
ชาติใช้เรา | |
ชาติใช้ไทย | |
หมอชนะกัน | |
หมอชนะชาติ | |
หมอชนะด้วยกัน | |
หมอชนะหมอ | |
หมอชนะเรา | |
หมอชนะไทย | |
หมอชิมกัน | |
หมอชิมชาติ | |
หมอชิมด้วยกัน | |
หมอชิมหมอ | |
หมอชิมเรา | |
หมอชิมไทย | |
หมอช้อปกัน | |
หมอช้อปชาติ | |
หมอช้อปด้วยกัน | |
หมอช้อปหมอ | |
หมอช้อปเรา | |
หมอช้อปไทย | |
หมอมีกัน | |
หมอมีชาติ | |
หมอมีด้วยกัน | |
หมอมีหมอ | |
หมอมีเรา | |
หมอมีไทย | |
หมอรักกัน | |
หมอรักชาติ | |
หมอรักด้วยกัน | |
หมอรักหมอ | |
หมอรักเรา | |
หมอรักไทย | |
หมอเที่ยวกัน | |
หมอเที่ยวชาติ | |
หมอเที่ยวด้วยกัน | |
หมอเที่ยวหมอ | |
หมอเที่ยวเรา | |
หมอเที่ยวไทย | |
หมอใช้กัน | |
หมอใช้ชาติ | |
หมอใช้ด้วยกัน | |
หมอใช้หมอ | |
หมอใช้เรา | |
หมอใช้ไทย | |
เราชนะกัน | |
เราชนะชาติ | |
เราชนะด้วยกัน | |
เราชนะหมอ | |
เราชนะเรา | |
เราชนะไทย | |
เราชิมกัน | |
เราชิมชาติ | |
เราชิมด้วยกัน | |
เราชิมหมอ | |
เราชิมเรา | |
เราชิมไทย | |
เราช้อปกัน | |
เราช้อปชาติ | |
เราช้อปด้วยกัน | |
เราช้อปหมอ | |
เราช้อปเรา | |
เราช้อปไทย | |
เรามีกัน | |
เรามีชาติ | |
เรามีด้วยกัน | |
เรามีหมอ | |
เรามีเรา | |
เรามีไทย | |
เรารักกัน | |
เรารักชาติ | |
เรารักด้วยกัน | |
เรารักหมอ | |
เรารักเรา | |
เรารักไทย | |
เราเที่ยวกัน | |
เราเที่ยวชาติ | |
เราเที่ยวด้วยกัน | |
เราเที่ยวหมอ | |
เราเที่ยวเรา | |
เราเที่ยวไทย | |
เราใช้กัน | |
เราใช้ชาติ | |
เราใช้ด้วยกัน | |
เราใช้หมอ | |
เราใช้เรา | |
เราใช้ไทย | |
ไทยชนะกัน | |
ไทยชนะชาติ | |
ไทยชนะด้วยกัน | |
ไทยชนะหมอ | |
ไทยชนะเรา | |
ไทยชนะไทย | |
ไทยชิมกัน | |
ไทยชิมชาติ | |
ไทยชิมด้วยกัน | |
ไทยชิมหมอ | |
ไทยชิมเรา | |
ไทยชิมไทย | |
ไทยช้อปกัน | |
ไทยช้อปชาติ | |
ไทยช้อปด้วยกัน | |
ไทยช้อปหมอ | |
ไทยช้อปเรา | |
ไทยช้อปไทย | |
ไทยมีกัน | |
ไทยมีชาติ | |
ไทยมีด้วยกัน | |
ไทยมีหมอ | |
ไทยมีเรา | |
ไทยมีไทย | |
ไทยรักกัน | |
ไทยรักชาติ | |
ไทยรักด้วยกัน | |
ไทยรักหมอ | |
ไทยรักเรา | |
ไทยรักไทย | |
ไทยเที่ยวกัน | |
ไทยเที่ยวชาติ | |
ไทยเที่ยวด้วยกัน | |
ไทยเที่ยวหมอ | |
ไทยเที่ยวเรา | |
ไทยเที่ยวไทย | |
ไทยใช้กัน | |
ไทยใช้ชาติ | |
ไทยใช้ด้วยกัน | |
ไทยใช้หมอ | |
ไทยใช้เรา | |
ไทยใช้ไทย |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment