Adaptados componentes para usar JSON en lugar de la base de datos MySQL antigua.

master
Araozu 2020-05-04 20:39:06 -05:00
parent 42d8a2e678
commit 3a30362958
24 changed files with 14126 additions and 9218 deletions

View File

@ -1,3 +1,6 @@
[*]
indent_style = space
indent_size = 4
[*.yaml]
indent_size = 2

File diff suppressed because one or more lines are too long

78
db/model.sql Normal file
View File

@ -0,0 +1,78 @@
DROP TABLE IF EXISTS ED;
CREATE TABLE ED (
ED_ID SERIAL PRIMARY KEY,
anime_ID INT DEFAULT NULL,
num_ED INT DEFAULT NULL,
nombre TEXT DEFAULT NULL,
artista TEXT DEFAULT NULL,
eps TEXT DEFAULT NULL
);
DROP TABLE IF EXISTS OP;
CREATE TABLE OP (
OP_ID SERIAL PRIMARY KEY,
anime_ID INT DEFAULT NULL,
num_OP INT DEFAULT NULL,
nombre TEXT DEFAULT NULL,
artista TEXT DEFAULT NULL,
eps TEXT DEFAULT NULL
);
DROP TABLE IF EXISTS animes;
CREATE TABLE animes (
anime_ID SERIAL PRIMARY KEY,
titulo varchar(100) DEFAULT NULL,
link varchar(50) DEFAULT NULL,
imgUrl varchar(100) DEFAULT NULL,
descripcion text,
estudio varchar(50) DEFAULT NULL,
eps INT DEFAULT NULL,
alAire varchar(100) DEFAULT NULL,
temporada varchar(25) DEFAULT NULL,
anio varchar(4) DEFAULT NULL,
fuente varchar(20) DEFAULT NULL,
generos varchar(100) DEFAULT NULL,
color varchar(20) DEFAULT '#23BF87'
);
DROP TABLE IF EXISTS enPagPrin;
CREATE TABLE enPagPrin (
pagPrin_ID SERIAL PRIMARY KEY,
posicion int DEFAULT NULL,
anime_ID int DEFAULT NULL
);
DROP TABLE IF EXISTS eps;
CREATE TABLE eps (
ep_ID SERIAL PRIMARY KEY ,
opcion_ID int DEFAULT NULL,
num_ep int DEFAULT NULL,
visitas int DEFAULT '0',
link text,
peso varchar(10) DEFAULT NULL
);
DROP TABLE IF EXISTS links;
CREATE TABLE links (
links_ID SERIAL PRIMARY KEY ,
anime_ID int DEFAULT NULL,
aviso TEXT,
sigEp varchar(5) DEFAULT NULL
);
DROP TABLE IF EXISTS links_opciones;
CREATE TABLE links_opciones (
opcion_ID SERIAL PRIMARY KEY,
links_ID int DEFAULT NULL,
num_opcion int DEFAULT NULL,
formato varchar(20) DEFAULT NULL,
res varchar(20) DEFAULT NULL,
servidor varchar(20) DEFAULT NULL,
color varchar(20) DEFAULT NULL
);

View File

@ -10,17 +10,27 @@
"express:run": "vue-cli-service express:run"
},
"dependencies": {
"@vue/babel-preset-app": "^4.3.1",
"babel-loader": "^8.1.0",
"cache-loader": "^4.1.0",
"compression": "^1.7.4",
"connect-history-api-fallback": "^1.6.0",
"css-loader": "^3.5.3",
"express": "^4.16.4",
"file-loader": "^6.0.0",
"mysql": "^2.17.1",
"pg": "^7.14.0",
"postcss-loader": "^3.0.0",
"register-service-worker": "^1.6.2",
"sha-hasher": "^1.0.5",
"url-loader": "^4.1.0",
"vue": "^2.6.6",
"vue-analytics": "^5.16.4",
"vue-disqus": "^3.0.5",
"vue-google-signin-button": "^1.0.2",
"vue-loader": "^15.9.2",
"vue-router": "^3.0.1",
"vue-style-loader": "^4.1.2",
"vuex": "^3.0.1",
"web-push": "^3.3.3",
"yaml": "^1.4.0"
@ -36,10 +46,11 @@
"coffeescript": "^2.3.2",
"ftp-deploy": "^2.3.3",
"google-auth-library": "^3.1.2",
"node-sass": "^4.9.0",
"node-sass": "^4.13.0",
"pug": "^2.0.3",
"pug-plain-loader": "^1.0.0",
"sass-loader": "^7.1.0",
"typescript": "^3.7.3",
"vue-cli-plugin-express": "^1.0.0",
"vue-template-compiler": "^2.5.21"
},

10078
pnpm-lock.yaml Normal file

File diff suppressed because it is too large Load Diff

272
public/data/animes.json Normal file
View File

