| from transformers import pipeline | |
| import streamlit as BaseBuilder | |
| import requests as REQS | |
| import bs4 as BS4 | |
| class WebHandler: | |
| __raw = None | |
| def __init__(self, url:str): | |
| self.__source=url | |
| def get_source(self): | |
| return self.__source | |
| def get_raw(self): | |
| return self.__raw | |
| def is_ok(self): | |
| return True if self.get_raw() else False | |
| def __enter__(self): | |
| try: | |
| self.__raw = BS4.BeautifulSoup(REQS.get(self.get_source()).content, "html.parser") | |
| except Exception as er: | |
| print(er) | |
| finally: | |
| return self | |
| def __exit__(self, *args): | |
| [print(e) for e in args if e is not None] | |
| class Generator: | |
| def get_bloques(texto:str,s=1500): | |
| _bloques = list() | |
| _t = str(texto) | |
| if len(_t)>s: | |
| _ = int(len(_t)/2) | |
| _ts = [_t[n:n+_] for n in range(0,len(_t),_)] | |
| for m in [0,1]: | |
| _np = [nt for nt in Generator.get_bloques(texto=_ts[m],s=s)] | |
| _bloques+=_np | |
| else: | |
| _bloques.append(_t) | |
| return _bloques | |
| def traducir(texto:str): | |
| pipe = pipeline("text2text-generation", model="Helsinki-NLP/opus-mt-en-es") | |
| _traduccion = pipe(texto)[0] | |
| return _traduccion.get('generated_text') | |
| def resumir(texto:str): | |
| pipe = pipeline("text2text-generation", model="facebook/bart-large-cnn") | |
| _resumen = pipe(texto)[0] | |
| return _resumen.get('generated_text') | |
| class Page(): | |
| def __init__(self, title:str, icon:str=None): | |
| self.__ = BaseBuilder | |
| self.__.set_page_config(page_title=title, page_icon=icon) | |
| self.__.title(f"# {icon} {title}") | |
| self.__body = self.__.container() | |
| def page(self): | |
| return self.__ | |
| def get_body(self): | |
| return self.__body | |
| def set_global(self, key:str, value): | |
| self.page().session_state[key] = value | |
| def get_global(self,key:str,default=None): | |
| return self.page().session_state.get(key, default) |