<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -140,6 +140,32 @@ def entry_comment(request, entry):
     }
     return render_to_response('comment.html', extra_context, context_instance=RequestContext(request))
 
+def entry_hide(request, entry):
+    '''Hide an entry.
+
+    Authentication is required.
+
+    entry is the entry id to be hidden.
+    '''
+    if not request.session.get('nickname', None):
+        return HttpResponseRedirect(reverse('login'))
+    f = friendfeed.FriendFeed(request.session['nickname'],
+        request.session['key'])
+    try:
+        f.hide_entry(entry)
+    except Exception, e:
+        if e[0] == 401:
+            del request.session['nickname']
+            del request.session['key']
+        return HttpResponseRedirect(reverse(str(e)))
+    next = request.GET.get('next', '/')
+    if '?' in next:
+        next = next + '&amp;message=hidden&amp;entry=%s' % entry
+    else:
+        next = next + '?message=hidden&amp;entry=%s' % entry
+    next = next + '#%s' % entry
+    return HttpResponseRedirect(next)
+
 def entry_like(request, entry):
     '''Like an entry.
 
@@ -166,6 +192,33 @@ def entry_like(request, entry):
     next = next + '#%s' % entry
     return HttpResponseRedirect(next)
 
+def entry_unhide(request, entry):
+    '''Un-hide an entry.
+
+    Authentication is required.
+
+    entry is the entry id to be un-hidden.
+    '''
+    if not request.session.get('nickname', None):
+        return HttpResponseRedirect(reverse('login'))
+    f = friendfeed.FriendFeed(request.session['nickname'],
+        request.session['key'])
+    try:
+        f.unhide_entry(entry)
+    except Exception, e:
+        if e[0] == 401:
+            del request.session['nickname']
+            del request.session['key']
+        return HttpResponseRedirect(reverse(str(e)))
+    next = request.GET.get('next', '/')
+    if '?' in next:
+        next = next + '&amp;message=un-hidden&amp;entry=%s' % entry
+    else:
+        next = next + '?message=un-hidden&amp;entry=%s' % entry
+    next = next + '#%s' % entry
+    return HttpResponseRedirect(next)
+
+
 def entry_unlike(request, entry):
     '''Un-like an entry.
 </diff>
      <filename>fftogo/views.py</filename>
    </modified>
    <modified>
      <diff>@@ -65,6 +65,31 @@ class FriendFeed(object):
         self.auth_nickname = auth_nickname
         self.auth_key = auth_key
 
+    def validate(self,):
+        return self._fetch_feed(&quot;/api/validate&quot;)
+
+    def hide_entry(self, entry_id):
+        return self._fetch_feed(&quot;/api/entry/hide&quot;, {
+            &quot;entry&quot;: entry_id,
+        })
+ 
+    def unhide_entry(self, entry_id):
+        return self._fetch_feed(&quot;/api/entry/hide&quot;, {
+            &quot;entry&quot;: entry_id,
+            &quot;unhide&quot;: '1',
+        })
+ 
+    def delete_entry(self, entry_id):
+        return self._fetch_feed(&quot;/api/entry/delete&quot;, {
+            &quot;entry&quot;: entry_id,
+        })
+ 
+    def undelete_entry(self, entry_id):
+        return self._fetch_feed(&quot;/api/entry/delete&quot;, {
+            &quot;entry&quot;: entry_id,
+            &quot;undelete&quot;: '1',
+        })
+
     def fetch_user_profile(self, nickname, **kwargs):
         &quot;&quot;&quot;Returns a users profile for the given nickname.
 </diff>
      <filename>friendfeed.py</filename>
    </modified>
    <modified>
      <diff>@@ -38,6 +38,16 @@
                 -
                 &lt;a href=&quot;{% url entry_like request.entry %}?next={{ request.path }}&quot;&gt;Undo&lt;/a&gt;
             {% endifequal %}
+            {% ifequal request.message 'hidden' %}
+                Entry hidden
+                -
+                &lt;a href=&quot;{% url entry_unhide request.entry %}?next={{ request.path }}&quot;&gt;Undo&lt;/a&gt;
+            {% endifequal %}
+            {% ifequal request.message 'un-hidden' %}
+                Entry un-hidden
+                -
+                &lt;a href=&quot;{% url entry_hide request.entry %}?next={{ request.path }}&quot;&gt;Undo&lt;/a&gt;
+            {% endifequal %}
         &lt;/div&gt;
     {% endif %}
     {% block share %}
@@ -107,6 +117,12 @@
                                 &lt;a href=&quot;{% url entry_like entry.id %}?next={{ request.path }}&quot;&gt;Like&lt;/a&gt;
                             {% endif %}
                         {% endif %}
+                        {% if not entry.room %}
+                            {% ifnotequal entry.user.nickname request.session.nickname %}
+                                -
+                                &lt;a href=&quot;{% url entry_hide entry.id %}?next={{ request.path }}&quot;&gt;Hide&lt;/a&gt;
+                            {% endifnotequal %}
+                        {% endif %}
                     {% endif %}
                     {% if entry.likes %}
                         -</diff>
      <filename>templates/entries.html</filename>
    </modified>
    <modified>
      <diff>@@ -24,4 +24,6 @@ urlpatterns = patterns('',
     url(r'^e/(?P&lt;entry&gt;[\w-]+)/c/(?P&lt;comment&gt;[\w-]+)/restore/$', 'fftogo.views.comment_restore', name='comment_restore'),
     url(r'^e/(?P&lt;entry&gt;[\w-]+)/like/$', 'fftogo.views.entry_like', name='entry_like'),
     url(r'^e/(?P&lt;entry&gt;[\w-]+)/unlike/$', 'fftogo.views.entry_unlike', name='entry_unlike'),
+    url(r'^e/(?P&lt;entry&gt;[\w-]+)/hide/$', 'fftogo.views.entry_hide', name='entry_hide'),
+    url(r'^e/(?P&lt;entry&gt;[\w-]+)/unhide/$', 'fftogo.views.entry_unhide', name='entry_unhide'),
 )</diff>
      <filename>urls.py</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>2df9028d6949a39d4572ed558409973af12cbd86</id>
    </parent>
  </parents>
  <author>
    <name>Benjamin Golub</name>
    <email>bgolub@benjamingolub.com</email>
  </author>
  <url>http://github.com/bgolub/fftogo/commit/799e5184415b5ec0dc8d20ff246591daae7a7fcf</url>
  <id>799e5184415b5ec0dc8d20ff246591daae7a7fcf</id>
  <committed-date>2008-07-06T18:19:24-07:00</committed-date>
  <authored-date>2008-07-06T18:19:24-07:00</authored-date>
  <message>hide/unhide</message>
  <tree>4f09630d14aac34c21cdcc216652e6d656bbe6a2</tree>
  <committer>
    <name>Benjamin Golub</name>
    <email>bgolub@benjamingolub.com</email>
  </committer>
</commit>