@ -0,0 +1,272 @@
[
{
"anime_id": 14,
"titulo": "Flip Flappers",
"link": "/Anime/2016/Otono/Flip-Flappers",
"imgurl": "https://cdn.myanimelist.net/images/anime/4/82292l.jpg",
"descripcion": "Cocona, que lleva una vida normal, se encuentra un día con Papika, y juntas van a Pure Illusion, a conseguir fragmentos, que se dice pueden conceder deseos.",
"estudio": "Studio 3Hz",
"eps": 13,
"alaire": "6 de Octubre al 29 de Diciembre",
"temporada": "Otono",
"anio": "2016",
"fuente": "Original",
"generos": "Ciencia ficcion, Aventura, Comedia, Magia",
"color": "#E62F68"
},
{
"anime_id": 15,
"titulo": "Re:Creators",
"link": "/Anime/2017/Verano/Re:Creators",
"imgurl": "https://cdn.myanimelist.net/images/anime/11/85469l.jpg",
"descripcion": "Los humanos han creado muchas historias. Felicidad, tristeza, ira, emociones profundas. Las historias sacuden nuestro corazón y nos fascinan. Sin embargo, estos son sólo los pensamientos de los espectadores. Pero ¿y si los personajes de la historia tienen intenciones?",
"estudio": "TROYCA",
"eps": 22,
"alaire": "8 de Abril al 26 de Septiembre",
"temporada": "Verano",
"anio": "2017",
"fuente": "Original",
"generos": "Accion, Ciencia ficcion, Fantasia",
"color": "#8C00FD"
},
{
"anime_id": 16,
"titulo": "Kakegurui",
"link": "/Anime/2017/Verano/Kakegurui",
"imgurl": "https://cdn.myanimelist.net/images/anime/3/86578l.jpg",
"descripcion": "Academia Privada Hyakkaou. Una institución para los privilegiados con un currículo muy peculiar. Veras, cuando eres de los hijos e hijas de los más ricos de los ricos, no es la destreza atlética o la inteligencia lo que te mantiene por delante. Es leer a tu oponente, el arte del trato. ¿Qué mejor manera de afilar esas habilidades que con un riguroso plan de estudios de juegos de azar? ",
"estudio": "MAPPA",
"eps": 12,
"alaire": "1 de Julio al 23 de Septiembre",
"temporada": "Verano",
"anio": "2017",
"fuente": "Manga",
"generos": "Drama, Juegos, Misterio, Psicologico, Escolar, Shonen",
"color": "#AB272A"
},
{
"anime_id": 17,
"titulo": "Shokugeki no Soma: San no Sara",
"link": "/Anime/2017/Otono/Shokugeki-no-Soma-3",
"imgurl": "https://cdn.myanimelist.net/images/anime/4/86603l.jpg",
"descripcion": "Tercera temporada de Shokugeki no Soma",
"estudio": "J.C. Staff",
"eps": 12,
"alaire": "4 de Octubre al 20 de Diciembre",
"temporada": "Otono",
"anio": "2017",
"fuente": "Manga",
"generos": "Ecchi, Escolar, Shonen",
"color": "#B95F4A"
},
{
"anime_id": 18,
"titulo": "Just Because!",
"link": "/Anime/2017/Otono/Just-Because",
"imgurl": "https://cdn.myanimelist.net/images/anime/3/88185l.jpg",
"descripcion": "Al final del segundo semestre del tercer año de preparatoria, cuatro estudiantes están listos para graduarse y pueden sentir el final de su vida en la preparatoria. Pero eso cambia un poco con la llegada de un estudiante transferido. ",
"estudio": "Pine Jam",
"eps": 12,
"alaire": "5 de Octubre al 28 de Diciembre",
"temporada": "Otono",
"anio": "2017",
"fuente": "Original",
"generos": "Slice of Life, Drama, Romance, Escolar",
"color": "#593844"
},
{
"anime_id": 19,
"titulo": "Kekkai Sensen and Beyond",
"link": "/Anime/2017/Otono/Kekkai-Sensen-Beyond",
"imgurl": "https://cdn.myanimelist.net/images/anime/9/88281l.jpg",
"descripcion": "Segunda temporada de Kekkai Sensen.",
"estudio": "Bones",
"eps": 12,
"alaire": "8 de Octubre al 24 de Diciembre",
"temporada": "Otono",
"anio": "2017",
"fuente": "Manga",
"generos": "Accion, Comedia, Fantasia, Shounen, Super poderes, Sobrenatural",
"color": "#aa0d0b"
},
{
"anime_id": 20,
"titulo": "Inuyashiki",
"link": "/Anime/2017/Otono/Inuyashiki",
"imgurl": "https://cdn.myanimelist.net/images/anime/3/88470l.jpg",
"descripcion": "Inuyashiki Ichirou está de mala suerte. Justo cuando parece que las cosas no pueden empeorar, una luz cegadora en el cielo nocturno golpea la tierra donde se encuentra Ichirou. ",
"estudio": "MAPPA",
"eps": 11,
"alaire": "13 de Octubre al 22 de Diciembre",
"temporada": "Otono",
"anio": "2017",
"fuente": "Manga",
"generos": "Accion, Drama, Psicologico, Ciencia ficcion, Seinen",
"color": "#23BF87"
},
{
"anime_id": 21,
"titulo": "Violet Evergarden",
"link": "/Anime/2018/Invierno/Violet-Evergarden",
"imgurl": "https://cdn.myanimelist.net/images/anime/1795/95088l.jpg",
"descripcion": "Hay palabras que Violet escuchó en el campo de batalla, las cuales no puede olvidar. Esas palabras le fueron dadas por alguien que conocía, más que nadie. Ella aún no conoce su significado. ",
"estudio": "Kyoto Animation",
"eps": 13,
"alaire": "11 de Enero a 5 de Abril",
"temporada": "Invierno",
"anio": "2018",
"fuente": "Novela ligera",
"generos": "Fantasia, Drama, Slice of Life",
"color": "#23bf87"
},
{
"anime_id": 22,
"titulo": "Shokugeki no Soma: San no Sara - Toutsuki Ressha-hen",
"link": "/Anime/2018/Primavera/Shokugeki-no-Soma-3-2",
"imgurl": "https://cdn.myanimelist.net/images/anime/1604/93531l.jpg",
"descripcion": "El segundo platillo de Shokugeki no Soma: San no Sara",
"estudio": "J.C. Staff",
"eps": 12,
"alaire": "9 de Abril a 25 de Junio",
"temporada": "Primavera",
"anio": "2018",
"fuente": "Manga",
"generos": "Ecchi, Escolar, Shonen",
"color": "#413EC9"
},
{
"anime_id": 23,
"titulo": "Wotaku ni Koi wa Muzukashii",
"link": "/Anime/2018/Primavera/WotaKoi",
"imgurl": "https://cdn.myanimelist.net/images/anime/1864/93518l.jpg",
"descripcion": "Después de descubrir que trabajan en la misma compañía, un otaku enloquecido y un fujoshi se reúnen por primera vez desde la secundaria. Después de algunas sesiones de bebida después del trabajo comienzan a salir, pero ¿será una relación perfecta para los dos? ",
"estudio": "A-1 Pictures",
"eps": 11,
"alaire": "13 de Abril a 22 de Junio",
"temporada": "Primavera",
"anio": "2018",
"fuente": "Manga web",
"generos": "Comedia, Romance",
"color": "#EB5089"
},
{
"anime_id": 24,
"titulo": "Mahou Shoujo Site",
"link": "/Anime/2018/Primavera/Mahou-Shoujo-Site",
"imgurl": "https://cdn.myanimelist.net/images/anime/1720/95064l.jpg",
"descripcion": "Aya Asagiri es una chica de secundaria que tiene problemas tanto en la escuela con el acoso escolar como en el hogar debido al abuso físico de su hermano. Al navegar en línea, aparece un sitio web en su computadora con una persona de aspecto espeluznante. Esta persona parece tener piedad de ella, y anuncia que le ha otorgado poderes mágicos a Asagiri. ",
"estudio": "production doA",
"eps": 12,
"alaire": "7 de Abril a 23 de Junio",
"temporada": "Primavera",
"anio": "2018",
"fuente": "Manga",
"generos": "Drama, Horror, Psicologico, Supernatural",
"color": "black"
},
{
"anime_id": 25,
"titulo": "Steins;Gate 0",
"link": "/Anime/2018/Primavera/Steins;Gate-0",
"imgurl": "https://cdn.myanimelist.net/images/anime/1768/93520l.jpg",
"descripcion": "La oscura historia no contada de Steins;Gate muestra al excéntrico científico loco Okabe, que lucha por recuperarse de un intento fallido de rescatar a Kurisu. Decide darse por vencido y abandona a su animado álter ego científico, en la búsqueda de olvidar el pasado. Cuando todo parece ser normal, aparentemente recuerda el pasado al conocer a un conocido de Kurisu... ",
"estudio": "White Fox",
"eps": 23,
"alaire": "12 de Abril a 27 de Septiembre",
"temporada": "Primavera",
"anio": "2018",
"fuente": "Novela Visual",
"generos": "Ciencia ficcion, Thriller",
"color": "rgb(187, 32, 52)"
},
{
"anime_id": 26,
"titulo": "Banana Fish",
"link": "/Anime/2018/Verano/Banana-Fish",
"imgurl": "https://cdn.myanimelist.net/images/anime/1190/93472l.jpg",
"descripcion": "La naturaleza hizo a Ash Lynx hermoso; la crianza lo convirtió en un asesino despiadado y frío. Un fugitivo lo crió como el heredero adoptivo y el juguete sexual de Papa Dino Golzine, Ash, ahora a la edad rebelde de diecisiete años, abandona el reino sostenido por el diablo que lo crió.",
"estudio": "MAPPA",
"eps": 24,
"alaire": "6 de Julio a 21 de Diciembre",
"temporada": "Verano",
"anio": "2018",
"fuente": "Matgo",
"generos": "Accion, Aventura, Drama",
"color": "#ffc107"
},
{
"anime_id": 27,
"titulo": "Overlord 3",
"link": "/Anime/2018/Verano/Overlord-3",
"imgurl": "https://cdn.myanimelist.net/images/anime/1511/93473l.jpg",
"descripcion": "Tercera temporada de Overlord.",
"estudio": "Madhouse",
"eps": 13,
"alaire": "10 de Julio a 2 de Octubre",
"temporada": "Verano",
"anio": "2018",
"fuente": "Novela Ligera",
"generos": "Accion, Fantasia, Magia, Sobrenatural",
"color": "red"
},
{
"anime_id": 28,
"titulo": "Goblin Slayer",
"link": "/Anime/2018/Otono/Goblin-Slayer",
"imgurl": "https://cdn.myanimelist.net/images/anime/1949/93415l.jpg",
"descripcion": "Una joven sacerdotisa formó su primer grupo de aventureros, pero casi inmediatamente se encuentran angustiados. Es el Asesino de Duendes que viene a su rescate, un hombre que dedicó su vida al exterminio de todos los duendes, por cualquier medio necesario. Y cuando los rumores de sus hazañas comienzan a circular, no hay forma de saber quién podría venir a continuación...",
"estudio": "White Fox",
"eps": 12,
"alaire": "7 de octubre a ?",
"temporada": "Otono",
"anio": "2018",
"fuente": "Novela Ligera",
"generos": "Accion, Aventura, Fantasia",
"color": "#a3be6f"
},
{
"anime_id": 29,
"titulo": "Irozuku Sekai no Ashita Kara",
"link": "/Anime/2018/Otono/IrozuKai",
"imgurl": "https://cdn.myanimelist.net/images/anime/1424/93855l.jpg",
"descripcion": "Ambientada en la ciudad de Nagasaki, la historia tiene lugar en un mundo en el que una cantidad minúscula de magia permanece en la vida cotidiana. Hitomi Tsukishiro es una descendiente de 17 años de una familia de brujas que creció con emociones vivas, ya que perdió su sentido del color a una edad muy temprana. Sintiéndose mal por el futuro de su nieta, Kohaku, una gran bruja, envía a Hitomi al pasado, el año 2018. Mediante intercambios con su abuela de 17 años y los miembros de su club, la historia sigue el crecimiento de Hitomi como persona.",
"estudio": "P.A. Works",
"eps": 13,
"alaire": "06 de Octubre a ?",
"temporada": "Otono",
"anio": "2018",
"fuente": "Original",
"generos": "Drama, Magia, Romance",
"color": "#2f7090"
},
{
"anime_id": 30,
"titulo": "Yakusoku no Neverland",
"link": "/Anime/Yakusoku-no-Neverland",
"imgurl": "/img/a/yakusoku-no-neverland.webp",
"descripcion": "En Grace Field House, la vida no podría ser mejor para los huérfanos. Aunque no tienen padres, junto con los otros niños y una \\\"Mama\\\" amable que los cuida, forman una gran \\n familia feliz. Sólo hay una regla que deben obedecer: no abandonar el orfanato.",
"estudio": "CloverWorks",
"eps": 0,
"alaire": "11 de Enero 2019 a ?",
"temporada": "Invierno",
"anio": "2019",
"fuente": "Manga",
"generos": "Sci-Fi, Mysterio, Horror, Shounen",
"color": "#AA833E"
},
{
"anime_id": 31,
"titulo": "Kakegurui xx",
"link": "/Anime/Kakegurui-xx",
"imgurl": "https://cdn.myanimelist.net/images/anime/1151/93653l.jpg",
"descripcion": "Segunda temporada de Kakegurui",
"estudio": "MAPPA",
"eps": 0,
"alaire": "9 de Enero 2019 a ?",
"temporada": "Invierno",
"anio": "2019",
"fuente": "Manga",
"generos": "Drama, Juegos, Mysterio, Psychologico, Escolar, Shounen",
"color": "#624aac"
}
]

