Beispiel #1
0
    def get(self):
        pagename = None
        args = None

        if self.current_user:
            # load initial set of data
            query = MidautumnObject.all()
            query.order('-pubtime')

            objects = []
            results = query.fetch(10)
            for obj in results:
                objects.append(obj.to_dict(current_user=self.current_user))

            pagename = 'home.html'
            args = {'objects': objects,
                    'cursor': query.cursor(),
                    'more': len(objects) >= 10,
                    'profile': self.current_user.profile,
                    }
        else:
            pagename = 'register.html'
            args = None

        dirname = os.path.dirname(__file__)
        path = os.path.join(dirname, 'view', pagename)
        self.response.out.write(template.render(path, args))
Beispiel #2
0
    def get(self):
        args = {}
        pagename = 'objects.html'

        query = MidautumnObject.all()
        query.order('pubtime')
        objects = []
        for obj in query:
            objects.append(obj.to_dict(details=True))
        args['objects'] = objects

        # current user related info
        if self.current_user:
            args['profile'] = self.current_user.profile

        dirname = os.path.dirname(__file__)
        path = os.path.join(dirname, 'view', pagename)
        self.response.out.write(template.render(path, args))
Beispiel #3
0
    def post(self):
        title = self.request.get('title')
        timestamp = self.request.get('timestamp')

        user = self.current_user
        query = db.GqlQuery("SELECT * FROM MidautumnObject WHERE title = :1", title)
        mo = query.get()

        args = None

        if not user:
            args = {'result': 'not_authorized'}
        elif mo:
            args = {'result': 'duplicated', 'objects': [mo.to_dict(details=True, current_user=user),]}
        else:
            mo = MidautumnObject(title=title, owner=user)
            mo.put()

            # fetch all objects after the timestamp
            # should include the one just posted
            query = MidautumnObject.all()
            query.filter('pubtime >', datetime.utcfromtimestamp(float(timestamp)))
            query.order('-pubtime')

            objects = []
            for obj in query:
                objects.append(obj.to_dict(current_user=user))

            # check achievements
            achievements = []
            achievements.extend(achievement.check_post(mo))

            args = {'result': 'success',
                    'objects': objects,
                    'achievements': achievements}

        self.response.headers['Content-Type'] = 'application/json'
        self.response.out.write(json.dumps(args))
Beispiel #4
0
    def get(self):
        cursor = self.request.get('cursor', None)

        args = None

        # load initial set of data
        query = MidautumnObject.all()
        query.order('-pubtime')
        if cursor:
            query.with_cursor(cursor)

        objects = []
        results = query.fetch(10)
        for obj in results:
            objects.append(obj.to_dict(current_user=self.current_user))

        args = {'result': 'success',
                'objects': objects,
                'cursor': query.cursor(),
                'more': len(objects) >= 10,
                }

        self.response.headers['Content-Type'] = 'application/json'
        self.response.out.write(json.dumps(args))