Olá, pessoal!
Hoje eu apresento para vocês um código simples em python + flask para que vocês possam criar um web app que gere um rss feed a partir de um arquivo txt. Indo direto ao ponto, o código está logo abaixo:import os
from flask import Flask, jsonify, request, make_response, Response
from rfeed import *
import random
import datetime
import codecs
app = Flask(__name__)
@app.route('/')
def frases():
random.randrange(0,23)
arquivo = codecs.open("frases.txt", "r", encoding='utf-8')
palavras = []
for linha in arquivo:
linha = linha.strip()
palavras.append(linha)
arquivo.close()
numero = random.randrange(0, len(palavras))
escolha = palavras[numero].upper()
# Define o item do feed
item1 = Item(
title=escolha,
link = "http://www.kalirio.com.br",
description=escolha,
author = "contato@kalirio.com.br",
guid = Guid("http://www.kalirio.com.br"),
pubDate = datetime.datetime.now())
feed = Feed(
title = "Frases de Bruce Lee",
link="https://www.kalirio.com.br",
description="Frases de Bruce Lee",
language="pt-BR",
lastBuildDate = datetime.datetime.now(),
items = [item1]
)
##return feed.rss()
return Response(feed.rss(), mimetype='text/xml')
if __name__ == "__main__":
port = int(os.environ.get("PORT", 5000))
app.run(host='0.0.0.0', port=port)
Eu escrevi esse programa com um objetivo simples: gerar um feed rss com apenas 1 frase de Bruce Lee que seria escolhida aleatoriamente a partir um arquivo com 24 frases. Entendendo o arquivo:
O primeiro passo é abrir o arquivo com as frases
random.randrange(0,23)Em seguida eu escolho um número aleatório e seleciono qual a frase da vez:
arquivo = codecs.open("frases.txt", "r", encoding='utf-8')
palavras = []
for linha in arquivo:
linha = linha.strip()
palavras.append(linha)
arquivo.close()
numero = random.randrange(0, len(palavras))
escolha = palavras[numero].upper()
O passo seguinte é adicionar as características do feed com a frase escolhida
# Define o item do feed
item1 = Item(
title=escolha,
link = "http://www.kalirio.com.br",
description=escolha,
author = "contato@kalirio.com.br",
guid = Guid("http://www.kalirio.com.br"),
pubDate = datetime.datetime.now())
feed = Feed(
title = "Frases de Bruce Lee",
link="https://www.kalirio.com.br",
description="Frases de Bruce Lee",
language="pt-BR",
lastBuildDate = datetime.datetime.now(),
items = [item1]
O último passo é especificar a saída do app:
return Response(feed.rss(), mimetype='text/xml')
Caso vocês queiram adaptar esse arquivo para fazer o deploy no Heroku, não se esqueçam de adicionar o arquivo Procfile
web: python rss.py
E o arquivo Pipfile
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
[packages]
Flask = "*"
rfeed = "*"
[requires]
python_version = "3.6"