211
public/data/pseudo_ed.json Executable file
View File

@ -0,0 +1,211 @@
[
{
"ed_id": 1,
"anime_id": 29,
"num_ed": 1,
"nombre": "Mimei no Kimi to Hakumei no Mahou",
"artista": "Yanagi Nagi",
"eps": "1 al 13"
},
{
"ed_id": 2,
"anime_id": 28,
"num_ed": 1,
"nombre": "Gin no Kisei",
"artista": "Soraru",
"eps": "1 al 12"
},
{
"ed_id": 3,
"anime_id": 27,
"num_ed": 1,
"nombre": "Silent Solitude",
"artista": "OxT",
"eps": "1 al 12"
},
{
"ed_id": 4,
"anime_id": 26,
"num_ed": 1,
"nombre": "Prayer X",
"artista": "King Gnu",
"eps": "1 al 13"
},
{
"ed_id": 5,
"anime_id": 26,
"num_ed": 2,
"nombre": "RED",
"artista": "Survive Said The Prophet",
"eps": "14-24"
},
{
"ed_id": 6,
"anime_id": 25,
"num_ed": 1,
"nombre": "LAST GAME",
"artista": "Zwei",
"eps": "2 al 7 y 9 al 13"
},
{
"ed_id": 7,
"anime_id": 25,
"num_ed": 2,
"nombre": "Lyra",
"artista": "Zwei",
"eps": "8 y 18"
},
{
"ed_id": 8,
"anime_id": 25,
"num_ed": 3,
"nombre": "World Line",
"artista": "Asami Imai",
"eps": "14 al 17 y 19 al 20"
},
{
"ed_id": 9,
"anime_id": 25,
"num_ed": 4,
"nombre": "GATE OF STEINER",
"artista": "Sasaki Eri",
"eps": "23"
},
{
"ed_id": 10,
"anime_id": 24,
"num_ed": 1,
"nombre": "Zenzen Tomodachi",
"artista": "Haruka Yamazaki",
"eps": "1 al 12"
},
{
"ed_id": 11,
"anime_id": 23,
"num_ed": 1,
"nombre": "Kimi no Tonari",
"artista": "halca",
"eps": "1 al 8 y 10 al 11"
},
{
"ed_id": 12,
"anime_id": 23,
"num_ed": 2,
"nombre": "Ashita mo Mata",
"artista": "halca",
"eps": "9"
},
{
"ed_id": 13,
"anime_id": 22,
"num_ed": 1,
"nombre": "Atria",
"artista": "FoxTails",
"eps": "14 al 24"
},
{
"ed_id": 14,
"anime_id": 21,
"num_ed": 1,
"nombre": "Michishirube",
"artista": "Minori Chihara",
"eps": "2 al 8"
},
{
"ed_id": 15,
"anime_id": 21,
"num_ed": 2,
"nombre": "Believe in...",
"artista": "Aira Yuuki",
"eps": "9"
},
{
"ed_id": 16,
"anime_id": 20,
"num_ed": 1,
"nombre": "Ai wo Oshiete Kureta Kimi e",
"artista": "Qaijff",
"eps": "1 al 11"
},
{
"ed_id": 17,
"anime_id": 19,
"num_ed": 1,
"nombre": "Step Up LOVE",
"artista": "DAOKO x Yasuyuki Okamura",
"eps": "2 al 12"
},
{
"ed_id": 18,
"anime_id": 18,
"num_ed": 1,
"nombre": "behind",
"artista": "Mio Natsume (Karin Isobe), Hatsuki Morikawa (Yuna Yoshino), Ena Komiya (Lynn)",
"eps": "2 al 12"
},
{
"ed_id": 19,
"anime_id": 17,
"num_ed": 1,
"nombre": "Kyokyo Jitsujitsu",
"artista": "nano.RIPE",
"eps": "1 al 12"
},
{
"ed_id": 20,
"anime_id": 16,
"num_ed": 1,
"nombre": "LAYon-theLINE",
"artista": "D-selections",
"eps": "1 al 8 y 10 al 12"
},
{
"ed_id": 21,
"anime_id": 16,
"num_ed": 2,
"nombre": "Koi no Russian Roulette",
"artista": "Yumemi Yumemite (Yuu Serizawa)",
"eps": "9"
},
{
"ed_id": 22,
"anime_id": 15,
"num_ed": 1,
"nombre": "gravityWall",
"artista": "SawanoHiroyuki[nZk]:Tielle",
"eps": "1 y 22"
},
{
"ed_id": 23,
"anime_id": 15,
"num_ed": 2,
"nombre": "NEWLOOK",
"artista": "Mashiro Ayano",
"eps": "2 al 12"
},
{
"ed_id": 24,
"anime_id": 15,
"num_ed": 3,
"nombre": "world Étude",
"artista": "Aki Toyosaki",
"eps": "13"
},
{
"ed_id": 25,
"anime_id": 15,
"num_ed": 4,
"nombre": "Rubikon",
"artista": "Sangatsu no Phantasia",
"eps": "14 al 21"
},
{
"ed_id": 26,
"anime_id": 14,
"num_ed": 1,
"nombre": "FLIP FLAP FLIP FLAP",
"artista": "TO-MAS feat.Chima",
"eps": "1 al 13"
}
]

