Thursday, May 8, 2008

FriendFork launched

I've launched the initial version of FriendFork, at http://friendfork.appspot.com. It's still very rough around the edges (especially the initial setup process), but I think it's complete enough to be useful.

The main goal of FriendFork is to adapt the FriendFeed API so it fits a little better into Google Reader (at least for my style of reading). The main changes are to produce separate feeds for different groups of friends, and to replace FriendFeed's "Someone shared an item on Google Reader" links with the real Reader shared items (unless there are "likes" or comments). Since I'm rewriting the feeds anyway, I took the opportunity to make a few other improvements, such as the addition of timestamps in comments and better rendering of YouTube videos.

If this sounds useful to you, go to FriendFork to create your customized feeds.

4 comments:

Ron K. Jeffries said...

I accidentally specified a nonexistant FriendFeed name, but paired with my CORRECT FF remote key.
it barfed as follows: Status: 500 Internal Server Error Cache-Control: no-cache Content-Type: text/plain Content-Length: 458 Traceback (most recent call last): File "/base/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 499, in __call__ handler.get(*groups) File "/base/data/home/apps/friendfork/1.4/friendfork.py", line 139, in get % config.friendfeed_nickname)) File "/base/data/home/apps/friendfork/1.4/friendfork.py", line 111, in fetch_json_with_auth raise RuntimeError("http error: %d" % result.status_code) RuntimeError: http error: 404

unfortunately, now I am stuck and can not get in with correct FF user name.

my email is rjeffries@gmail.com

thanks!

Ben Darnell said...

OK, I've reset your account so you can try again. I'll work on better error handling in a future release.

Unknown said...

Traceback (most recent call last):
File "/base/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 499, in __call__
handler.get(*groups)
File "/base/data/home/apps/friendfork/1.4/friendfork.py", line 173, in get
config, 'http://friendfeed.com/api/feed/home')
File "/base/data/home/apps/friendfork/1.4/friendfork.py", line 108, in fetch_json_with_auth
return decoder.JSONDecoder().decode(result.content)
File "/base/python_lib/versions/1/django/utils/simplejson/decoder.py", line 251, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/base/python_lib/versions/1/django/utils/simplejson/decoder.py", line 268, in raw_decode
obj, end = self._scanner.iterscan(s, **kw).next()
File "/base/python_lib/versions/1/django/utils/simplejson/scanner.py", line 50, in iterscan
rval, next_pos = action(m, context)
File "/base/python_lib/versions/1/django/utils/simplejson/decoder.py", line 138, in JSONObject
value, end = iterscan(s, idx=end, context=context).next()
File "/base/python_lib/versions/1/django/utils/simplejson/scanner.py", line 50, in iterscan
rval, next_pos = action(m, context)
File "/base/python_lib/versions/1/django/utils/simplejson/decoder.py", line 171, in JSONArray
value, end = iterscan(s, idx=end, context=context).next()
File "/base/python_lib/versions/1/django/utils/simplejson/scanner.py", line 50, in iterscan
rval, next_pos = action(m, context)
File "/base/python_lib/versions/1/django/utils/simplejson/decoder.py", line 138, in JSONObject
value, end = iterscan(s, idx=end, context=context).next()
File "/base/python_lib/versions/1/django/utils/simplejson/scanner.py", line 50, in iterscan
rval, next_pos = action(m, context)
File "/base/python_lib/versions/1/django/utils/simplejson/decoder.py", line 113, in JSONString
return scanstring(match.string, match.end(), encoding)
File "/base/python_lib/versions/1/django/utils/simplejson/decoder.py", line 97, in scanstring
errmsg("Invalid \\escape: %r" % (esc,), s, end))
ValueError: Invalid \escape: 'x': line 1 column 67813 (char 67813)

Ben Darnell said...

Hao,

That looks like a problem on the FriendFeed side (their API is returning invalid JSON), but I can't be sure since I checked your account and it's not happening now. I've mentioned the problem to the guys at FriendFeed.