Browse Source

Initial import

master
Chris Smith 14 years ago
commit
95bc457196
5 changed files with 110 additions and 0 deletions
  1. 2
    0
      .gitignore
  2. 4
    0
      nbproject/project.properties
  3. 13
    0
      nbproject/project.xml
  4. 9
    0
      src/app.yaml
  5. 82
    0
      src/helloworld.py

+ 2
- 0
.gitignore View File

@@ -0,0 +1,2 @@
1
+/nbproject/private
2
+/src/index.yaml

+ 4
- 0
nbproject/project.properties View File

@@ -0,0 +1,4 @@
1
+java.lib.path=
2
+platform.active=Python_2.6.5
3
+python.lib.path=/opt/google_appengine/google/appengine|
4
+src.dir=src

+ 13
- 0
nbproject/project.xml View File

@@ -0,0 +1,13 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project xmlns="http://www.netbeans.org/ns/project/1">
3
+    <type>org.netbeans.modules.python.project</type>
4
+    <configuration>
5
+        <data xmlns="http://nbpython.dev.java.net/ns/php-project/1">
6
+            <name>AchievementsAggregator</name>
7
+            <sources>
8
+                <root id="src.dir"/>
9
+            </sources>
10
+            <tests/>
11
+        </data>
12
+    </configuration>
13
+</project>

+ 9
- 0
src/app.yaml View File

@@ -0,0 +1,9 @@
1
+application: achievementaggregator
2
+version: 1
3
+runtime: python
4
+api_version: 1
5
+
6
+handlers:
7
+- url: /.*
8
+  script: helloworld.py
9
+

+ 82
- 0
src/helloworld.py View File

@@ -0,0 +1,82 @@
1
+import cgi
2
+
3
+from google.appengine.ext import webapp
4
+from google.appengine.api import users
5
+from google.appengine.ext.webapp.util import run_wsgi_app
6
+from google.appengine.ext import db
7
+
8
+class User(db.Model):
9
+    user = db.UserProperty()
10
+    joindate = db.DateTimeProperty(auto_now_add=True)
11
+
12
+class AchievementSource(db.Model):
13
+    name = db.StringProperty()
14
+    url = db.LinkProperty()
15
+
16
+class UserAccount(db.Model):
17
+    user = db.ReferenceProperty(reference_class=User)
18
+    source = db.ReferenceProperty(reference_class=AchievementSource)
19
+    credentials = db.StringProperty()
20
+    added = db.DateTimeProperty(auto_now_add=True)
21
+    updated = db.DateTimeProperty()
22
+
23
+class Achievement(db.Model):
24
+    name = db.StringProperty()
25
+    image = db.LinkProperty()
26
+    description = db.StringProperty()
27
+    source = db.ReferenceProperty(reference_class=AchievementSource)
28
+
29
+class AwardedAchievement(db.Model):
30
+    achievement = db.ReferenceProperty(reference_class=Achievement)
31
+    user = db.ReferenceProperty(reference_class=User)
32
+    awarded = db.DateTimeProperty()
33
+    discovered = db.DateTimeProperty(auto_now_add=True)
34
+
35
+class MainPage(webapp.RequestHandler):
36
+    def get(self):
37
+        user = users.get_current_user()
38
+
39
+        if not user:
40
+            self.redirect(users.create_login_url(self.request.uri))
41
+            return
42
+
43
+        self.show_header()
44
+
45
+        if users.is_current_user_admin():
46
+            self.show_admin_form()
47
+
48
+        self.show_footer()
49
+
50
+    def show_header(self):
51
+        self.response.out.write("""
52
+          <html>
53
+            <head>
54
+              <title>Achievements Aggregator</title>
55
+            </head>
56
+            <body>""")
57
+
58
+    def show_footer(self):
59
+        self.response.out.write("""
60
+            </body>
61
+          </html>""")
62
+
63
+    def show_admin_form(self):
64
+        self.response.out.write("""
65
+          ADMIN!""")
66
+
67
+
68
+class Guestbook(webapp.RequestHandler):
69
+    def post(self):
70
+        self.response.out.write('<html><body>You wrote:<pre>')
71
+        self.response.out.write(cgi.escape(self.request.get('content')))
72
+        self.response.out.write('</pre></body></html>')
73
+
74
+application = webapp.WSGIApplication([('/', MainPage),
75
+                                      ('/sign', Guestbook)],
76
+                                     debug=True)
77
+
78
+def main():
79
+    run_wsgi_app(application)
80
+
81
+if __name__ == "__main__":
82
+    main()

Loading…
Cancel
Save