作者:rahna
项目:gorea
func init() {
angular_ver := "1.0.7"
bootstrap_ver := "2.3.2"
font_awesome_ver := "3.2.1"
jquery_ver := "1.9.1"
jqueryui_ver := "1.10.3"
underscore_ver := "1.4.4"
isDevServer = appengine.IsDevAppServer()
if appengine.IsDevAppServer() {
Angular = fmt.Sprintf("/static/js/angular-%v.js", angular_ver)
BootstrapCss = fmt.Sprintf("/static/css/bootstrap-combined-no-icons-%v.css", bootstrap_ver)
BootstrapJs = fmt.Sprintf("/static/js/bootstrap-%v.js", bootstrap_ver)
FontAwesome = fmt.Sprintf("/static/css/font-awesome-%v.css", font_awesome_ver)
Jquery = fmt.Sprintf("/static/js/jquery-%v.js", jquery_ver)
JqueryUI = fmt.Sprintf("/static/js/jquery-ui-%v.js", jqueryui_ver)
Underscore = fmt.Sprintf("/static/js/underscore-%v.js", underscore_ver)
} else {
Angular = fmt.Sprintf("//ajax.googleapis.com/ajax/libs/angularjs/%v/angular.min.js", angular_ver)
BootstrapCss = fmt.Sprintf("//netdna.bootstrapcdn.com/twitter-bootstrap/%v/css/bootstrap-combined.no-icons.min.css", bootstrap_ver)
BootstrapJs = fmt.Sprintf("//netdna.bootstrapcdn.com/twitter-bootstrap/%v/js/bootstrap.min.js", bootstrap_ver)
FontAwesome = fmt.Sprintf("//netdna.bootstrapcdn.com/font-awesome/%v/css/font-awesome.min.css", font_awesome_ver)
Jquery = fmt.Sprintf("//ajax.googleapis.com/ajax/libs/jquery/%v/jquery.min.js", jquery_ver)
JqueryUI = fmt.Sprintf("//ajax.googleapis.com/ajax/libs/jqueryui/%v/jquery-ui.min.js", jqueryui_ver)
Underscore = fmt.Sprintf("/static/js/underscore-%v.min.js", underscore_ver)
}
}
作者:jgastei
项目:irakurrig
func init() {
angular_ver := "1.0.5"
bootstrap_ver := "2.3.2"
jquery_ver := "1.9.1"
jqueryui_ver := "1.10.3"
underscore_ver := "1.4.4"
isDevServer = appengine.IsDevAppServer()
if appengine.IsDevAppServer() {
Angular = fmt.Sprintf("/static/js/angular-%v.js", angular_ver)
BootstrapCss = fmt.Sprintf("/static/css/bootstrap-combined-%v.css", bootstrap_ver)
BootstrapJs = fmt.Sprintf("/static/js/bootstrap-%v.js", bootstrap_ver)
Jquery = fmt.Sprintf("/static/js/jquery-%v.js", jquery_ver)
JqueryUI = fmt.Sprintf("/static/js/jquery-ui-%v.js", jqueryui_ver)
SiteStyleCss = "/static/css/styles.css"
Underscore = fmt.Sprintf("/static/js/underscore-%v.js", underscore_ver)
} else {
Angular = fmt.Sprintf("//ajax.googleapis.com/ajax/libs/angularjs/%v/angular.min.js", angular_ver)
BootstrapCss = fmt.Sprintf("//netdna.bootstrapcdn.com/twitter-bootstrap/%v/css/bootstrap-combined.min.css", bootstrap_ver)
BootstrapJs = fmt.Sprintf("//netdna.bootstrapcdn.com/twitter-bootstrap/%v/js/bootstrap.min.js", bootstrap_ver)
Jquery = fmt.Sprintf("//ajax.googleapis.com/ajax/libs/jquery/%v/jquery.min.js", jquery_ver)
JqueryUI = fmt.Sprintf("//ajax.googleapis.com/ajax/libs/jqueryui/%v/jquery-ui.min.js", jqueryui_ver)
SiteStyleCss = "/static/css/styles.css"
Underscore = fmt.Sprintf("/static/js/underscore-%v.min.js", underscore_ver)
}
}
作者:kissthin
项目:gorea
func init() {
angular_ver := "1.2.1"
bootstrap_ver := "3.0.2"
font_awesome_ver := "4.0.3"
jquery_ver := "2.0.3"
jqueryui_ver := "1.10.3.sortable"
isDevServer = appengine.IsDevAppServer()
if appengine.IsDevAppServer() {
Angular = "/static/js/angular.js"
BootstrapCss = "/static/css/bootstrap.css"
BootstrapJs = "/static/js/bootstrap.js"
FontAwesome = "/static/css/font-awesome.css"
Jquery = fmt.Sprintf("/static/js/jquery-%v.js", jquery_ver)
JqueryUI = fmt.Sprintf("/static/js/jquery-ui-%v.js", jqueryui_ver)
Underscore = "/static/js/underscore.js"
} else {
Angular = fmt.Sprintf("//ajax.googleapis.com/ajax/libs/angularjs/%v/angular.min.js", angular_ver)
BootstrapCss = fmt.Sprintf("//netdna.bootstrapcdn.com/bootstrap/%v/css/bootstrap.min.css", bootstrap_ver)
BootstrapJs = fmt.Sprintf("//netdna.bootstrapcdn.com/bootstrap/%v/js/bootstrap.min.js", bootstrap_ver)
FontAwesome = fmt.Sprintf("//netdna.bootstrapcdn.com/font-awesome/%v/css/font-awesome.min.css", font_awesome_ver)
Jquery = fmt.Sprintf("//ajax.googleapis.com/ajax/libs/jquery/%v/jquery.min.js", jquery_ver)
JqueryUI = fmt.Sprintf("/static/js/jquery-ui-%v.min.js", jqueryui_ver)
Underscore = "/static/js/underscore-min.js"
}
}
作者:case
项目:flotill
func hash(path string) string {
hashmutex.Lock()
defer hashmutex.Unlock()
if !appengine.IsDevAppServer() {
if cached, ok := hashcache[path]; ok {
return cached
}
}
b, e := ioutil.ReadFile(path)
if e != nil {
panic(e)
}
sha := sha256.New()
sha.Write(b)
sum := sha.Sum(nil)
hash := hex.EncodeToString(sum)
hashcache[path] = hash
return hash
}
作者:robinwasse
项目:go-cloud-storage-app-engine-exampl
// Creates a new Google Cloud Storage Client
func newStorageService(c appengine.Context) (*storage.Service, error) {
var httpClient *http.Client
var err error
if appengine.IsDevAppServer() {
httpClient, err = devserviceaccount.NewClient(c, devStorageKeyPath, scope)
} else {
httpClient, err = serviceaccount.NewClient(c, scope)
}
if err != nil {
return nil, err
}
service, err := storage.New(httpClient)
if err != nil {
return nil, err
}
if err = initDefaultBucket(service); err != nil {
return nil, err
}
return service, nil
}
作者:postfi
项目:appstat
func AppstatsHandler(w http.ResponseWriter, r *http.Request) {
c := appengine.NewContext(r)
if appengine.IsDevAppServer() {
// noop
} else if u := user.Current(c); u == nil {
if loginURL, err := user.LoginURL(c, r.URL.String()); err == nil {
http.Redirect(w, r, loginURL, http.StatusTemporaryRedirect)
} else {
serveError(w, err)
}
return
} else if !u.Admin {
http.Error(w, "Forbidden", http.StatusForbidden)
return
}
if detailsURL == r.URL.Path {
Details(w, r)
} else if fileURL == r.URL.Path {
File(w, r)
} else if strings.HasPrefix(r.URL.Path, staticURL) {
Static(w, r)
} else {
Index(w, r)
}
}
作者:ernestoalej
项目:gaeli
func ExecTemplate(c *TemplateConfig) error {
cname := ""
for i, name := range c.Names {
c.Names[i] = filepath.Join(c.Dir, name+".html")
cname += name
}
templatesMutex.Lock()
defer templatesMutex.Unlock()
t, ok := templatesCache[cname]
if !ok || appengine.IsDevAppServer() {
var err error
t, err = template.New(cname).ParseFiles(c.Names...)
if err != nil {
return fmt.Errorf("templates parsing failed: %s", err)
}
templatesCache[cname] = t
}
if err := t.ExecuteTemplate(c.W, "base", c.Data); err != nil {
return fmt.Errorf("exec templates failed: %s", err)
}
return nil
}
作者:nicneo92
项目:appscal
func init() {
http.HandleFunc("/", frontPageHandler)
http.HandleFunc("/tiles", tileHandler)
for i := range color {
// Use a broader range of color for low intensities.
if i < 255/10 {
color[i] = image.RGBAColor{uint8(i * 10), 0, 0, 0xFF}
} else {
color[i] = image.RGBAColor{0xFF, 0, uint8(i - 255/10), 0xFF}
}
}
tmpl := template.New(nil)
tmpl.SetDelims("{{", "}}")
if err := tmpl.ParseFile("map.html"); err != nil {
frontPage = []byte("tmpl.ParseFile failed: " + err.String())
return
}
b := new(bytes.Buffer)
data := map[string]interface{}{
"InProd": !appengine.IsDevAppServer(),
}
if err := tmpl.Execute(b, data); err != nil {
frontPage = []byte("tmpl.Execute failed: " + err.String())
return
}
frontPage = b.Bytes()
}
作者:pg
项目:pgu-geo-ng-ap
func wrapHandler(f func(w http.ResponseWriter, r *http.Request) error) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
// pre ops:
// - setup response
front_origin := ""
if appengine.IsDevAppServer() {
front_origin = "http://127.0.0.1:9000"
} else {
front_origin = "http://pgu-geo-ng.appspot.com"
}
w.Header().Set("Access-Control-Allow-Origin", front_origin)
w.Header().Set("Content-Type", "application/json")
// execute handler
err := f(w, r)
// post ops
// - handle an error
if err == nil {
return
}
switch err.(type) {
case badRequest:
http.Error(w, err.Error(), http.StatusBadRequest)
case notFound:
http.Error(w, "entity not found", http.StatusNotFound)
default:
log.Println(err)
http.Error(w, "oops", http.StatusInternalServerError)
}
}
}
作者:ernestoalej
项目:gaeli
func ExecTemplate(c *TemplateConfig) error {
templatesMutex.Lock()
defer templatesMutex.Unlock()
cname := ""
for i, name := range c.Names {
c.Names[i] = filepath.Join(c.Dir, name+".html")
cname += name
}
t, ok := templatesCache[cname]
if !ok || appengine.IsDevAppServer() {
var err error
t = template.New(cname).Delims(c.LeftDelim, c.RightDelim)
t, err = t.Funcs(templatesFuncs).ParseFiles(c.Names...)
if err != nil {
return errors.New(err)
}
templatesCache[cname] = t
}
if err := t.ExecuteTemplate(c.W, "base", c.Data); err != nil {
return errors.New(err)
}
return nil
}
作者:ChristianSieger
项目:panoptiko
func init() {
page.DevCssFiles = []string{
"reset.css",
"general.css",
"form.css",
"subreddit-picker.css",
"board.css",
"board-item.css",
}
page.CompiledCssFile = "1uePdv.css"
page.CompiledJsFile = "1vkcJu.js"
page.IsDevAppServer = appengine.IsDevAppServer()
var err error
if cachedTemplate, err = loadTemplate(); err != nil {
http.HandleFunc("/", handleInitError(err))
return
}
http.HandleFunc("/", handleRequest)
// The most requested URL that doesn't exist anymore. Handling it outside of
// handleRequest avoids expensive RegEx testing that is going on in
// handleRequest.
http.HandleFunc("/feeds/atom/", handleFeedRequest)
}
作者:aarzill
项目:tool
func CheckForAdminUser(r *http.Request) (bool, *user.User, string) {
if appengine.IsDevAppServer() {
return true, &user.User{Email: "[email protected]", Admin: true, ID: "32168"}, "DevServer login granted"
}
u, msg := UserFromReq(r)
if u == nil {
msg = "google appengine oauth required - admin rights - no login found \n" + msg
msg = "use /appengine/login\n" + msg
return false, nil, msg
}
if u != nil && !u.Admin {
msg = "google appengine oauth required - admin rights - login found without admin \n" + msg
msg = "use /appengine/login\n" + msg
return false, nil, msg
}
// if u.ID != "108853175242330402880" && u.ID != "S-1-5-21-2175189548-897864986-1736798499-1000" {
// }
return true, u, msg
}
作者:asadovsk
项目:tadu
// Wraps other http handlers. Creates context object, recovers from panics, etc.
func WrapHandlerImpl(fn AppHandlerFunc, parseForm bool) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
c := &Context{}
// See http://blog.golang.org/2010/08/defer-panic-and-recover.html.
defer func() {
if data := recover(); data != nil {
c.Aec().Errorf(fmt.Sprint(data))
ServeError(w, data)
}
}()
// Initialize the request context object.
c.SetAec(appengine.NewContext(r))
CheckError(ReadSession(r, c))
if msg, err := ConsumeFlash(w, r); err != nil && err != http.ErrNoCookie {
ServeError(w, err)
return
} else {
c.SetFlash(msg)
}
if parseForm {
CheckError(r.ParseForm())
}
if appengine.IsDevAppServer() {
tmpl = template.Must(template.ParseGlob("templates/*.html"))
text_tmpl = text_template.Must(text_template.ParseGlob("templates/*.txt"))
}
fn(w, r, c)
}
}
作者:decitri
项目:innerheart
func init() {
var err error
local, err = time.LoadLocation("America/New_York")
if err != nil {
panic(err)
}
http.Handle("/", webapp.Router)
webapp.HandleFunc("/", index)
webapp.HandleFunc("/class", class)
webapp.Handle("/roster", userContextHandler(webapp.HandlerFunc(roster)))
if appengine.IsDevAppServer() {
webapp.HandleFunc("/error", throwError)
}
for url, template := range map[string]string{
"/about": "templates/about.html",
"/pricing": "templates/pricing.html",
"/privates-groups": "templates/privates-groups.html",
"/teachers": "templates/teachers.html",
"/workshops": "templates/workshops.html",
"/mailinglist": "templates/mailinglist.html",
} {
webapp.HandleFunc(url, staticTemplate(template))
}
}
作者:peterjli
项目:go-endpoint
func init() {
if appengine.IsDevAppServer() {
ContextFactory = tokeninfoContextFactory
} else {
ContextFactory = cachingContextFactory
}
}
作者:aarzill
项目:tool
func InitHandlers() {
initCodeBaseDir()
// Register datatypes such that it can be saved in the session.
gob.Register(SessionUserKey(0))
gob.Register(&User{})
// Initialize XSRF token key.
xsrfKey = "My personal very secure XSRF token key"
sessKey := []byte("secure-key-234002395432-wsasjasfsfsfsaa-234002395432-wsasjasfsfsfsaa-234002395432-wsasjasfsfsfsaa")
// Create a session cookie store.
cookieStore = sessions.NewCookieStore(
sessKey[:64],
sessKey[:32],
)
cookieStore.Options = &sessions.Options{
MaxAge: maxSessionIDAge, // Session valid for 30 Minutes.
HttpOnly: true,
}
// Create identity toolkit client.
c := &gitkit.Config{
ServerAPIKey: getConfig(siteName, "serverAPIKey"),
ClientID: getConfig(siteName, "clientID"),
WidgetURL: WidgetSigninAuthorizedRedirectURL,
}
// Service account and private key are not required in GAE Prod.
// GAE App Identity API is used to identify the app.
if appengine.IsDevAppServer() {
c.ServiceAccount = getConfig(siteName, "serviceAccount")
c.PEMKeyPath = privateKeyPath
}
var err error
gitkitClient, err = gitkit.New(c)
if err != nil {
log.Fatal(err)
}
// The gorilla sessions use gorilla request context
ClearHandler := func(fc http.HandlerFunc) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
defer gorillaContext.Clear(r)
fc(w, r)
})
}
http.Handle(homeURL, ClearHandler(handleHome))
http.Handle(WidgetSigninAuthorizedRedirectURL, ClearHandler(handleWidget))
http.Handle(signOutURL, ClearHandler(handleSignOut))
http.Handle(signinLandingDefaultURL, ClearHandler(handleSigninSuccessLanding))
http.Handle(signoutLandingDefaultURL, ClearHandler(handleSignOutLanding))
http.HandleFunc(accountChooserBrandingURL, accountChooserBranding)
}
作者:moonpal
项目:snapsho
func cron(w http.ResponseWriter, r *http.Request) {
c := appengine.NewContext(r)
q := datastore.NewQuery("asin")
for t := q.Run(c); ; {
var x Asin
_, err := t.Next(&x)
if err == datastore.Done {
break
}
if err != nil {
return
}
task := taskqueue.NewPOSTTask("/task/fetching", url.Values{
"asin": {x.Name},
})
if !appengine.IsDevAppServer() {
host := backendName + "." + appengine.DefaultVersionHostname(c)
task.Header.Set("Host", host)
}
if _, err := taskqueue.Add(c, task, ""); err != nil {
c.Errorf("add fetching task: %v", err)
http.Error(w, "Error: couldn't schedule fetching task", 500)
return
}
fmt.Fprintf(w, "OK")
}
}
作者:jmptrade
项目:jra-g
func aboutPage(w http.ResponseWriter, r *http.Request) {
c := appengine.NewContext(r)
fmt.Fprintf(w, "<h1>%v</h1>", appengine.DefaultVersionHostname(c))
token, expire, _ := appengine.AccessToken(c, "test")
fmt.Fprintf(w, "<p>AccessToken: %v %v", token, expire)
fmt.Fprintf(w, "<p>AppID: %v", appengine.AppID(c))
fmt.Fprintf(w, "<p>FQAppID: %v", c.FullyQualifiedAppID())
fmt.Fprintf(w, "<p>Go version: %v", runtime.Version())
fmt.Fprintf(w, "<p>Datacenter: %v", appengine.Datacenter())
fmt.Fprintf(w, "<p>InstanceID: %v", appengine.InstanceID())
fmt.Fprintf(w, "<p>IsDevAppServer: %v", appengine.IsDevAppServer())
fmt.Fprintf(w, "<p>RequestID: %v", appengine.RequestID(c))
fmt.Fprintf(w, "<p>ServerSoftware: %v", appengine.ServerSoftware())
sa, _ := appengine.ServiceAccount(c)
fmt.Fprintf(w, "<p>ServiceAccount: %v", sa)
keyname, signed, _ := appengine.SignBytes(c, []byte("test"))
fmt.Fprintf(w, "<p>SignBytes: %v %v", keyname, signed)
fmt.Fprintf(w, "<p>VersionID: %v", appengine.VersionID(c))
fmt.Fprintf(w, "<p>Request: %v", r)
r2 := c.Request()
fmt.Fprintf(w, "<p>Context Request type/value: %T %v", r2, r2)
}
作者:rynon
项目:MiniProfile
// EnableIfAdminOrDev returns true if this is the dev server or the current
// user is an admin. This is the default for miniprofiler.Enable.
func EnableIfAdminOrDev(r *http.Request) bool {
if appengine.IsDevAppServer() {
return true
}
c := appengine.NewContext(r)
u := user.Current(c)
return u.Admin
}
作者:eGlobeBizCo
项目:google-plus-office-hour
/* Main entry function on app engine */
func init() {
http.HandleFunc("/", home)
http.HandleFunc("/list", managelist)
http.HandleFunc("/list/", manageitem)
if !appengine.IsDevAppServer() {
config.RedirectURL = "http://plussytodo.appspot.com/"
}
}