Exemplo n.º 1
0
func Submit(c *middleware.Context) {
	if c.Req.Method == "POST" {
		submitPost(c)
		return
	}
	c.HTML(200, "catalog/submit")
}
Exemplo n.º 2
0
func Upload(c *middleware.Context) {
	c.Req.ParseMultipartForm(32 << 20)
	file, _, err := c.Req.FormFile("uploadfile")
	if err != nil {
		fmt.Println(err)
		return
	}
	defer file.Close()

	name := uuid.NewV4().String()

	//.fmt.Fprintf(w, "%v", handler.Header)
	err = os.MkdirAll("data/uploads/"+makePaths(name), 0777)
	if err != nil {
		return
	}
	f, err := os.OpenFile("data/uploads/"+makePaths(name)+"/"+name, os.O_WRONLY|os.O_CREATE, 0777)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer f.Close()
	io.Copy(f, file)
	c.JSON(200, makePaths(name))
}
Exemplo n.º 3
0
func Screen(c *middleware.Context) {
	id := c.ParamsInt64(":id")
	name, e := screen(id)
	if e != nil {
		color.Red("%s", e)
	}
	c.Redirect("/" + makePaths(name) + "/" + name)
}
Exemplo n.º 4
0
func Show(c *middleware.Context) {
	site, e := models.GetSite(c.ParamsInt64(":id"))
	if e != nil {
		color.Red("%s", e)
	}
	go models.SiteFetchNewFeed(site.Id)
	c.Data["site"] = site
	c.Data["Title"] = site.Title
	c.HTML(200, "catalog/show")
}
Exemplo n.º 5
0
func SetFeed(c *middleware.Context) {
	id := c.ParamsInt64(":id")
	val := c.Query("hf")
	hf := false
	if val == "1" {
		hf = true
	}
	e := models.SiteSetHasFeed(id, hf)
	if e != nil {
		c.Flash.Error(e.Error())
	}
	c.Redirect(c.URLFor("cat_item", ":id", c.Params(":id")))
}
Exemplo n.º 6
0
func FeedShow(c *middleware.Context) {
	sf, e := models.GetSiteFeedItem(c.ParamsInt64(":feedId"))
	if e != nil {
		color.Red("%s", e)
	}
	a, e := linkpreview.Articler.ParseArticle(sf.Source, []byte(sf.Body))
	if e != nil {
		color.Red("%s", e)
	}
	if !sf.Published.Equal(a.Published.In(time.Now().Location())) {
		sf.Published = a.Published.In(time.Now().Location())
		models.SaveSiteFeed(sf)
	}
	sf.Body = a.Text
	c.Data["feed"] = sf
	c.HTML(200, "catalog/feedshow")
}
Exemplo n.º 7
0
func Resize(c *middleware.Context) {
	w := c.QueryInt("width")
	p := c.Req.URL.Path
	color.Green("[path] %s", p)
	target := strings.TrimPrefix(p, "/resize")
	if strings.HasPrefix(target, "/cat/screen/") {
		var id int64
		fmt.Sscanf(target, "/cat/screen/%d?width=", &id)
		name, e := screen(id)
		if e != nil {
			color.Red("%s", e)
			return
		}
		target = name
	}
	savePath := "data/public/resize/" + com.ToStr(w) + "/" + target + ".jpg"
	if com.IsFile(savePath) {
		f, e := os.Open(savePath)
		if e != nil {
			color.Red("%s", e)
		}
		c.Resp.Header().Set("Content-Type", "image/jpeg")
		io.Copy(c.Resp, f)
		return
	}

	img, e := imaging.Open(filepath.Join("data/uploads", target))
	if e != nil {
		color.Red("%s", e)
		return
	}
	i := resize.Resize(uint(w), uint(w/2), img, resize.Bilinear)
	dir := filepath.Dir(target)
	os.MkdirAll(filepath.Join("data/public/resize/"+com.ToStr(w)+"/", dir), 0777)
	e = imaging.Save(i, savePath)
	if e != nil {
		color.Red("%s", e)
	}
	c.Resp.Header().Set("Content-Type", "image/jpeg")
	e = jpeg.Encode(c.Resp, i, nil)
	if e != nil {
		color.Red("%s", e)
	}
	//c.Redirect("/public/resize/" + com.ToStr(w) + "/" + target + ".jpg")
}
Exemplo n.º 8
0
func AllFeedJSON(c *middleware.Context) {
	p := c.QueryInt("p")
	if p < 1 {
		p = 1
	}
	feed, e := models.GetFeed(p)
	if e != nil {
		color.Red("%s", e)
	}

	/*cnt, e := models.FeedCount()
	if e != nil {
		color.Red("%s", e)
	}*/

	c.Data["feed"] = feed
	//c.Data["paginater"] = paginater.New(int(cnt), 10, p, 5)
	c.JSON(200, feed)
}
Exemplo n.º 9
0
func AllFeed(c *middleware.Context) {
	p := c.ParamsInt(":p")
	if p < 1 {
		p = 1
	}
	feed, e := models.GetFeed(p)
	if e != nil {
		color.Red("%s", e)
	}

	cnt, e := models.FeedCount()
	if e != nil {
		color.Red("%s", e)
	}

	c.Data["feed"] = feed
	c.Data["paginater"] = paginater.New(int(cnt), 10, p, 5)
	c.HTML(200, "catalog/feed")
}
Exemplo n.º 10
0
func Index(c *middleware.Context) {
	var (
		p = c.ParamsInt(":p")
	)
	sites, e := models.SiteList(p)
	if e != nil {
		color.Red("%s", e)
	}

	cnt, e := models.SiteCount()
	if e != nil {
		color.Red("%s", e)
	}

	c.Data["sites"] = sites
	c.Data["sites_count"] = cnt
	c.Data["paginater"] = paginater.New(int(cnt), 10, p, 5)
	c.HTML(200, "catalog/index")
}
Exemplo n.º 11
0
func Feed(c *middleware.Context) {
	sid := c.ParamsInt64(":id")
	p := c.ParamsInt(":p")
	if p < 1 {
		p = 1
	}
	feed, e := models.GetSiteFeed(sid, p)
	if e != nil {
		color.Red("%s", e)
	}

	cnt, e := models.SiteFeedCount(sid)
	if e != nil {
		color.Red("%s", e)
	}

	c.Data["feed"] = feed
	c.Data["paginater"] = paginater.New(int(cnt), 10, p, 5)
	c.Data["SiteId"] = sid
	c.HTML(200, "catalog/feed")
}
Exemplo n.º 12
0
func submitPost(c *middleware.Context) {

	s, e := models.NewSite(c.Query("link"), c.Query("title"))
	if e != nil {
		c.Flash.Error(e.Error(), true)
		if c.QueryInt("ajax") == 1 {
			c.JSON(200, e.Error())
			return
		}
		c.HTML(200, "catalog/submit")
		return
	}

	c.Flash.Success(fmt.Sprintf("%d  добавлен", s.Id), true)
	if c.QueryInt("ajax") == 1 {
		c.JSON(200, fmt.Sprintf("%d  добавлен", s.Id))
		return
	}
	c.HTML(200, "catalog/submit")
}
Exemplo n.º 13
0
func Home(c *middleware.Context) {
	c.HTML(200, "home")
}