diff --git a/app/models.py b/app/models.py index bd845b4..235ba11 100644 --- a/app/models.py +++ b/app/models.py @@ -22,6 +22,7 @@ class User(UserMixin, db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(64), index=True, unique=True) password_hash = db.Column(db.String(128)) + last_seen = db.Column(db.DateTime, default=datetime.utcnow) posts = db.relationship('Post', backref='author', lazy='dynamic') def __repr__(self): @@ -168,3 +169,4 @@ class Post(db.Model): def __repr__(self): return ''.format(self.body) + \ No newline at end of file diff --git a/app/routes.py b/app/routes.py index f2fbdd0..f1df17b 100644 --- a/app/routes.py +++ b/app/routes.py @@ -45,6 +45,7 @@ ALLOWED_EXTENSIONS = {'json', 'db'} @app.route('/index') @login_required def index(): + current_user.last_seen = datetime.datetime.utcnow() return render_template('home.html') @app.route('/twitter') @@ -389,8 +390,18 @@ def logout(): @app.route('/settings') @login_required def settings(): + active = 1 + for user in User.query.all(): + if not user.last_seen == None: + t = datetime.datetime.utcnow() - user.last_seen + s = t.total_seconds() + m = s/60 + if m < 40: + active = active+1 + instanceInfo = { "totalUsers":db.session.query(User).count(), + "active":active, "location":config['serverLocation'], "serverName":config['serverName'] } @@ -734,3 +745,4 @@ def getYoutubePosts(ids): video.description = re.sub(r'^https?:\/\/.*[\r\n]*', '', video.description[0:120]+"...", flags=re.MULTILINE) videos.append(video) return videos + \ No newline at end of file diff --git a/app/templates/settings.html b/app/templates/settings.html index 0e3f718..a7833d0 100644 --- a/app/templates/settings.html +++ b/app/templates/settings.html @@ -90,6 +90,9 @@

Total users: {{info.totalUsers}}

+
+

Active users: {{info.active}}

+

Server location: {{info.location}}