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()
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()