public
Description: Mobile FriendFeed Client
Homepage: http://www.fftogo.com/
Clone URL: git://github.com/bgolub/fftogo.git
hide/unhide
Benjamin Golub (author)
Sun Jul 06 18:19:24 -0700 2008
commit  799e5184415b5ec0dc8d20ff246591daae7a7fcf
tree    4f09630d14aac34c21cdcc216652e6d656bbe6a2
parent  2df9028d6949a39d4572ed558409973af12cbd86
...
140
141
142
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
143
144
145
...
166
167
168
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
169
170
171
...
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
...
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
0
@@ -140,6 +140,32 @@ def entry_comment(request, entry):
0
     }
0
     return render_to_response('comment.html', extra_context, context_instance=RequestContext(request))
0
 
0
+def entry_hide(request, entry):
0
+    '''Hide an entry.
0
+
0
+    Authentication is required.
0
+
0
+    entry is the entry id to be hidden.
0
+    '''
0
+    if not request.session.get('nickname', None):
0
+        return HttpResponseRedirect(reverse('login'))
0
+    f = friendfeed.FriendFeed(request.session['nickname'],
0
+        request.session['key'])
0
+    try:
0
+        f.hide_entry(entry)
0
+    except Exception, e:
0
+        if e[0] == 401:
0
+            del request.session['nickname']
0
+            del request.session['key']
0
+        return HttpResponseRedirect(reverse(str(e)))
0
+    next = request.GET.get('next', '/')
0
+    if '?' in next:
0
+        next = next + '&message=hidden&entry=%s' % entry
0
+    else:
0
+        next = next + '?message=hidden&entry=%s' % entry
0
+    next = next + '#%s' % entry
0
+    return HttpResponseRedirect(next)
0
+
0
 def entry_like(request, entry):
0
     '''Like an entry.
0
 
0
@@ -166,6 +192,33 @@ def entry_like(request, entry):
0
     next = next + '#%s' % entry
0
     return HttpResponseRedirect(next)
0
 
0
+def entry_unhide(request, entry):
0
+    '''Un-hide an entry.
0
+
0
+    Authentication is required.
0
+
0
+    entry is the entry id to be un-hidden.
0
+    '''
0
+    if not request.session.get('nickname', None):
0
+        return HttpResponseRedirect(reverse('login'))
0
+    f = friendfeed.FriendFeed(request.session['nickname'],
0
+        request.session['key'])
0
+    try:
0
+        f.unhide_entry(entry)
0
+    except Exception, e:
0
+        if e[0] == 401:
0
+            del request.session['nickname']
0
+            del request.session['key']
0
+        return HttpResponseRedirect(reverse(str(e)))
0
+    next = request.GET.get('next', '/')
0
+    if '?' in next:
0
+        next = next + '&message=un-hidden&entry=%s' % entry
0
+    else:
0
+        next = next + '?message=un-hidden&entry=%s' % entry
0
+    next = next + '#%s' % entry
0
+    return HttpResponseRedirect(next)
0
+
0
+
0
 def entry_unlike(request, entry):
0
     '''Un-like an entry.
0
 
...
65
66
67
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
69
70
...
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
0
@@ -65,6 +65,31 @@ class FriendFeed(object):
0
         self.auth_nickname = auth_nickname
0
         self.auth_key = auth_key
0
 
0
+    def validate(self,):
0
+        return self._fetch_feed("/api/validate")
0
+
0
+    def hide_entry(self, entry_id):
0
+        return self._fetch_feed("/api/entry/hide", {
0
+            "entry": entry_id,
0
+        })
0
0
+    def unhide_entry(self, entry_id):
0
+        return self._fetch_feed("/api/entry/hide", {
0
+            "entry": entry_id,
0
+            "unhide": '1',
0
+        })
0
0
+    def delete_entry(self, entry_id):
0
+        return self._fetch_feed("/api/entry/delete", {
0
+            "entry": entry_id,
0
+        })
0
0
+    def undelete_entry(self, entry_id):
0
+        return self._fetch_feed("/api/entry/delete", {
0
+            "entry": entry_id,
0
+            "undelete": '1',
0
+        })
0
+
0
     def fetch_user_profile(self, nickname, **kwargs):
0
         """Returns a users profile for the given nickname.
0
 
...
38
39
40
 
 
 
 
 
 
 
 
 
 
41
42
43
...
107
108
109
 
 
 
 
 
 
110
111
112
...
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
...
117
118
119
120
121
122
123
124
125
126
127
128
0
@@ -38,6 +38,16 @@
0
                 -
0
                 <a href="{% url entry_like request.entry %}?next={{ request.path }}">Undo</a>
0
             {% endifequal %}
0
+            {% ifequal request.message 'hidden' %}
0
+                Entry hidden
0
+                -
0
+                <a href="{% url entry_unhide request.entry %}?next={{ request.path }}">Undo</a>
0
+            {% endifequal %}
0
+            {% ifequal request.message 'un-hidden' %}
0
+                Entry un-hidden
0
+                -
0
+                <a href="{% url entry_hide request.entry %}?next={{ request.path }}">Undo</a>
0
+            {% endifequal %}
0
         </div>
0
     {% endif %}
0
     {% block share %}
0
@@ -107,6 +117,12 @@
0
                                 <a href="{% url entry_like entry.id %}?next={{ request.path }}">Like</a>
0
                             {% endif %}
0
                         {% endif %}
0
+                        {% if not entry.room %}
0
+                            {% ifnotequal entry.user.nickname request.session.nickname %}
0
+                                -
0
+                                <a href="{% url entry_hide entry.id %}?next={{ request.path }}">Hide</a>
0
+                            {% endifnotequal %}
0
+                        {% endif %}
0
                     {% endif %}
0
                     {% if entry.likes %}
0
                         -
...
24
25
26
 
 
27
...
24
25
26
27
28
29
0
@@ -24,4 +24,6 @@ urlpatterns = patterns('',
0
     url(r'^e/(?P<entry>[\w-]+)/c/(?P<comment>[\w-]+)/restore/$', 'fftogo.views.comment_restore', name='comment_restore'),
0
     url(r'^e/(?P<entry>[\w-]+)/like/$', 'fftogo.views.entry_like', name='entry_like'),
0
     url(r'^e/(?P<entry>[\w-]+)/unlike/$', 'fftogo.views.entry_unlike', name='entry_unlike'),
0
+    url(r'^e/(?P<entry>[\w-]+)/hide/$', 'fftogo.views.entry_hide', name='entry_hide'),
0
+    url(r'^e/(?P<entry>[\w-]+)/unhide/$', 'fftogo.views.entry_unhide', name='entry_unhide'),
0
 )

Comments