119 lines
5.3 KiB
HTML
119 lines
5.3 KiB
HTML
{% from 'lib/interval.html' import interval_input -%}
|
|
{% extends 'lib/layout.html' %}
|
|
{% block scripts %}
|
|
<script async src="{{st('settings.js')}}"></script>
|
|
{% endblock %}
|
|
{% block body -%}
|
|
|
|
<section class=viewer>
|
|
<p>Hello,
|
|
<img class=avatar id=avatar src="{{g.viewer.account.avatar_url}}"/>
|
|
<span id='display-name'>{{g.viewer.account.display_name or g.viewer.account.screen_name}}</span>!
|
|
<a href="{{url_for('logout')}}">Log out</a>
|
|
</p>
|
|
{% set enabled_disabled = "enabled" if g.viewer.account.policy_enabled else "disabled" %}
|
|
<div class="banner {{enabled_disabled}}">Forget is currently {{ enabled_disabled }} on your account.
|
|
{% if g.viewer.account.policy_enabled -%}
|
|
<form action='{{url_for("disable")}}' method='post' enctype='multipart/form-data'>
|
|
<input type='submit' value='Disable'>
|
|
{% else -%}
|
|
<form action='{{url_for("enable")}}' method='post' enctype='multipart/form-data'>
|
|
<input type='submit' value='Enable'>
|
|
{% endif %}
|
|
<input type='hidden' name='csrf-token' value='{{g.viewer.csrf_token}}'>
|
|
</form>
|
|
</div>
|
|
{% set post_count = g.viewer.account.post_count() %}
|
|
<p>Currently keeping track of <span id="post-count">{{ post_count }}</span> of your posts, roughly <span id="eligible-estimate">{{ g.viewer.account.estimate_eligible_for_delete() }}</span> of which currently match your expiration rules.</p>
|
|
{% if g.viewer.account.service == 'twitter'
|
|
and g.viewer.account.reported_post_count
|
|
and post_count < g.viewer.account.reported_post_count * 3/4
|
|
and g.viewer.account.reported_post_count > 3200 -%}
|
|
<div class='banner warning'>Are we missing some of your posts? Try uploading a tweet archive below</div>
|
|
{% endif %}
|
|
</section>
|
|
|
|
<section id='settings-section'>
|
|
<h2 id="settings-title">Your expiration rules</h2>
|
|
|
|
{% if request.args.get('settings_saved') != None %}
|
|
<div class='banner success'>Rules saved successfully</div>
|
|
{% endif %}
|
|
|
|
{% if settings_error %}
|
|
<div class='banner error'>Something went wrong trying to save your settings. Please try again later.</div>
|
|
{% endif %}
|
|
|
|
<form name='settings' action='{{url_for("settings")}}' method='post' enctype='multipart/form-data'>
|
|
<p>Posts that are over
|
|
{{interval_input(g.viewer.account, 'policy_keep_younger', scales)}}
|
|
old and are not one of your
|
|
<input type=number name=policy_keep_latest min=0 step=1 style='max-width:8ch' value={{g.viewer.account.policy_keep_latest}}>
|
|
most recent posts will expire
|
|
</p>
|
|
<p>Posts that you have liked / favourited will never expire
|
|
<span style='display:inline-block'>
|
|
<label><input type=radio name=policy_keep_favourites value=true {{ "checked" if g.viewer.account.policy_keep_favourites }}> Yes</label>
|
|
<label><input type=radio name=policy_keep_favourites value=false {{ "checked" if not g.viewer.account.policy_keep_favourites }}> No</label>
|
|
</span>
|
|
</p>
|
|
<p>Posts that have media attached will never expire
|
|
<span style='display:inline-block'>
|
|
<label><input type=radio name=policy_keep_media value=true {{ "checked" if g.viewer.account.policy_keep_media }}> Yes</label>
|
|
<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>Direct messages will never expire
|
|
<span style='display:inline-block'>
|
|
<label><input type=radio name=policy_keep_direct value=true {{ "checked" if g.viewer.account.policy_keep_direct }}> Yes</label>
|
|
<label><input type=radio name=policy_keep_direct value=false {{ "checked" if not g.viewer.account.policy_keep_direct }}> 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.
|
|
</p>
|
|
<input type=submit value='Save settings'>
|
|
<input type='hidden' name='csrf-token' value='{{g.viewer.csrf_token}}'>
|
|
</form>
|
|
|
|
</section>
|
|
{% if g.viewer.account.service == 'twitter' %}
|
|
<section>
|
|
|
|
<h2 id='tweet_archive_import'>Tweet archive import</h2>
|
|
<p>
|
|
Twitter's API only lets us access up to 3200 of your most recent tweets. If you have more tweets than that, you can request an archive of your tweets from
|
|
<a href="https://twitter.com/settings/account">Twitter's settings page</a>,
|
|
and upload it here.
|
|
</p>
|
|
|
|
{% if tweet_archive_failed %}
|
|
<div class="banner error">The file you uploaded is not a valid tweet archive. No posts have been imported.</div>
|
|
{% endif %}
|
|
|
|
<form action='{{url_for('upload_tweet_archive')}}' method='post' enctype='multipart/form-data'>
|
|
<input type="file" name='file'><input type="submit" value="Upload">
|
|
<input type='hidden' name='csrf-token' value='{{g.viewer.csrf_token}}'>
|
|
</form>
|
|
|
|
{% if g.viewer.account.twitter_archives %}
|
|
<h3 id="recent_archives">Recent archives</h3>
|
|
<ul>
|
|
{% for archive in g.viewer.account.twitter_archives %}
|
|
<li class="tweet_archive" data-status="{{archive.status()}}">{{archive.created_at.strftime('%Y-%m-%d %H:%M')}}<br>
|
|
{% if archive.chunks is none %}
|
|
Archive could not be opened
|
|
{% else %}
|
|
{{archive.chunks_successful}}/{{archive.chunks}} months imported, {{archive.chunks_failed}} failed</li>
|
|
{% endif %}
|
|
{% endfor %}
|
|
</ul>
|
|
{% endif %}
|
|
</section>
|
|
{% endif %}
|
|
|
|
{% endblock %}
|