class Post(object): id:str fecha:str titulo:str contenido:str categorias:list[str] def __init__(self, id:str): self.__id = id self.fecha = str() self.titulo = str() self.contenido = str() self.categorias = ["Nuevos"] @property def id(self): return self.__id def to_json(self): _json = {"id": self.id, "fecha": self.fecha, "titulo": self.titulo, "contenido": self.contenido, "categorias": self.categorias} return _json class Base_Blog_Data(object): nombre:str descripcion:str url:str posts:list[Post] categorias:list[str] def __init__(self, id:str): self.__id = id self.nombre = str() self.descripcion = str() self.url = str() self.posts = [] self.categorias = ["Nuevos"] @property def id(self): return self.__id @staticmethod def filtrar_por_categorias(posts:list[Post], categorias:list[str]): posts_filtrados = [] for post in posts: for cat in categorias: if cat in post.categorias and post not in posts_filtrados: posts_filtrados.append(post) return posts_filtrados @staticmethod def filtrar_por_categoria(posts:list[Post], categoria:str): posts_filtrados = [] for post in posts: if categoria in post.categorias: posts_filtrados.append(post) return posts_filtrados @staticmethod def filtrar_por_fecha(posts:list[Post], fecha_inicio:str, fecha_fin:str): posts_filtrados = [] for post in posts: if fecha_inicio <= post.fecha <= fecha_fin: posts_filtrados.append(post) return posts_filtrados @staticmethod def filtrar_por_titulo(posts:list[Post], titulo:str): posts_filtrados = [] for post in posts: if titulo in post.titulo: posts_filtrados.append(post) return posts_filtrados @staticmethod def filtrar_por_contenido(posts:list[Post], contenido:str): posts_filtrados = [] for post in posts: if contenido in post.contenido: posts_filtrados.append(post) return posts_filtrados def to_json(self): _json = {"id": self.id, "nombre": self.nombre, "descripcion": self.descripcion, "url": self.url, "posts": [post.to_json() for post in self.posts], "categorias": self.categorias} return _json