def handle(self, *args, **options):

		feed = feedparser.parse('http://g1.globo.com/dynamo/rss2.xml')
		for item in feed.entries:
			try:
				noticia = Noticia.objects.get(link=item.link)
				break
			except:				
				noticia = Noticia()
				noticia.titulo = item.title
				noticia.link = item.link
				noticia.editoria = re.findall('globo.com/(.+)/noticia', item.link)[0]
				noticia.id_materia, noticia.link_encurtado = getDadosMateria(item.link)
			
				noticia.getUrlEncodada()
			
				noticia.numero_comentarios = getNumeroDeComentarios(noticia.link_encodado)
				noticia.save()
예제 #2
0
def cadastra_noticia(noticia_json, tipo):
    '''
        @cadastra_noticia: Adiciona/Atualiza uma noticia no banco
    '''
    # Adicionando o MimeType a Imagem base64
    noticia_json['imagem'] = '%s%s' % ('data:image/jpg;base64,',
                                       noticia_json['imagem'])
    noticia_json['thumb'] = '%s%s' % ('data:image/jpg;base64,',
                                      noticia_json['thumb'])

    topicos = strip_accents(noticia_json['topicos'])

    # Inserindo ou atualizando a Noticia no banco
    if tipo == 'update':
        noticia = Noticia.objects.get(id_noticia=int(noticia_json['id_noticia']))
    else:
        noticia = Noticia()
        noticia.id_noticia = int(noticia_json['id_noticia'])

    if noticia_json['destaque']:
        Noticia.objects.all().update(destaque=False)
        noticia.destaque = True
    else:
        noticia.destaque = False

    noticia.titulo = strip_accents(noticia_json['titulo'])
    noticia.data_noticia = trata_data(noticia_json['data_noticia'])
    noticia.resumo = strip_accents(noticia_json['resumo'])

    if noticia_json['autor']:
        noticia.autor = strip_accents(noticia_json['autor'])

    # Tratando o texto para remover imagens contidas
    texto = trata_texto(noticia_json['texto'])
    noticia.texto = texto.prettify()

    noticia.thumb = noticia_json['thumb']

    if noticia_json['topicos']:
        noticia.topicos = topicos
        
    if noticia_json['url_noticia']:
        noticia.url_noticia = noticia_json['url_noticia']

    noticia.save()

    if tipo == 'update':
        noticia.imagens.all().delete()
        noticia.cidade.clear()

    # Adicionando a Imagem a Galeria da Noticia
    noticia.imagens.create(imagem=noticia_json['imagem'])
    
    # Verificando de qual cidade é a Noticia
    for cidade in Cidade.objects.all():
        if str(cidade.abreviacao) in topicos:
            noticia.cidade.add(cidade)
            

    # Verificando de qual a categoria da Noticia
    for categoria in Categoria.objects.all():
        nome_categoria = strip_accents(noticia_json['categoria'])
        if strip_accents(categoria.nome) == nome_categoria:
            noticia.categoria = categoria

    noticia.save()