From 132007f91fdf76f727e8d8c3d9ce0f935e0855b1 Mon Sep 17 00:00:00 2001 From: codl Date: Wed, 27 Dec 2017 20:49:19 +0100 Subject: [PATCH] store fav/reblog count. first step towards #7 --- .env | 1 + libforget/mastodon.py | 2 ++ ...1a5_add_favourite_reblog_count_to_posts.py | 30 +++++++++++++++++++ model.py | 3 ++ templates/privacy.html | 3 ++ 5 files changed, 39 insertions(+) create mode 100644 .env create mode 100644 migrations/versions/83510ef8c1a5_add_favourite_reblog_count_to_posts.py diff --git a/.env b/.env new file mode 100644 index 0000000..a02ed8f --- /dev/null +++ b/.env @@ -0,0 +1 @@ +FLASK_APP=forget.py diff --git a/libforget/mastodon.py b/libforget/mastodon.py index 3b46149..f9b7753 100644 --- a/libforget/mastodon.py +++ b/libforget/mastodon.py @@ -154,6 +154,8 @@ def post_from_api_object(obj, instance): created_at=obj['created_at'], author_id=account_from_api_object(obj['account'], instance).id, direct=obj['visibility'] == 'direct', + favourites=obj['favourites_count'], + reblogs=obj['reblogs_count'], ) diff --git a/migrations/versions/83510ef8c1a5_add_favourite_reblog_count_to_posts.py b/migrations/versions/83510ef8c1a5_add_favourite_reblog_count_to_posts.py new file mode 100644 index 0000000..b9b9262 --- /dev/null +++ b/migrations/versions/83510ef8c1a5_add_favourite_reblog_count_to_posts.py @@ -0,0 +1,30 @@ +"""add favourite, reblog count to posts + +Revision ID: 83510ef8c1a5 +Revises: c1f7444d0f75 +Create Date: 2017-12-27 20:40:31.576201 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '83510ef8c1a5' +down_revision = 'c1f7444d0f75' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('posts', sa.Column('favourites', sa.Integer(), nullable=True)) + op.add_column('posts', sa.Column('reblogs', sa.Integer(), nullable=True)) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('posts', 'reblogs') + op.drop_column('posts', 'favourites') + # ### end Alembic commands ### diff --git a/model.py b/model.py index 4618119..f9aa9c6 100644 --- a/model.py +++ b/model.py @@ -246,6 +246,9 @@ class Post(db.Model, TimestampMixin, RemoteIDMixin): has_media = db.Column(db.Boolean, server_default='FALSE', nullable=False) direct = db.Column(db.Boolean, server_default='FALSE', nullable=False) + favourites = db.Column(db.Integer) + reblogs = db.Column(db.Integer) + def __str__(self): return ''.format(self.id, self.author_id) diff --git a/templates/privacy.html b/templates/privacy.html index d04bc56..857b909 100644 --- a/templates/privacy.html +++ b/templates/privacy.html @@ -13,9 +13,12 @@
  • The post's time and date of publishing
  • Whether the post has any media attached
  • Whether the post has been favourited by you
  • +
  • How many favourites and reblogs / retweets the post has
  • (Mastodon only) Whether the post is a direct message
  • No other post metadata and no post contents are stored by Forget.

    + +

    Last updated on 2017-12-27. History.

    {% endblock %}