Esempio n. 1
0
    def get(self):
        user = self.get_current_user()
        post_id = self.get_argument("id","")
        
        self._mblog = model.Mblog().retrieve(post_id)
        if self._mblog:
            mblog_data = self._mblog.props()

            registry_id = mblog_data["registry_id"]    

            (type, privacidade) = getType(registry_id)
            if type == "member" or type == "community":
                
                if isAllowedToAccess(user, registry_id) == 0:
                                  
                    mblog_data["apagar"] = (mblog_data["owner"] == user)
                    mblog_data["data_cri"] = human_date(mblog_data["data_cri"])
                    if "data_original" in mblog_data:
                        mblog_data["data_original"] = human_date(mblog_data["data_original"])
        
                    (permission, autocomplete) = autocomplete_mblog(user, registry_id)
                                
                    self.render("modules/mblog/post.html", NOMEPAG="microblog", \
                        REGISTRY_ID=registry_id, POST=mblog_data, \
                        MAX_CHR_MBLOG=MAX_CHR_MBLOG, \
                        PERMISSION=permission, \
                        AUTOCOMPLETE_LIST=autocomplete)
                else:
                    raise HTTPError(403)
            else:
                # usuario suspenso
                raise HTTPError(404)
        else:
            raise HTTPError(404)
Esempio n. 2
0
 def listMentions(self, user, registry_id, page, page_size):
     lista_posts = []
     for row in database.MBLOG.view('mblog/by_mentioned',startkey=[registry_id, {}],endkey=[registry_id], \
                                        descending="true", skip=(page-1)*page_size , limit=page_size):
         mblog_data = dict()
         mblog_data.update(row.value)
         
         mblog_data["apagar"] = (row.value["owner"] == user)
         mblog_data["data_cri"] = human_date(row.value["data_cri"])
         mblog_data["data_nofmt"] = row.value["data_cri"]
         mblog_data["data_original"] = human_date(row.value["data_original"])
         
         lista_posts.append(mblog_data)
     return lista_posts
Esempio n. 3
0
    def getScrapbookList(self, user, page=1, page_size=1, filter=False):
        # antiga BaseHandler.get_scrapbook_list (dispatcher.py)
        #
        # user: usuário logado, que quer visualizar os recados
        # filter: indica se deve filtrar apenas as mensagens enviadas por user
        #       se filter=False então lista todos os recados na lista self.recados
        #       senão lista somente os recados enviados por user
        # retorna lista de (sender_id,msg,data,data_fmt,reply_to)
        def replyTo (user, user_to, user_from):
            reply_to = ""
            if isAUser(user_to):
                if isFriend(user, user_from):
                    reply_to = user_from
            else:
                if isMember(user, user_to):
                    reply_to = user_to
            return reply_to
        
        scraps = []
        inicio = (page-1)*page_size
        fim = min(inicio+page_size, len(self.recados))

        for i in range(inicio,fim):
            if not filter or self.recados[i]["user_from"] == user:
                sender = self.recados[i]["user_from"]
                msg    = self.recados[i]["recado"]
                data   = self.recados[i]["data"]
                data_fmt = human_date(data)
                reply_to = replyTo(user, self.user_to, self.recados[i]["user_from"])
                scraps.append( (sender,msg,data,data_fmt,reply_to) )
        scraps.sort(key=itemgetter(2),reverse=True)
        return scraps
Esempio n. 4
0
    def get(self):
        user = self.get_current_user()
        mblog_id = self.get_argument("id","")
        community_id = self.get_argument("community","")
        registry_id = user if not community_id else community_id
        
        self._mblog = model.Mblog().retrieve(mblog_id)
        if not self._mblog:
            raise HTTPError(404)
            return    
        
        self._mblog.data_cri = human_date(self._mblog.data_cri)

        (permission, autocomplete) = autocomplete_mblog(user, registry_id)
        
        legenda = u"Meu histórico" if user == registry_id else "Mblogs de %s" % registry_id
        links = []
        links.append((legenda, "/static/imagens/icones/history32.png", "/mblog/"+registry_id))
        links.append((u"Menções a @"+registry_id, "/static/imagens/icones/at32.png", "/mblog/mentions/"+registry_id))
        
        self.render("modules/mblog/reply.html", NOMEPAG="microblog", \
                    POST=self._mblog, \
                    PERMISSION=permission, AUTOCOMPLETE_LIST=autocomplete, \
                    REGISTRY_ID=registry_id, \
                    MAX_CHR_MBLOG=MAX_CHR_MBLOG, \
                    LINKS=links, \
                    MBLOG_ID=mblog_id)
Esempio n. 5
0
    def listPosts(self, user, registry_id, page, page_size, myself=False, myposts=0):
        # Lista os posts de registry_id. Se user = registry_id, myself=True
        lista_posts = []
        if myself and myposts!=1:
            # Estou vendo meu próprio mblog: vejo mensagens que me interessam.
            
            for row in database.MBLOG.view('mblog/by_followers',startkey=[registry_id, {}],endkey=[registry_id], \
                                           descending="true", skip=(page-1)*page_size , limit=page_size):
                mblog_data = dict()
                mblog_data.update(row.value)
                mblog_data["apagar"] = (row.value["owner"] == user)
                mblog_data["data_nofmt"] = row.value["data_cri"]
                mblog_data["data_cri"] = human_date(row.value["data_cri"])
                if "data_original" in row.value:
                    mblog_data["data_original"] = human_date(row.value["data_original"])
                lista_posts.append(mblog_data)
                
        else:
            # Estou vendo o mblog de outra pessoa ou de uma comunidade: 
            # só vejo mensagens postadas por ela.
          
            for row in database.MBLOG.view('mblog/by_owners',startkey=[registry_id, {}],endkey=[registry_id], \
                                           descending="true", skip=(page-1)*page_size , limit=page_size):
                mblog_data = dict()
                mblog_data.update(row.value)
                mblog_data["apagar"] = (row.value["owner"] == user)
                mblog_data["data_nofmt"] = row.value["data_cri"]
                mblog_data["data_cri"] = human_date(row.value["data_cri"])
                if "data_original" in row.value:
                    mblog_data["data_original"] = human_date(row.value["data_original"])

                if isAUser(registry_id):
                    community_id = ""
                    if registry_id != mblog_data["registry_id"]:
                        community_id = mblog_data["registry_id"]
                    
                    if (not community_id) or \
                       (community_id in core.database.REGISTRY and \
                       core.database.REGISTRY[community_id]["privacidade"]!="Privada"):
                        lista_posts.append(mblog_data)
                else:
                    lista_posts.append(mblog_data)

        return lista_posts
