def seguir(obraid): emailto = "" obra = fromcache("obra-" + obraid) or tocache("obra-" + obraid, _get_obras(obraid=obraid)[0]) if not obra: print "Não achou a obra!" return abort(404) slug = obra['slug'] if request.form: if request.form.has_key('faceid'): has = UserFollow.query.filter_by(obra_id=obraid, facebook_id=request.form['faceid']) if has.count() <= 0: # return dumps({'status':'error','msg':'Você já é seguidor desta obra pelo Facebook'}) follow = _make_follow(obraid) follow.facebook_id = request.form['faceid'] emailto = "*****@*****.**" % follow.facebook_id if request.form.has_key('twitterid'): has = UserFollow.query.filter_by(obra_id=obraid, twitter_id=request.form['twitterid']) if has.count() <= 0: # return dumps({'status':'error','msg':'Você já é seguidor desta obra pelo Twitter'}) follow = _make_follow(obraid) follow.twitter_id = request.form['twitterid'] msg = u"A partir de agora você segue a obra %s!" % obra['title'] _send_twitter_dm(follow.twitter_id, msg) if request.form.has_key('email'): has = UserFollow.query.filter_by(obra_id=obraid, email=request.form['email']) if has.count() <= 0: # return dumps({'status':'error','msg':'Você já é seguidor desta obra pelo Email'}) follow = _make_follow(obraid) follow.email = request.form['email'] emailto = follow.email dbsession.commit() if emailto: base_url = current_app.config['BASE_URL'] base_url = base_url if base_url[-1:] != '/' else base_url[:-1] #corta a barra final _dados_email = { 'titulo': obra['title'], 'link' : base_url + url_for('.obra',slug=slug), 'descricao' : Markup(obra['content']).striptags(), 'monitore_url': base_url + url_for('.index'), 'siteurl': base_url, } sendmail( current_app.config['SEGUIROBRA_SUBJECT'] % _dados_email, emailto, current_app.config['SEGUIROBRA_MSG'] % _dados_email ) return dumps({'status':'ok'}) else: return dumps({'status':'error'})
def inscrever(): resp = {'status': 0, 'msg': 'Obrigado pela sua inscrição'} try: if not request.form['nome'] or not request.form['email']: resp['status'] = 2 resp['msg'] = 'É necessário preencher o Nome e o Email' else: insc = InscricaoSeminario() insc.nome = request.form['nome'] insc.email = request.form['email'] insc.telefone = request.form['telefone'] insc.twitter = request.form['twitter'] insc.facebook = request.form['facebook'] insc.site = request.form['site'] if 'colaborativa' in request.form: insc.colaborativa = True modo = [] if 'foto' in request.form: modo.append("foto") if 'video' in request.form: modo.append("video") if 'texto' in request.form: modo.append("texto") insc.colaborativa_modo = ",".join(modo) print "adding..." try: dbsession.add(insc) except Exception as d: print d pass print "commititng..." dbsession.commit() try: sendmail( conf.SEMINARIO_SUBJECT % {'nome': request.form['nome']}, request.form['email'], conf.SEMINARIO_MSG) except Exception as e: print e print "Erro ao enviar email para", request.form['email'] pass except IntegrityError as i: resp[ 'msg'] = "Este email informado já está cadastrado em nossa base de dados." resp['status'] = 1 dbsession.rollback() except Exception as e: print e resp[ 'msg'] = "Ocorreu algum problema ao efetuar sua insrição. Tente novamente logo mais ou fale com os organizadores." resp['status'] = -1 dbsession.rollback() return jsonify(resp)
def inscrever(): resp = {"status": 0, "msg": "Obrigado pela sua inscrição"} try: if not request.form["nome"] or not request.form["email"]: resp["status"] = 2 resp["msg"] = "É necessário preencher o Nome e o Email" else: insc = InscricaoSeminario() insc.nome = request.form["nome"] insc.email = request.form["email"] insc.telefone = request.form["telefone"] insc.twitter = request.form["twitter"] insc.facebook = request.form["facebook"] insc.site = request.form["site"] if "colaborativa" in request.form: insc.colaborativa = True modo = [] if "foto" in request.form: modo.append("foto") if "video" in request.form: modo.append("video") if "texto" in request.form: modo.append("texto") insc.colaborativa_modo = ",".join(modo) print "adding..." try: dbsession.add(insc) except Exception as d: print d pass print "commititng..." dbsession.commit() try: sendmail( conf.SEMINARIO_SUBJECT % {"nome": request.form["nome"]}, request.form["email"], conf.SEMINARIO_MSG ) except Exception as e: print e print "Erro ao enviar email para", request.form["email"] pass except IntegrityError as i: resp["msg"] = "Este email informado já está cadastrado em nossa base de dados." resp["status"] = 1 dbsession.rollback() except Exception as e: print e resp[ "msg" ] = "Ocorreu algum problema ao efetuar sua insrição. Tente novamente logo mais ou fale com os organizadores." resp["status"] = -1 dbsession.rollback() return jsonify(resp)
def seguir(obraid): emailto = "" obra = fromcache("obra-" + obraid) or tocache("obra-" + obraid, _get_obras(obraid=obraid)[0]) if not obra: print "Não achou a obra!" return abort(404) slug = obra['slug'] if request.form: follow = UserFollow() if authapi.is_authenticated(): follow.user = authapi.authenticated_user() emailto = follow.user.email follow.obra_id = int(obraid) if request.form.has_key('faceid'): follow.facebook_id = request.form['faceid'] if request.form.has_key('twitterid'): follow.twitter_id = request.form['twitterid'] if request.form.has_key('email'): follow.email = request.form['email'] emailto = follow.email dbsession.commit() if emailto: base_url = current_app.config['BASE_URL'] base_url = base_url if base_url[-1:] != '/' else base_url[:-1] #corta a barra final _dados_email = { 'titulo': obra['title'], 'link' : base_url + url_for('.obra',slug=slug), 'descricao' : Markup(obra['content']).striptags(), 'monitore_url': base_url + url_for('.index'), 'siteurl': base_url, } sendmail( current_app.config['SEGUIROBRA_SUBJECT'] % _dados_email, emailto, current_app.config['SEGUIROBRA_MSG'] % _dados_email ) return dumps({'status':'ok'}) else: return dumps({'status':'error'})
def seguir(obraid): emailto = "" obra = fromcache("obra-" + obraid) or tocache("obra-" + obraid, _get_obras(obraid=obraid)[0]) if not obra: print "Não achou a obra!" return abort(404) slug = obra['slug'] if request.form: follow = UserFollow() if authapi.is_authenticated(): follow.user = authapi.authenticated_user() emailto = follow.user.email follow.obra_id = int(obraid) if request.form.has_key('faceid'): follow.facebook_id = request.form['faceid'] if request.form.has_key('twitterid'): follow.twitter_id = request.form['twitterid'] if request.form.has_key('email'): follow.email = request.form['email'] emailto = follow.email dbsession.commit() if emailto: base_url = current_app.config['BASE_URL'] base_url = base_url if base_url[ -1:] != '/' else base_url[:-1] #corta a barra final _dados_email = { 'titulo': obra['title'], 'link': base_url + url_for('.obra', slug=slug), 'descricao': Markup(obra['content']).striptags(), 'monitore_url': base_url + url_for('.index'), 'siteurl': base_url, } sendmail(current_app.config['SEGUIROBRA_SUBJECT'] % _dados_email, emailto, current_app.config['SEGUIROBRA_MSG'] % _dados_email) return dumps({'status': 'ok'}) else: return dumps({'status': 'error'})
def salvar_noticia_comite(): if request.method == 'POST': titulo = request.form['titulo'] noticia = request.form['noticia'] cn = ComiteNews() cn.title = unicode(titulo) cn.content = unicode(noticia) cn.user = authenticated_user() dbsession.commit() #Envia o email avisando que chegou uma nova contribuição sendmail(conf.COMITE_SUBJECT, conf.COMITE_TO_EMAIL, conf.COMITE_MSG % { 'titulo': titulo, 'noticia': noticia, }) return msg.ok(_(u'Thank you. Your contribution was successfuly sent.')) else: return msg.error(_(u'Method not allowed'))
def salvar_noticia_comite(): if request.method == 'POST': titulo = request.form['titulo'] noticia = request.form['noticia'] cn = ComiteNews() cn.title = unicode(titulo) cn.content = unicode(noticia) cn.user = authenticated_user() dbsession.commit() #Envia o email avisando que chegou uma nova contribuição sendmail( conf.COMITE_SUBJECT, conf.COMITE_TO_EMAIL, conf.COMITE_MSG % { 'titulo': titulo, 'noticia': noticia, } ) return msg.ok(_(u'Thank you. Your contribution was successfuly sent.')) else: return msg.error(_(u'Method not allowed'))
def sendnews(): """Método que faz o envio dos avisos para as pessoas que seguem as obras""" if "obra" in request.args: obraid = request.args['obra'] obra = fromcache("obra-" + obraid) or tocache("obra-" + obraid, _get_obras(obraid=obraid)[0]) elif "slug" in request.args: slug = request.args['slug'] obra = fromcache("obra-" + slug) or tocache("obra-" + slug, _get_obras(slug)[0]) obraid = obra['id'] else: print "DE-OLHO-NAS-OBRAS::", "Não foi passado o ID nem o SLUG da obra para os avisos!" return abort(404) base_url = current_app.config['BASE_URL'] obra_link = base_url + url_for('.obra',slug=obra['slug']) obra_titulo = obra['title'] _dados_obra = { 'titulo': obra_titulo, 'link': obra_link } print "DE-OLHO-NAS-OBRAS::", "buscando usuarios" usuarios = UserFollow.query.filter(UserFollow.obra_id==int(obraid)) ct = usuarios.count() if ct <= 0: print "DE-OLHO-NAS-OBRAS::", "Não existe nenhum usuario seguindo esta obra." return "Não existe nenhum usuário seguindo esta obra" print "DE-OLHO-NAS-OBRAS::", "Enviando aviso de atualizacoes para", ct,"usuarios." print "DE-OLHO-NAS-OBRAS::", "twitter connect" # t = Twython(current_app.config['TWITTER_CONSUMER_KEY'], current_app.config['TWITTER_CONSUMER_SECRET'], # current_app.config['TWITTER_ACCESS_TOKEN'], current_app.config['TWITTER_ACCESS_TOKEN_SECRET']) t = get_twitter_connection() msg_titulo = current_app.config['OBRA_ATUALIZACAO_SUBJECT'] msg = current_app.config['OBRA_ATUALIZACAO_MSG'] % _dados_obra msg_twitter = current_app.config['OBRA_ATUALIZACAO_TWITTER'] for u in usuarios: # print "DE-OLHO-NAS-OBRAS::", u.obra_id, u.mode, u.facebook_id, u.twitter_id, u.email # print "USER:"******"DE-OLHO-NAS-OBRAS::", "Via facebook..." fre = re.compile("(?P<link>(?:http(|s):\/\/)?(?:www.)?(facebook|fb).com\/?)*(?P<nome>[\w\.\-]*)") if fre.match(u.facebook_id): fid = fre.search(u.facebook_id).group('nome') else: fid = u.facebook_id # print "DE-OLHO-NAS-OBRAS::", fid femail = "*****@*****.**" % fid sendmail(msg_titulo, femail, msg) elif u.twitter_id: print "DE-OLHO-NAS-OBRAS::", "Via twitter..." tre = re.compile("(?P<link>(?:http(|s):\/\/)?(?:www.)?(facebook|fb).com\/?)*(?P<nome>[\w\.\-]*)") if tre.match(u.twitter_id): tid = fre.search(u.twitter_id).group('nome') else: tid = u.twitter_id print "DE-OLHO-NAS-OBRAS::", tid try: #send direct message t.create_friendship(screen_name=tid) dm = t.send_direct_message( user=tid, text="Tem atualização na obra %s! Veja: %s" % (obra_titulo, obra_link) ) except Exception as e: print "Ocorreu um erro enviando DM para twitter..." print e elif u.email: #sendmail print "DE-OLHO-NAS-OBRAS::", "Por email", u.email sendmail(msg_titulo, u.email, msg) print "DE-OLHO-NAS-OBRAS::", "Concluido!" return "Ok-" + d.datetime.now().strftime("%d%m%Y-%H%M%S") + "\n"
def sendnews(): """Método que faz o envio dos avisos para as pessoas que seguem as obras""" if "obra" in request.args: obraid = request.args['obra'] obra = fromcache("obra-" + obraid) or tocache( "obra-" + obraid, _get_obras(obraid=obraid)[0]) elif "slug" in request.args: slug = request.args['slug'] obra = fromcache("obra-" + slug) or tocache("obra-" + slug, _get_obras(slug)[0]) obraid = obra['id'] else: print "DE-OLHO-NAS-OBRAS::", "Não foi passado o ID nem o SLUG da obra para os avisos!" return abort(404) base_url = current_app.config['BASE_URL'] obra_link = base_url + url_for('.obra', slug=obra['slug']) obra_titulo = obra['title'] _dados_obra = {'titulo': obra_titulo, 'link': obra_link} print "DE-OLHO-NAS-OBRAS::", "buscando usuarios" usuarios = UserFollow.query.filter(UserFollow.obra_id == int(obraid)) ct = usuarios.count() if ct <= 0: print "DE-OLHO-NAS-OBRAS::", "Não existe nenhum usuario seguindo esta obra." return "Não existe nenhum usuário seguindo esta obra" print "DE-OLHO-NAS-OBRAS::", "Enviando aviso de atualizacoes para", ct, "usuarios." print "DE-OLHO-NAS-OBRAS::", "twitter connect" # t = Twython(current_app.config['TWITTER_CONSUMER_KEY'], current_app.config['TWITTER_CONSUMER_SECRET'], # current_app.config['TWITTER_ACCESS_TOKEN'], current_app.config['TWITTER_ACCESS_TOKEN_SECRET']) t = get_twitter_connection() msg_titulo = current_app.config['OBRA_ATUALIZACAO_SUBJECT'] msg = current_app.config['OBRA_ATUALIZACAO_MSG'] % _dados_obra msg_twitter = current_app.config['OBRA_ATUALIZACAO_TWITTER'] for u in usuarios: # print "DE-OLHO-NAS-OBRAS::", u.obra_id, u.mode, u.facebook_id, u.twitter_id, u.email # print "USER:"******"DE-OLHO-NAS-OBRAS::", "Via facebook..." fre = re.compile( "(?P<link>(?:http(|s):\/\/)?(?:www.)?(facebook|fb).com\/?)*(?P<nome>[\w\.\-]*)" ) if fre.match(u.facebook_id): fid = fre.search(u.facebook_id).group('nome') else: fid = u.facebook_id # print "DE-OLHO-NAS-OBRAS::", fid femail = "*****@*****.**" % fid sendmail(msg_titulo, femail, msg) elif u.twitter_id: print "DE-OLHO-NAS-OBRAS::", "Via twitter..." tre = re.compile( "(?P<link>(?:http(|s):\/\/)?(?:www.)?(facebook|fb).com\/?)*(?P<nome>[\w\.\-]*)" ) if tre.match(u.twitter_id): tid = fre.search(u.twitter_id).group('nome') else: tid = u.twitter_id print "DE-OLHO-NAS-OBRAS::", tid try: #send direct message t.create_friendship(screen_name=tid) dm = t.send_direct_message( user=tid, text="Tem atualização na obra %s! Veja: %s" % (obra_titulo, obra_link)) except Exception as e: print "Ocorreu um erro enviando DM para twitter..." print e elif u.email: #sendmail print "DE-OLHO-NAS-OBRAS::", "Por email", u.email sendmail(msg_titulo, u.email, msg) print "DE-OLHO-NAS-OBRAS::", "Concluido!" return "Ok-" + d.datetime.now().strftime("%d%m%Y-%H%M%S") + "\n"