def toggle_favorite_serie(): user_id, serie_id = validate_favorite_form( request.json) # Might raise an InvalidForm exception if user_id != g.user.id: abort(403) user = User.get_user_by_id(user_id) serie = Serie.get_serie_by_id(serie_id) if serie is None: json = get_tv_serie(serie_id) serie = Serie.create_from_json(json) thread_seasons = Thread(target=Season.create_seasons_from_json, args=(json, )) thread_seasons.start() if user.get_subscription_by_serie_id(serie_id) is None: user.add_favorite_serie(serie) # Might raise an IntegrityError try: notification = Notification.create_from_serie( user_id, serie) # Might raise a ValueError mailing_server = MailingServer() mailing_server.send_notification(notification) except ValueError: pass is_favorite = True else: user.delete_favorite_serie(serie) is_favorite = False return jsonify({ 'user_id': user_id, 'serie_id': serie_id, "is_favorite": is_favorite })
def main(): # Creo las tablas Base.metadata.create_all(engine) comedy = Category(name="Comedy") drama = Category(name="Drama") session = Session() session.add(comedy) session.add(drama) session.add(Category(name="Musical")) session.add(Serie(title="The Big Bang Theory", description="Serie de frikis", category=comedy)) session.add(Serie(title="Juego de Tronos", description="Todos mueren", category=drama)) session.commit()
def do_registrar(): _auth = Auth() if _auth.is_login(): #field validation _name = request.forms.get('name') _day = request.forms.get('day') _url = request.forms.get('url') _chapter_url = request.forms.get('chapter_url') _num_chapters = request.forms.get('mun_chapters') _old_chapter = request.forms.get('old_chapter') #el usuario existe se supone que esta logueado sino cagada jaaj _user = db.GqlQuery("SELECT * FROM User WHERE username = :1", _auth.is_login()).fetch(1)[0] if _num_chapters <= _old_chapter: _old_chapter = _num_chapters _enabled = False else: _enabled = True serie = Serie( user = _user, name = _name, day = _day, url = _url, chapter_url = _chapter_url, num_chapters = int(_num_chapters), old_chapter = int(_old_chapter), #ultimo capitulo que salio enabled = _enabled ) serie.put() # Registro los capitulos n = int(_old_chapter) + 1 for num in range(1, n): chapter = Chapter( serie = serie, number = num, url = serie.chapter_url %num, show = False ) chapter.put() return "Serie Registrada" #return template("series/registrar.html") else: return template("sin-permisos.html")
def post(self): searchBy = None radio = self.request.get('searchterm') searchValue = self.request.get('serieInput') if radio == 'sbytitle': searchBy = 'title' if radio == 'sbemail': searchBy = 'author_email' if radio == 'sbynombre': searchBy = 'author_name' series = Serie().all().fetch(limit=None, offset=0) res = [] for s in series: val = s.title if searchBy is 'author_email': val = s.author_email if searchBy is 'author_name': val = s.author_name if searchValue.upper() in val.upper(): res.append(s) return self.render_template("queries.html", { 'series': res, 'serieInput': searchValue })
def post(self): listaIDsCategorias = self.request.get('categoriasInput', allow_multiple=True) listaKeysCategorias = [] for iden in listaIDsCategorias: idenInt = int(iden) key = db.Key.from_path('Categoria', idenInt) listaKeysCategorias.append(key) serie = Serie(nombre=self.request.get('inputNombre'), autor=self.request.get('inputAutor'), descripcion=self.request.get('inputDescripcion'), categorias=listaKeysCategorias) serie.put() return webapp2.redirect('/index')
def listado(): _auth = Auth() if _auth.is_login(): data = {} user = db.GqlQuery("SELECT * FROM User WHERE username = :1", _auth.is_login()).fetch(1)[0] data['series'] = Serie.all().filter("user="******"series/listado.html", data) else: return template("sin-permisos.html")
def post(self): if self.session.get('logged') is None: return self.redirect("/login") error = None p = { 'title': self.request.get('inputTitle'), 'author_name': self.request.get('inputAuthorName'), 'author_email': self.request.get('inputAuthorEmail'), 'views': 0, 'score': self.request.get('inputScore'), } # Input validation if not p['title']: error = 'El titulo esta vacio' if not p['author_name']: error = 'El autor esta vacio' if not p['author_email']: error = 'El correo esta vacio' try: # Cambiar el modelo de int a float p['score'] = long(p['score']) except ValueError: error = 'La puntuacion debe ser un numero' if error: p['error'] = error return self.render_template("series/new.html", p) try: serie = Serie(title=p['title'], score=p['score'], author_name=p['author_name'], author_email=p['author_email'], views=p['views']) serie.put() return self.redirect('/series/') except Exception as e: p['error'] = 'No se pudo crear por {}'.format(e.message) return self.render_template("series/new.html", p)
def get(self): if not self.checkLogin(): return webapp2.redirect('/') user = users.get_current_user() logoutUrl = self.getLogout(); categoria = None if self.request.get('categoriaSelected') == '' : series = Serie.all() else : categoriaId = int(self.request.get('categoriaSelected')) categoria = db.get(db.Key.from_path('Categoria',categoriaId)) print(categoriaId) series = categoria.series categorias = Categoria.all() self.render_template('index.html', {'listaSeries' : series, 'categorias' : categorias, 'categoriaSelected' : categoria, 'nickname' : user.nickname(), 'logoutUrl' : logoutUrl })
def update_all_series(): mailing_server = MailingServer() mailing_server.open_smtp_server() series = Serie.get_all_series() for serie in series: old_last_diff = serie.next_episode_air_date new_serie_json = get_tv_serie(serie.tmdb_id_serie) serie.update_from_json(new_serie_json) # update serie information if old_last_diff != serie.next_episode_air_date and serie.next_episode_air_date != "null": for user in serie.users: try: notif = Notification.create_from_serie( user.id, serie ) # create notification, Might rise a value error mailing_server.send_notification( notif, open_and_close_smtp=False) except ValueError: pass mailing_server.close_smtp_server()
def create_series(): response = jsonify({ "status": "201", "result": "ok", "details": "Serie created" }) data = request.get_json() try: new_serie = Serie(**data) db.session.add(new_serie) db.session.commit() except Exception as e: response = jsonify({ "status": "400", "result": "error", "details ": str(e) }) response.headers.add("Access-Control-Allow-Origin", "*") return response
import os from models import Serie from config import db, db_file if __name__ == '__main__': if os.path.exists(db_file): os.remove(db_file) db.create_all() s1 = Serie(nome ='Avatar: A lenda de Aang', genero ='fantasia', numtemps ='3', nota ='10') s2 = Serie(nome ='Stranger Things', genero ='ficção cientifica', numtemps ='3', nota ='10') s3 = Serie(nome ='Brooklyn Nine-nine', genero ='comedia', numtemps ='6', nota ='10') s4 = Serie(nome ='Black Mirror', genero ='ficção cientifica', numtemps ='5', nota ='10') s5 = Serie(nome ='Teen Wolf', genero ='Teen', numtemps ='6', nota ='8')
def get(self): series = Serie.all() self.render_template('/series/list.html', {'series': series})