def OnGetItem(self, n): """callback to display item""" try: return self.blog.get_blog(n).html() except IndexError, err: display_error(_('Could not get blog.'), error=err) return "<p>Corrupted Blog</p>"
def OnGetItem(self, n): """callback to display item""" assert get_facade(), "Facade not initialiazed" try: return get_facade()._desc.blog.get_blog(n).html() except IndexError, err: display_error(_('Could not get blog.'), error=err) return "<p>Corrupted Blog</p>"
def add_comment(self, index, text, author=None, date=None): """get blog at given index and delegate add_comment to it""" try: blog = self.get_blog(index) blog.add_comment(text, author, date) except IndexError, err: display_error(_("Could not add comment: blog not valid"), error=err)
def _on_complete_pickle(self, donwload_msg): """callback when finished downloading blog""" log("_on_complete_pickle: ", self.peer.peer_id) try: return pickle.load(donwload_msg.file) except Exception, err: display_error( _( "Your version of Solipsis is not compatible " "with the peer'sone you wish to download from " "Make sure you both use the latest (%s)" % VERSION ), title="Download error", error=err, )
def select_files(self, peer_id, deferred=None): """request downwload of list of shared files""" on_done = self.network.get_shared_files(peer_id) if on_done != None: on_done.addCallback(self._on_shared_files, peer_id) on_done.addErrback(lambda x: display_error("Could not get shared files: " + str(x))) deferred and on_done.chainDeferred(deferred)
def get_blog_file(self, peer_id, deferred=None): """request downwload of blog""" on_done = self.network.get_blog_file(peer_id) if on_done != None: on_done.addCallback(self._on_new_blog, peer_id) on_done.addErrback(lambda x: display_error("Could not get blog: " + str(x))) deferred and on_done.chainDeferred(deferred)
def fill_shared_files(self, peer_id, files, flag_update=True): """connect shared files with shared files""" if not isinstance(files, SharedFiles): raise TypeError("data expected as SharedFiles") assert self.has_peer(peer_id), "no profile for %s in %s"\ % (peer_id, self.__class__) peer_desc = self.get_peer(peer_id) # set repositories for repo in files: # do not check validity of path since files are located on # remote computer => checked=False try: peer_desc.document.add_repository(repo, checked=False) except ContainerException, err: display_error(_("Could not import directory %s"% repo), title=_("Partial import"), error=err)
def import_document(self, other_document): """copy data from another document into self""" try: # others' data self.reset_peers() peers = other_document.get_peers() for peer_id, peer_desc in peers.iteritems(): self.set_peer(peer_id, PeerDescriptor(peer_id, document=peer_desc.document, blog=peer_desc.blog, state=peer_desc.state)) except TypeError, err: display_error(_("Could not import Profile: " "no contacts impmorted"), title=_("Profile Corrupted"), error=err)
def import_document(self, other_document): """copy data from another document into self""" try: # personal data (unicode) self.set_pseudo(other_document.get_pseudo()) self.set_title(other_document.get_title()) self.set_firstname(other_document.get_firstname()) self.set_lastname(other_document.get_lastname()) self.set_photo(other_document.get_photo()) self.set_email(other_document.get_email()) # custom data attributes = other_document.get_custom_attributes() for key, val in attributes.iteritems(): self.add_custom_attributes(key, val) except TypeError, err: display_error(_("Could not import Profile: " "using default values for personal data"), title=_("Profile Corrupted"), error=err)
def del_repository(self, path): if not isinstance(path, str): raise TypeError("repository to remove expected as str") del self.files[path] def expand_dir(self, path): if not isinstance(path, str): raise TypeError("dir to expand expected as str") errors = [] try: errors += self._get_sharing_container(path).expand_dir(path) except ContainerException, err: errors.append(str(err)) if errors: display_error("\n".join(errors), title="Errors when expanding") return errors def expand_children(self, path): if not isinstance(path, str): raise TypeError("dir to expand expected as str") errors = [] try: container = self.get_container(path) for dir_container in [cont for cont in container.values() if isinstance(cont, DictContainer)]: errors += self.expand_dir(dir_container.get_path()) except ContainerException, err: errors.append(str(err)) if errors: display_error("\n".join(errors),