mirror of
https://github.com/vbatts/imgsrv.git
synced 2024-12-24 23:06:31 +00:00
moved types out to a package
This commit is contained in:
parent
d80427788d
commit
967daf48b2
4 changed files with 21 additions and 18 deletions
|
@ -2,12 +2,13 @@ package main
|
|||
|
||||
import (
|
||||
"github.com/vbatts/imgsrv/hash"
|
||||
"github.com/vbatts/imgsrv/types"
|
||||
"labix.org/v2/mgo/bson"
|
||||
)
|
||||
|
||||
/* gfs is a *mgo.GridFS defined in imgsrv.go */
|
||||
|
||||
func GetFileByFilename(filename string) (this_file File, err error) {
|
||||
func GetFileByFilename(filename string) (this_file types.File, err error) {
|
||||
err = gfs.Find(bson.M{"filename": filename}).One(&this_file)
|
||||
if err != nil {
|
||||
return this_file, err
|
||||
|
@ -15,7 +16,7 @@ func GetFileByFilename(filename string) (this_file File, err error) {
|
|||
return this_file, nil
|
||||
}
|
||||
|
||||
func GetFileRandom() (this_file File, err error) {
|
||||
func GetFileRandom() (this_file types.File, err error) {
|
||||
r := hash.Rand64()
|
||||
err = gfs.Find(bson.M{"random": bson.M{"$gt": r}}).One(&this_file)
|
||||
if err != nil {
|
||||
|
@ -30,7 +31,7 @@ func GetFileRandom() (this_file File, err error) {
|
|||
return this_file, nil
|
||||
}
|
||||
|
||||
/* Check whether this File filename is on Mongo */
|
||||
/* Check whether this types.File filename is on Mongo */
|
||||
func HasFileByFilename(filename string) (exists bool, err error) {
|
||||
c, err := gfs.Find(bson.M{"filename": filename}).Count()
|
||||
if err != nil {
|
||||
|
|
|
@ -2,6 +2,7 @@ package main
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/vbatts/imgsrv/types"
|
||||
"io"
|
||||
"text/template"
|
||||
)
|
||||
|
@ -183,7 +184,7 @@ func UploadPage(w io.Writer) (err error) {
|
|||
return err
|
||||
}
|
||||
|
||||
// main context of this page
|
||||
// main context of this page
|
||||
err = formFileUploadTemplate.Execute(w, &emptyInterface)
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -196,7 +197,7 @@ func UploadPage(w io.Writer) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
func ImageViewPage(w io.Writer, file File) (err error) {
|
||||
func ImageViewPage(w io.Writer, file types.File) (err error) {
|
||||
err = headTemplate.Execute(w, map[string]string{"title": "FileSrv"})
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -222,7 +223,7 @@ func ImageViewPage(w io.Writer, file File) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
func ListFilesPage(w io.Writer, files []File) (err error) {
|
||||
func ListFilesPage(w io.Writer, files []types.File) (err error) {
|
||||
err = headTemplate.Execute(w, map[string]string{"title": "FileSrv"})
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -236,7 +237,7 @@ func ListFilesPage(w io.Writer, files []File) (err error) {
|
|||
return err
|
||||
}
|
||||
|
||||
// main context of this page
|
||||
// main context of this page
|
||||
err = listTemplate.Execute(w, files)
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
21
server.go
21
server.go
|
@ -3,6 +3,7 @@ package main
|
|||
import (
|
||||
"fmt"
|
||||
"github.com/vbatts/imgsrv/hash"
|
||||
"github.com/vbatts/imgsrv/types"
|
||||
"io"
|
||||
"labix.org/v2/mgo"
|
||||
"labix.org/v2/mgo/bson"
|
||||
|
@ -123,7 +124,7 @@ func routeViewsGET(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
w.Header().Set("Content-Type", "text/html")
|
||||
if len(uriChunks) == 2 && len(uriChunks[1]) > 0 {
|
||||
var file File
|
||||
var file types.File
|
||||
err := gfs.Find(bson.M{"filename": uriChunks[1]}).One(&file)
|
||||
if err != nil {
|
||||
serverErr(w, r, err)
|
||||
|
@ -209,7 +210,7 @@ func routeFilesPOST(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
|
||||
var filename string
|
||||
info := Info{
|
||||
info := types.Info{
|
||||
Ip: r.RemoteAddr,
|
||||
Random: hash.Rand64(),
|
||||
TimeStamp: time.Now(),
|
||||
|
@ -286,7 +287,7 @@ func routeFilesPOST(w http.ResponseWriter, r *http.Request) {
|
|||
return
|
||||
}
|
||||
|
||||
var mInfo Info
|
||||
var mInfo types.Info
|
||||
err = file.GetMeta(&mInfo)
|
||||
if err != nil {
|
||||
log.Printf("ERROR: failed to get metadata for %s. %s\n", filename, err)
|
||||
|
@ -383,7 +384,7 @@ func routeRoot(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
w.Header().Set("Content-Type", "text/html")
|
||||
//iter := gfs.Find(bson.M{"uploadDate": bson.M{"$gt": time.Now().Add(-time.Hour)}}).Limit(defaultPageLimit).Iter()
|
||||
var files []File
|
||||
var files []types.File
|
||||
err := gfs.Find(nil).Sort("-metadata.timestamp").Limit(defaultPageLimit).All(&files)
|
||||
if err != nil {
|
||||
serverErr(w, r, err)
|
||||
|
@ -406,7 +407,7 @@ func routeAll(w http.ResponseWriter, r *http.Request) {
|
|||
w.Header().Set("Content-Type", "text/html")
|
||||
|
||||
// Show a page of all the images
|
||||
var files []File
|
||||
var files []types.File
|
||||
err := gfs.Find(nil).All(&files)
|
||||
if err != nil {
|
||||
serverErr(w, r, err)
|
||||
|
@ -454,7 +455,7 @@ func routeKeywords(w http.ResponseWriter, r *http.Request) {
|
|||
iter = gfs.Find(bson.M{"metadata.keywords": uriChunks[1]}).Sort("-metadata.timestamp").Limit(defaultPageLimit).Iter()
|
||||
}
|
||||
|
||||
var files []File
|
||||
var files []types.File
|
||||
err := iter.All(&files)
|
||||
if err != nil {
|
||||
serverErr(w, r, err)
|
||||
|
@ -481,7 +482,7 @@ func routeMD5s(w http.ResponseWriter, r *http.Request) {
|
|||
return
|
||||
}
|
||||
|
||||
var files []File
|
||||
var files []types.File
|
||||
err := gfs.Find(bson.M{"md5": uriChunks[1]}).Sort("-metadata.timestamp").Limit(defaultPageLimit).All(&files)
|
||||
if err != nil {
|
||||
serverErr(w, r, err)
|
||||
|
@ -537,10 +538,10 @@ func routeGetFromUrl(w http.ResponseWriter, r *http.Request) {
|
|||
stored_filename string
|
||||
local_filename string
|
||||
useRandName bool = false
|
||||
info Info
|
||||
info types.Info
|
||||
)
|
||||
|
||||
info = Info{
|
||||
info = types.Info{
|
||||
Ip: r.RemoteAddr,
|
||||
Random: hash.Rand64(),
|
||||
TimeStamp: time.Now(),
|
||||
|
@ -637,7 +638,7 @@ func routeUpload(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
|
||||
if r.Method == "POST" {
|
||||
info := Info{
|
||||
info := types.Info{
|
||||
Ip: r.RemoteAddr,
|
||||
Random: hash.Rand64(),
|
||||
TimeStamp: time.Now(),
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package main
|
||||
package types
|
||||
|
||||
import (
|
||||
"mime"
|
Loading…
Reference in a new issue