reprogl

Форк
0
/
clacks.go 
46 строк · 925.0 Байт
1
package middlewares
2

3
import (
4
	"math/rand"
5
	"net/http"
6

7
	"xelbot.com/reprogl/utils/transliterator"
8
)
9

10
type ClacksSet []string
11

12
func (c ClacksSet) Name() string {
13
	return "GNU " + c[rand.Intn(len(c))]
14
}
15

16
func (c ClacksSet) Middleware(next http.Handler) http.Handler {
17
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
18
		w.Header().Add("X-Clacks-Overhead", c.Name())
19

20
		next.ServeHTTP(w, r)
21
	})
22
}
23

24
func Clacks() ClacksSet {
25
	data := []string{
26
		"Terry Pratchett",
27
		"Clive Sinclair",
28
		"Николай Заманов",
29
		"Владлен Татарский",
30
		"Арсен Павлов",
31
		"Михаил Толстых",
32
		"Олесь Бузина",
33
		"Алексей Мозговой",
34
		"Robert Sheckley",
35
		"Robert Anson Heinlein",
36
		"Dennis Ritchie",
37
		"Niklaus Wirth",
38
	}
39

40
	tData := make(ClacksSet, len(data))
41
	for i, d := range data {
42
		tData[i] = transliterator.Transliterate(d)
43
	}
44

45
	return tData
46
}
47

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.