From e5acabbedb7e06beb405b470b1c0189f73b57766 Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Sun, 03 Feb 2013 19:15:42 +0000 Subject: Merge branch 'master' of git.sugarlabs.org:+redwood-city/sugar/social-sugar --- diff --git a/configure.ac b/configure.ac index 43056ed..fe1c67a 100644 --- a/configure.ac +++ b/configure.ac @@ -64,6 +64,8 @@ extensions/cpsection/updater/backends/Makefile extensions/cpsection/updater/Makefile extensions/deviceicon/Makefile extensions/globalkey/Makefile +extensions/web/Makefile +extensions/web/facebook/Makefile extensions/Makefile Makefile po/Makefile.in @@ -77,6 +79,7 @@ src/jarabe/Makefile src/jarabe/model/Makefile src/jarabe/util/Makefile src/jarabe/util/telepathy/Makefile +src/jarabe/web/Makefile src/jarabe/view/Makefile src/Makefile ]) diff --git a/extensions/Makefile.am b/extensions/Makefile.am index d4ab534..cee24f9 100644 --- a/extensions/Makefile.am +++ b/extensions/Makefile.am @@ -1 +1 @@ -SUBDIRS = cpsection deviceicon globalkey +SUBDIRS = cpsection deviceicon globalkey web diff --git a/extensions/cpsection/facebook/model.py b/extensions/cpsection/facebook/model.py index 6eed773..02ff541 100644 --- a/extensions/cpsection/facebook/model.py +++ b/extensions/cpsection/facebook/model.py @@ -18,9 +18,10 @@ from gettext import gettext as _ from gi.repository import GConf +import os import time -from jarabe.util import facebook_online_account as fboa +from web import facebook_online_account as fboa def save_access_token(access_token, expires_in): client = GConf.Client.get_default() diff --git a/extensions/web/Makefile.am b/extensions/web/Makefile.am new file mode 100644 index 0000000..31420cd --- /dev/null +++ b/extensions/web/Makefile.am @@ -0,0 +1,6 @@ +SUBDIRS = facebook + +sugardir = $(pkgdatadir)/extensions/web +sugar_PYTHON = \ + __init__.py \ + facebook_online_account.py diff --git a/extensions/web/__init__.py b/extensions/web/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/extensions/web/__init__.py diff --git a/extensions/web/facebook/Makefile.am b/extensions/web/facebook/Makefile.am new file mode 100644 index 0000000..f6d39b6 --- /dev/null +++ b/extensions/web/facebook/Makefile.am @@ -0,0 +1,4 @@ +sugardir = $(pkgdatadir)/extensions/web/facebook +sugar_PYTHON = \ + __init__.py \ + facebook.py diff --git a/extensions/web/facebook/__init__.py b/extensions/web/facebook/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/extensions/web/facebook/__init__.py diff --git a/src/jarabe/util/facebook.py b/extensions/web/facebook/facebook.py index 92529dc..48d5921 100644 --- a/src/jarabe/util/facebook.py +++ b/extensions/web/facebook/facebook.py @@ -33,7 +33,6 @@ class FbAccount(): @classmethod def set_access_token(cls, access_token): - logging.debug("LOOK = %s" % (access_token)) cls._access_token = access_token @classmethod diff --git a/src/jarabe/util/facebook_online_account.py b/extensions/web/facebook_online_account.py index dcc82ad..f07209d 100644 --- a/src/jarabe/util/facebook_online_account.py +++ b/extensions/web/facebook_online_account.py @@ -26,6 +26,8 @@ import os import tempfile import time +from facebook import facebook + from gi.repository import Gtk from gi.repository import GdkPixbuf from gi.repository import GConf @@ -35,8 +37,8 @@ from sugar3.graphics.alert import Alert, NotifyAlert from sugar3.graphics.icon import Icon from jarabe.journal import journalwindow -from jarabe.util import facebook -from jarabe.util import online_account + +from jarabe.web import online_account ACCOUNT_NEEDS_ATTENTION = 0 ACCOUNT_ACTIVE = 1 @@ -62,6 +64,9 @@ class FacebookOnlineAccount(online_account.OnlineAccount): return expiration_date != 0 and expiration_date > time.time() def get_share_menu(self, journal_entry_metadata): + # TODO: + # this logic belongs inside FacebookShareMenu + # we should set this menu to insensitive if !is_active() if self.is_active(): icon_name = 'facebook-share' else: @@ -225,3 +230,6 @@ class FacebookRefreshButton(online_account.OnlineRefreshButton): def __fb_refresh_offline_response_cb(self, alert, alert_id): pass + +def get_account(): + return FacebookOnlineAccount() diff --git a/src/jarabe/Makefile.am b/src/jarabe/Makefile.am index d926d9f..39099a5 100644 --- a/src/jarabe/Makefile.am +++ b/src/jarabe/Makefile.am @@ -6,7 +6,8 @@ SUBDIRS = \ model \ view \ intro \ - util + util \ + web sugardir = $(pythondir)/jarabe sugar_PYTHON = \ diff --git a/src/jarabe/journal/journaltoolbox.py b/src/jarabe/journal/journaltoolbox.py index f1c1e3e..ce09500 100644 --- a/src/jarabe/journal/journaltoolbox.py +++ b/src/jarabe/journal/journaltoolbox.py @@ -48,7 +48,7 @@ from jarabe.journal import model from jarabe.journal.palettes import ClipboardMenu from jarabe.journal.palettes import VolumeMenu from jarabe.journal import journalwindow -from jarabe.util import online_accounts_manager as oam +from jarabe.web import online_accounts_manager as oam _AUTOSEARCH_TIMEOUT = 1000 diff --git a/src/jarabe/journal/palettes.py b/src/jarabe/journal/palettes.py index e03bc61..b69f55b 100644 --- a/src/jarabe/journal/palettes.py +++ b/src/jarabe/journal/palettes.py @@ -42,7 +42,7 @@ from jarabe.model import mimeregistry from jarabe.journal import misc from jarabe.journal import model from jarabe.journal import journalwindow -from jarabe.util import online_accounts_manager as oam +from jarabe.web import online_accounts_manager as oam class ObjectPalette(Palette): diff --git a/src/jarabe/util/Makefile.am b/src/jarabe/util/Makefile.am index 7f80330..3054b5a 100644 --- a/src/jarabe/util/Makefile.am +++ b/src/jarabe/util/Makefile.am @@ -5,8 +5,4 @@ sugardir = $(pythondir)/jarabe/util sugar_PYTHON = \ __init__.py \ emulator.py \ - facebook.py \ - facebook_online_account.py \ - normalize.py \ - online_account.py \ - online_accounts_manager.py + normalize.py diff --git a/src/jarabe/web/Makefile.am b/src/jarabe/web/Makefile.am new file mode 100644 index 0000000..b751410 --- /dev/null +++ b/src/jarabe/web/Makefile.am @@ -0,0 +1,5 @@ +sugardir = $(pythondir)/jarabe/web +sugar_PYTHON = \ + __init__.py \ + online_account.py \ + online_accounts_manager.py diff --git a/src/jarabe/web/__init__.py b/src/jarabe/web/__init__.py new file mode 100644 index 0000000..9c80ecb --- /dev/null +++ b/src/jarabe/web/__init__.py @@ -0,0 +1,18 @@ +"""OLPC Sugar Jarabe utility modules +""" + +# Copyright (C) 2008, One Laptop Per Child +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/src/jarabe/util/online_account.py b/src/jarabe/web/online_account.py index 560c252..560c252 100644 --- a/src/jarabe/util/online_account.py +++ b/src/jarabe/web/online_account.py diff --git a/src/jarabe/util/online_accounts_manager.py b/src/jarabe/web/online_accounts_manager.py index c262968..cb7a7ce 100644 --- a/src/jarabe/util/online_accounts_manager.py +++ b/src/jarabe/web/online_accounts_manager.py @@ -21,15 +21,28 @@ #THE SOFTWARE. from gi.repository import GObject +import logging +import os -from jarabe.util import facebook_online_account as fboa +from jarabe import config class OnlineAccountsManager(GObject.GObject): @classmethod def all_accounts(cls): accounts = [] - accounts.append(fboa.FacebookOnlineAccount()) + + for f in os.listdir(os.path.join(config.ext_path, 'web')): + if f.endswith('.py') and not f.startswith('__'): + module_name = f[:-3] + logging.debug("OnlineAccountsManager loading %s" % \ + (module_name)) + try: + mod = __import__('web.' + module_name, globals(), + locals(), [module_name]) + accounts.append(mod.get_account()) + except Exception: + logging.exception('Exception while loading extension:') return accounts @classmethod -- cgit v0.9.1