(none) || (none)
UAI
Publicidade

Estado de Minas

TRE confirma impugnação da candidatura de Flach ao governo de MG; candidato recorre

O tribunal contesta que a prestação de contas do PCO não foi apresentada. Nome do candidato estará nas urnas


25/09/2018 17:34
import re import redis import requests from lxml import etree from publica.admin.file import File from publica.db.relational import Relational from publica.admin.exchange import getDadosSite from datetime import datetime, timedelta dtsite = getDadosSite(id_site) or {} schemas = ['noticia_127983242361'] app = portal._getAplicativoByTitulo('Noticia') portalname = dtsite.get('titulo') fname = 'sitemapnews.xml' redis_client = redis.Redis(host='127.0.0.1', port=6379,db=0) interval_days = 2 def update_file(source, filename, path='htmls'): f = File(id_site=id_site, request=portal.request) data = f._readFile(path='%s/%s' % (path,filename)) if data.strip() == source.strip(): agencia._setlog(message='Sem alteracao', level="info", id_conteudo=id_conteudo) return False f._addArquivo(path=path, filename=filename, source=source) agencia._setlog(message='Atualizado', level="info", id_conteudo=id_conteudo) resp = requests.get('https://limpacache.estaminas.com.br/a?n=%s/%s' % (portal._getBases()['base_html'],fname)) resp_ping = requests.get('https://www.google.com/ping?sitemap=%s/%s' % (portal._getBases()['base_html'],fname)) return resp.content, resp_ping.content def cacheurlapp(func): def wrapper(item): key = 'GET_URL_APP:%(id_site)s:%(schema)s:%(id_conteudo)s:%(id_treeapp)s' % item resp = redis_client.get(key) if not resp or 'javascript' in resp: resp = func(item) redis_client.set(key,resp,ex=60*60*24*interval_days) return resp return wrapper @cacheurlapp def geturl(item): return portal.getUrlByApp( env_site=item['id_site'], schema=item['schema'], id_conteudo=item['id_conteudo'], id_treeapp=item['id_treeapp'], exportar=1, admin=1) end = datetime.now() ini = end - timedelta(days=interval_days) de = ini.strftime('%Y-%m-%d') ate = end.strftime('%Y-%m-%d') res = [] for schema in schemas: rel = Relational(request=portal.request) itens = rel._listPortal(id_site=id_site, schema=schema, begindate=de, enddate=ate, published=1) res += [item for item in itens if datetime.strptime(item['publicado_em'],'%Y-%m-%d %H:%M') >= ini and datetime.strptime(item['publicado_em'],'%Y-%m-%d %H:%M') <= end and '\"publicado\": true' in item['serialized']] content = app._getFotosSite(res[0]['id_conteudo']) return content res.sort(key=lambda item:datetime.strptime(item['publicado_em'],'%Y-%m-%d %H:%M'),reverse=True) feeditens = [] for item in res: item['titulo'] = re.sub('&(?![^\s&]+;)','&',item['titulo']) feeddict = { 'link': geturl(item), 'portal': portalname, 'publicado_em': datetime.strftime(datetime.strptime(item['publicado_em'],'%Y-%m-%d %H:%M'), '%Y-%m-%dT%H:%M:%S-03:00'), 'titulo': item['titulo'].decode('iso-8859-1').encode('utf-8','xmlcharrefreplace'), 'tags': 'tags' } if not feeddict['link'] or 'javascript' in feeddict['link']: continue feeditens.append(""" %(link)s %(portal)s pt-br %(publicado_em)s %(titulo)s %(tags)s """ % feeddict) feeditens = '\n'.join(feeditens) feed = """ %(feeditens)s """ % dict(feeditens=feeditens) tree = etree.fromstring(feed) source = etree.tostring(tree, pretty_print=True, method="xml", xml_declaration=True, encoding='UTF-8') return update_file(source=feed, filename=fname)

receba nossa newsletter

Comece o dia com as notícias selecionadas pelo nosso editor

Cadastro realizado com sucesso!

*Para comentar, faça seu login ou assine

Publicidade

(none) || (none)