allow mastodon users to preserve DMs
This commit is contained in:
parent
b63f2f2b06
commit
06f144f8b4
|
@ -128,6 +128,7 @@ def post_from_api_object(obj, instance):
|
|||
has_media = 'media_attachments' in obj and bool(obj['media_attachments']),
|
||||
created_at = iso8601.parse_date(obj['created_at']),
|
||||
author_id = account_from_api_object(obj['account'], instance).id,
|
||||
direct = obj['visibility'] == 'direct',
|
||||
)
|
||||
|
||||
def account_from_api_object(obj, instance):
|
||||
|
|
|
@ -6,4 +6,5 @@ attrs = (
|
|||
'policy_keep_younger_scale',
|
||||
'policy_keep_younger_significand',
|
||||
'policy_keep_media',
|
||||
'policy_keep_direct',
|
||||
)
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
"""add post.direct and account.policy_keep_direct
|
||||
|
||||
Revision ID: 5fec5f5e8a5e
|
||||
Revises: 8993e80e7aa3
|
||||
Create Date: 2017-08-20 18:16:26.682744
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '5fec5f5e8a5e'
|
||||
down_revision = '8993e80e7aa3'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
op.add_column('accounts', sa.Column('policy_keep_direct', sa.Boolean(), server_default='TRUE', nullable=False))
|
||||
op.add_column('posts', sa.Column('direct', sa.Boolean(), server_default='FALSE', nullable=False))
|
||||
|
||||
|
||||
def downgrade():
|
||||
op.drop_column('posts', 'direct')
|
||||
op.drop_column('accounts', 'policy_keep_direct')
|
2
model.py
2
model.py
|
@ -67,6 +67,7 @@ class Account(TimestampMixin, RemoteIDMixin):
|
|||
policy_keep_media = db.Column(db.Boolean, server_default='FALSE', nullable=False)
|
||||
policy_delete_every = db.Column(db.Interval, server_default='30 minutes', nullable=False)
|
||||
policy_keep_younger = db.Column(db.Interval, server_default='365 days', nullable=False)
|
||||
policy_keep_direct = db.Column(db.Boolean, server_default='TRUE', nullable=False)
|
||||
|
||||
display_name = db.Column(db.String)
|
||||
screen_name = db.Column(db.String)
|
||||
|
@ -176,6 +177,7 @@ class Post(db.Model, TimestampMixin, RemoteIDMixin):
|
|||
|
||||
favourite = db.Column(db.Boolean, server_default='FALSE', nullable=False)
|
||||
has_media = db.Column(db.Boolean, server_default='FALSE', nullable=False)
|
||||
direct = db.Column(db.Boolean, server_default='FALSE', nullable=False)
|
||||
|
||||
def __repr__(self):
|
||||
return '<Post ({}, Author: {})>'.format(self.id, self.author_id)
|
||||
|
|
3
tasks.py
3
tasks.py
|
@ -162,7 +162,8 @@ def delete_from_account(account_id):
|
|||
refreshed = refresh_posts((post,))
|
||||
if refreshed and \
|
||||
(not account.policy_keep_favourites or not post.favourite) \
|
||||
and (not account.policy_keep_media or not post.has_media):
|
||||
and (not account.policy_keep_media or not post.has_media)\
|
||||
and (not account.policy_keep_direct or not post.direct):
|
||||
eligible = refreshed
|
||||
break
|
||||
|
||||
|
|
|
@ -63,6 +63,14 @@
|
|||
<label><input type=radio name=policy_keep_media value=false {{ "checked" if not g.viewer.account.policy_keep_media }}> No</label>
|
||||
</span>
|
||||
</p>
|
||||
{% if g.viewer.account.service == 'mastodon' %}
|
||||
<p>Private posts (direct messages) will never expire
|
||||
<span style='display:inline-block'>
|
||||
<label><input type=radio name=policy_keep_private value=true {{ "checked" if g.viewer.account.policy_keep_private }}> Yes</label>
|
||||
<label><input type=radio name=policy_keep_private value=false {{ "checked" if not g.viewer.account.policy_keep_private }}> No</label>
|
||||
</span>
|
||||
</p>
|
||||
{% endif %}
|
||||
<p>Every
|
||||
{{interval_input(g.viewer.account, 'policy_delete_every', scales)}},
|
||||
one expired post will be picked at random and deleted.
|
||||
|
|
Loading…
Reference in New Issue