diff options
Diffstat (limited to 'extensions/web/facebook/facebook/facebook.py')
-rw-r--r-- | extensions/web/facebook/facebook/facebook.py | 44 |
1 files changed, 32 insertions, 12 deletions
diff --git a/extensions/web/facebook/facebook/facebook.py b/extensions/web/facebook/facebook/facebook.py index be37abd..62c15de 100644 --- a/extensions/web/facebook/facebook/facebook.py +++ b/extensions/web/facebook/facebook/facebook.py @@ -28,6 +28,7 @@ import urllib from gi.repository import GObject + class FbAccount(): _access_token = "" @@ -39,9 +40,11 @@ class FbAccount(): def access_token(cls): return cls._access_token + class FbObjectNotCreatedException(Exception): pass + class FbBadCall(Exception): pass @@ -60,6 +63,7 @@ FB_TYPES = { FB_STATUS: "status", } + class FbPhoto(GObject.GObject): PHOTOS_URL = "https://graph.facebook.com/me/photos?access_token=%s" COMMENTS_URL = "https://graph.facebook.com/%s/comments" @@ -69,14 +73,22 @@ class FbPhoto(GObject.GObject): 'photo-create-failed': (GObject.SignalFlags.RUN_FIRST, None, ([str])), 'comment-added': (GObject.SignalFlags.RUN_FIRST, None, ([str])), 'comment-add-failed': (GObject.SignalFlags.RUN_FIRST, None, ([str])), - 'comments-downloaded': (GObject.SignalFlags.RUN_FIRST, None, ([object])), - 'comments-download-failed': (GObject.SignalFlags.RUN_FIRST, None, ([str])), - 'likes-downloaded': (GObject.SignalFlags.RUN_FIRST, None, ([object])), - 'transfer-started': (GObject.SignalFlags.RUN_FIRST, None, ([int, int])), - 'transfer-progress': (GObject.SignalFlags.RUN_FIRST, None, ([int, int, float])), - 'transfer-completed': (GObject.SignalFlags.RUN_FIRST, None, ([int, int])), - 'transfer-failed': (GObject.SignalFlags.RUN_FIRST, None, ([int, int, str])), - 'transfer-state-changed': (GObject.SignalFlags.RUN_FIRST, None, ([str])), + 'comments-downloaded': (GObject.SignalFlags.RUN_FIRST, None, + ([object])), + 'comments-download-failed': (GObject.SignalFlags.RUN_FIRST, None, + ([str])), + 'likes-downloaded': (GObject.SignalFlags.RUN_FIRST, None, + ([object])), + 'transfer-started': (GObject.SignalFlags.RUN_FIRST, None, + ([int, int])), + 'transfer-progress': (GObject.SignalFlags.RUN_FIRST, None, + ([int, int, float])), + 'transfer-completed': (GObject.SignalFlags.RUN_FIRST, None, + ([int, int])), + 'transfer-failed': (GObject.SignalFlags.RUN_FIRST, None, + ([int, int, str])), + 'transfer-state-changed': (GObject.SignalFlags.RUN_FIRST, None, + ([str])), } def __init__(self, fb_object_id=None): @@ -104,6 +116,7 @@ class FbPhoto(GObject.GObject): url = self.COMMENTS_URL % (self.fb_object_id) response = [] + def write_cb(buf): response.append(buf) @@ -125,6 +138,7 @@ class FbPhoto(GObject.GObject): params = [('source', (c.FORM_FILE, image_path))] response = [] + def write_cb(buf): response.append(buf) @@ -163,12 +177,14 @@ class FbPhoto(GObject.GObject): logging.debug("_refresh_comments fetching %s" % (url)) response_comments = [] + def write_cb(buf): response_comments.append(buf) - ret = self._http_call(url, [], write_cb, False, FB_COMMENT) + ret = self._http_call(url, [], write_cb, False, FB_COMMENT) if ret != 200: - logging.debug("_refresh_comments failed, HTTP resp code: %d" % ret) + logging.debug("_refresh_comments failed, HTTP resp code: %d" % + ret) self.emit('comments-download-failed', "Comments download failed: %d" % (ret)) return @@ -242,7 +258,8 @@ class FbPhoto(GObject.GObject): if result != 200: error_reason = "HTTP Code %d" % (result) self.emit('transfer-failed', fb_type, transfer_type, error_reason) - self.emit('transfer-state-changed', "%s failed: %s" % (transfer_str, error_reason)) + self.emit('transfer-state-changed', "%s failed: %s" % + (transfer_str, error_reason)) c.close() @@ -268,7 +285,8 @@ class FbPhoto(GObject.GObject): state = "started" elif done == total: self.emit('transfer-completed', fb_type, transfer_type) - self.emit('transfer-state-changed', "%s completed" % (transfer_str)) + self.emit('transfer-state-changed', "%s completed" % + (transfer_str)) state = "completed" else: if total != 0: @@ -299,6 +317,7 @@ def test_create_photo(loop): photo.connect('photo-created', photo_created_cb, loop) photo.create(photo_path) + def test_add_comment(loop): def photo_created_cb(photo, photo_id, loop): print "Photo created: %s" % (photo_id) @@ -317,6 +336,7 @@ def test_add_comment(loop): photo.connect('photo-created', photo_created_cb, loop) photo.create(photo_path) + def test_get_comments(loop): def photo_created_cb(photo, photo_id, loop): print "Photo created: %s" % (photo_id) |