Beispiel #1
0
 def get(self):
   q = User.all()
   results = [{'ff_user':u.ff_user, 'last_sync':u.last_sync.strftime('%Y-%m-%dT%H:%M:%SZ')} for u in q]
   template_values = {
     'users': results,
     'count': len(results)
   }
   path = os.path.join(os.path.dirname(__file__), 'stats.html')
   self.response.out.write(template.render(path, template_values))
Beispiel #2
0
 def get(self):
   q = User.all()
   results = [{'username':u.username, 'email':u.email, 'reply_mode':u.reply_mode, 'last_run':u.last_run.strftime('%Y-%m-%dT%H:%M:%SZ'), 'digest': u.digest} for u in q]
   template_values = {
     'users': results,
     'count': len(results)
   }
   path = os.path.join(os.path.dirname(__file__), 'stats.html')
   self.response.out.write(template.render(path, template_values))
Beispiel #3
0
    def get(self):
        def prep_str(str):
            return str.encode('utf-8', 'ignore')

        def prep_date(date):
            if date is None:
                return ''
            date = date + timedelta(hours=8)
            return date.strftime("%d %b %H:%M:%S")

        def prep_active(active):
            if active:
                return prep_str(u'\U00002714')
            else:
                return ''

        def prep_group(uid):
            if int(uid) < 0:
                return prep_str(u'\U00002714')
            else:
                return ''

        offset = int(self.request.get('offset', 0))
        limit = int(self.request.get('limit', 200))
        active = int(self.request.get('active', 0))
        if limit == -1:
            limit = None
        if active == 0:
            active = False
        else:
            active = True
        query = User.all()
        if active:
            query.filter('active =', True)
        query.order('-created')
        self.response.headers['Content-Type'] = 'text/html; charset=utf-8'
        self.response.write(
            '<html>\n<head>\n<title>Utmost Bot Admin</title>\n</head>\n<body style="background-color:orange;">\n'
            +
            '<table border="1" style="border: 1px solid black; border-collapse: collapse; padding: 10px;">\n'
        )
        self.response.write(
            '<tr><th>#</th><th>Chat ID</th><th>Name</th>' +
            '<th>Created</th><th>Last received</th><th>Last sent</th><th>Last auto</th><th>Active</th><th>Group</th></tr>\n'
        )
        result = query.run(limit=limit, offset=offset, batch_size=5000)
        i = 1
        for user in result:
            uid = prep_str(user.key().name())
            name = prep_str(user.first_name)
            if user.last_name:
                name += ' ' + prep_str(user.last_name)
            if user.username:
                name += ' @' + prep_str(user.username)
            ctime = prep_date(user.created)
            rtime = prep_date(user.last_received)
            stime = prep_date(user.last_sent)
            atime = prep_date(user.last_auto)
            active = prep_active(user.active)
            group = prep_group(uid)
            self.response.write((
                '<tr><td>{}</td><td>{}</td><td>{}</td>' +
                '<td>{}</td><td>{}</td><td>{}</td><td>{}</td><td>{}</td><td>{}</td></tr>\n'
            ).format(i, uid, name, ctime, rtime, stime, atime, active, group))
            i += 1
        self.response.write('</table>\n</body>\n</html>')