2714
public/data/pseudo_eps.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,88 @@
[
{
"links_id": 1,
"anime_id": 29,
"aviso": "Todo listo :D",
"sigep": "0"
},
{
"links_id": 3,
"anime_id": 22,
"aviso": "Todo listo",
"sigep": "0"
},
{
"links_id": 4,
"anime_id": 25,
"aviso": "Todo listo.",
"sigep": "0"
},
{
"links_id": 5,
"anime_id": 24,
"aviso": "Todo listo",
"sigep": "0"
},
{
"links_id": 6,
"anime_id": 23,
"aviso": "Todo listo",
"sigep": "0"
},
{
"links_id": 7,
"anime_id": 26,
"aviso": "Volveré...",
"sigep": "14"
},
{
"links_id": 8,
"anime_id": 27,
"aviso": "Todo listo",
"sigep": "0"
},
{
"links_id": 9,
"anime_id": 28,
"aviso": "Todo listo.",
"sigep": "0"
},
{
"links_id": 10,
"anime_id": 30,
"aviso": "Todo listo :D",
"sigep": "5"
},
{
"links_id": 11,
"anime_id": 31,
"aviso": "Ahora el 4...",
"sigep": "4"
},
{
"links_id": 12,
"anime_id": 14,
"aviso": "Hubo un problema con los links. Lo arreglaremos pronto.",
"sigep": "1"
},
{
"links_id": 13,
"anime_id": 21,
"aviso": "Todo listo",
"sigep": "0"
},
{
"links_id": 14,
"anime_id": 20,
"aviso": "Completo",
"sigep": "0"
},
{
"links_id": 15,
"anime_id": 19,
"aviso": "Hubo un problema con los links. Lo arreglaremos pronto.",
"sigep": "1"
}
]

