diff --git a/brutaldon/migrations/0021_client_version.py b/brutaldon/migrations/0021_client_version.py new file mode 100644 index 0000000..ba27dad --- /dev/null +++ b/brutaldon/migrations/0021_client_version.py @@ -0,0 +1,18 @@ +# Generated by Django 2.1.5 on 2019-04-29 18:37 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('brutaldon', '0020_auto_20190127_2159'), + ] + + operations = [ + migrations.AddField( + model_name='client', + name='version', + field=models.CharField(default='1.0', max_length=8), + ), + ] diff --git a/brutaldon/models.py b/brutaldon/models.py index 82d6dab..df0e9bc 100644 --- a/brutaldon/models.py +++ b/brutaldon/models.py @@ -8,6 +8,7 @@ timezones = [(tz, tz) for tz in common_timezones] class Client(models.Model): name = models.CharField(default = "brutaldon", max_length=80) api_base_id = models.URLField(default="https://mastodon.social") + version = models.CharField(default="1.0", max_length=8) client_id = models.CharField(null=True, blank=True, max_length=2048) client_secret = models.CharField(null=True, blank=True, max_length=2048) diff --git a/brutaldon/views.py b/brutaldon/views.py index a331258..b5306b3 100644 --- a/brutaldon/views.py +++ b/brutaldon/views.py @@ -304,6 +304,8 @@ def login(request): client_id = client.client_id, client_secret = client.client_secret, api_base_url = api_base_url) + client.version = mastodon.instance().get("version") + client.save() return redirect(mastodon.auth_request_url(redirect_uris=redirect_uris, scopes=['read', 'write', 'follow'])) else: @@ -394,6 +396,8 @@ def old_login(request): client_id = client.client_id, client_secret = client.client_secret, api_base_url = api_base_url) + client.version = mastodon.instance().get("version") + client.save() try: account = Account.objects.get(email=email, client_id=client.id) @@ -545,6 +549,9 @@ def user(request, username, prev=None, next=None): def settings(request): try: account, mastodon = get_usercontext(request) + account.client.version = mastodon.instance().get("version") + account.client.save() + except NotLoggedInException: return redirect(about) if request.method == 'POST':