diff --git a/brutaldon/templates/intercooler/follow.html b/brutaldon/templates/intercooler/follow.html
new file mode 100644
index 0000000..611edc2
--- /dev/null
+++ b/brutaldon/templates/intercooler/follow.html
@@ -0,0 +1,22 @@
+{% if relationship.requested %}
+
+ Cancel request
+
+{% elif not relationship.following %}
+
+ Follow
+
+{% else %}
+
+ Unfollow
+
+{% endif %}
diff --git a/brutaldon/templates/main/user.html b/brutaldon/templates/main/user.html
index 91258d4..e09ebd2 100644
--- a/brutaldon/templates/main/user.html
+++ b/brutaldon/templates/main/user.html
@@ -38,17 +38,23 @@ Brutaldon ({{ own_acct.username }}) - {{ user.acct }} timelime
{% if not relationship.muting %}
+ href="{% url 'mute' user.id %}"
+ ic-post-to="{% url 'mute' user.id %}"
+ ic-indicator="#user-spinner" ic-replace-target="true">
Mute
{% else %}
+ href="{% url 'mute' user.id %}"
+ ic-post-to="{% url 'mute' user.id %}"
+ ic-indicator="#user-spinner" ic-replace-target="true">
Unmute
{% endif %}
{% if not relationship.blocking %}
+ href="{% url 'block' user.id %}"
+ ic-post-to="{% url 'block' user.id %}"
+ ic-indicator="#user-spinner" ic-replace-target="true">
Block
{% else %}
+ href="{% url 'block' user.id %}"
+ ic-post-to="{% url 'block' user.id %}"
+ ic-indicator="#user-spinner" ic-replace-target="true">
Unblock
{% endif %}
diff --git a/brutaldon/views.py b/brutaldon/views.py
index 1ce6787..ee4ccf1 100644
--- a/brutaldon/views.py
+++ b/brutaldon/views.py
@@ -11,6 +11,7 @@ from mastodon import Mastodon, AttribAccessDict, MastodonError
from urllib import parse
from pdb import set_trace
from bs4 import BeautifulSoup
+from time import sleep
class NotLoggedInException(Exception):
pass
@@ -620,6 +621,14 @@ def follow(request, id):
mastodon.account_unfollow(id)
else:
mastodon.account_follow(id)
+ if request.POST.get('ic-request'):
+ sleep(1) # This is annoying, but the next call will return Requested instead of Following in some cases
+ relationship = mastodon.account_relationships(user_dict.id)[0]
+ return render(request, 'intercooler/follow.html',
+ {"user": user_dict, "relationship": relationship,
+ 'own_acct': request.session['user'],
+ 'preferences': account.preferences})
+ else:
return redirect(user, user_dict.acct)
else:
return render(request, 'main/follow.html',