View File

@ -0,0 +1,308 @@
[
{
"opcion_id": 1,
"links_id": 1,
"num_opcion": 3,
"formato": "MKV",
"res": "1080p@60fps",
"servidor": "OneDrive",
"color": "rgb(47, 112, 144)"
},
{
"opcion_id": 2,
"links_id": 3,
"num_opcion": 1,
"formato": "MP4",
"res": "720p",
"servidor": "OneDrive",
"color": "rgb(47, 112, 144)"
},
{
"opcion_id": 3,
"links_id": 3,
"num_opcion": 2,
"formato": "MKV",
"res": "1080p",
"servidor": "OneDrive",
"color": "rgb(47, 112, 144)"
},
{
"opcion_id": 4,
"links_id": 4,
"num_opcion": 1,
"formato": "MP4",
"res": "720p@60fps",
"servidor": "OneDrive",
"color": "rgb(47, 112, 144)"
},
{
"opcion_id": 5,
"links_id": 4,
"num_opcion": 2,
"formato": "MKV",
"res": "1080p@60fps",
"servidor": "OneDrive",
"color": "rgb(47, 112, 144)"
},
{
"opcion_id": 6,
"links_id": 5,
"num_opcion": 1,
"formato": "MKV",
"res": "720p",
"servidor": "MEGA | OneDrive",
"color": "rgb(47, 112, 144)"
},
{
"opcion_id": 7,
"links_id": 5,
"num_opcion": 2,
"formato": "MP4",
"res": "1080p",
"servidor": "OneDrive",
"color": "rgb(47, 112, 144)"
},
{
"opcion_id": 8,
"links_id": 6,
"num_opcion": 1,
"formato": "MP4",
"res": "720p",
"servidor": "OneDrive",
"color": "rgb(47, 112, 144)"
},
{
"opcion_id": 9,
"links_id": 6,
"num_opcion": 2,
"formato": "MKV",
"res": "1080p",
"servidor": "OneDrive",
"color": "rgb(47, 112, 144)"
},
{
"opcion_id": 10,
"links_id": 7,
"num_opcion": 1,
"formato": "MP4",
"res": "720p",
"servidor": "OneDrive",
"color": "rgb(47, 112, 144)"
},
{
"opcion_id": 11,
"links_id": 7,
"num_opcion": 2,
"formato": "MKV",
"res": "1080p",
"servidor": "OneDrive",
"color": "rgb(47, 112, 144)"
},
{
"opcion_id": 12,
"links_id": 8,
"num_opcion": 1,
"formato": "MP4",
"res": "ligero",
"servidor": "MEGA",
"color": "red"
},
{
"opcion_id": 13,
"links_id": 8,
"num_opcion": 2,
"formato": "MP4",
"res": "720p@60fps",
"servidor": "OneDrive",
"color": "rgb(47, 112, 144)"
},
{
"opcion_id": 14,
"links_id": 8,
"num_opcion": 3,
"formato": "MKV",
"res": "1080p@60fps",
"servidor": "OneDrive",
"color": "rgb(47, 112, 144)"
},
{
"opcion_id": 15,
"links_id": 1,
"num_opcion": 1,
"formato": "MP4",
"res": "ligero",
"servidor": "MEGA",
"color": "red"
},
{
"opcion_id": 16,
"links_id": 1,
"num_opcion": 2,
"formato": "MP4",
"res": "720p@60fps",
"servidor": "OneDrive",
"color": "rgb(47, 112, 144)"
},
{
"opcion_id": 17,
"links_id": 9,
"num_opcion": 1,
"formato": "MP4",
"res": "720p",
"servidor": "OneDrive",
"color": "rgb(47, 112, 144)"
},
{
"opcion_id": 18,
"links_id": 9,
"num_opcion": 2,
"formato": "MP4",
"res": "1080p",
"servidor": "OneDrive",
"color": "rgb(47, 112, 144)"
},
{
"opcion_id": 19,
"links_id": 10,
"num_opcion": 1,
"formato": "MP4",
"res": "ligero",
"servidor": "OneDrive",
"color": "rgb(47,112,144)"
},
{
"opcion_id": 20,
"links_id": 10,
"num_opcion": 2,
"formato": "MP4",
"res": "1080p",
"servidor": "OneDrive",
"color": "rgb(47,112,144)"
},
{
"opcion_id": 21,
"links_id": 11,
"num_opcion": 1,
"formato": "MP4",
"res": "ligero@60fps",
"servidor": "MEGA",
"color": "red"
},
{
"opcion_id": 22,
"links_id": 11,
"num_opcion": 2,
"formato": "MP4",
"res": "1080p@60fps",
"servidor": "OneDrive",
"color": "rgb(47,112,144)"
},
{
"opcion_id": 23,
"links_id": 11,
"num_opcion": 3,
"formato": "MKV",
"res": "1080p@60fps",
"servidor": "OneDrive",
"color": "rgb(47,112,144)"
},
{
"opcion_id": 24,
"links_id": 12,
"num_opcion": 1,
"formato": "MP4",
"res": "720p",
"servidor": "MEGA",
"color": null
},
{
"opcion_id": 25,
"links_id": 13,
"num_opcion": 1,
"formato": "MKV",
"res": "720p@60fps",
"servidor": "MEGA",
"color": "red"
},
{
"opcion_id": 26,
"links_id": 13,
"num_opcion": 2,
"formato": "MP4",
"res": "720p@60fps",
"servidor": "OneDrive",
"color": "blue"
},
{
"opcion_id": 27,
"links_id": 13,
"num_opcion": 3,
"formato": "MKV",
"res": "1080p@60fps",
"servidor": "OneDrive",
"color": "blue"
},
{
"opcion_id": 28,
"links_id": 14,
"num_opcion": 1,
"formato": "MKV",
"res": "720p",
"servidor": "MEGA",
"color": "red"
},
{
"opcion_id": 29,
"links_id": 14,
"num_opcion": 2,
"formato": "MP4",
"res": "720p",
"servidor": "OneDrive",
"color": "blue"
},
{
"opcion_id": 30,
"links_id": 14,
"num_opcion": 3,
"formato": "MP4",
"res": "1080p",
"servidor": "OneDrive",
"color": "blue"
},
{
"opcion_id": 32,
"links_id": 14,
"num_opcion": 4,
"formato": "MKV",
"res": "1080p",
"servidor": "OneDrive",
"color": "blue"
},
{
"opcion_id": 33,
"links_id": 15,
"num_opcion": 1,
"formato": "MKV",
"res": "720p",
"servidor": "Mega",
"color": null
},
{
"opcion_id": 34,
"links_id": 15,
"num_opcion": 2,
"formato": "MP4",
"res": "720p",
"servidor": "Mega",
"color": null
},
{
"opcion_id": 35,
"links_id": 15,
"num_opcion": 3,
"formato": "MP4",
"res": "1080p",
"servidor": "OneDrive",
"color": null
}
]

