class AccountConfig(ConfigBase): def __init__(self, account_id): ConfigBase.__init__(self, default=ACCOUNT_CFG) self.log = logging.getLogger('AccountConfig') self.basedir = os.path.join(BASEDIR, 'accounts', account_id) if XDG_CACHE: cachedir = BaseDirectory.xdg_cache_home self.imgdir = os.path.join(cachedir, 'turpial', account_id, 'images') else: self.imgdir = os.path.join(self.basedir, 'images') self.configpath = os.path.join(self.basedir, 'config') self.log.debug('CACHEDIR: %s' % self.imgdir) self.log.debug('CONFIGFILE: %s' % self.configpath) if not os.path.isdir(self.basedir): os.makedirs(self.basedir) if not os.path.isdir(self.imgdir): os.makedirs(self.imgdir) if not self.exists(account_id): self.create() try: self.load() except Exception, exc: self.load_failsafe() if not self.exists(account_id): self.write('Login', 'username', get_username_from(account_id)) self.write('Login', 'protocol', get_protocol_from(account_id))
def __show(self): self.update_friends_list() short_service = self.base.get_shorten_url_service() short_tooltip = "%s (%s)" % (i18n.get('short_url'), short_service) self.short_button.setToolTip(short_tooltip) upload_service = self.base.get_upload_media_service() upload_tooltip = "%s (%s)" % (i18n.get('upload_image'), upload_service) self.upload_button.setToolTip(upload_tooltip) self.accounts_combo.clear() accounts = self.base.core.get_registered_accounts() if len(accounts) > 1: self.accounts_combo.addItem('--', '') for account in accounts: protocol = get_protocol_from(account.id_) icon = QIcon(self.base.get_image_path('%s.png' % protocol)) self.accounts_combo.addItem(icon, get_username_from(account.id_), account.id_) if len(accounts) > 1: icon = QIcon(self.base.get_image_path('action-conversation.png')) self.accounts_combo.addItem(icon, i18n.get('broadcast'), 'broadcast') if self.account_id: index = self.accounts_combo.findData(self.account_id) if index > 0: self.accounts_combo.setCurrentIndex(index) self.accounts_combo.setEnabled(False) if self.message: self.text_edit.setText(self.message) cursor = self.text_edit.textCursor() cursor.movePosition(self.cursor_position, QTextCursor.MoveAnchor) self.text_edit.setTextCursor(cursor) QWidget.show(self) self.showed = True
def load(account_id): """ Return the account object associated to *account_id* loaded from existing configuration. If the *account_id* does not correspond to a valid account it returns a :class:`libturpial.exceptions.ErrorLoadingAccount` exception. If credentials in configuration file are empty it returns a :class:`libturpial.exceptions.EmptyOAuthCredentials` exception. """ if not AccountConfig.exists(account_id): raise ErrorLoadingAccount("Account has no stored credentials") username = get_username_from(account_id) protocol_id = get_protocol_from(account_id) account = Account.new(protocol_id, username) account.config = AccountConfig(account_id) key, secret = account.config.load_oauth_credentials() account.setup_user_credentials(account.id_, key, secret) account.fetch() return account