(null);\r\n const [notiList,setNotiList] = useState([]);\r\n const [notiStatus,setNotiStatus] = useState([]);\r\n const handleToggle = () => {\r\n setOpen((prevOpen) => !prevOpen);\r\n };\r\n\r\n useEffect(async ()=>{\r\n const websocket = new WebSocket(socketNoti);\r\n \r\n // conectado\r\n websocket.onopen = () => {\r\n //console.log('connected');\r\n //sendMessage();\r\n if (notiList.length === 0) {\r\n sendMessage();\r\n }\r\n }\r\n const sendMessage = () => {\r\n websocket.send(\"cod:noti\");\r\n };\r\n \r\n // al recibir un mensaje\r\n websocket.onmessage = (event) => {\r\n const data = JSON.parse(event.data);\r\n // auto-crear la queryKey a partir del evento recibido\r\n //console.log(data);\r\n if(data != \"\"){\r\n setNotiStatus(data[\"notificacion\"].filter(a =>\r\n a.status === 0\r\n ));\r\n setNotiList(data[\"notificacion\"]);\r\n }\r\n websocket.close();\r\n //console.log('close');\r\n }\r\n // desconexión\r\n return () => {\r\n websocket.close();\r\n } \r\n \r\n \r\n });\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n /*useEffect(()=>{\r\n\r\n /*setNotiStatus(notiList.filter(a =>\r\n a.status === 0\r\n ));\r\n\r\n console.log(\"notiStatus:\"+notiStatus.length);\r\n },[notiList]);*/\r\n \r\n return (\r\n \r\n {notiStatus.length > 0 ?
: }\r\n \r\n
\r\n {({ TransitionProps, placement }) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n )\r\n}\r\n","import { AccountBox, AccountCircle, ExitToApp, PersonAdd, Settings } from \"@material-ui/icons\"\r\nimport \"./perfil.scss\"\r\nimport { Fragment, useState } from \"react\";\r\nimport { Avatar, Divider, ListItemIcon, Menu, MenuItem } from \"@mui/material\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport default function Perfil() {\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n const open = Boolean(anchorEl);\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { AccountCircle, ArrowDropDown, Notifications, Search } from \"@material-ui/icons\"\r\nimport \"./navbar.scss\"\r\nimport { useState } from \"react\"\r\nimport { Link } from \"react-router-dom\";\r\nimport { useAuth } from \"../../api/AuthContext\";\r\nimport { SearchBar } from \"./SearchBar/SearchBar\";\r\nimport Notification from \"./Notification/Notification\";\r\nimport Perfil from \"./Perfil/Perfil\";\r\n\r\nconst Navbar = () => {\r\n const [isScrolled,setIsScrolled] = useState(false);\r\n //const { logoutUser } = useAuth();\r\n\r\n /*window.onscroll = () =>{\r\n setIsScrolled(window.pageYOffset === 0 ? false : true);\r\n return () => (window.onscroll = null);\r\n }*/\r\n window.addEventListener('scroll', scrll);\r\n\r\n function scrll(){\r\n setIsScrolled(window.pageYOffset === 0 ? false : true);\r\n }\r\n\r\n //console.log(setIsScrolled);\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Home \r\n \r\n
\r\n
Mi Lista \r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Navbar\r\n","import { InfoOutlined, PlayArrow, VolumeOff, VolumeUp } from \"@material-ui/icons\";\r\nimport \"./featuredAnime.scss\";\r\nimport { useRef, useState } from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Modal from \"@mui/material/Modal\";\r\n\r\n\r\nexport default function FeatureAnime({anime}) {\r\n const [open, setOpen] = useState(false);\r\n const myvideo = useRef(null)\r\n const [muted, setMuted] = useState(true);\r\n const [play, setPlay] = useState(true);\r\n\r\n\r\n const handleOpen = () => {\r\n setOpen(true);\r\n };\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleToggleMute = () => setMuted(mcurrent => !mcurrent);\r\n\r\n const handleTogglePlay = () => {\r\n setPlay(pcurrent => !pcurrent);\r\n if(play){\r\n myvideo.current.pause();\r\n }else{\r\n myvideo.current.play();\r\n }\r\n }\r\n //console.log(window.scrollY);\r\n window.onscroll = () =>{\r\n setPlay(window.scrollY >= 500 ? false : true);\r\n if(myvideo.current != null){\r\n if(!play){\r\n myvideo.current.pause();\r\n }else{\r\n myvideo.current.play();\r\n }\r\n }\r\n return () => (window.onscroll = null);\r\n \r\n }\r\n \r\n return (\r\n \r\n {anime.headerImageUrl === \"\" ?
:
}\r\n
\r\n \r\n
\r\n
{anime.description} \r\n
\r\n
\r\n \r\n Info \r\n \r\n
\r\n {muted?:} \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
{anime.name} \r\n \r\n \r\n
\r\n {anime.description}.\r\n
\r\n
\r\n \r\n
Editora {anime.editoria}\r\n \r\n \r\n Audio {anime.audio}\r\n \r\n \r\n Subtitulos {anime.subtitulos}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import \"./listItem.scss\";\r\nimport {\r\n PlayArrow,\r\n Add,\r\n ThumbUpAltOutlined,\r\n ThumbDownOutlined,\r\n Replay,\r\n Check,\r\n ThumbUp,\r\n SettingsInputAntenna,\r\n} from \"@material-ui/icons\";\r\nimport { useEffect,useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { url5,url2,socketMilist } from \"../../api/url\";\r\nimport { useAuth } from \"../../api/AuthContext\";\r\nimport axios from \"axios\";\r\n\r\nexport default function ListItem({index,item}) {\r\n const { user } = useAuth();\r\n const [mylistanime,setMylistanime] = useState(0);\r\n const [likeanime,setLikeanime] = useState(0);\r\n const [estadoanime,setEstadoanime] = useState(\"\");\r\n const [likecountanime,setLikecountanime] = useState(0);\r\n const [isHovered, setIsHovered] = useState(false);\r\n const [anime, setAnime] = useState({});\r\n useEffect(() => {\r\n setAnime(item);\r\n setMylistanime(item.mylist);\r\n setLikeanime(item.likeanime);\r\n setLikecountanime(item.likecountanime);\r\n setEstadoanime(item.estado);\r\n\r\n }, [item]);\r\n\r\n const addlikeAnime = async (status) => {\r\n try {\r\n await axios.post(url5+\"/removelikeanime\",{'user': user.$id,'anime':item.id});\r\n await axios.post(url5+\"/addlikeanime\",{'user': user.$id,'anime':item.id}).then(async (response) => {\r\n console.log(response.data);\r\n setLikeanime(1);\r\n setLikecountanime(likecountanime+1);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n const removelikeAnime = async () => {\r\n try {\r\n await axios.post(url5+\"/removelikeanime\",{'user': user.$id,'anime':item.id}).then(async (response) => {\r\n console.log(response.data);\r\n setLikeanime(0);\r\n setLikecountanime(likecountanime-1); \r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n const addMylist = async () => {\r\n try {\r\n await axios.post(url2+\"/addmylist\",{'user': user.$id,'anime':item.id}).then(async (response) => {\r\n console.log(response.data);\r\n setMylistanime(1);\r\n getSocket(); \r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n const removeMylist = async () => {\r\n try {\r\n await axios.post(url2+\"/removemylist\",{'user': user.$id,'anime':item.id}).then(async (response) => {\r\n console.log(response.data);\r\n setMylistanime(0);\r\n getSocket(); \r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n\r\n\r\n\r\n const getSocket = async () => {\r\n try {\r\n const websocket = new WebSocket(socketMilist);\r\n // conectado\r\n websocket.onopen = () => {\r\n console.log('connected');\r\n //sendMessage();\r\n sendMessage();\r\n }\r\n const sendMessage = () => {\r\n websocket.send(user.$id);\r\n };\r\n \r\n // al recibir un mensaje\r\n websocket.onmessage = (event) => {\r\n const data = JSON.parse(event.data);\r\n // auto-crear la queryKey a partir del evento recibido\r\n console.log(data);\r\n websocket.close();\r\n }\r\n\r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n\r\n\r\n \r\n return (\r\n \r\n setIsHovered(true)}\r\n onMouseLeave={() => setIsHovered(false)}\r\n > \r\n
\r\n {item.newcapitulo === 1 ?
Nuevo Capítulo
: \"\"}\r\n
\r\n
\r\n {item.name} \r\n
\r\n \r\n {isHovered && (\r\n <>\r\n \r\n {/*
*/}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {item.description}\r\n
\r\n \r\n
\r\n
\r\n {mylistanime === 0 ?
: }\r\n {likeanime === 0 ? : }\r\n {estadoanime === \"Finalizado\" ? Finalizado
: En Emision
}\r\n \r\n
\r\n >\r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n","import {\r\n ArrowBackIosOutlined,\r\n ArrowForwardIosOutlined,\r\n } from \"@material-ui/icons\";\r\n import { useRef, useState } from \"react\";\r\n import ListItem from \"../listItem/ListItem\";\r\n import \"./list.scss\";\r\n \r\n export default function List({categorias,anime}) {\r\n const [isMoved, setIsMoved] = useState(false);\r\n const [slideNumber, setSlideNumber] = useState(0);\r\n\r\n const listRef = useRef();\r\n const Animelists = anime.filter(a =>\r\n a.categories === categorias.id\r\n );\r\n \r\n const handleClick = (direction) => {\r\n setIsMoved(true);\r\n let distance = listRef.current.getBoundingClientRect().x - 50;\r\n if (direction === \"left\" && slideNumber > 0) {\r\n setSlideNumber(slideNumber - 1);\r\n listRef.current.style.transform = `translateX(${230 + distance}px)`;\r\n }\r\n if (direction === \"right\" && slideNumber < 5) {\r\n setSlideNumber(slideNumber + 1);\r\n listRef.current.style.transform = `translateX(${-230 + distance}px)`;\r\n }\r\n };\r\n\r\n const handleHorizantalScroll = (element, speed, distance, step) => {\r\n let scrollAmount = 0;\r\n const slideTimer = setInterval(() => {\r\n element.scrollLeft += step;\r\n scrollAmount += Math.abs(step);\r\n if (scrollAmount >= distance) {\r\n clearInterval(slideTimer);\r\n }\r\n if (element.scrollLeft === 0) {\r\n setIsMoved(false);\r\n } else {\r\n setIsMoved(true);\r\n }\r\n }, speed);\r\n };\r\n return (\r\n \r\n
{Animelists.length > 0 ? categorias.name : \" \"} \r\n
\r\n
handleHorizantalScroll(listRef.current, 25, 600, -800)}\r\n style={{ display: !isMoved && \"none\" }}\r\n />\r\n \r\n
\r\n {Animelists.map((item,i) => (\r\n \r\n ))}\r\n
\r\n
\r\n handleHorizantalScroll(listRef.current, 25, 600, 800)}\r\n />\r\n \r\n
\r\n );\r\n }\r\n ","import \"./listItemCapitulos.scss\";\r\nimport {\r\n PlayArrow,\r\n Add,\r\n ThumbUpAltOutlined,\r\n ThumbDownOutlined,\r\n Replay,\r\n ThumbUp,\r\n ThumbDown,\r\n Visibility,\r\n} from \"@material-ui/icons\";\r\nimport { useEffect,useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport default function ListItemCapitulos({index,item,ani}) {\r\n const [isHovered, setIsHovered] = useState(false);\r\n const [anime, setAnime] = useState({});\r\n useEffect(() => {\r\n setAnime(item);\r\n }, [item]);\r\n \r\n return (\r\n \r\n setIsHovered(true)}\r\n onMouseLeave={() => setIsHovered(false)}\r\n >\r\n {!isHovered && (\r\n <>\r\n
\r\n
\r\n {item.viewcapitulo > 0 ?
: }\r\n \r\n
\r\n {item.name}\r\n
\r\n >\r\n )}\r\n {isHovered && (\r\n <>\r\n {/*
*/}\r\n \r\n
\r\n {ani.name}\r\n
\r\n
\r\n {item.viewcapitulo > 0 ?
: }\r\n {item.likecapitulo === 0 ? : }\r\n {item.dislikecapitulo === 0 ? : }\r\n {item.viewanime === 0 ? : }\r\n \r\n
\r\n {item.name}\r\n
\r\n
\r\n {item.description}\r\n
\r\n
\r\n {item.audio === 1 ? 'Latino':'Subtitulado'}\r\n
\r\n
\r\n >\r\n )}\r\n \r\n \r\n );\r\n}\r\n","import {\r\n ArrowBackIosOutlined,\r\n ArrowForwardIosOutlined,\r\n } from \"@material-ui/icons\";\r\n import { useRef, useState } from \"react\";\r\n import \"./listCapitulos.scss\";\r\nimport ListItemCapitulos from \"../listItemCapitulos/ListItemCapitulos\";\r\n \r\n export default function ListCapitulos({capitulos,anime}) {\r\n const [isMoved, setIsMoved] = useState(false);\r\n const [slideNumber, setSlideNumber] = useState(0);\r\n\r\n const listRef = useRef();\r\n /*const Animelists = anime.filter(a =>\r\n a.categories === categorias.id\r\n );*/\r\n \r\n\r\n return (\r\n \r\n );\r\n }\r\n ","import { useEffect, useRef } from 'react';\r\n\r\nexport default function Banner({keyid}) {\r\n const banner = useRef();\r\n\r\n const atOptions = {\r\n key: keyid,\r\n format: 'iframe',\r\n height: 50,\r\n width: 320,\r\n params: {},\r\n }\r\n useEffect(() => {\r\n if (banner.current && !banner.current.firstChild) {\r\n const conf = document.createElement('script')\r\n const script = document.createElement('script')\r\n script.type = 'text/javascript'\r\n script.src = `//www.topcreativeformat.com/${atOptions.key}/invoke.js`\r\n conf.innerHTML = `atOptions = ${JSON.stringify(atOptions)}`\r\n\r\n banner.current.append(conf)\r\n banner.current.append(script)\r\n }\r\n}, [banner])\r\n\r\n return
\r\n}","import { useEffect, useRef } from 'react';\r\n\r\nexport default function NativeBanner({keyid}) {\r\n const nativebanner = useRef();\r\n\r\n const atOptions = {\r\n key: keyid,\r\n format: 'iframe',\r\n height: 50,\r\n width: 320,\r\n params: {},\r\n }\r\n useEffect(() => {\r\n if (nativebanner.current && !nativebanner.current.firstChild) {\r\n const script = document.createElement('script')\r\n script.type = 'text/javascript'\r\n script.async = 'async'\r\n script.src = `//pl23827845.highrevenuenetwork.com/${atOptions.key}/invoke.js`\r\n\r\n\r\n\r\n nativebanner.current.append(script)\r\n }\r\n}, [nativebanner])\r\n\r\n return
\r\n}\r\n","import \"./anime.scss\"\r\nimport FeaturedAnime from \"../../components/featuredAnime/FeaturedAnime\";\r\nimport List from \"../../components/list/List\";\r\nimport Navbar from \"../../components/navbar/Navbar\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { url7, url13,url6,url5,url2,url18,socketNoti } from \"../../api/url\";\r\nimport { useAuth } from \"../../api/AuthContext\";\r\nimport axios from \"axios\";\r\nimport { Form } from \"react-bootstrap\";\r\nimport ListCapitulos from \"../../components/listCapitulos/ListCapitulos\";\r\nimport { Add, Check, Settings, ThumbDown, ThumbDownOutlined, ThumbUp, ThumbUpAltOutlined, Visibility } from \"@material-ui/icons\";\r\nimport Footer from \"../../components/footer/Footer\";\r\nimport { Skeleton } from \"@mui/material\";\r\nimport Banner from \"../../components/utils/Banner\";\r\nimport NativeBanner from \"../../components/utils/NativeBanner\";\r\n\r\n\r\nexport default function Anime() {\r\n const { user } = useAuth();\r\n const [Animelits,setAnimelits] = useState([]);\r\n const [Temporadaslits,setTemporadaslits] = useState([]);\r\n const [Capituloslits,setCapituloslits] = useState([]);\r\n const [Audiolist,setAudiolist] = useState([]);\r\n\r\n const [Audio,setAudio] = useState([]);\r\n const [Temporada,setTemporada] = useState([]);\r\n\r\n const [Capitulosxlits,setCapitulosxlits] = useState([]);\r\n const [Capitulosalits,setCapitulosalits] = useState([]);\r\n\r\n const [viewani,setViewani] = useState(null);\r\n //const location = useLocation();\r\n //console.log(location);\r\n\r\n\r\n const [mylistanime,setMylistanime] = useState(0);\r\n const [mylistcountanime,setMyliscountanime] = useState(0);\r\n const [likeanime,setLikeanime] = useState(0);\r\n const [likecountanime,setLikecountanime] = useState(0);\r\n const [viewanime,setViewanime] = useState(0);\r\n const [viewcountanime,setViewcountanime] = useState(0);\r\n\r\n const [viewanix,setViewanix] = useState(0);\r\n\r\n const [cf,setCf] = useState(true);\r\n \r\n const { id,noti } = useParams();\r\n //console.log(id)\r\n const Tempo = localStorage.getItem(\"Temporada\");\r\n const Aud = localStorage.getItem(\"Audio\");\r\n const Pantalla = localStorage.getItem(\"Pantalla\");\r\n useEffect(async ()=>{\r\n \r\n const getAniList = async () => {\r\n try {\r\n await axios.post(url13+\"/anime\",{'user': user.$id,'idanime':id}).then((response) => {\r\n //console.log(response.data);\r\n setAnimelits(response.data[\"anime\"]);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n \r\n const getCapList = async () => {\r\n try {\r\n await axios.post(url7+\"/capitulos\",{'user': user.$id,'anime':id}).then(async (response) => {\r\n //console.log(response.data);\r\n setTemporadaslits(response.data[\"temporadas\"]);\r\n setCapituloslits(response.data[\"capitulos\"]);\r\n setAudiolist(response.data[\"audio\"]);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n \r\n \r\n if (Animelits.length === 0) {\r\n await getAniList();\r\n }\r\n if (Temporadaslits.length === 0) {\r\n await getCapList();\r\n }\r\n\r\n \r\n \r\n //console.log(\"audio:\"+Audiolist);\r\n \r\n const setCapByTempAudi = async () =>{\r\n if(Pantalla===\"Home\"){\r\n setCapitulosalits(Capituloslits.filter(c => {\r\n return(\r\n c.temporada === Temporadaslits[0].id &&\r\n c.audio === Audiolist[0].id \r\n );\r\n }));\r\n setTemporada(Temporadaslits[0].id);\r\n setAudio(Audiolist[0].id);\r\n localStorage.setItem(\"Temporada\",Temporadaslits[0].id);\r\n }else{\r\n setCapitulosalits(Capituloslits.filter(c => {\r\n return(\r\n c.temporada === parseInt(Tempo) &&\r\n c.audio === Audiolist[0].id \r\n );\r\n \r\n }));\r\n setTemporada(parseInt(Tempo));\r\n setAudio(Audiolist[0].id)\r\n }\r\n //localStorage.setItem(\"Temporada\",Temporadaslits[0].id);\r\n //localStorage.setItem(\"Audio\",Audiolist[0].id);\r\n //setTemporada(Temporadaslits[0].id);\r\n //setAudio(Audiolist[0].id)\r\n }\r\n\r\n\r\n const setCapByTempAudi2 = async () =>{\r\n setCapitulosalits(Capitulosxlits.filter(c => c.audio === Audiolist[0].id));\r\n setAudio(Audiolist[0].id)\r\n }\r\n\r\n\r\n if (Temporadaslits.length > 0 && Capituloslits.length > 0 && Audiolist.length > 0 && cf) {\r\n if(Capitulosxlits.length === 0){\r\n setCapByTempAudi();\r\n setCf(false);\r\n }\r\n }\r\n\r\n\r\n \r\n console.log(\"Tempo:\"+Tempo);\r\n console.log(\"Pantalla:\"+Pantalla);\r\n \r\n });\r\n\r\n /*useEffect(() =>{\r\n console.log(\"Tempo:\"+Tempo);\r\n console.log(\"Audio:\"+Aud);\r\n setCapitulosalits(Capituloslits.filter(c => {\r\n return(\r\n c.temporada === Tempo &&\r\n c.audio === Aud\r\n );\r\n }));\r\n },[Tempo,Aud]);*/\r\n\r\n useEffect(() => {\r\n if(Animelits.name != null){\r\n setMylistanime(Animelits.mylist);\r\n setLikeanime(Animelits.likeanime);\r\n setLikecountanime(Animelits.likecountanime);\r\n setViewanime(Animelits.viewanime);\r\n setViewcountanime(Animelits.viewcountanime);\r\n\r\n\r\n if(viewani === null){\r\n setViewani(Animelits.viewanime);\r\n setViewanix(1);\r\n }\r\n if(viewani === 0){\r\n setViewani(1)\r\n setViewcountanime(viewcountanime+1);\r\n setViewanix(1);\r\n }\r\n }\r\n },[Animelits]);\r\n\r\n useEffect(() => {\r\n const setView = async () => {\r\n try {\r\n await axios.post(url6+\"/viewanime\",{'user': user.$id,'anime':id}).then(async (response) => {\r\n console.log(response.data);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n //console.log(\"userEffect2:\"+viewani);\r\n if(viewani === 0){\r\n setView();\r\n //console.log(\"Viewani:\"+viewani);\r\n //console.log(\"View\");\r\n }\r\n\r\n },[viewani]);\r\n\r\n\r\n\r\n const handleSelectTemporadaChange = (e) => {\r\n setTemporada(e.target.value);\r\n localStorage.setItem(\"Temporada\",e.target.value);\r\n //setCapitulosalits(Capituloslits.filter(c => c.temporada === parseInt(e.target.value)));\r\n let filtercap = Capituloslits;\r\n filtercap = filtercap.filter(c => {\r\n return(\r\n c.temporada === parseInt(e.target.value) &&\r\n c.audio === parseInt(Audio) \r\n );\r\n });\r\n //setCapitulosalits(Capitulosxlits.filter(c => c.audio === Audio));\r\n if(filtercap.length > 0){\r\n setCapitulosalits(filtercap); \r\n }else{\r\n setCapitulosalits([]);\r\n }\r\n console.log(\"select:\"+filtercap.length)\r\n };\r\n const handleSelectAudioChange = (e) => {\r\n setAudio(e.target.value);\r\n localStorage.setItem(\"Audio\",e.target.value);\r\n //setCapitulosalits(Capituloslits.filter(c => c.audio === parseInt(e.target.value)));\r\n let filtercap = Capituloslits;\r\n filtercap = filtercap.filter(c => {\r\n return(\r\n c.audio === parseInt(e.target.value) &&\r\n c.temporada === parseInt(Temporada) \r\n );\r\n });\r\n\r\n if(filtercap.length > 0){\r\n setCapitulosalits(filtercap); \r\n }else{\r\n setCapitulosalits([]);\r\n }\r\n console.log(\"select:\"+filtercap.length)\r\n };\r\n \r\n const addlikeAnime = async (status) => {\r\n try {\r\n await axios.post(url5+\"/removelikeanime\",{'user': user.$id,'anime':id});\r\n await axios.post(url5+\"/addlikeanime\",{'user': user.$id,'anime':id}).then(async (response) => {\r\n console.log(response.data);\r\n setLikeanime(1);\r\n setLikecountanime(likecountanime+1);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n const removelikeAnime = async () => {\r\n try {\r\n await axios.post(url5+\"/removelikeanime\",{'user': user.$id,'anime':id}).then(async (response) => {\r\n console.log(response.data);\r\n setLikeanime(0);\r\n setLikecountanime(likecountanime-1); \r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n const addMylist = async () => {\r\n try {\r\n await axios.post(url2+\"/addmylist\",{'user': user.$id,'anime':id}).then(async (response) => {\r\n console.log(response.data);\r\n setMylistanime(1); \r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n const removeMylist = async () => {\r\n try {\r\n await axios.post(url2+\"/removemylist\",{'user': user.$id,'anime':id}).then(async (response) => {\r\n console.log(response.data);\r\n setMylistanime(0); \r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n useEffect(()=>{\r\n const viewNoti = async (idnoti) => {\r\n try {\r\n await axios.post(url18+\"/viewnoti\",{'user': user.$id,'idnoti':noti}).then(async (response) => {\r\n console.log(response.data);\r\n const websocket = new WebSocket(socketNoti);\r\n \r\n // conectado\r\n websocket.onopen = () => {\r\n console.log('connected');\r\n //sendMessage();\r\n sendMessage();\r\n }\r\n const sendMessage = () => {\r\n websocket.send(\"cod:noti\");\r\n };\r\n \r\n // al recibir un mensaje\r\n websocket.onmessage = (event) => {\r\n const data = JSON.parse(event.data);\r\n // auto-crear la queryKey a partir del evento recibido\r\n //console.log(data);\r\n websocket.close();\r\n console.log('close');\r\n }\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n \r\n if(noti != null){\r\n viewNoti();\r\n }\r\n \r\n },[noti]);\r\n \r\n return (\r\n \r\n {/*
*/}\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n Opciones \r\n Salir \r\n
\r\n
\r\n \r\n {mylistanime === 0 ?
: }\r\n
\r\n {likeanime === 0 ? : }\r\n
\r\n {viewanix === 0 ? : }\r\n \r\n \r\n Lista\r\n
\r\n {likecountanime}\r\n
\r\n {viewcountanime}\r\n
\r\n \r\n
\r\n {Temporadaslits.map((list) => (\r\n {list.name} \r\n ))}\r\n \r\n \r\n \r\n
\r\n {Audiolist.map((list) => (\r\n {list.name} \r\n ))}\r\n \r\n \r\n \r\n {Capitulosalits.length === 0 ? \r\n (Array.from(new Array(4))).map((item, index) => (\r\n \r\n ))\r\n :''}\r\n
\r\n {Capitulosalits.map((list) => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n \r\n )\r\n}\r\n","import { InfoOutlined, PlayArrow, VolumeOff, VolumeUp } from \"@material-ui/icons\";\r\nimport \"./featured.scss\";\r\nimport { useEffect, useRef, useState } from \"react\";\r\nimport { useAuth } from \"../../api/AuthContext\";\r\nimport { url1 } from \"../../api/url\";\r\nimport axios from \"axios\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Modal from \"@mui/material/Modal\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport default function Feature() {\r\n //const [isScrolled,setIsScrolled] = useState(false);\r\n const { user } = useAuth();\r\n const [Previewlits,setPreviewlits] = useState([]);\r\n const myvideo = useRef(null)\r\n const [muted, setMuted] = useState(true);\r\n const [play, setPlay] = useState(true);\r\n const mcurrent=false;\r\n const pcurrent=false;\r\n const [open, setOpen] = useState(false);\r\n const handleOpen = () => {\r\n setOpen(true);\r\n };\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n const handleToggleMute = () => setMuted(mcurrent => !mcurrent);\r\n const handleTogglePlay = () => {\r\n setPlay(pcurrent => !pcurrent);\r\n if(play){\r\n myvideo.current.pause();\r\n }else{\r\n myvideo.current.play();\r\n }\r\n }\r\n //console.log(window.scrollY);\r\n window.onscroll = () =>{\r\n setPlay(window.scrollY >= 500 ? false : true);\r\n if(myvideo.current != null){\r\n if(!play){\r\n myvideo.current.pause();\r\n }else{\r\n myvideo.current.play();\r\n }\r\n }\r\n return () => (window.onscroll = null);\r\n \r\n }\r\n \r\n useEffect(()=>{\r\n const getPreviList = async () => {\r\n try {\r\n await axios.post(url1+\"/preview\",{'user': user.$id}).then((response) => {\r\n //console.log(response.data);\r\n setPreviewlits(response.data[\"preview\"]);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n if (Previewlits.length === 0) {\r\n getPreviList();\r\n }\r\n })\r\n return (\r\n \r\n {/*
*/}\r\n
\r\n
\r\n \r\n
\r\n
{Previewlits.description} \r\n
\r\n
\r\n
\r\n \r\n Play \r\n \r\n \r\n
\r\n \r\n Info \r\n \r\n
\r\n {muted?:} \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
{Previewlits.name} \r\n \r\n \r\n
\r\n {Previewlits.description}.\r\n
\r\n
\r\n \r\n
Editora {Previewlits.editoria}\r\n \r\n \r\n Audio {Previewlits.audio}\r\n \r\n \r\n Subtitulos {Previewlits.subtitulos}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import {\r\n ArrowBackIosOutlined,\r\n ArrowForwardIosOutlined,\r\n } from \"@material-ui/icons\";\r\n import { useRef, useState } from \"react\";\r\n import ListItem from \"../listItem/ListItem\";\r\n import \"./Mylist.scss\";\r\n \r\n export default function MyList({anime}) {\r\n const [isMoved, setIsMoved] = useState(false);\r\n const [slideNumber, setSlideNumber] = useState(0);\r\n\r\n const listRef = useRef();\r\n /*const Animelists = anime.filter(a =>\r\n a.categories === categorias.id\r\n );*/\r\n \r\n const handleClick = (direction) => {\r\n setIsMoved(true);\r\n let distance = listRef.current.getBoundingClientRect().x - 50;\r\n if (direction === \"left\" && slideNumber > 0) {\r\n setSlideNumber(slideNumber - 1);\r\n listRef.current.style.transform = `translateX(${600 + distance}px)`;\r\n }\r\n if (direction === \"right\" && slideNumber < anime.length) {\r\n setSlideNumber(slideNumber + 1);\r\n listRef.current.style.transform = `translateX(${-600 + distance}px)`;\r\n }\r\n };\r\n\r\n const handleHorizantalScroll = (element, speed, distance, step) => {\r\n let scrollAmount = 0;\r\n const slideTimer = setInterval(() => {\r\n element.scrollLeft += step;\r\n scrollAmount += Math.abs(step);\r\n if (scrollAmount >= distance) {\r\n clearInterval(slideTimer);\r\n }\r\n if (element.scrollLeft === 0) {\r\n setIsMoved(false);\r\n } else {\r\n setIsMoved(true);\r\n }\r\n }, speed);\r\n };\r\n\r\n return (\r\n \r\n
{anime.length > 0 ? \"Mi Lista\" : \"\"} \r\n
\r\n
handleHorizantalScroll(listRef.current, 25, 600, -800)}\r\n style={{ display: !isMoved && \"none\" }}\r\n />\r\n \r\n
\r\n {anime.map((item,i) => (\r\n \r\n ))}\r\n
\r\n
\r\n \r\n handleHorizantalScroll(listRef.current, 25, 600, 800)}\r\n />\r\n \r\n
\r\n );\r\n }\r\n ","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nclass GoogleAd extends Component {\r\n googleInit = null;\r\n\r\n componentDidMount() {\r\n const { timeout } = this.props;\r\n this.googleInit = setTimeout(() => {\r\n if (typeof window !== 'undefined')\r\n (window.adsbygoogle = window.adsbygoogle || []).push({});\r\n }, timeout);\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.googleInit) clearTimeout(this.googleInit);\r\n }\r\n\r\n render() {\r\n const { classNames, slot, googleAdId, style, format } = this.props;\r\n return (\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\nGoogleAd.propTypes = {\r\n classNames: PropTypes.string,\r\n slot: PropTypes.string,\r\n timeout: PropTypes.number,\r\n googleAdId: PropTypes.string,\r\n};\r\nGoogleAd.defaultProps = {\r\n classNames: '',\r\n timeout: 200,\r\n};\r\nexport default GoogleAd;","import \"./newlistItem.scss\";\r\nimport {\r\n PlayArrow,\r\n Add,\r\n ThumbUpAltOutlined,\r\n ThumbDownOutlined,\r\n Replay,\r\n Check,\r\n ThumbUp,\r\n SettingsInputAntenna,\r\n} from \"@material-ui/icons\";\r\nimport { useEffect,useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { url5,url2,socketMilist } from \"../../api/url\";\r\nimport { useAuth } from \"../../api/AuthContext\";\r\nimport axios from \"axios\";\r\n\r\nexport default function NewListItem({index,item}) {\r\n const { user } = useAuth();\r\n const [mylistanime,setMylistanime] = useState(0);\r\n const [likeanime,setLikeanime] = useState(0);\r\n const [estadoanime,setEstadoanime] = useState(\"\");\r\n const [likecountanime,setLikecountanime] = useState(0);\r\n const [isHovered, setIsHovered] = useState(false);\r\n const [anime, setAnime] = useState({});\r\n useEffect(() => {\r\n setAnime(item);\r\n setMylistanime(item.mylist);\r\n setLikeanime(item.likeanime);\r\n setLikecountanime(item.likecountanime);\r\n setEstadoanime(item.estado);\r\n\r\n }, [item]);\r\n\r\n const addlikeAnime = async (status) => {\r\n try {\r\n await axios.post(url5+\"/removelikeanime\",{'user': user.$id,'anime':item.id});\r\n await axios.post(url5+\"/addlikeanime\",{'user': user.$id,'anime':item.id}).then(async (response) => {\r\n console.log(response.data);\r\n setLikeanime(1);\r\n setLikecountanime(likecountanime+1);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n const removelikeAnime = async () => {\r\n try {\r\n await axios.post(url5+\"/removelikeanime\",{'user': user.$id,'anime':item.id}).then(async (response) => {\r\n console.log(response.data);\r\n setLikeanime(0);\r\n setLikecountanime(likecountanime-1); \r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n const addMylist = async () => {\r\n try {\r\n await axios.post(url2+\"/addmylist\",{'user': user.$id,'anime':item.id}).then(async (response) => {\r\n console.log(response.data);\r\n setMylistanime(1); \r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n const removeMylist = async () => {\r\n try {\r\n await axios.post(url2+\"/removemylist\",{'user': user.$id,'anime':item.id}).then(async (response) => {\r\n console.log(response.data);\r\n setMylistanime(0); \r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n return (\r\n \r\n setIsHovered(true)}\r\n onMouseLeave={() => setIsHovered(false)}\r\n > \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {item.anime} \r\n
\r\n
\r\n {item.name}\r\n
\r\n \r\n {isHovered && (\r\n <>\r\n \r\n {/*
*/}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n >\r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n","import {\r\n ArrowBackIosOutlined,\r\n ArrowForwardIosOutlined,\r\n } from \"@material-ui/icons\";\r\n import { useRef, useState } from \"react\";\r\n import ListItem from \"../listItem/ListItem\";\r\n import \"./newclist.scss\";\r\nimport NewListItem from \"../newlistitem/NewListItem\";\r\n \r\n export default function NewCList({capitulos,titulo}) {\r\n const [isMoved, setIsMoved] = useState(false);\r\n const [slideNumber, setSlideNumber] = useState(0);\r\n\r\n const listRef = useRef();\r\n\r\n const handleHorizantalScroll = (element, speed, distance, step) => {\r\n let scrollAmount = 0;\r\n const slideTimer = setInterval(() => {\r\n element.scrollLeft += step;\r\n scrollAmount += Math.abs(step);\r\n if (scrollAmount >= distance) {\r\n clearInterval(slideTimer);\r\n }\r\n if (element.scrollLeft === 0) {\r\n setIsMoved(false);\r\n } else {\r\n setIsMoved(true);\r\n }\r\n }, speed);\r\n };\r\n return (\r\n \r\n
{titulo} \r\n
\r\n
\r\n
\r\n {capitulos.map((item,i) => (\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n ","import { useEffect, useState } from \"react\";\r\nimport Featured from \"../../components/featured/Featured\";\r\nimport List from \"../../components/list/List\";\r\nimport Navbar from \"../../components/navbar/Navbar\";\r\nimport { useAuth } from \"../../api/AuthContext\";\r\nimport { url3,url2,socketMilist,url17 } from \"../../api/url\";\r\nimport \"./home.scss\";\r\nimport axios from \"axios\";\r\nimport MyList from \"../../components/myList/MyList\";\r\nimport Footer from \"../../components/footer/Footer\";\r\nimport GoogleAd from \"../../api/GoogleAd\";\r\nimport NewCList from \"../../components/newCapitulos/NewCList\";\r\nimport Banner from \"../../components/utils/Banner\";\r\nimport NativeBanner from \"../../components/utils/NativeBanner\";\r\n\r\n\r\nconst Home = (props) => {\r\n const [Categoriaslits,setCategoriaslits] = useState([]);\r\n const [Animelits,setAnimelits] = useState([]);\r\n const [Myulits,setMyulits] = useState([]);\r\n const [newCaplits,setNewCaplits] = useState([]);\r\n const [oldCaplits,setOldCaplits] = useState([]);\r\n const [newCapStatus,setNewCapStatus] = useState(false);\r\n const { user } = useAuth();\r\n localStorage.setItem(\"Pantalla\",\"Home\");\r\n props.funcNav(true);\r\n useEffect(()=>{\r\n const getHomeList = async () => {\r\n try {\r\n await axios.post(url3+\"/home\",{'user': user.$id}).then((response) => {\r\n //console.log(url3);\r\n setAnimelits(response.data[\"anime\"]);\r\n setCategoriaslits(response.data[\"categorias\"]);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n }\r\n const getMyAniList = async () => {\r\n try {\r\n await axios.post(url2+\"/mylist\",{'user': user.$id}).then((response) => {\r\n //console.log(url3);\r\n //setMyulits(response.data[\"anime\"]);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n\r\n if (Categoriaslits.length === 0) {\r\n getHomeList();\r\n }\r\n if (Myulits.length === 0) {\r\n getMyAniList();\r\n }\r\n });\r\n\r\n useEffect(async ()=>{\r\n const getNewCList = async () => {\r\n try {\r\n await axios.get(url17+\"/addnewcap\").then((response) => {\r\n //console.log(url3);\r\n setNewCaplits(response.data[\"newcap\"]);\r\n setNewCapStatus(true);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n }\r\n\r\n const getOldCList = async () => {\r\n try {\r\n await axios.get(url17+\"/addnewcapold\").then((response) => {\r\n //console.log(url3);\r\n setOldCaplits(response.data[\"newcap\"]);\r\n setNewCapStatus(true);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n }\r\n\r\n if (!newCapStatus) {\r\n getNewCList();\r\n getOldCList();\r\n }\r\n \r\n });\r\n\r\n useEffect(async ()=>{\r\n const websocket = new WebSocket(socketMilist);\r\n try {\r\n \r\n\r\n // conectado\r\n websocket.onopen = () => {\r\n //console.log('connected');\r\n //sendMessage();\r\n if (Myulits.length === 0) {\r\n sendMessage();\r\n }\r\n }\r\n const sendMessage = () => {\r\n websocket.send(user.$id);\r\n };\r\n \r\n // al recibir un mensaje\r\n websocket.onmessage = (event) => {\r\n const data = JSON.parse(event.data);\r\n // auto-crear la queryKey a partir del evento recibido\r\n //console.log(data);\r\n if(data[\"user\"]=== user.$id){\r\n setMyulits(data[\"anime\"]);\r\n }\r\n \r\n websocket.close();\r\n //console.log('close');\r\n }\r\n // desconexión\r\n return () => {\r\n websocket.close();\r\n console.log('return close');\r\n } \r\n } catch (error) {\r\n websocket.close();\r\n }\r\n \r\n });\r\n\r\n \r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n {/**/}\r\n
\r\n
\r\n {newCaplits.length > 0 ? :\"\"}\r\n {oldCaplits.length > 0 ? :\"\"}\r\n {Categoriaslits.map((list) => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Home\r\n\r\n","import { InfoOutlined, PlayArrow, VolumeOff, VolumeUp } from \"@material-ui/icons\";\r\nimport \"./featured.scss\";\r\nimport { useEffect, useRef, useState } from \"react\";\r\nimport { useAuth } from \"../../api/AuthContext\";\r\nimport { url1 } from \"../../api/url\";\r\nimport axios from \"axios\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Modal from \"@mui/material/Modal\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport default function Feature2() {\r\n //const [isScrolled,setIsScrolled] = useState(false);\r\n const { user } = useAuth();\r\n const [Previewlits,setPreviewlits] = useState([]);\r\n const myvideo = useRef(null)\r\n const [muted, setMuted] = useState(true);\r\n const [play, setPlay] = useState(true);\r\n const mcurrent=false;\r\n const pcurrent=false;\r\n const [open, setOpen] = useState(false);\r\n const handleOpen = () => {\r\n setOpen(true);\r\n };\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n const handleToggleMute = () => setMuted(mcurrent => !mcurrent);\r\n const handleTogglePlay = () => {\r\n setPlay(pcurrent => !pcurrent);\r\n if(play){\r\n myvideo.current.pause();\r\n }else{\r\n myvideo.current.play();\r\n }\r\n }\r\n //console.log(window.scrollY);\r\n window.onscroll = () =>{\r\n setPlay(window.scrollY >= 500 ? false : true);\r\n if(myvideo.current != null){\r\n if(!play){\r\n myvideo.current.pause();\r\n }else{\r\n myvideo.current.play();\r\n }\r\n }\r\n return () => (window.onscroll = null);\r\n \r\n }\r\n \r\n useEffect(()=>{\r\n const getPreviList = async () => {\r\n try {\r\n await axios.post(url1+\"/preview2\").then((response) => {\r\n //console.log(response.data);\r\n setPreviewlits(response.data[\"preview\"]);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n if (Previewlits.length === 0) {\r\n getPreviList();\r\n }\r\n })\r\n return (\r\n \r\n {/*
*/}\r\n
\r\n
\r\n \r\n
\r\n
{Previewlits.description} \r\n
\r\n
\r\n
\r\n \r\n Play \r\n \r\n \r\n
\r\n \r\n Info \r\n \r\n
\r\n {muted?:} \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
{Previewlits.name} \r\n \r\n \r\n
\r\n {Previewlits.description}.\r\n
\r\n
\r\n \r\n
Editora {Previewlits.editoria}\r\n \r\n \r\n Audio {Previewlits.audio}\r\n \r\n \r\n Subtitulos {Previewlits.subtitulos}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { AccountBox, AccountCircle, ExitToApp, PersonAdd, Settings } from \"@material-ui/icons\"\r\nimport \"./perfil.scss\"\r\nimport { Fragment, useState } from \"react\";\r\nimport { Avatar, Divider, ListItemIcon, Menu, MenuItem } from \"@mui/material\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport default function Perfil2() {\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n const open = Boolean(anchorEl);\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { AccountCircle, ArrowDropDown, Notifications, Search } from \"@material-ui/icons\"\r\nimport \"./navbar.scss\"\r\nimport { useState } from \"react\"\r\nimport { Link } from \"react-router-dom\";\r\nimport { useAuth } from \"../../api/AuthContext\";\r\nimport { SearchBar } from \"./SearchBar/SearchBar\";\r\nimport Notification from \"./Notification/Notification\";\r\nimport Perfil from \"./Perfil/Perfil\";\r\nimport Perfil2 from \"./Perfil/Perfil2\";\r\n\r\nconst Navbar2 = () => {\r\n const [isScrolled,setIsScrolled] = useState(false);\r\n //const { logoutUser } = useAuth();\r\n\r\n /*window.onscroll = () =>{\r\n setIsScrolled(window.pageYOffset === 0 ? false : true);\r\n return () => (window.onscroll = null);\r\n }*/\r\n window.addEventListener('scroll', scrll);\r\n\r\n function scrll(){\r\n setIsScrolled(window.pageYOffset === 0 ? false : true);\r\n }\r\n\r\n //console.log(setIsScrolled);\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Home \r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Navbar2\r\n","import \"./listItem.scss\";\r\nimport {\r\n PlayArrow,\r\n Add,\r\n ThumbUpAltOutlined,\r\n ThumbDownOutlined,\r\n Replay,\r\n Check,\r\n ThumbUp,\r\n SettingsInputAntenna,\r\n} from \"@material-ui/icons\";\r\nimport { useEffect,useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { url5,url2,socketMilist } from \"../../api/url\";\r\nimport { useAuth } from \"../../api/AuthContext\";\r\nimport axios from \"axios\";\r\n\r\nexport default function ListItem2({index,item}) {\r\n const { user } = useAuth();\r\n const [mylistanime,setMylistanime] = useState(0);\r\n const [likeanime,setLikeanime] = useState(0);\r\n const [estadoanime,setEstadoanime] = useState(\"\");\r\n const [likecountanime,setLikecountanime] = useState(0);\r\n const [isHovered, setIsHovered] = useState(false);\r\n const [anime, setAnime] = useState({});\r\n useEffect(() => {\r\n setAnime(item);\r\n setMylistanime(item.mylist);\r\n setLikeanime(item.likeanime);\r\n setLikecountanime(item.likecountanime);\r\n setEstadoanime(item.estado);\r\n\r\n }, [item]);\r\n\r\n const addlikeAnime = async (status) => {\r\n try {\r\n await axios.post(url5+\"/removelikeanime\",{'user': user.$id,'anime':item.id});\r\n await axios.post(url5+\"/addlikeanime\",{'user': user.$id,'anime':item.id}).then(async (response) => {\r\n console.log(response.data);\r\n setLikeanime(1);\r\n setLikecountanime(likecountanime+1);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n const removelikeAnime = async () => {\r\n try {\r\n await axios.post(url5+\"/removelikeanime\",{'user': user.$id,'anime':item.id}).then(async (response) => {\r\n console.log(response.data);\r\n setLikeanime(0);\r\n setLikecountanime(likecountanime-1); \r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n const addMylist = async () => {\r\n try {\r\n await axios.post(url2+\"/addmylist\",{'user': user.$id,'anime':item.id}).then(async (response) => {\r\n console.log(response.data);\r\n setMylistanime(1);\r\n getSocket(); \r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n const removeMylist = async () => {\r\n try {\r\n await axios.post(url2+\"/removemylist\",{'user': user.$id,'anime':item.id}).then(async (response) => {\r\n console.log(response.data);\r\n setMylistanime(0);\r\n getSocket(); \r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n\r\n\r\n\r\n const getSocket = async () => {\r\n try {\r\n const websocket = new WebSocket(socketMilist);\r\n // conectado\r\n websocket.onopen = () => {\r\n console.log('connected');\r\n //sendMessage();\r\n sendMessage();\r\n }\r\n const sendMessage = () => {\r\n websocket.send(user.$id);\r\n };\r\n \r\n // al recibir un mensaje\r\n websocket.onmessage = (event) => {\r\n const data = JSON.parse(event.data);\r\n // auto-crear la queryKey a partir del evento recibido\r\n console.log(data);\r\n websocket.close();\r\n }\r\n\r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n\r\n\r\n \r\n return (\r\n \r\n setIsHovered(true)}\r\n onMouseLeave={() => setIsHovered(false)}\r\n > \r\n
\r\n
\r\n
\r\n {item.name} \r\n
\r\n \r\n {isHovered && (\r\n <>\r\n \r\n {/*
*/}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {item.description}\r\n
\r\n \r\n
\r\n
\r\n {mylistanime === 0 ?
: }\r\n {likeanime === 0 ? : }\r\n {estadoanime === \"Finalizado\" ? Finalizado
: En Emision
}\r\n \r\n
\r\n >\r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n","import {\r\n ArrowBackIosOutlined,\r\n ArrowForwardIosOutlined,\r\n } from \"@material-ui/icons\";\r\n import { useRef, useState } from \"react\";\r\n import ListItem from \"../listItem/ListItem\";\r\n import \"./list.scss\";\r\nimport ListItem2 from \"../listItem/ListItem2\";\r\n \r\n export default function List2({categorias,anime}) {\r\n const [isMoved, setIsMoved] = useState(false);\r\n const [slideNumber, setSlideNumber] = useState(0);\r\n\r\n const listRef = useRef();\r\n const Animelists = anime.filter(a =>\r\n a.categories === categorias.id\r\n );\r\n \r\n const handleClick = (direction) => {\r\n setIsMoved(true);\r\n let distance = listRef.current.getBoundingClientRect().x - 50;\r\n if (direction === \"left\" && slideNumber > 0) {\r\n setSlideNumber(slideNumber - 1);\r\n listRef.current.style.transform = `translateX(${230 + distance}px)`;\r\n }\r\n if (direction === \"right\" && slideNumber < 5) {\r\n setSlideNumber(slideNumber + 1);\r\n listRef.current.style.transform = `translateX(${-230 + distance}px)`;\r\n }\r\n };\r\n\r\n const handleHorizantalScroll = (element, speed, distance, step) => {\r\n let scrollAmount = 0;\r\n const slideTimer = setInterval(() => {\r\n element.scrollLeft += step;\r\n scrollAmount += Math.abs(step);\r\n if (scrollAmount >= distance) {\r\n clearInterval(slideTimer);\r\n }\r\n if (element.scrollLeft === 0) {\r\n setIsMoved(false);\r\n } else {\r\n setIsMoved(true);\r\n }\r\n }, speed);\r\n };\r\n return (\r\n \r\n
{Animelists.length > 0 ? categorias.name : \" \"} \r\n
\r\n
handleHorizantalScroll(listRef.current, 25, 600, -800)}\r\n style={{ display: !isMoved && \"none\" }}\r\n />\r\n \r\n
\r\n {Animelists.map((item,i) => (\r\n \r\n ))}\r\n
\r\n
\r\n handleHorizantalScroll(listRef.current, 25, 600, 800)}\r\n />\r\n \r\n
\r\n );\r\n }\r\n ","import { useEffect, useState } from \"react\";\r\nimport Featured2 from \"../../components/featured/Featured2\";\r\nimport List from \"../../components/list/List\";\r\nimport Navbar from \"../../components/navbar/Navbar\";\r\nimport { useAuth } from \"../../api/AuthContext\";\r\nimport { url3,url2,socketMilist,url17 } from \"../../api/url\";\r\nimport \"./home.scss\";\r\nimport axios from \"axios\";\r\nimport MyList from \"../../components/myList/MyList\";\r\nimport Footer from \"../../components/footer/Footer\";\r\nimport GoogleAd from \"../../api/GoogleAd\";\r\nimport Navbar2 from \"../../components/navbar/Navbar2\";\r\nimport List2 from \"../../components/list/List2\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport NewCList from \"../../components/newCapitulos/NewCList\";\r\n\r\n\r\nconst Home2 = (props) => {\r\n const [Categoriaslits,setCategoriaslits] = useState([]);\r\n const [Animelits,setAnimelits] = useState([]);\r\n const [Myulits,setMyulits] = useState([]);\r\n const { user } = useAuth();\r\n const [newCaplits,setNewCaplits] = useState([]);\r\n const [oldCaplits,setOldCaplits] = useState([]);\r\n const [newCapStatus,setNewCapStatus] = useState(false);\r\n const navigate = useNavigate();\r\n localStorage.setItem(\"Pantalla\",\"Home\");\r\n props.funcNav(false);\r\n\r\n useEffect(() => {\r\n if (user) {\r\n navigate(\"/home\");\r\n }\r\n });\r\n\r\n useEffect(()=>{\r\n const getHomeList = async () => {\r\n try {\r\n await axios.post(url3+\"/home2\").then((response) => {\r\n //console.log(url3);\r\n setAnimelits(response.data[\"anime\"]);\r\n setCategoriaslits(response.data[\"categorias\"]);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n }\r\n\r\n\r\n if (Categoriaslits.length === 0) {\r\n getHomeList();\r\n }\r\n });\r\n\r\n useEffect(async ()=>{\r\n const getNewCList = async () => {\r\n try {\r\n await axios.get(url17+\"/addnewcap\").then((response) => {\r\n //console.log(url3);\r\n setNewCaplits(response.data[\"newcap\"]);\r\n setNewCapStatus(true);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n }\r\n\r\n const getOldCList = async () => {\r\n try {\r\n await axios.get(url17+\"/addnewcapold\").then((response) => {\r\n //console.log(url3);\r\n setOldCaplits(response.data[\"newcap\"]);\r\n setNewCapStatus(true);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n }\r\n\r\n if (!newCapStatus) {\r\n getNewCList();\r\n getOldCList();\r\n }\r\n \r\n });\r\n \r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {newCaplits.length > 0 ?
:\"\"}\r\n {oldCaplits.length > 0 ?
:\"\"}\r\n {Categoriaslits.map((list) => (\r\n
\r\n ))}\r\n \r\n )\r\n}\r\n\r\nexport default Home2\r\n\r\n","import React, { Component, useEffect, useRef } from 'react';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { useState } from \"react\";\nimport { useAuth } from \"../../api/AuthContext\";\nimport \"./login.scss\";\nimport { Alert, Snackbar } from '@mui/material';\nimport Navbar2 from '../../components/navbar/Navbar2';\n\n\n\n\nconst Login = (props) => {\n const {user, loginUser,error} = useAuth()\n const navigate = useNavigate();\n const [email, setEmail] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [open, setOpen] = useState(false);\n props.funcNav(false);\n\n const loginForm = useRef(null)\n\n useEffect(() => {\n if (user) {\n navigate(\"/home\");\n }\n});\n\n const handleSubmit = (e) => {\n e.preventDefault()\n const userInfo = {email, password};\n loginUser(userInfo);\n \n }\n\n\n useEffect(() => {\n if(error===false){\n setOpen(true);\n }\n },[error]);\n\n const redirect = ()=> {\n return navigate(\"/register\");\n }\n\n const handleClose = (event, reason) => {\n if (reason === 'clickaway') {\n return;\n }\n\n setOpen(false);\n }; \n\n return (\n \n
\n
\n
\n \n Email o Password invalida\n \n \n
\n
\n
\n
\n );\n}\n\nexport default Login\n","import { useEffect } from \"react\";\r\nimport { useAuth } from \"../../api/AuthContext\";\r\n\r\nconst Logout = () => {\r\n const { logoutUser } = useAuth();\r\n\r\n useEffect(() => {\r\n logoutUser();\r\n });\r\n return (\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default Logout","import {\r\n ArrowBackIosOutlined,\r\n ArrowForwardIosOutlined,\r\n } from \"@material-ui/icons\";\r\n import { useRef, useState } from \"react\";\r\n import ListItem from \"../listItem/ListItem\";\r\n import \"./Mylist2.scss\";\r\n \r\n export default function MyList2({anime}) {\r\n\r\n const listRef = useRef();\r\n\r\n return (\r\n \r\n
Mi Lista \r\n
\r\n
\r\n
\r\n {anime.map((item,i) => (\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n ","import \"./milista.scss\"\r\nimport FeaturedAnime from \"../../components/featuredAnime/FeaturedAnime\";\r\nimport List from \"../../components/list/List\";\r\nimport Navbar from \"../../components/navbar/Navbar\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { url7, url13,url6,url5,url2,socketMilist } from \"../../api/url\";\r\nimport { useAuth } from \"../../api/AuthContext\";\r\nimport axios from \"axios\";\r\nimport { Form } from \"react-bootstrap\";\r\nimport ListCapitulos from \"../../components/listCapitulos/ListCapitulos\";\r\nimport { Add, Check, Settings, ThumbDown, ThumbDownOutlined, ThumbUp, ThumbUpAltOutlined, Visibility } from \"@material-ui/icons\";\r\nimport Footer from \"../../components/footer/Footer\";\r\nimport MyList from \"../../components/myList/MyList\";\r\nimport MyList2 from \"../../components/myList/MyList2\";\r\nimport socketIO from 'socket.io-client';\r\n//const socket = socketIO.connect('ws://localhost:3004');\r\n\r\n \r\n\r\nexport default function Milista() {\r\n localStorage.setItem(\"Pantalla\",\"Milista\");\r\n const { user } = useAuth();\r\n const [Myulits,setMyulits] = useState([]);\r\n useEffect(async ()=>{\r\n const getMyAniList = async () => {\r\n try {\r\n await axios.post(url2+\"/mylist\",{'user': user.$id}).then((response) => {\r\n //console.log(url3);\r\n //setMyulits(response.data[\"anime\"]);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n if (Myulits.length === 0) {\r\n getMyAniList();\r\n }\r\n });\r\n\r\n\r\n useEffect(async ()=>{\r\n const websocket = new WebSocket(socketMilist);\r\n\r\n // conectado\r\n websocket.onopen = () => {\r\n console.log('connected');\r\n //sendMessage();\r\n if (Myulits.length === 0) {\r\n sendMessage();\r\n }\r\n }\r\n const sendMessage = () => {\r\n websocket.send(user.$id);\r\n };\r\n \r\n // al recibir un mensaje\r\n websocket.onmessage = (event) => {\r\n const data = JSON.parse(event.data);\r\n // auto-crear la queryKey a partir del evento recibido\r\n console.log(data);\r\n if(data[\"user\"]=== user.$id){\r\n setMyulits(data[\"anime\"]);\r\n }\r\n websocket.close();\r\n console.log('close');\r\n }\r\n // desconexión\r\n return () => {\r\n websocket.close();\r\n } \r\n\r\n \r\n });\r\n \r\n return (\r\n \r\n {/*
*/}\r\n
\r\n {Myulits.length === 0 ? 'No videos':''}\r\n
\r\n
\r\n \r\n )\r\n}\r\n","import { useEffect, useRef } from \"react\";\r\nimport { useState } from \"react\";\r\nimport \"./register.scss\"\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { useAuth } from \"../../api/AuthContext\";\r\nimport { Alert, Snackbar } from \"@mui/material\";\r\n\r\nconst Register = (props) =>{\r\n const {user, registerUser,error} = useAuth()\r\n const [name, setName] = useState(\"\");\r\n const [email, setEmail] = useState(\"\");\r\n const [password, setPassword] = useState(\"\");\r\n const navigate = useNavigate();\r\n const [open, setOpen] = useState(false);\r\n const registrerForm = useRef(null)\r\n const emailRef = useRef();\r\n const passwordRef = useRef();\r\n\r\n props.funcNav(false);\r\n\r\n useEffect(() => {\r\n if (user) {\r\n navigate(\"/home\");\r\n }\r\n });\r\n \r\n const handleStart = () => {\r\n setEmail(emailRef.current.value);\r\n };\r\n const handleFinish = () => {\r\n setPassword(passwordRef.current.value);\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault()\r\n const userInfo = {name,email, password};\r\n registerUser(userInfo);\r\n }\r\n \r\n const redirect = ()=> {\r\n return navigate(\"/\");\r\n }\r\n\r\n useEffect(() => {\r\n if(error===false){\r\n setOpen(true);\r\n }\r\n },[error]);\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n setOpen(false);\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n Error de registro\r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\nexport default Register","import { ArrowBackOutlined, ThumbDown, ThumbDownOutlined, ThumbUp, ThumbUpAltOutlined, Visibility } from \"@material-ui/icons\"\r\nimport \"./watch.scss\"\r\nimport Navbar from \"../../components/navbar/Navbar\"\r\nimport { useParams } from \"react-router-dom\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { url7,url8,url13,url9,urlHls,url18,socketNoti } from \"../../api/url\";\r\nimport { useAuth } from \"../../api/AuthContext\";\r\nimport axios from \"axios\";\r\nimport ReactHlsPlayer from \"react-hls-player\";\r\nimport Banner from \"../../components/utils/Banner\";\r\nimport NativeBanner from \"../../components/utils/NativeBanner\";\r\n\r\nexport default function Watch() {\r\n const { user } = useAuth();\r\n const { id,noti } = useParams();\r\n console.log(id);\r\n console.log(noti);\r\n localStorage.setItem(\"Pantalla\",\"Watch\");\r\n\r\n const [Capitulo,setCapitulo] = useState([]);\r\n const [url,setUrl] = useState(\"\");\r\n const [url2,setUrl2] = useState(\"\");\r\n const [sta,setSta] = useState(false);\r\n\r\n const [viewcap,setViewcap] = useState(null);\r\n const [viewcapx,setViewcapx] = useState(0);\r\n\r\n const [anime,setAnime] = useState(\"\");\r\n const [name,setName] = useState(\"\");\r\n\r\n const [likecapitulo,setLikecapitulo] = useState(0);\r\n const [likecountcapitulo,setLikecountcapitulo] = useState(0);\r\n const [dislikecapitulo,setDislikecapitulo] = useState(0);\r\n const [dislikecountcapitulo,setDislikecountcapitulo] = useState(0);\r\n const [viewcapitulo,setViewcapitulo] = useState(0);\r\n const [viewcountcapitulos,setViewcountcapitulos] = useState(0);\r\n\r\n useEffect(async ()=>{\r\n const getCap= async () => {\r\n try {\r\n await axios.post(url7+\"/capitulo\",{'user': user.$id,'capitulo':id}).then((response) => {\r\n //console.log(response.data);\r\n setCapitulo(response.data[\"capitulos\"]);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n\r\n //const oldIframe = document.querySelector('iframe');\r\n //console.log(\"oldIframe:\"+oldIframe);\r\n /*const gethls= async () => {\r\n try {\r\n /*await axios.get(Capitulo[0].videoUrl).then((response) => {\r\n console.log(response.data);\r\n //setCapitulo(response.data[\"capitulos\"]);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n \r\n } catch (errors) {\r\n console.log(errors);\r\n console.log(errors.response.data);\r\n }\r\n };*/\r\n \r\n\r\n if (Capitulo.length === 0) {\r\n await getCap();\r\n }\r\n \r\n if(Capitulo.length > 0 && !sta){\r\n setUrl(Capitulo[0].videoUrl.replace('https://filemoon.sx/d', 'https://animeflixplus.site/e'))\r\n \r\n setSta(true);\r\n }\r\n\r\n \r\n });\r\n\r\n useEffect(() =>{\r\n const id = url.split('https://animeflixplus.site/e');\r\n setUrl2(urlHls+\"/filemoon.php?id=\"+id);\r\n const getUrlHls = async () => {\r\n try {\r\n await axios.get(urlHls+\"/filemoon.php?id=\"+id).then(async (response) => {\r\n console.log(response.data);\r\n setUrl2(response.data);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n /*if(id.length > 0){\r\n //getUrlHls();\r\n }*/\r\n \r\n\r\n },[url]);\r\n\r\n useEffect(() => {\r\n const getAni = async () => {\r\n try {\r\n await axios.post(url13+\"/anime\",{'user': user.$id,'idanime':Capitulo[0].anime}).then((response) => {\r\n //console.log(response.data);\r\n setAnime(response.data[\"anime\"]);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n if(Capitulo.length > 0){\r\n setLikecapitulo(Capitulo[0].likecapitulo);\r\n setLikecountcapitulo(Capitulo[0].likecountcapitulo);\r\n setDislikecapitulo(Capitulo[0].dislikecapitulo);\r\n setDislikecountcapitulo(Capitulo[0].dislikecountcapitulo);\r\n setViewcapitulo(Capitulo[0].viewcapitulo);\r\n setViewcountcapitulos(Capitulo[0].viewcountcapitulos);\r\n setName(Capitulo[0].name);\r\n getAni();\r\n if(viewcap === null){\r\n setViewcap(Capitulo[0].viewcapitulo);\r\n setViewcapx(1);\r\n }\r\n if(viewcap === 0){\r\n setViewcap(1);\r\n setViewcapx(1);\r\n setViewcountcapitulos(viewcountcapitulos+1);\r\n }\r\n }\r\n },[Capitulo]);\r\n\r\n useEffect(() => {\r\n const setView = async () => {\r\n try {\r\n await axios.post(url8+\"/viewcapitulos\",{'user': user.$id,'capitulo':id,'minute':0,'second':0}).then(async (response) => {\r\n console.log(response.data);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n console.log(\"userEffect2:\"+viewcap);\r\n if(viewcap === 0){\r\n setView();\r\n console.log(\"Viewani:\"+viewcap);\r\n console.log(\"View\");\r\n }\r\n\r\n },[viewcap]);\r\n\r\n\r\n useEffect(()=>{\r\n const viewNoti = async (idnoti) => {\r\n try {\r\n await axios.post(url18+\"/viewnoti\",{'user': user.$id,'idnoti':noti}).then(async (response) => {\r\n console.log(response.data);\r\n const websocket = new WebSocket(socketNoti);\r\n\r\n // conectado\r\n websocket.onopen = () => {\r\n console.log('connected');\r\n //sendMessage();\r\n sendMessage();\r\n }\r\n const sendMessage = () => {\r\n websocket.send(\"cod:noti\");\r\n };\r\n \r\n // al recibir un mensaje\r\n websocket.onmessage = (event) => {\r\n const data = JSON.parse(event.data);\r\n // auto-crear la queryKey a partir del evento recibido\r\n //console.log(data);\r\n websocket.close();\r\n console.log('close');\r\n }\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n if(noti != null){\r\n viewNoti();\r\n }\r\n\r\n },[noti]);\r\n\r\n const addlikeCapitulo = async (status) => {\r\n try {\r\n await axios.post(url9+\"/removelikecapitulos\",{'user': user.$id,'capitulo':id,'status':status});\r\n await axios.post(url9+\"/addlikecapitulos\",{'user': user.$id,'capitulo':id,'status':status}).then(async (response) => {\r\n console.log(response.data);\r\n \r\n \r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n if(status===1){\r\n setLikecapitulo(1);\r\n setLikecountcapitulo(likecountcapitulo+1);\r\n if(dislikecountcapitulo != 0){\r\n setDislikecapitulo(0);\r\n setDislikecountcapitulo(dislikecountcapitulo-1);\r\n }\r\n }else if(status=== 0){\r\n setDislikecapitulo(1);\r\n setDislikecountcapitulo(dislikecountcapitulo+1);\r\n if(likecountcapitulo != 0){\r\n setLikecapitulo(0);\r\n setLikecountcapitulo(likecountcapitulo-1);\r\n }\r\n }\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n const removelikeCapitulo = async (status) => {\r\n try {\r\n await axios.post(url9+\"/removelikecapitulos\",{'user': user.$id,'capitulo':id,'status':status}).then(async (response) => {\r\n console.log(response.data);\r\n if(status===1){\r\n setLikecapitulo(0);\r\n setLikecountcapitulo(likecountcapitulo-1);\r\n }else if(status===0){\r\n setDislikecapitulo(0);\r\n setDislikecountcapitulo(dislikecountcapitulo-1);\r\n }\r\n \r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n \r\n\r\n return (\r\n \r\n
\r\n
\r\n {/*
*/}\r\n
\r\n {/**/} \r\n
\r\n
\r\n
{anime.name}
\r\n
{name}
\r\n
\r\n
\r\n {likecapitulo === 0 ?
addlikeCapitulo(1)}/> : removelikeCapitulo(1)}/>}\r\n
\r\n {dislikecapitulo === 0 ? addlikeCapitulo(0)}/> : removelikeCapitulo(0)}/>}\r\n
\r\n {viewcapx === 0 ? : }\r\n \r\n
\r\n {likecountcapitulo}\r\n
\r\n {dislikecountcapitulo}\r\n
\r\n {viewcountcapitulos}\r\n
\r\n
\r\n {/**/} \r\n
\r\n
\r\n )\r\n}\r\n","import {\r\n ArrowBackIosOutlined,\r\n ArrowForwardIosOutlined,\r\n } from \"@material-ui/icons\";\r\n import { useRef, useState } from \"react\";\r\n import ListItem from \"../listItem/ListItem\";\r\n import \"./searchList.scss\";\r\n \r\n export default function SearchList({anime}) {\r\n\r\n const listRef = useRef();\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n {anime.map((item,i) => (\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n ","import { useEffect, useState } from \"react\";\r\nimport \"./search.scss\"\r\nimport { useAuth } from \"../../api/AuthContext\";\r\nimport { url19 } from \"../../api/url\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport axios from \"axios\";\r\nimport MyList2 from \"../../components/myList/MyList2\";\r\nimport SearchList from \"../../components/search/SearchList\";\r\n\r\nexport default function Search() {\r\n const { id } = useParams();\r\n const { user } = useAuth();\r\n const [Animelits,setAnimelits] = useState([]);\r\n useEffect(async ()=>{\r\n //console.log(id);\r\n const getAniList = async () => {\r\n try {\r\n await axios.post(url19+\"/search\",{'user': user.$id,'anime':id}).then((response) => {\r\n console.log(response.data[\"anime\"]);\r\n setAnimelits(response.data[\"anime\"]);\r\n }).catch(error => {\r\n console.log(error);\r\n setAnimelits([]);\r\n });\r\n \r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n await getAniList();\r\n },[id]);\r\n return (\r\n \r\n
\r\n {Animelits.length === 0 ? 'No videos':''}\r\n
\r\n {Animelits.length === 0 ? '':
}\r\n \r\n )\r\n}\r\n","import { AccountCircle, ExpandMore } from \"@material-ui/icons\"\r\nimport \"./profile.scss\"\r\nimport { useAuth } from \"../../api/AuthContext\";\r\nimport Accordion from '@mui/material/Accordion';\r\nimport AccordionDetails from '@mui/material/AccordionDetails';\r\nimport AccordionSummary from '@mui/material/AccordionSummary';\r\nimport Typography from '@mui/material/Typography';\r\nimport { useRef, useState } from \"react\";\r\nimport { account } from \"../../api/appwrite\";\r\nimport { Snackbar } from \"@material-ui/core\";\r\nimport { Alert } from \"@mui/material\";\r\nimport { url11 } from \"../../api/url\";\r\nimport axios from \"axios\";\r\nimport sha1 from \"js-sha1\";\r\n\r\n\r\nexport default function Profile() {\r\n const { user } = useAuth();\r\n const [expanded, setExpanded] = useState(false);\r\n const nameForm = useRef(null);\r\n const passwordForm = useRef(null);\r\n const [name, setName] = useState(\"\");\r\n const [password, setPassword] = useState(\"\");\r\n const [open, setOpen] = useState(false);\r\n\r\n const handleChange = (panel) => (event, isExpanded) => {\r\n setExpanded(isExpanded ? panel : false);\r\n };\r\n\r\n const handleSubmitName = async (e) => {\r\n e.preventDefault();\r\n console.log(name);\r\n await account.updateName(name);\r\n updateName();\r\n setOpen(true);\r\n setName(\"\");\r\n }\r\n\r\n const handleSubmitPassword = async (e) => {\r\n e.preventDefault();\r\n console.log(password);\r\n //await account.updatePassword(password);\r\n //updateName();\r\n console.log(sha1('M0ises2002'));\r\n setOpen(true);\r\n setPassword(\"\");\r\n } \r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n\r\n setOpen(false);\r\n }; \r\n \r\n const updateName= async () => {\r\n try {\r\n await axios.post(url11+\"/updateprofilename\",{'id': user.$id,'name':name}).then((response) => {\r\n console.log(response.data);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n \r\n return (\r\n \r\n
\r\n \r\n Registro Actualizado Correctamente\r\n \r\n \r\n
\r\n
\r\n {user.name}\r\n
\r\n
\r\n
\r\n }\r\n aria-controls=\"panel1bh-content\"\r\n id=\"panel1bh-header\"\r\n >\r\n \r\n Correo\r\n \r\n {user.email} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n }\r\n aria-controls=\"panel2bh-content\"\r\n id=\"panel2bh-header\"\r\n >\r\n Nombre \r\n {user.name} \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n }\r\n aria-controls=\"panel3bh-content\"\r\n id=\"panel3bh-header\"\r\n >\r\n \r\n Password\r\n \r\n ******** \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n }\r\n aria-controls=\"panel4bh-content\"\r\n id=\"panel4bh-header\"\r\n >\r\n Eliminar Cuenta \r\n \r\n \r\n \r\n Nunc vitae orci ultricies, auctor nunc in, volutpat nisl. Integer sit\r\n amet egestas eros, vitae egestas augue. Duis vel est augue.\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n","import { useEffect, useState } from \"react\";\r\nimport { useAuth } from \"../../api/AuthContext\";\r\nimport \"./settings.scss\"\r\nimport { Accordion, AccordionDetails, AccordionSummary, List, ListItem, ListItemIcon, ListItemText, ListSubheader, Switch, Typography } from \"@mui/material\";\r\nimport { ExpandMore } from \"@material-ui/icons\";\r\nimport { url11 } from \"../../api/url\";\r\nimport axios from \"axios\";\r\n\r\nexport default function Settings() {\r\n const [checked, setChecked] = useState([]);\r\n const { user } = useAuth();\r\n const [settings,setSettings] = useState([]);\r\n const [settingsa,setSettingsa] = useState([]);\r\n\r\n\r\n const handleToggle = (value) => () => {\r\n const currentIndex = settingsa.indexOf(value);\r\n const newChecked = [...settingsa];\r\n\r\n if (currentIndex === -1) {\r\n newChecked.push(value);\r\n saveSettings(value.id,\"1\")\r\n } else {\r\n newChecked.splice(currentIndex, 1);\r\n saveSettings(value.id,\"0\")\r\n }\r\n //console.log(newChecked);\r\n setSettingsa(newChecked);\r\n };\r\n\r\n useEffect(()=>{\r\n const getSettings= async () => {\r\n try {\r\n await axios.post(url11+\"/profile\",{'user': user.$id}).then((response) => {\r\n //console.log(response.data);\r\n setSettings(response.data[\"ajustes\"]);\r\n setSettingsa(response.data[\"ajustes\"].filter(a =>\r\n a.status === \"1\"\r\n ));\r\n \r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n if(settings.length === 0){\r\n getSettings();\r\n }\r\n \r\n });\r\n\r\n\r\n const saveSettings= async (id,status) => {\r\n try {\r\n await axios.post(url11+\"/updateajustes\",{'user': user.$id,'id': id,'status': status}).then((response) => {\r\n //console.log(response.data); \r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n }\r\n\r\n return (\r\n \r\n Settings}\r\n >\r\n\r\n {settings.map((item,i) => (\r\n \r\n \r\n \r\n \r\n ))}\r\n
\r\n
\r\n );\r\n}\r\n","import \"./politica.scss\"\r\n\r\nexport default function Privacidad() {\r\n return (\r\n \r\n PRIVACIDAD\r\nResponsable – Animeflixplus\r\nIdentidad: \r\nCorreo Electrónico: contact@animeflixplus.com\r\nContacto: contact@animeflixplus.com\r\nNombre del dominio: animeflixplus.com\r\nFinalidades – Anime\r\nEn cumplimiento de lo dispuesto en el Reglamento Europeo 2016/679 General de Protección de Datos, te informamos de que trataremos los datos que nos facilitas para:\r\nGestionar la contratación de servicios que realice a través de la Plataforma, así como la facturación y entrega correspondiente.\r\nRemitir periódicamente comunicaciones sobre servicios, eventos y noticias relacionadas con las actividades desarrolladas por El titular, por cualquier medio (teléfono, correo postal o email), salvo que se indique lo contrario o el usuario se oponga o revoque su consentimiento.\r\nRemitir información comercial y / o promocional relacionada con el sector de servicios contratados y valor añadido para usuarios finales, salvo que se indique lo contrario o el usuario se oponga o revoque su consentimiento.\r\nDar cumplimiento a las obligaciones legalmente establecidas, así como verificar el cumplimiento de las obligaciones contractuales, incluía la prevención de fraude.\r\nCesión de datos a organismos y autoridades, siempre y cuando sean requeridos de conformidad con las disposiciones legales y reglamentarias.\r\nCategorías de datos – ¿Qué datos tratamos?\r\nDerivada de las finalidades antes mencionadas, en El titular gestionamos las siguientes categorías de datos:\r\nDatos identificativos\r\nMetadatos de comunicaciones electrónicas\r\nDatos de información comercial. En caso de que el usuario facilite datos de terceros, manifiesta contar con el consentimiento de estos y se compromete a trasladarle la información contenida en esta cláusula, eximiendo a El titular de cualquier responsabilidad en este sentido.\r\nNo obstante, El titular podrá llevar a cabo las verificaciones para constatar este hecho, adoptando las medidas de diligencia debida que correspondan, conforme a la normativa de protección de datos.\r\nLegitimación – ¿cuál es la legitimación para el tratamiento de tus datos?\r\nEl tratamiento de datos cuyo fin es el envío de boletines periódicos (newslettering) sobre servicios, eventos y noticias relacionadas con nuestra actividad profesional se basa en el consentimiento del interesado, solicitado expresamente para llevar a cabo dichos tratamientos, de acuerdo con la normativa vigente.\r\n“Recuerda que si estás buscando plugins gratis puedes visitar esta web ”\r\nAdemás, la legitimación para el tratamiento de los datos relacionados con ofertas o colaboraciones se basan en el consentimiento del usuario que remite sus datos, que puede retirar en cualquier momento, si bien ello puede afectar a la posible comunicación de forma fluida y obstrucción de procesos que desea realizar.\r\nPor último, los datos se podrán utilizar para dar cumplimiento a las obligaciones legales aplicables a El titular\r\nPlazo de Conservación de los Datos – ¿Por cuánto tiempo conservaremos tus datos?\r\nEl titular conservará los datos personales de los usuarios únicamente durante el tiempo necesario para la realización de las finalidades para las que fueron recogidos, mientras no revoque los consentimientos otorgados. Posteriormente, en caso de ser necesario, mantendrá la información bloqueada durante los plazos legalmente establecidos.\r\nDestinatarios ¿A qué destinatarios se comunicarán tus datos?\r\nTus datos podrán ser accedidos por aquellos proveedores que prestan servicios a El titular, tales como servicios de alojamiento, herramientas de marketing y sistemas de contenido u otros profesionales, cuando dicha comunicación sea necesaria normativamente, o para la ejecución de los servicios contratados.\r\n\r\nEl titular, ha suscrito los correspondientes contratos de encargo de tratamiento con cada uno de los proveedores que prestan servicios a El titular, con el objetivo de garantizar que dichos proveedores tratarán tus datos de conformidad con lo establecido en la legislación vigente.\r\n\r\nTambién podrán ser cedidos a las Fuerzas y Cuerpos de Seguridad del Estado en los casos que exista una obligación legal.\r\n\r\nBancos y entidades financieras, para el cobro de los servicios.\r\nAdministraciones públicas con competencia en los sectores de actividad, cuando así lo establezca la normativa vigente.\r\nSeguridad de la Información – ¿Qué medidas de seguridad implantamos para cuidar sus datos?\r\nPara proteger las diferentes tipologías de datos reflejados en esta política de privacidad llevará a cabo las medidas de seguridad técnicas necesarias para evitar su pérdida, manipulación, difusión o alteración.\r\nEncriptación de las comunicaciones entre el dispositivo del usuario y los servidores de El titular\r\nEncriptación de la información en los propios servidores de El titular\r\nOtras medidas que eviten el acceso a los datos del usuario por parte de terceros.\r\nEn aquellos casos en los que El titular cuente con prestadores de servicio para el mantenimiento de la plataforma que se encuentren fuera de la Unión Europea, estas trasferencias internacionales se hayan regularizadas atendiendo al compromiso de El titular con la protección, integridad y seguridad de los datos personales de los usuarios.\r\nDerechos – ¿Cuáles son tus derechos cuando nos facilitas tus datos y cómo puedes ejercerlos?\r\nTienes derecho a obtener confirmación sobre si en El titular estamos tratando datos personales que te conciernan, o no.\r\nAsimismo, tienes derecho a acceder a tus datos personales, así como a solicitar la rectificación de los datos inexactos o, en su caso, solicitar su supresión cuando, entre otros motivos, los datos ya no sean necesarios para los fines que fueron recogidos.\r\n\r\nEn determinadas circunstancias, podrás solicitar la limitación del tratamiento de tus datos, en cuyo caso únicamente los conservaremos para el ejercicio o la defensa de reclamaciones.\r\nEn determinadas circunstancias y por motivos relacionados con tu situación particular, podrás oponerte al tratamiento de tus datos. El titular dejará de tratar los datos, salvo por motivos legítimos imperiosos, o el ejercicio o la defensa de posibles reclamaciones.\r\n\r\nAsimismo, puedes ejercer el derecho a la portabilidad de los datos, así como retirar los consentimientos facilitados en cualquier momento, sin que ello afecte a la licitud del tratamiento basado en el consentimiento previo a su retirada.\r\n\r\nSi deseas hacer uso de cualquiera de tus derechos puede dirigirse a información en contacto.\r\n\r\nPor último, te informamos que puedes dirigirte ante la Agencia Española de Protección de Datos y demás organismos públicos competentes para cualquier reclamación derivada del tratamiento de tus datos personales.\r\nModificación de la política de privacidad\r\nEl titular podrá modificar la presente Política de Privacidad en cualquier momento, siendo publicadas las sucesivas versiones en el Sitio Web. En cualquier caso, El titular comunicará con previo aviso las modificaciones de la presente política que afecten a los usuarios a fin de que puedan aceptar las mismas.\r\nEste contenido fue generado por el equipo técnico y legal de Agencia SEM Wolfpress sas.\r\nLa presente Política de Privacidad se encuentra actualizada a fecha 22/07/2020 El titular (España). Reservados todos los derechos.\r\n\r\n
\r\n )\r\n}\r\n","import \"./politica.scss\"\r\n\r\nexport default function Cookies() {\r\n return (\r\n \r\n Política de Cookies\r\nEn esta web se utilizan cookies de terceros y propias para conseguir que tengas una mejor experiencia de navegación, puedas compartir contenido en redes sociales y para que podamos obtener estadísticas de los usuarios.\r\n\r\nPuedes evitar la descarga de cookies a través de la configuración de tu navegador, evitando que las cookies se almacenen en su dispositivo.\r\n\r\nComo propietario de este sitio web, te comunico que no utilizamos ninguna información personal procedente de cookies, tan sólo realizamos estadísticas generales de visitas que no suponen ninguna información personal.\r\n\r\nEs muy importante que leas la presente política de cookies y comprendas que, si continúas navegando, consideraremos que aceptas su uso.\r\n\r\nSegún los términos incluidos en el artículo 22.2 de la Ley 34/2002 de Servicios de la Sociedad de la Información y Comercio Electrónico, si continúas navegando, estarás prestando tu consentimiento para el empleo de los referidos mecanismos.\r\nEntidad Responsable\r\nLa entidad responsable de la recogida, procesamiento y utilización de tus datos personales, en el sentido establecido por la Ley de Protección de Datos Personales es la página -ESTA WEB, propiedad de El TITULAR – Solicitar en contacto.\r\n¿Qué son las cookies?\r\nLas cookies son un conjunto de datos que un servidor deposita en el navegador del usuario para recoger la información de registro estándar de Internet y la información del comportamiento de los visitantes en un sitio web. Es decir, se trata de pequeños archivos de texto que quedan almacenados en el disco duro del ordenador y que sirven para identificar al usuario cuando se conecta nuevamente al sitio web. Su objetivo es registrar la visita del usuario y guardar cierta información. Su uso es común y frecuente en la web ya que permite a las páginas funcionar de manera más eficiente y conseguir una mayor personalización y análisis sobre el comportamiento del usuario.\r\n¿Qué tipos de cookies existen?\r\nLas cookies utilizadas en nuestro sitio web, son de sesión y de terceros, y nos permiten almacenar y acceder a información relativa al idioma, el tipo de navegador utilizado, y otras características generales predefinidas por el usuario, así como, seguir y analizar la actividad que lleva a cabo, con el objeto de introducir mejoras y prestar nuestros servicios de una manera más eficiente y personalizada.\r\n\r\nLas cookies, en función de su permanencia, pueden dividirse en cookies de sesión o permanentes. Las que expiran cuando el usuario cierra el navegador. Las que expiran en función de cuando se cumpla el objetivo para el que sirven (por ejemplo, para que el usuario se mantenga identificado en los servicios de El TITULAR) o bien cuando se borran manualmente.\r\nNombre\r\nTipo\r\nCaducidad\r\nFinalidad\r\nClase\r\n__utma\r\nDe Terceros (Google Analytics)\r\n2 años\r\nSe usa para distinguir usuarios y sesiones.\r\nNo Exenta\r\n__utmb\r\nDe Terceros (Google Analytics)\r\n30 minutos\r\nSe usa para determinar nuevas sesiones o visitas\r\nNo Exenta\r\n__utmc\r\nDe Terceros (Google Analytics)\r\nAl finalizar la sesión\r\nSe configura para su uso con Urchin\r\nNo Exenta\r\n__utmz\r\nDe Terceros (Google Analytics)\r\n6 meses\r\nAlmacena el origen o la campaña que explica cómo el usuario ha llegado hasta la página web\r\nNo Exenta\r\n\r\nAdicionalmente, en función de su objetivo, las cookies pueden clasificarse de la siguiente forma:\r\nCookies de rendimiento\r\nEste tipo de Cookie recuerda sus preferencias para las herramientas que se encuentran en los servicios, por lo que no tiene que volver a configurar el servicio cada vez que usted visita. A modo de ejemplo, en esta tipología se incluyen: Ajustes de volumen de reproductores de vídeo o sonido. Las velocidades de transmisión de vídeo que sean compatibles con su navegador. Los objetos guardados en el “carrito de la compra” en los servicios de e-commerce tales como tiendas.\r\nCookies de geo-localización\r\nEstas cookies son utilizadas para averiguar en qué país se encuentra cuando se solicita un servicio. Esta cookie es totalmente anónima, y sólo se utiliza para ayudar a orientar el contenido a su ubicación.\r\nCookies de registro\r\nLas cookies de registro se generan una vez que el usuario se ha registrado o posteriormente ha abierto su sesión, y se utilizan para identificarle en los servicios con los siguientes objetivos:\r\nMantener al usuario identificado de forma que, si cierra un servicio, el navegador o el ordenador y en otro momento u otro día vuelve a entrar en dicho servicio, seguirá identificado, facilitando así su navegación sin tener que volver a identificarse. Esta funcionalidad se puede suprimir si el usuario pulsa la funcionalidad [cerrar sesión], de forma que esta cookie se elimina y la próxima vez que entre en el servicio el usuario tendrá que iniciar sesión para estar identificado.\r\nComprobar si el usuario está autorizado para acceder a ciertos servicios, por ejemplo, para participar en un concurso.\r\nAdicionalmente, algunos servicios pueden utilizar conectores con redes sociales tales como Facebook o Twitter. Cuando el usuario se registra en un servicio con credenciales de una red social, autoriza a la red social a guardar una Cookie persistente que recuerda su identidad y le garantiza acceso a los servicios hasta que expira. El usuario puede borrar esta Cookie y revocar el acceso a los servicios mediante redes sociales actualizando sus preferencias en la red social que específica.\r\nCookies de analíticas\r\nCada vez que un usuario visita un servicio, una herramienta de un proveedor externo genera una cookie analítica en el ordenador del usuario. Esta cookie que sólo se genera en la visita, servirá en próximas visitas a los servicios de El TITULAR para identificar de forma anónima al visitante. Los objetivos principales que se persiguen son:\r\nPermitir la identificación anónima de los usuarios navegantes a través de la cookie (identifica navegadores y dispositivos, no personas) y por lo tanto la contabilización aproximada del número de visitantes y su tendencia en el tiempo.\r\nIdentificar de forma anónima los contenidos más visitados y por lo tanto más atractivos para los usuarios Saber si el usuario que está accediendo es nuevo o repite visita.\r\nImportante: Salvo que el usuario decida registrarse en un servicio de El TITULAR, la cookie nunca irá asociada a ningún dato de carácter personal que pueda identificarle. Dichas cookies sólo serán utilizadas con propósitos estadísticos que ayuden a la optimización de la experiencia de los usuarios en el sitio.\r\nCookies de publicidad\r\nEste tipo de cookies permiten ampliar la información de los anuncios mostrados a cada usuario anónimo en los servicios de El TITULAR. Entre otros, se almacena la duración o frecuencia de visualización de posiciones publicitarias, la interacción con las mismas, o los patrones de navegación y/o comportamientos del usuario ya que ayudan a conformar un perfil de interés publicitario. De este modo, permiten ofrecer publicidad afín a los intereses del usuario.\r\nCookies publicitarias de terceros\r\nAdemás de la publicidad gestionada por las webs de El TITULAR en sus servicios, las webs de El TITULAR ofrecen a sus anunciantes la opción de servir anuncios a través de terceros (“Ad-Servers”). De este modo, estos terceros pueden almacenar cookies enviadas desde los servicios de El TITULAR procedentes de los navegadores de los usuarios, así como acceder a los datos que en ellas se guardan.\r\nLas empresas que generan estas cookies tienen sus propias políticas de privacidad. En la actualidad, las webs de El TITULAR utilizan la plataforma Doubleclick (Google) para gestionar estos servicios. Para más información, acuda a\r\nhttp://www.google.es/policies/privacy/ads/#toc-doubleclick y a http://www.google.es/policies/privacy/ads/.\r\n¿Cómo puedo deshabilitar las cookies en mi navegador?\r\nSe pueden configurar los diferentes navegadores para avisar al usuario de la recepción de cookies y, si se desea, impedir su instalación en el equipo. Asimismo, el usuario puede revisar en su navegador qué cookies tiene instaladas y cuál es el plazo de caducidad de las mismas, pudiendo eliminarlas.\r\nPara ampliar esta información consulte las instrucciones y manuales de su navegador:\r\nPara más información sobre la administración de las cookies en Google Chrome: https://support.google.com/chrome/answer/95647?hl=es\r\nPara más información sobre la administración de las cookies en Internet Explorer: http://windows.microsoft.com/es-es/windows-vista/cookies-frequently-asked-questions\r\nPara más información sobre la administración de las cookies en Mozilla Firefox: http://support.mozilla.org/es/kb/habilitar-y-deshabilitar-cookies-que-los-sitios-we\r\nPara más información sobre la administración de las cookies en Safari: http://www.apple.com/es/privacy/use-of-cookies/\r\nPara más información sobre la administración de las cookies en Opera: http://help.opera.com/Windows/11.50/es-ES/cookies.html\r\nSi desea dejar de ser seguido por Google Analytics visite: http://tools.google.com/dlpage/gaoptout\r\nSi deseas aprender sobre recetas de mariscos \r\nPara saber más sobre las cookies\r\nPuede obtener más información sobre la publicidad online basada en el comportamiento y la privacidad online en el siguiente enlace: http://www.youronlinechoices.com/es/\r\nProtección de datos de Google Analytics: http://www.google.com/analytics/learn/privacy.html\r\nCómo usa Google Analytics las cookies: https://developers.google.com/analytics/devguides/collection/analyticsjs/cookie-usage?hl=es#analyticsjs\r\nActualizaciones y cambios en la política de privacidad/cookies\r\nLas webs de El TITULAR pueden modificar esta Política de Cookies en función de exigencias legislativas, reglamentarias, o con la finalidad de adaptar dicha política a las instrucciones dictadas por la Agencia Española de Protección de Datos, por ello se aconseja a los usuarios que la visiten periódicamente.\r\nCuando se produzcan cambios significativos en esta Política de Cookies, estos se comunicarán a los usuarios bien mediante la web o a través de correo electrónico a los usuarios registrados.\r\nEste contenido fue generado por el equipo técnico y legal de Agencia SEO Animeflixplus.\r\n
\r\n )\r\n}\r\n","import \"./anime.scss\"\r\nimport FeaturedAnime from \"../../components/featuredAnime/FeaturedAnime\";\r\nimport List from \"../../components/list/List\";\r\nimport Navbar from \"../../components/navbar/Navbar\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { url7, url13,url6,url5,url2,url18,socketNoti } from \"../../api/url\";\r\nimport { useAuth } from \"../../api/AuthContext\";\r\nimport axios from \"axios\";\r\nimport { Form } from \"react-bootstrap\";\r\nimport ListCapitulos from \"../../components/listCapitulos/ListCapitulos\";\r\nimport { Add, Check, Settings, ThumbDown, ThumbDownOutlined, ThumbUp, ThumbUpAltOutlined, Visibility } from \"@material-ui/icons\";\r\nimport Footer from \"../../components/footer/Footer\";\r\nimport { Skeleton } from \"@mui/material\";\r\nimport Banner from \"../../components/utils/Banner\";\r\nimport NativeBanner from \"../../components/utils/NativeBanner\";\r\nimport Navbar2 from \"../../components/navbar/Navbar2\";\r\n\r\n\r\nexport default function Anime2(props) {\r\n const { user } = useAuth();\r\n const [Animelits,setAnimelits] = useState([]);\r\n const [Temporadaslits,setTemporadaslits] = useState([]);\r\n const [Capituloslits,setCapituloslits] = useState([]);\r\n const [Audiolist,setAudiolist] = useState([]);\r\n\r\n const [Audio,setAudio] = useState([]);\r\n const [Temporada,setTemporada] = useState([]);\r\n\r\n const [Capitulosxlits,setCapitulosxlits] = useState([]);\r\n const [Capitulosalits,setCapitulosalits] = useState([]);\r\n\r\n const [viewani,setViewani] = useState(null);\r\n //const location = useLocation();\r\n //console.log(location);\r\n props.funcNav(false);\r\n\r\n const [mylistanime,setMylistanime] = useState(0);\r\n const [mylistcountanime,setMyliscountanime] = useState(0);\r\n const [likeanime,setLikeanime] = useState(0);\r\n const [likecountanime,setLikecountanime] = useState(0);\r\n const [viewanime,setViewanime] = useState(0);\r\n const [viewcountanime,setViewcountanime] = useState(0);\r\n\r\n const [cf,setCf] = useState(true);\r\n \r\n const { id,noti } = useParams();\r\n //console.log(id)\r\n const Tempo = localStorage.getItem(\"Temporada\");\r\n const Aud = localStorage.getItem(\"Audio\");\r\n const Pantalla = localStorage.getItem(\"Pantalla\");\r\n useEffect(async ()=>{\r\n \r\n const getAniList = async () => {\r\n try {\r\n await axios.post(url13+\"/anime2\",{'idanime':id}).then((response) => {\r\n //console.log(response.data);\r\n setAnimelits(response.data[\"anime\"]);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n \r\n const getCapList = async () => {\r\n try {\r\n await axios.post(url7+\"/capitulos2\",{'anime':id}).then(async (response) => {\r\n //console.log(response.data);\r\n setTemporadaslits(response.data[\"temporadas\"]);\r\n setCapituloslits(response.data[\"capitulos\"]);\r\n setAudiolist(response.data[\"audio\"]);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n \r\n \r\n if (Animelits.length === 0) {\r\n await getAniList();\r\n }\r\n if (Temporadaslits.length === 0) {\r\n await getCapList();\r\n }\r\n\r\n \r\n \r\n //console.log(\"audio:\"+Audiolist);\r\n \r\n const setCapByTempAudi = async () =>{\r\n if(Pantalla===\"Home\"){\r\n setCapitulosalits(Capituloslits.filter(c => {\r\n return(\r\n c.temporada === Temporadaslits[0].id &&\r\n c.audio === Audiolist[0].id \r\n );\r\n }));\r\n setTemporada(Temporadaslits[0].id);\r\n setAudio(Audiolist[0].id);\r\n localStorage.setItem(\"Temporada\",Temporadaslits[0].id);\r\n }else{\r\n setCapitulosalits(Capituloslits.filter(c => {\r\n return(\r\n c.temporada === parseInt(Tempo) &&\r\n c.audio === Audiolist[0].id \r\n );\r\n \r\n }));\r\n setTemporada(parseInt(Tempo));\r\n setAudio(Audiolist[0].id)\r\n }\r\n //localStorage.setItem(\"Temporada\",Temporadaslits[0].id);\r\n //localStorage.setItem(\"Audio\",Audiolist[0].id);\r\n //setTemporada(Temporadaslits[0].id);\r\n //setAudio(Audiolist[0].id)\r\n }\r\n\r\n\r\n const setCapByTempAudi2 = async () =>{\r\n setCapitulosalits(Capitulosxlits.filter(c => c.audio === Audiolist[0].id));\r\n setAudio(Audiolist[0].id)\r\n }\r\n\r\n\r\n if (Temporadaslits.length > 0 && Capituloslits.length > 0 && Audiolist.length > 0 && cf) {\r\n if(Capitulosxlits.length === 0){\r\n setCapByTempAudi();\r\n setCf(false);\r\n }\r\n }\r\n\r\n\r\n \r\n console.log(\"Tempo:\"+Tempo);\r\n console.log(\"Pantalla:\"+Pantalla);\r\n \r\n });\r\n\r\n /*useEffect(() =>{\r\n console.log(\"Tempo:\"+Tempo);\r\n console.log(\"Audio:\"+Aud);\r\n setCapitulosalits(Capituloslits.filter(c => {\r\n return(\r\n c.temporada === Tempo &&\r\n c.audio === Aud\r\n );\r\n }));\r\n },[Tempo,Aud]);*/\r\n\r\n useEffect(() => {\r\n if(Animelits.name != null){\r\n setMylistanime(Animelits.mylist);\r\n setLikeanime(Animelits.likeanime);\r\n setLikecountanime(Animelits.likecountanime);\r\n setViewanime(Animelits.viewanime);\r\n setViewcountanime(Animelits.viewcountanime);\r\n\r\n\r\n if(viewani === null){\r\n setViewani(Animelits.viewanime);\r\n }\r\n if(viewani === 0){\r\n setViewani(1)\r\n }\r\n }\r\n },[Animelits]);\r\n\r\n useEffect(() => {\r\n const setView = async () => {\r\n try {\r\n await axios.post(url6+\"/viewanime\",{'user': user.$id,'anime':id}).then(async (response) => {\r\n console.log(response.data);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n //console.log(\"userEffect2:\"+viewani);\r\n if(viewani === 0){\r\n setView();\r\n //console.log(\"Viewani:\"+viewani);\r\n //console.log(\"View\");\r\n }\r\n\r\n },[viewani]);\r\n\r\n\r\n\r\n const handleSelectTemporadaChange = (e) => {\r\n setTemporada(e.target.value);\r\n localStorage.setItem(\"Temporada\",e.target.value);\r\n //setCapitulosalits(Capituloslits.filter(c => c.temporada === parseInt(e.target.value)));\r\n let filtercap = Capituloslits;\r\n filtercap = filtercap.filter(c => {\r\n return(\r\n c.temporada === parseInt(e.target.value) &&\r\n c.audio === parseInt(Audio) \r\n );\r\n });\r\n //setCapitulosalits(Capitulosxlits.filter(c => c.audio === Audio));\r\n if(filtercap.length > 0){\r\n setCapitulosalits(filtercap); \r\n }else{\r\n setCapitulosalits([]);\r\n }\r\n console.log(\"select:\"+filtercap.length)\r\n };\r\n const handleSelectAudioChange = (e) => {\r\n setAudio(e.target.value);\r\n localStorage.setItem(\"Audio\",e.target.value);\r\n //setCapitulosalits(Capituloslits.filter(c => c.audio === parseInt(e.target.value)));\r\n let filtercap = Capituloslits;\r\n filtercap = filtercap.filter(c => {\r\n return(\r\n c.audio === parseInt(e.target.value) &&\r\n c.temporada === parseInt(Temporada) \r\n );\r\n });\r\n\r\n if(filtercap.length > 0){\r\n setCapitulosalits(filtercap); \r\n }else{\r\n setCapitulosalits([]);\r\n }\r\n console.log(\"select:\"+filtercap.length)\r\n };\r\n \r\n const addlikeAnime = async (status) => {\r\n try {\r\n await axios.post(url5+\"/removelikeanime\",{'user': user.$id,'anime':id});\r\n await axios.post(url5+\"/addlikeanime\",{'user': user.$id,'anime':id}).then(async (response) => {\r\n console.log(response.data);\r\n setLikeanime(1);\r\n setLikecountanime(likecountanime+1);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n const removelikeAnime = async () => {\r\n try {\r\n await axios.post(url5+\"/removelikeanime\",{'user': user.$id,'anime':id}).then(async (response) => {\r\n console.log(response.data);\r\n setLikeanime(0);\r\n setLikecountanime(likecountanime-1); \r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n const addMylist = async () => {\r\n try {\r\n await axios.post(url2+\"/addmylist\",{'user': user.$id,'anime':id}).then(async (response) => {\r\n console.log(response.data);\r\n setMylistanime(1); \r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n const removeMylist = async () => {\r\n try {\r\n await axios.post(url2+\"/removemylist\",{'user': user.$id,'anime':id}).then(async (response) => {\r\n console.log(response.data);\r\n setMylistanime(0); \r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n useEffect(()=>{\r\n const viewNoti = async (idnoti) => {\r\n try {\r\n await axios.post(url18+\"/viewnoti\",{'user': user.$id,'idnoti':noti}).then(async (response) => {\r\n console.log(response.data);\r\n const websocket = new WebSocket(socketNoti);\r\n \r\n // conectado\r\n websocket.onopen = () => {\r\n console.log('connected');\r\n //sendMessage();\r\n sendMessage();\r\n }\r\n const sendMessage = () => {\r\n websocket.send(\"cod:noti\");\r\n };\r\n \r\n // al recibir un mensaje\r\n websocket.onmessage = (event) => {\r\n const data = JSON.parse(event.data);\r\n // auto-crear la queryKey a partir del evento recibido\r\n //console.log(data);\r\n websocket.close();\r\n console.log('close');\r\n }\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n \r\n if(noti != null){\r\n viewNoti();\r\n }\r\n \r\n },[noti]);\r\n \r\n return (\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n Opciones \r\n Salir \r\n
\r\n
\r\n \r\n {viewanime === 0 ? : }\r\n
\r\n \r\n {viewcountanime}\r\n
\r\n \r\n
\r\n {Temporadaslits.map((list) => (\r\n {list.name} \r\n ))}\r\n \r\n \r\n \r\n
\r\n {Audiolist.map((list) => (\r\n {list.name} \r\n ))}\r\n \r\n \r\n \r\n {Capitulosalits.length === 0 ? \r\n (Array.from(new Array(4))).map((item, index) => (\r\n \r\n ))\r\n :''}\r\n
\r\n {Capitulosalits.map((list) => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n \r\n )\r\n}\r\n","import { Add, Check, InfoOutlined, PlayArrow, VolumeOff, VolumeUp } from \"@material-ui/icons\";\r\nimport \"./featuredMobile.scss\";\r\nimport { useEffect, useRef, useState } from \"react\";\r\nimport { useAuth } from \"../../api/AuthContext\";\r\nimport { url1 } from \"../../api/url\";\r\nimport axios from \"axios\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Modal from \"@mui/material/Modal\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport default function FeaturedMobile() {\r\n //const [isScrolled,setIsScrolled] = useState(false);\r\n const { user } = useAuth();\r\n const [Previewlits,setPreviewlits] = useState([]);\r\n const myvideo = useRef(null)\r\n const [muted, setMuted] = useState(true);\r\n const [play, setPlay] = useState(true);\r\n const mcurrent=false;\r\n const pcurrent=false;\r\n const [open, setOpen] = useState(false);\r\n const handleOpen = () => {\r\n setOpen(true);\r\n };\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n const handleToggleMute = () => setMuted(mcurrent => !mcurrent);\r\n const handleTogglePlay = () => {\r\n setPlay(pcurrent => !pcurrent);\r\n if(play){\r\n myvideo.current.pause();\r\n }else{\r\n myvideo.current.play();\r\n }\r\n }\r\n //console.log(window.scrollY);\r\n window.onscroll = () =>{\r\n setPlay(window.scrollY >= 500 ? false : true);\r\n if(myvideo.current != null){\r\n if(!play){\r\n myvideo.current.pause();\r\n }else{\r\n myvideo.current.play();\r\n }\r\n }\r\n return () => (window.onscroll = null);\r\n \r\n }\r\n \r\n useEffect(()=>{\r\n const getPreviList = async () => {\r\n try {\r\n await axios.post(url1+\"/preview\",{'user': user.$id}).then((response) => {\r\n //console.log(response.data);\r\n setPreviewlits(response.data[\"preview\"]);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n \r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n if (Previewlits.length === 0) {\r\n getPreviList();\r\n }\r\n })\r\n return (\r\n \r\n {/*
*/}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {Previewlits.mylist === 0 ? : }\r\n Lista \r\n \r\n
\r\n
\r\n \r\n Play \r\n \r\n \r\n
\r\n \r\n Info \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
{Previewlits.name} \r\n \r\n \r\n
\r\n {Previewlits.description}.\r\n
\r\n
\r\n \r\n
Editora {Previewlits.editoria}\r\n \r\n \r\n Audio {Previewlits.audio}\r\n \r\n \r\n Subtitulos {Previewlits.subtitulos}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n","import { useEffect, useState } from \"react\";\r\nimport Featured from \"../../components/featured/Featured\";\r\nimport List from \"../../components/list/List\";\r\nimport Navbar from \"../../components/navbar/Navbar\";\r\nimport { useAuth } from \"../../api/AuthContext\";\r\nimport { url3,url2,socketMilist,url17 } from \"../../api/url\";\r\nimport \"./home.scss\";\r\nimport axios from \"axios\";\r\nimport MyList from \"../../components/myList/MyList\";\r\nimport Footer from \"../../components/footer/Footer\";\r\nimport GoogleAd from \"../../api/GoogleAd\";\r\nimport NewCList from \"../../components/newCapitulos/NewCList\";\r\nimport Banner from \"../../components/utils/Banner\";\r\nimport NativeBanner from \"../../components/utils/NativeBanner\";\r\nimport FeaturedMobile from \"../../components/featured/FeaturedMobile\";\r\n\r\n\r\nconst HomeMobile = (props) => {\r\n const [Categoriaslits,setCategoriaslits] = useState([]);\r\n const [Animelits,setAnimelits] = useState([]);\r\n const [Myulits,setMyulits] = useState([]);\r\n const [newCaplits,setNewCaplits] = useState([]);\r\n const [oldCaplits,setOldCaplits] = useState([]);\r\n const [newCapStatus,setNewCapStatus] = useState(false);\r\n const { user } = useAuth();\r\n localStorage.setItem(\"Pantalla\",\"Home\");\r\n props.funcNav(true);\r\n useEffect(()=>{\r\n const getHomeList = async () => {\r\n try {\r\n await axios.post(url3+\"/home\",{'user': user.$id}).then((response) => {\r\n //console.log(url3);\r\n setAnimelits(response.data[\"anime\"]);\r\n setCategoriaslits(response.data[\"categorias\"]);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n }\r\n const getMyAniList = async () => {\r\n try {\r\n await axios.post(url2+\"/mylist\",{'user': user.$id}).then((response) => {\r\n //console.log(url3);\r\n //setMyulits(response.data[\"anime\"]);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n };\r\n\r\n\r\n if (Categoriaslits.length === 0) {\r\n getHomeList();\r\n }\r\n if (Myulits.length === 0) {\r\n getMyAniList();\r\n }\r\n });\r\n\r\n useEffect(async ()=>{\r\n const getNewCList = async () => {\r\n try {\r\n await axios.get(url17+\"/addnewcap\").then((response) => {\r\n //console.log(url3);\r\n setNewCaplits(response.data[\"newcap\"]);\r\n setNewCapStatus(true);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n }\r\n\r\n const getOldCList = async () => {\r\n try {\r\n await axios.get(url17+\"/addnewcapold\").then((response) => {\r\n //console.log(url3);\r\n setOldCaplits(response.data[\"newcap\"]);\r\n setNewCapStatus(true);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n \r\n\r\n } catch (errors) {\r\n console.log(errors)\r\n }\r\n }\r\n\r\n if (!newCapStatus) {\r\n getNewCList();\r\n getOldCList();\r\n }\r\n \r\n });\r\n\r\n useEffect(async ()=>{\r\n const websocket = new WebSocket(socketMilist);\r\n try {\r\n \r\n\r\n // conectado\r\n websocket.onopen = () => {\r\n //console.log('connected');\r\n //sendMessage();\r\n if (Myulits.length === 0) {\r\n sendMessage();\r\n }\r\n }\r\n const sendMessage = () => {\r\n websocket.send(user.$id);\r\n };\r\n \r\n // al recibir un mensaje\r\n websocket.onmessage = (event) => {\r\n const data = JSON.parse(event.data);\r\n // auto-crear la queryKey a partir del evento recibido\r\n //console.log(data);\r\n if(data[\"user\"]=== user.$id){\r\n setMyulits(data[\"anime\"]);\r\n }\r\n \r\n websocket.close();\r\n //console.log('close');\r\n }\r\n // desconexión\r\n return () => {\r\n websocket.close();\r\n console.log('return close');\r\n } \r\n } catch (error) {\r\n websocket.close();\r\n }\r\n \r\n });\r\n\r\n \r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n {/**/}\r\n
\r\n
\r\n {newCaplits.length > 0 ? :\"\"}\r\n {oldCaplits.length > 0 ? :\"\"}\r\n {Categoriaslits.map((list) => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default HomeMobile\r\n\r\n","import { AccountCircle, ArrowDropDown, Notifications, Search } from \"@material-ui/icons\"\r\nimport \"./navbarMobile.scss\"\r\nimport { useState } from \"react\"\r\nimport { Link } from \"react-router-dom\";\r\nimport { useAuth } from \"../../api/AuthContext\";\r\nimport { SearchBar } from \"./SearchBar/SearchBar\";\r\nimport Notification from \"./Notification/Notification\";\r\nimport Perfil from \"./Perfil/Perfil\";\r\n\r\nconst NavbarMobile = () => {\r\n const [isScrolled,setIsScrolled] = useState(false);\r\n //const { logoutUser } = useAuth();\r\n\r\n /*window.onscroll = () =>{\r\n setIsScrolled(window.pageYOffset === 0 ? false : true);\r\n return () => (window.onscroll = null);\r\n }*/\r\n window.addEventListener('scroll', scrll);\r\n\r\n function scrll(){\r\n setIsScrolled(window.pageYOffset === 0 ? false : true);\r\n }\r\n\r\n //console.log(setIsScrolled);\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default NavbarMobile\r\n","import { useState } from \"react\";\nimport { AuthProvider } from \"./api/AuthContext\";\nimport PrivateRoutes from \"./api/PrivateRoutes\";\nimport \"./app.scss\"\nimport Footer from \"./components/footer/Footer\";\nimport Navbar from \"./components/navbar/Navbar\";\nimport Anime from \"./pages/anime/Anime\";\nimport Home from \"./pages/home/Home\";\nimport Home2 from \"./pages/home/Home2\";\nimport Login from \"./pages/login/Login\";\nimport Logout from \"./pages/logout/logout\";\nimport Milista from \"./pages/milista/Milista\";\nimport Register from \"./pages/register/Register\";\nimport Watch from \"./pages/watch/Watch\";\nimport {\n BrowserRouter as Router, Routes, Route, Navigate,} from \"react-router-dom\";\nimport Search from \"./pages/search/Search\";\nimport Profile from \"./pages/profile/Profile\";\nimport Settings from \"./pages/settings/Settings\";\nimport Privacidad from \"./pages/politicas/Privacidad\";\nimport Cookies from \"./pages/politicas/Cookies\";\nimport Anime2 from \"./pages/anime/Anime2\";\nimport { BrowserView, MobileView, isBrowser, isMobile } from 'react-device-detect';\nimport HomeMobile from \"./pages/home/HomeMobile\";\nimport NavbarMobile from \"./components/navbar/NavbarMobile\";\n\nconst App = () => {\n const user = true;\n const [showNav, setShowNav] = useState(true);\n return (\n \n \n \n {showNav &&\n \n {isMobile ? : }\n \n }\n \n } />\n }/>\n }/>\n }/>\n }>\n : }/>\n }/>\n : }/>\n : }/>\n : }/>\n : }/>\n : }/>\n : }/>\n \n {/*} />*/}\n } />\n } />\n \n \n \n \n );\n};\n\nexport default App;","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './App';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);","// extracted by mini-css-extract-plugin\nmodule.exports = {\"searchBar\":\"SearchBar_searchBar__3gqwz\",\"search_field\":\"SearchBar_search_field__1D11i\",\"search_field_expand\":\"SearchBar_search_field_expand__1U2_1\",\"icon\":\"SearchBar_icon__3SliR\",\"input_text\":\"SearchBar_input_text__3qFI_\"};"],"sourceRoot":""}