23
public/img/logo.svg Normal file
View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Creator: CorelDRAW X7 -->
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="370px" height="370px" version="1.1" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
viewBox="0 0 370 370"
xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<style type="text/css">
<![CDATA[
.fil0 {fill:#009C64}
.fil1 {fill:#EA486A}
.fil2 {fill:#FEFEFE;fill-rule:nonzero}
]]>
</style>
</defs>
<g id="Capa_x0020_1">
<metadata id="CorelCorpID_0Corel-Layer"/>
<rect class="fil0" width="370" height="370"/>
<rect class="fil1" x="232" width="138" height="370"/>
<path class="fil2" d="M138 272l0 69 -22 0 0 -170 58 0c15,0 27,5 38,15 10,10 15,22 15,36 0,14 -5,26 -15,36 -10,9 -23,14 -38,14l-36 0zm0 -80l0 59 37 0c8,0 16,-3 21,-8 6,-6 9,-13 9,-21 0,-8 -3,-15 -9,-21 -5,-6 -13,-9 -21,-9l-37 0z"/>
<path id="1" class="fil2" d="M355 296c0,15 -5,27 -16,36 -11,9 -25,13 -41,13 -14,0 -26,-4 -37,-12 -11,-9 -18,-20 -22,-34l21 -9c1,5 3,10 6,14 2,4 5,8 9,11 3,3 7,5 11,7 4,1 8,2 13,2 10,0 18,-2 24,-8 7,-5 10,-12 10,-20 0,-7 -3,-13 -8,-18 -5,-5 -14,-10 -27,-15 -14,-5 -23,-8 -26,-10 -18,-9 -27,-22 -27,-40 0,-13 5,-24 15,-32 10,-9 23,-14 37,-14 13,0 25,4 34,10 10,7 16,15 19,25l-20 8c-2,-6 -6,-11 -12,-16 -5,-4 -12,-6 -20,-6 -9,0 -16,3 -22,7 -6,5 -9,10 -9,18 0,5 3,11 7,15 5,4 16,9 33,15 18,6 30,13 37,22 8,8 11,18 11,31z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -11,9 +11,6 @@
import "./assets/sass/global.sass"
import "./assets/sass/modo-claro.sass"
import barraLateral from "./components/barra-lateral.vue"
import YAML from "yaml"
DEV = process.env.NODE_ENV == "development"
export default
name: "App"
@ -21,24 +18,14 @@
largoVentana: window.innerWidth
components:
'barra-lateral': barraLateral
created: ->
mounted: ->
store = @$store
fetch("#{this.$store.state.servidor}/anime", {
method: "POST"
headers:
"Content-Type": "application/x-www-form-urlencoded"
})
.then (x) -> x.text()
.then (res) ->
# if DEV then console.log res
resultado = YAML.parse res
resTxt = await fetch "#{this.$store.state.servidor}/data/animes.json"
resultado = await resTxt.json();
store.commit "establecerAnime", resultado
if resultado.exito
store.commit "establecerAnime", resultado.payload
else
console.log "Error al obtener los animes.\n#{res}"
#
</script>
<style lang="sass">

View File

@ -4,7 +4,8 @@
router-link.titulo.texto1(:to="anime.link") {{ anime.titulo }}
br
router-link.link(:to="anime.link")
img.imagen(:src="anime.imgUrl")
img.imagen(:src="anime.imgurl" :alt="'Img de ' + anime.titulo")
//
</template>

View File

@ -4,7 +4,7 @@
span.anime.tarjeta
div.titulo.texto1 Anime
div.titulo__descr.texto1 Ligero/MP4/MKV 720p/1080p 24fps/60fps
router-link(to="/Novelas")
// router-link(to="/Novelas")
span.novelas.tarjeta
div.titulo.texto1 Novelas
div.titulo__descr.texto1 Redistribuyendo legalmente lo ilegal.
@ -25,7 +25,7 @@
margin: 50px 0
.anime, .novelas
width: 50%
width: 100%
display: inline-block
padding: 20px

View File

@ -9,7 +9,7 @@
router-link(:to="anime.link")
div.imgCont
img.imagen.tarjeta(:src="anime.imgUrl")
img.imagen.tarjeta(:src="anime.imgurl" :alt="'Imagen de ' + anime.titulo")
div.animeCont
div.descr {{ anime.descripcion }}
br
@ -91,8 +91,8 @@
), 5000
beforeDestroy: ->
clearInterval @intervalo
#
#
</script>
<style scoped lang="sass">

View File

@ -11,7 +11,7 @@
br
br
br
router-link.comparar(to="/comparar") Comparar pixel a pixel.
// router-link.comparar(to="/comparar") Comparar pixel a pixel.
//
</template>

View File

@ -1,5 +1,4 @@
<!-- TODO: Re-escribir para que la funcionalidad sea igual pero el codigo no sea asi de horrible.
Barra Lateral. Responsivo hasta los 285px de ancho. -->
<!-- TODO: Re-escribir para que la funcionalidad sea igual pero el codigo no sea asi de horrible. -->
<template lang="pug">
div.barra
div.lateral.fondo2.ocultarEnMovil.barraOculta
@ -7,7 +6,7 @@
{{ $store.state.barraLateralOculta? '>>': '<<' }}
router-link.linkImg(to="/" title="Ir al inicio")
img.tarjeta(src="../assets/img/logo.svg")
img.tarjeta(src="/img/logo.svg")
div.items.tarjeta.fondo1.texto2
div.cambiarModo(@click="cambiarModoColor()")

View File

@ -2,7 +2,7 @@
div.inicio
ultimos-eps
animes-novelas
notificaciones
// notificaciones
br
caracteristicas
y-notaras-la-diferencia
@ -10,7 +10,7 @@
</template>
<script lang="coffee">
import ultimosEps from "../components/Inicio/ultimos-animes.vue"
import ultimosEps from "../components/Inicio/ultimos-eps.vue"
import caracteristicas from "../components/Inicio/caracteristicas.vue"
import yNotarasLaDiferencia from "../components/Inicio/y-notaras-la-diferencia.vue"
import animesNovelas from "../components/Inicio/animes-novelas.vue"
@ -18,12 +18,13 @@
export default
name: "Inicio"
components:
caracteristicas: caracteristicas
'y-notaras-la-diferencia': yNotarasLaDiferencia
'ultimos-eps': ultimosEps
'animes-novelas': animesNovelas
notificaciones: notificaciones
components: {
caracteristicas
yNotarasLaDiferencia
ultimosEps
animesNovelas
notificaciones
}
created: ->
@$store.commit "cambiarRutaActual", [{nombre: "PseudoSubs", ruta: "/"}]
#

View File

@ -3,19 +3,20 @@ import YAML from "yaml"
export default (req, res) ->
query = "SELECT * FROM animes ORDER BY anime_ID DESC "
con.query query, (err, respuesta) ->
res.send do ->
unless err
YAML.stringify
exito: true
payload: respuesta
error: {}
else
console.log "Peticion"
con.query query
.then (respuesta) =>
console.log "respuesta"
res.send YAML.stringify
exito: true
payload: respuesta
error: {}
.catch (err) =>
res.send """
exito: false
payload: {}
error:
razon: Error al ejecutar la consulta a la base de datos
ruta: /Anime/obtenerTodosAnimes
adicional: "Query: #{query}\nError: #{err}"
"""
exito: false
payload: {}
error:
razon: Error al ejecutar la consulta a la base de datos
ruta: /Anime/obtenerTodosAnimes
adicional: "Query: #{query}\nError: #{err}"
"""

View File

@ -1,4 +1,4 @@
import {con} from "../index";
import { con } from "../index";
const modificarLink = (req: any, res: any) => {

View File

@ -1,70 +1,77 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.__esModule = true;
var mysql = require("mysql");
var Client = require("pg").Client;
var express = require("express");
var obtenerAnime_1 = require("./Anime/obtenerAnime");
var obtenerTodosAnimes_1 = require("./Anime/obtenerTodosAnimes");
var webPush = require("web-push");
exports.con = mysql.createConnection({
/*
export const webPush = require("web-push");
webPush.setVapidDetails(
"mailto:tbyuyfcjjll@gmail.com",
"BPA_MfechJ8EwyMC_5-GZsWFtjPCD6f2qAzW5ouxnMs73mGTsgtD47of0pO1rKtpyWiWKE8yZVHHzTGhLHbfVRI",
"6dOp0WChG-fLFSo9hRnMUn5S1BVBm3KhK9r0m4L-GoA"
);
*/
/*
export const con = mysql.createConnection({
host: "127.0.0.1",
user: "pseubntq_araozu",
password: "@Xsakah4b",
database: "pseubntq_pseudosubs",
multipleStatements: true
});
exports.con.connect(function (err) {
con.connect(err => {
if (err) {
console.error("Error al conectarse a la base de datos :c\n" + err);
}
else {
} else {
console.log("Exito al conectarse a la base de datos :D");
}
});
*/
var client = new Client({
user: 'araozu',
host: "144.91.91.191",
database: 'pseudo',
password: 'xsakah4b',
port: 5432
});
client.connect();
exports.con = client;
exports.fun = function (app) {
var bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({ extended: true }));
// app.use(bodyParser.json);
webPush.setVapidDetails("mailto:tbyuyfcjjll@gmail.com", "BPA_MfechJ8EwyMC_5-GZsWFtjPCD6f2qAzW5ouxnMs73mGTsgtD47of0pO1rKtpyWiWKE8yZVHHzTGhLHbfVRI", "6dOp0WChG-fLFSo9hRnMUn5S1BVBm3KhK9r0m4L-GoA");
app.post("/anime/:id", obtenerAnime_1.default);
app.post("/anime", obtenerTodosAnimes_1.default);
app.use(express.urlencoded({ extended: true }));
app.use(express.json);
app.post("/anime/:id", obtenerAnime_1["default"]);
app.get("/anime", obtenerTodosAnimes_1["default"]);
app.post("/u/validar", require("./Usuarios/ValidarUsuario").fun);
app.post("/n/registrar", require("./Notificaciones/RegistrarSubcripcion").fun);
app.post("/n/subscrAnimes", require("./Notificaciones/obtenerSubscripcionAnimes").fun);
app.post("/n/subscribir/", require("./Notificaciones/suscribir").fun);
app.post("/n/desubscribir/", require("./Notificaciones/desuscribir").fun);
app.post("/op/:anime_ID", require("./OP-ED/obtenerOP").fun);
app.post("/ed/:anime_ID", require("./OP-ED/obtenerED").fun);
app.post("/eps/links/", require("./Links/crearLinks").fun);
/**
* Rutas Legacy :c */
* Rutas Legacy :c *
app.post('/links', require('./LinksAnimes/obtenerLinks').obtenerLinks);
app.put('/links', require('./LinksAnimes/modificarLink').modificarLinks);
app.post('/eps/variantes/:anime_ID', require('./Admin/Eps/obtenerVariantes').obtenerVariantes);
app.put('/eps/variantes/', require('./Admin/Eps/crearVariante').crearVariante);
app.put('/eps/mensaje/', require('./Admin/Eps/cambiarMensaje').cambiarMensaje);
app.post('/eps/links/:opcion_ID', require('./Admin/Eps/obtenerLinks').obtenerLinks);
app.post('/estadisticas', require('./Admin/Eps/estadisticas').estadisticas);
// Fin
// Fin */
/*
* Claves VAPID
* Publica: BPA_MfechJ8EwyMC_5-GZsWFtjPCD6f2qAzW5ouxnMs73mGTsgtD47of0pO1rKtpyWiWKE8yZVHHzTGhLHbfVRI
* Privada: 6dOp0WChG-fLFSo9hRnMUn5S1BVBm3KhK9r0m4L-GoA
* */
app.get("/n/test", function (req, res) {
console.log("Deberia enviar push...");
var payload = JSON.stringify({
title: "Push de ejemplo :3"
});
var subscripcion = { "endpoint": "https://fcm.googleapis.com/fcm/send/e-n6_jndfTw:APA91bGQrFOYgICLRm-diDHwJnI4909TiQB_FqnffBd6PnyyoiB2rDqehn41KxXMyw5Upa0IqqDnlr58-n3B9w6WCN6xY-sluDk8fpya928S_NPgJyAvbhFERN3Gqqy36s4J4OVDz6qL", "expirationTime": null, "keys": { "p256dh": "BGNpJIqpEkJPjVZcccV42TdXQi-G3nt6gVWXIMkRs69fWyQeLN7K-sEBs7ffyCiosJm4ApwY9_ol2Q57Zv5fg08", "auth": "DzzSWijI-WfBPWrI6eGcuw" } };
webPush.sendNotification(subscripcion, payload)
.then(function (response) {
console.log(JSON.stringify(response));
res.status(200);
res.send("Exito :D");
})
.catch(function (err) {
console.log(JSON.stringify(err));
res.status(400);
res.send("Error al enviar push :c\n" + err);
});
});
};
exports.default = (function (app, http) {
exports["default"] = (function (app, http) {
exports.fun(app);
});

View File

@ -1,8 +1,11 @@
const mysql = require("mysql");
const { Client } = require("pg");
const express = require("express");
import obtenerAnimes from "./Anime/obtenerAnime"
import obtenerTodosAnimes from "./Anime/obtenerTodosAnimes"
/*
export const webPush = require("web-push");
webPush.setVapidDetails(
"mailto:tbyuyfcjjll@gmail.com",
@ -10,6 +13,9 @@ webPush.setVapidDetails(
"6dOp0WChG-fLFSo9hRnMUn5S1BVBm3KhK9r0m4L-GoA"
);
*/
/*
export const con = mysql.createConnection({
host: "127.0.0.1",
user: "pseubntq_araozu",
@ -24,14 +30,26 @@ con.connect(err => {
console.log("Exito al conectarse a la base de datos :D");
}
});
*/
const client = new Client({
user: 'araozu',
host: "144.91.91.191",
database: 'pseudo',
password: 'xsakah4b',
port: 5432,
});
client.connect();
export const con = client;
export const fun = app => {
const bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({ extended: true }));
// app.use(bodyParser.json);
app.use(express.urlencoded({ extended: true }));
app.use(express.json);
app.post("/anime/:id", obtenerAnimes);
app.post("/anime", obtenerTodosAnimes);
app.get("/anime", obtenerTodosAnimes);
app.post("/u/validar", require("./Usuarios/ValidarUsuario").fun);
@ -46,7 +64,7 @@ export const fun = app => {
app.post("/eps/links/", require("./Links/crearLinks").fun);
/**
* Rutas Legacy :c */
* Rutas Legacy :c *
app.post('/links', require('./LinksAnimes/obtenerLinks').obtenerLinks);
app.put('/links', require('./LinksAnimes/modificarLink').modificarLinks);
@ -58,7 +76,7 @@ export const fun = app => {
app.post('/estadisticas', require('./Admin/Eps/estadisticas').estadisticas);
// Fin
// Fin */
/*
* Claves VAPID

9125
yarn.lock

File diff suppressed because it is too large Load Diff