Initial commit of Ocean's local development

This commit is contained in:
Thorsten Sommer committed 2014-04-26 11:18:56 +02:00
1 parent 9944a9e1df
commit 86451938ec
116 files changed
+3320

No files matched your search

+38
View File
@@ -0,0 +1,38 @@
package MimeTypes
var allTypes [32]MimeType
func init() {
allTypes[0] = TypeWebHTML
allTypes[1] = TypeWebCSS
allTypes[2] = TypeWebJavaScript
allTypes[3] = TypeXML
allTypes[4] = TypeArchiveZIP
allTypes[5] = TypeArchiveGZ
allTypes[6] = TypeWebOCTET
allTypes[7] = TypeDocumentPDF
allTypes[8] = TypeDocumentLaTeX
allTypes[9] = TypeShockwave
allTypes[10] = TypeArchiveTAR
allTypes[11] = TypeAudioWAV
allTypes[12] = TypeAudioMP3
allTypes[13] = TypeAudioAAC
allTypes[14] = TypeAudioOGG
allTypes[15] = TypeAudioWMA
allTypes[16] = TypeImageGIF
allTypes[17] = TypeImageCommon
allTypes[18] = TypeUnknown
allTypes[19] = TypeImageJPEG
allTypes[20] = TypeImagePNG
allTypes[21] = TypePlainText
allTypes[22] = TypeVideoMPEG
allTypes[23] = TypeVideoMOV
allTypes[24] = TypeVideoAVI
allTypes[25] = TypeVideoMP4
allTypes[26] = TypeFontEOT
allTypes[27] = TypeFontOTF
allTypes[28] = TypeImageSVG
allTypes[29] = TypeFontTTF
allTypes[30] = TypeFontWOFF
allTypes[31] = TypeWebJSON
}
+34
View File
@@ -0,0 +1,34 @@
package MimeTypes
var TypeWebHTML = MimeType{MimeType: "text/html", FileExtension: []string{".html", ".htm"}}
var TypeWebCSS = MimeType{MimeType: "text/css", FileExtension: []string{".css"}}
var TypeWebJavaScript = MimeType{MimeType: "text/javascript", FileExtension: []string{".js"}}
var TypeXML = MimeType{MimeType: "text/xml", FileExtension: []string{".xml"}}
var TypeArchiveZIP = MimeType{MimeType: "application/zip", FileExtension: []string{".zip"}}
var TypeArchiveGZ = MimeType{MimeType: "application/gzip", FileExtension: []string{".gz"}}
var TypeWebOCTET = MimeType{MimeType: "application/octet-stream", FileExtension: []string{".bin", ".exe", ".dll", ".class"}}
var TypeDocumentPDF = MimeType{MimeType: "application/pdf", FileExtension: []string{".pdf"}}
var TypeDocumentLaTeX = MimeType{MimeType: "application/x-latex", FileExtension: []string{".tex", ".latex"}}
var TypeShockwave = MimeType{MimeType: "application/x-shockwave-flash", FileExtension: []string{".swf"}}
var TypeArchiveTAR = MimeType{MimeType: "application/x-tar", FileExtension: []string{".tar"}}
var TypeAudioWAV = MimeType{MimeType: "application/x-wav", FileExtension: []string{".wav"}}
var TypeAudioMP3 = MimeType{MimeType: "audio/mpeg", FileExtension: []string{".mp3"}}
var TypeAudioAAC = MimeType{MimeType: "audio/aac", FileExtension: []string{".aac", ".m4a"}}
var TypeAudioOGG = MimeType{MimeType: "audio/ogg", FileExtension: []string{"vogg", ".oga"}}
var TypeAudioWMA = MimeType{MimeType: "audio/x-ms-wma", FileExtension: []string{".wma"}}
var TypeImageGIF = MimeType{MimeType: "image/gif", FileExtension: []string{".gif"}}
var TypeImageCommon = MimeType{MimeType: "image", FileExtension: []string{}}
var TypeUnknown = MimeType{MimeType: "application/octet-stream", FileExtension: []string{}}
var TypeImageJPEG = MimeType{MimeType: "image/jpeg", FileExtension: []string{".jpg", ".jpeg"}}
var TypeImagePNG = MimeType{MimeType: "image/png", FileExtension: []string{".png"}}
var TypePlainText = MimeType{MimeType: "text/plain", FileExtension: []string{".txt"}}
var TypeVideoMPEG = MimeType{MimeType: "video/mpeg", FileExtension: []string{".mpeg", ".mpg"}}
var TypeVideoMOV = MimeType{MimeType: "video/quicktime", FileExtension: []string{".mov", ".qt"}}
var TypeVideoAVI = MimeType{MimeType: "video/x-msvideo", FileExtension: []string{".avi"}}
var TypeVideoMP4 = MimeType{MimeType: "video/mp4", FileExtension: []string{".mp4"}}
var TypeFontEOT = MimeType{MimeType: "application/vnd.ms-fontobject", FileExtension: []string{".eot"}}
var TypeFontOTF = MimeType{MimeType: "application/font-sfnt", FileExtension: []string{".otf"}}
var TypeImageSVG = MimeType{MimeType: "image/svg+xml", FileExtension: []string{".svg"}}
var TypeFontTTF = MimeType{MimeType: "application/font-sfnt", FileExtension: []string{".ttf"}}
var TypeFontWOFF = MimeType{MimeType: "application/font-woff", FileExtension: []string{".woff"}}
var TypeWebJSON = MimeType{MimeType: "application/json", FileExtension: []string{".json"}}
+22
View File
@@ -0,0 +1,22 @@
package MimeTypes
import "strings"
type MimeType struct {
MimeType string
FileExtension []string
}
func DetectType(filename string) (mime MimeType, err error) {
for _, typeElement := range allTypes {
for _, extension := range typeElement.FileExtension {
if strings.HasSuffix(filename, extension) {
mime = typeElement
return
}
}
}
mime = TypeUnknown
return
}
+7
View File
@@ -0,0 +1,7 @@
package MimeTypes
import "net/http"
func Write2HTTP(response http.ResponseWriter, mime MimeType) {
response.Header().Add(`Content-Type`, mime.MimeType)
}