Commit bf7cc1c4 authored by santiaago's avatar santiaago
Browse files

isogrids handle themes now #26

parent 4a9b4fde
Loading
Loading
Loading
Loading
+5 −8
Original line number Diff line number Diff line
@@ -27,18 +27,15 @@ func main() {
	r.HandleFunc("/squares/random", squares.Random)
	r.HandleFunc("/squares/:key", squares.Square) //cached

	r.HandleFunc("/isogrids/skeleton", isogrids.Skeleton)
	r.HandleFunc("/isogrids/:key", isogrids.Isogrids)
	r.HandleFunc("/isogrids/:colorId/:key", isogrids.Color)

	r.HandleFunc("/isogrids/diagonals", isogrids.Diagonals)
	r.HandleFunc("/isogrids/halfdiagonals", isogrids.HalfDiagonals)
	r.HandleFunc("/isogrids/gridbw", isogrids.GridBW)
	r.HandleFunc("/isogrids/grid2colors", isogrids.Grid2Colors)
	r.HandleFunc("/isogrids/labs/skeleton", isogrids.Skeleton)
	r.HandleFunc("/isogrids/labs/diagonals", isogrids.Diagonals)
	r.HandleFunc("/isogrids/labs/halfdiagonals", isogrids.HalfDiagonals)
	r.HandleFunc("/isogrids/labs/gridbw", isogrids.GridBW)
	r.HandleFunc("/isogrids/labs/grid2colors", isogrids.Grid2Colors)

	r.HandleFunc("/isogrids/random/:colorId", isogrids.RandomColor)
	r.HandleFunc("/isogrids/random", isogrids.Random)
	r.HandleFunc("/isogrids/random-mirror/:colorId", isogrids.RandomMirrorColor)
	r.HandleFunc("/isogrids/random-mirror", isogrids.RandomMirror)

	r.AddStaticResource(root)
+4 −4
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@
	<img class="featurette-image img-responsive img-thumbnail" src="/squares/tinygraphs" alt="consistent square black and white avatar">
      </div>
      <div class="col-md-3">
	<img class="featurette-image img-responsive img-thumbnail" src="/squares/6/tinygraphs" alt="consisent square color avatar">
	<img class="featurette-image img-responsive img-thumbnail" src="/squares/tinygraphs?theme=bythepool" alt="consisent square color avatar">
      </div>
    </div>
  </div> <!-- /.col-md-12 -->
@@ -35,16 +35,16 @@

<div class="row">
  <div class="col-md-3">
    <img class="featurette-image img-responsive img-thumbnail" src="/isogrids/skeleton" alt="grid image">
    <img class="featurette-image img-responsive img-thumbnail" src="/isogrids/labs/skeleton" alt="grid image">
  </div>
  <div class="col-md-3">
    <img class="featurette-image img-responsive img-thumbnail" src="/isogrids/random/1" alt="random black an white avatar">
    <img class="featurette-image img-responsive img-thumbnail" src="/isogrids/random?theme=sugarsweets" alt="random black an white avatar">
  </div>
  <div class="col-md-3">
    <img class="featurette-image img-responsive img-thumbnail" src="/isogrids/tinygraphs" alt="consistent square black and white avatar">
  </div>
  <div class="col-md-3">
    <img class="featurette-image img-responsive img-thumbnail" src="/isogrids/6/tinygraphs" alt="consisent square color avatar">
    <img class="featurette-image img-responsive img-thumbnail" src="/isogrids/tinygraphs?theme=duskfalling" alt="consisent square color avatar">
  </div>
</div>

+11 −43
Original line number Diff line number Diff line
@@ -7,10 +7,9 @@ import (
	"io"
	"log"
	"net/http"
	"strconv"

	"github.com/taironas/route"
	tgColors "github.com/taironas/tinygraphs/colors"
	"github.com/taironas/tinygraphs/colors"
	"github.com/taironas/tinygraphs/draw"
	"github.com/taironas/tinygraphs/extract"
	"github.com/taironas/tinygraphs/write"
@@ -30,51 +29,20 @@ func Isogrids(w http.ResponseWriter, r *http.Request) {
	io.WriteString(h, key)
	key = fmt.Sprintf("%x", h.Sum(nil)[:])

	colorMap := tgColors.MapOfColorPatterns()
	theme := extract.Theme(r)
	colorMap := colors.MapOfColorThemes()

	var bg, fg color.RGBA
	if bg, err = extract.Background(r); err != nil {
		bg = colorMap[0][0]
		bg = colorMap["base"][0]
	}
	if fg, err = extract.Foreground(r); err != nil {
		fg = colorMap[0][1]
	}
	size := extract.Size(r)
	write.ImageSVG(w)
	draw.Isogrids(w, key, bg, fg, size)
		fg = colorMap["base"][1]
	}

// Color is the handler for /isogrids/:colorId/:key
// builds a 10x10 grid with alternate colors based on the string passed in the url.
func Color(w http.ResponseWriter, r *http.Request) {
	var err error
	var id string
	if id, err = route.Context.Get(r, "colorId"); err != nil {
		log.Println("Unable to get 'colorId' value: ", err)
		id = "0"
	}

	var colorId int64
	if colorId, err = strconv.ParseInt(id, 0, 64); err != nil {
		colorId = 0
	}

	var key string
	if key, err = route.Context.Get(r, "key"); err != nil {
		log.Println("Unable to get 'key' value: ", err)
		key = ""
	}

	h := md5.New()
	io.WriteString(h, key)
	key = fmt.Sprintf("%x", h.Sum(nil)[:])

	colorMap := tgColors.MapOfColorPatterns()
	var bg, fg color.RGBA
	if bg, err = extract.Background(r); err != nil {
		bg = colorMap[int(colorId)][0]
	}
	if fg, err = extract.Foreground(r); err != nil {
		fg = colorMap[int(colorId)][1]
	if val, ok := colorMap[theme]; ok {
		bg = val[0]
		fg = val[1]
	}

	size := extract.Size(r)
@@ -84,7 +52,7 @@ func Color(w http.ResponseWriter, r *http.Request) {

func GridBW(w http.ResponseWriter, r *http.Request) {

	colorMap := tgColors.MapOfColorPatterns()
	colorMap := colors.MapOfColorPatterns()
	var err error
	var bg, fg color.RGBA
	if bg, err = extract.Background(r); err != nil {
@@ -100,7 +68,7 @@ func GridBW(w http.ResponseWriter, r *http.Request) {

func Grid2Colors(w http.ResponseWriter, r *http.Request) {

	colorMap := tgColors.MapOfColorPatterns()
	colorMap := colors.MapOfColorPatterns()
	var err error
	var bg, fg color.RGBA
	if bg, err = extract.Background(r); err != nil {
+8 −70
Original line number Diff line number Diff line
@@ -2,11 +2,8 @@ package isogrids

import (
	"image/color"
	"log"
	"net/http"
	"strconv"

	"github.com/taironas/route"
	"github.com/taironas/tinygraphs/colors"
	"github.com/taironas/tinygraphs/draw"
	"github.com/taironas/tinygraphs/extract"
@@ -15,83 +12,24 @@ import (

func Random(w http.ResponseWriter, r *http.Request) {

	colorMap := colors.MapOfColorPatterns()
	colorMap := colors.MapOfColorThemes()
	var err error
	theme := extract.Theme(r)

	var bg, fg color.RGBA
	if bg, err = extract.Background(r); err != nil {
		bg = colorMap[0][0]
		bg = colorMap["base"][0]
	}
	if fg, err = extract.Foreground(r); err != nil {
		fg = colorMap[0][1]
	}
	size := extract.Size(r)
	write.ImageSVG(w)
	draw.IsogridsRandom(w, "", bg, fg, size)
}

func RandomColor(w http.ResponseWriter, r *http.Request) {
	var err error
	var id string
	if id, err = route.Context.Get(r, "colorId"); err != nil {
		log.Println("Unable to get 'colorId' value: ", err)
		id = "0"
		fg = colorMap["base"][1]
	}

	var colorId int64
	if colorId, err = strconv.ParseInt(id, 0, 64); err != nil {
		colorId = 0
	if val, ok := colorMap[theme]; ok {
		bg = val[0]
		fg = val[1]
	}

	colorMap := colors.MapOfColorPatterns()
	bg, err1 := extract.Background(r)
	if err1 != nil {
		bg = colorMap[int(colorId)][0]
	}
	fg, err2 := extract.Foreground(r)
	if err2 != nil {
		fg = colorMap[int(colorId)][1]
	}
	size := extract.Size(r)
	write.ImageSVG(w)
	draw.IsogridsRandom(w, "", bg, fg, size)
}

func RandomMirror(w http.ResponseWriter, r *http.Request) {
	colorMap := colors.MapOfColorPatterns()
	bg, err1 := extract.Background(r)
	if err1 != nil {
		bg = colorMap[0][0]
	}
	fg, err2 := extract.Foreground(r)
	if err2 != nil {
		fg = colorMap[0][1]
	}
	size := extract.Size(r)
	write.ImageSVG(w)
	draw.IsogridsRandomMirror(w, "", bg, fg, size)
}

func RandomMirrorColor(w http.ResponseWriter, r *http.Request) {
	var err error
	var id string
	if id, err = route.Context.Get(r, "colorId"); err != nil {
		log.Println("Unable to get 'colorId' value: ", err)
		id = "0"
	}

	var colorId int64
	if colorId, err = strconv.ParseInt(id, 0, 64); err != nil {
		colorId = 0
	}
	colorMap := colors.MapOfColorPatterns()
	var bg, fg color.RGBA
	if bg, err = extract.Background(r); err != nil {
		bg = colorMap[int(colorId)][0]
	}
	if fg, err = extract.Foreground(r); err != nil {
		fg = colorMap[int(colorId)][1]
	}
	size := extract.Size(r)
	write.ImageSVG(w)
	draw.IsogridsRandomMirror(w, "", bg, fg, size)
}
+34 −0
Original line number Diff line number Diff line
package isogrids

import (
	"image/color"
	"net/http"

	"github.com/taironas/tinygraphs/colors"
	"github.com/taironas/tinygraphs/draw"
	"github.com/taironas/tinygraphs/extract"
	"github.com/taironas/tinygraphs/write"
)

func RandomMirror(w http.ResponseWriter, r *http.Request) {

	theme := extract.Theme(r)
	colorMap := colors.MapOfColorThemes()
	var err error
	var bg, fg color.RGBA
	if bg, err = extract.Background(r); err != nil {
		bg = colorMap["base"][0]
	}
	if fg, err = extract.Foreground(r); err != nil {
		fg = colorMap["base"][1]
	}

	if val, ok := colorMap[theme]; ok {
		bg = val[0]
		fg = val[1]
	}

	size := extract.Size(r)
	write.ImageSVG(w)
	draw.IsogridsRandomMirror(w, "", bg, fg, size)
}
Loading