mirror of
https://github.com/simple-login/app.git
synced 2024-09-27 20:31:30 +02:00
Add nb_block_last_24h, nb_bounced_last_24h, nb_forward_last_24h, nb_reply_last_24h
This commit is contained in:
parent
39e2750486
commit
52376484a5
@ -2269,12 +2269,19 @@ class Metric2(db.Model, ModelMixin):
|
||||
|
||||
nb_alias = db.Column(db.Float, nullable=True)
|
||||
|
||||
# Obsolete as only for the last 14 days
|
||||
nb_forward = db.Column(db.Float, nullable=True)
|
||||
nb_block = db.Column(db.Float, nullable=True)
|
||||
nb_reply = db.Column(db.Float, nullable=True)
|
||||
nb_bounced = db.Column(db.Float, nullable=True)
|
||||
nb_spam = db.Column(db.Float, nullable=True)
|
||||
|
||||
# should be used instead
|
||||
nb_forward_last_24h = db.Column(db.Float, nullable=True)
|
||||
nb_block_last_24h = db.Column(db.Float, nullable=True)
|
||||
nb_reply_last_24h = db.Column(db.Float, nullable=True)
|
||||
nb_bounced_last_24h = db.Column(db.Float, nullable=True)
|
||||
|
||||
nb_verified_custom_domain = db.Column(db.Float, nullable=True)
|
||||
|
||||
nb_app = db.Column(db.Float, nullable=True)
|
||||
|
31
cron.py
31
cron.py
@ -215,6 +215,8 @@ def poll_apple_subscription():
|
||||
|
||||
def compute_metric2() -> Metric2:
|
||||
now = arrow.now()
|
||||
_24h_ago = now.shift(days=-1)
|
||||
|
||||
nb_referred_user_paid = 0
|
||||
for user in User.query.filter(User.referral_id.isnot(None)):
|
||||
if user.is_paid():
|
||||
@ -244,13 +246,19 @@ def compute_metric2() -> Metric2:
|
||||
nb_referred_user_paid=nb_referred_user_paid,
|
||||
nb_alias=Alias.query.count(),
|
||||
# email log stats
|
||||
nb_bounced=EmailLog.query.filter_by(bounced=True).count(),
|
||||
nb_spam=EmailLog.query.filter_by(is_spam=True).count(),
|
||||
nb_reply=EmailLog.query.filter_by(is_reply=True).count(),
|
||||
nb_forward=EmailLog.query.filter_by(
|
||||
bounced=False, is_spam=False, is_reply=False, blocked=False
|
||||
).count(),
|
||||
nb_block=EmailLog.query.filter_by(blocked=True).count(),
|
||||
nb_forward_last_24h=EmailLog.query.filter(EmailLog.created_at > _24h_ago)
|
||||
.filter_by(bounced=False, is_spam=False, is_reply=False, blocked=False)
|
||||
.count(),
|
||||
nb_bounced_last_24h=EmailLog.query.filter(EmailLog.created_at > _24h_ago)
|
||||
.filter_by(bounced=True)
|
||||
.count(),
|
||||
nb_reply_last_24h=EmailLog.query.filter(EmailLog.created_at > _24h_ago)
|
||||
.filter_by(is_reply=True)
|
||||
.count(),
|
||||
nb_block_last_24h=EmailLog.query.filter(EmailLog.created_at > _24h_ago)
|
||||
.filter_by(blocked=True)
|
||||
.count(),
|
||||
# other stats
|
||||
nb_verified_custom_domain=CustomDomain.query.filter_by(verified=True).count(),
|
||||
nb_app=Client.query.count(),
|
||||
commit=True,
|
||||
@ -388,11 +396,10 @@ nb_manual_premium: {stats_today.nb_manual_premium} - {increase_percent(stats_yes
|
||||
nb_coinbase_premium: {stats_today.nb_coinbase_premium} - {increase_percent(stats_yesterday.nb_coinbase_premium, stats_today.nb_coinbase_premium)} <br>
|
||||
nb_alias: {stats_today.nb_alias} - {increase_percent(stats_yesterday.nb_alias, stats_today.nb_alias)} <br>
|
||||
|
||||
nb_forward: {stats_today.nb_forward} - {increase_percent(stats_yesterday.nb_forward, stats_today.nb_forward)} <br>
|
||||
nb_reply: {stats_today.nb_reply} - {increase_percent(stats_yesterday.nb_reply, stats_today.nb_reply)} <br>
|
||||
nb_block: {stats_today.nb_block} - {increase_percent(stats_yesterday.nb_block, stats_today.nb_block)} <br>
|
||||
nb_bounced: {stats_today.nb_bounced} - {increase_percent(stats_yesterday.nb_bounced, stats_today.nb_bounced)} <br>
|
||||
nb_spam: {stats_today.nb_spam} - {increase_percent(stats_yesterday.nb_spam, stats_today.nb_spam)} <br>
|
||||
nb_forward_last_24h: {stats_today.nb_forward_last_24h} - {increase_percent(stats_yesterday.nb_forward_last_24h, stats_today.nb_forward_last_24h)} <br>
|
||||
nb_reply_last_24h: {stats_today.nb_reply_last_24h} - {increase_percent(stats_yesterday.nb_reply_last_24h, stats_today.nb_reply_last_24h)} <br>
|
||||
nb_block_last_24h: {stats_today.nb_block_last_24h} - {increase_percent(stats_yesterday.nb_block_last_24h, stats_today.nb_block_last_24h)} <br>
|
||||
nb_bounced_last_24h: {stats_today.nb_bounced_last_24h} - {increase_percent(stats_yesterday.nb_bounced_last_24h, stats_today.nb_bounced_last_24h)} <br>
|
||||
|
||||
nb_custom_domain: {stats_today.nb_verified_custom_domain} - {increase_percent(stats_yesterday.nb_verified_custom_domain, stats_today.nb_verified_custom_domain)} <br>
|
||||
nb_app: {stats_today.nb_app} - {increase_percent(stats_yesterday.nb_app, stats_today.nb_app)} <br>
|
||||
|
35
migrations/versions/2021_072818_dfee471558bd_.py
Normal file
35
migrations/versions/2021_072818_dfee471558bd_.py
Normal file
@ -0,0 +1,35 @@
|
||||
"""empty message
|
||||
|
||||
Revision ID: dfee471558bd
|
||||
Revises: 20c738810b1b
|
||||
Create Date: 2021-07-28 18:29:46.072981
|
||||
|
||||
"""
|
||||
import sqlalchemy_utils
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = 'dfee471558bd'
|
||||
down_revision = '20c738810b1b'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.add_column('metric2', sa.Column('nb_block_last_24h', sa.Float(), nullable=True))
|
||||
op.add_column('metric2', sa.Column('nb_bounced_last_24h', sa.Float(), nullable=True))
|
||||
op.add_column('metric2', sa.Column('nb_forward_last_24h', sa.Float(), nullable=True))
|
||||
op.add_column('metric2', sa.Column('nb_reply_last_24h', sa.Float(), nullable=True))
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_column('metric2', 'nb_reply_last_24h')
|
||||
op.drop_column('metric2', 'nb_forward_last_24h')
|
||||
op.drop_column('metric2', 'nb_bounced_last_24h')
|
||||
op.drop_column('metric2', 'nb_block_last_24h')
|
||||
# ### end Alembic commands ###
|
Loading…
Reference in New Issue
Block a user