Esempio n. 6
0
    def get(self):
        user = self.get_current_user()
        mblog_id = self.get_argument("id","")
        
        self._mblog = model.Mblog().retrieve(mblog_id)
        if not self._mblog:
            raise HTTPError(404)
            return      
                
        # registry_id é o da mensagem original
        registry_id = self._mblog.registry_id
        
        lista_posts = []
        # varre a cadeia de mensagens da conversa
        while mblog_id:
            self._prox = model.Mblog().retrieve(mblog_id)
            if self._prox:
                post_data = self._prox.props()

                post_data["data_cri"] = human_date(post_data["data_cri"])
                post_data["apagar"] = (post_data["owner"] == user)
                lista_posts.append(post_data)
            
                # procura a próxima (a mensagem que esta respondeu)
                if "reply_to" in post_data:
                    mblog_id = post_data["reply_to"]
                else:
                    break
            else:
                break
         
         
        legenda = u"Meu histórico" if user == registry_id else "Mblogs de %s" % registry_id
        links = []
        links.append((legenda, "/static/imagens/icones/history32.png", "/mblog/"+registry_id))
        links.append((u"Menções a @"+registry_id, "/static/imagens/icones/at32.png", "/mblog/mentions/"+registry_id))

        self.render("modules/mblog/mblog.html", NOMEPAG="microblog", \
                    POSTS=lista_posts, \
                    PAGE=1, PAGESIZE=len(lista_posts), \
                    MBLOG_COUNT=len(lista_posts), \
                    REGISTRY_ID=registry_id, \
                    PERMISSION=False, AUTOCOMPLETE_LIST={}, \
                    MAX_CHR_MBLOG=MAX_CHR_MBLOG, \
                    TITULO="Conversa com @"+registry_id, \
                    TIPO="talk", \
                    LINKS=links)
Esempio n. 7
0
 def get_dict_lista_noticias(self, user=None, popup="N"):
     '''Retorna a lista de dicionários a ser exibida para o usuário.
        Chamada pelo control-panel
     '''
     # popup="S" retorna somente as notícias que devem ser exibidas agora.
     
     lista = []
     for n in range(len(self.news)):
         # popup="S" retorna somente as notícias que devem ser exibidas agora.
         if popup == "N" or (popup == "S" and  self.news[n]["popup"] == "S" and (self.news[n]["dt_validade"] == "" or  self.news[n]["dt_validade"] > str(datetime.now())[0:11])):
             self.news[n]["resumo"] = self.__formatar_texto_html(self.news[n]["resumo"])
             self.news[n]["dt_publicacao_fmt"] = human_date(self.news[n]["dt_publicacao"])
             self.news[n]["dt_publicacao"] = short_date(self.news[n]["dt_publicacao"])
             self.news[n]["id"] = n
             lista.append(self.news[n])
     lista.reverse()
     return lista
Esempio n. 8
0
 def get_obj_lista_noticias(self, user=None, popup="N"):
     '''Retorna a lista de objetos a ser exibida para o usuário.
        Chamada pelo controlador de notícias.
     '''
     # popup="S" retorna somente as notícias que devem ser exibidas agora.
     
     lista = []
     for n in range(len(self.news)):
         notic = Noticia(self.__registry_id, n)
         
         # popup="S" retorna somente as notícias que devem ser exibidas agora.
         if popup == "N" or (popup == "S" and  notic.popup == "S" and (notic.dt_validade == "" or  notic.dt_validade > str(datetime.now())[0:11])):
             notic.resumo = self.__formatar_texto_html(notic.resumo)
             notic.dt_publicacao_fmt = human_date(notic.dt_publicacao)
             notic.dt_publicacao = short_date(notic.dt_publicacao)
             notic.id = n
             lista.append(notic)
     lista.reverse()
     return lista
Esempio n. 9
0
def userTag(registry_id, tag):
    resultado = {}
    for row in TAGS.view('search/usertag',key=[registry_id, tag]):
        if row.value["tipo"] not in resultado:
            resultado[row.value["tipo"]] = []
        resultado[row.value["tipo"]].append((row.value["texto"], row.key[0], row.value["registry_id"], row.value["objeto"], row.value["data_cri"], human_date(row.value["data_cri"])))
            
    return resultado
Esempio n. 10
0
def findTag(tag):
    resultado = {}
    for row in TAGS.view('search/searchtags',startkey=[tag], endkey=[tag, {}]):
        (tag, tipo, objeto) = row.key
        if tipo not in resultado:
            resultado[tipo] = []
        resultado[tipo].append((row.value["texto"], row.value["owner"], row.value["registry_id"], objeto, row.value["data_cri"], human_date(row.value["data_cri"])))   
    return resultado