Cambios para integrar los episodios de animes.

master
Araozu 2020-05-04 21:56:03 -05:00
parent fa70eb8540
commit 85c5032f3b
12 changed files with 162 additions and 114 deletions

View File

@ -47,7 +47,7 @@
{ {
"anime_id": 29, "anime_id": 29,
"titulo": "Irozuku Sekai no Ashita Kara", "titulo": "Irozuku Sekai no Ashita Kara",
"link": "/Anime/2018/Otono/IrozuKai", "link": "/Anime/IrozuKai",
"imgurl": "https://cdn.myanimelist.net/images/anime/1424/93855l.jpg", "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.", "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", "estudio": "P.A. Works",
@ -62,7 +62,7 @@
{ {
"anime_id": 28, "anime_id": 28,
"titulo": "Goblin Slayer", "titulo": "Goblin Slayer",
"link": "/Anime/2018/Otono/Goblin-Slayer", "link": "/Anime/Goblin-Slayer",
"imgurl": "https://cdn.myanimelist.net/images/anime/1949/93415l.jpg", "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...", "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", "estudio": "White Fox",
@ -77,7 +77,7 @@
{ {
"anime_id": 27, "anime_id": 27,
"titulo": "Overlord 3", "titulo": "Overlord 3",
"link": "/Anime/2018/Verano/Overlord-3", "link": "/Anime/Overlord-3",
"imgurl": "https://cdn.myanimelist.net/images/anime/1511/93473l.jpg", "imgurl": "https://cdn.myanimelist.net/images/anime/1511/93473l.jpg",
"descripcion": "Tercera temporada de Overlord.", "descripcion": "Tercera temporada de Overlord.",
"estudio": "Madhouse", "estudio": "Madhouse",
@ -92,7 +92,7 @@
{ {
"anime_id": 26, "anime_id": 26,
"titulo": "Banana Fish", "titulo": "Banana Fish",
"link": "/Anime/2018/Verano/Banana-Fish", "link": "/Anime/Banana-Fish",
"imgurl": "https://cdn.myanimelist.net/images/anime/1190/93472l.jpg", "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ó.", "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", "estudio": "MAPPA",
@ -107,7 +107,7 @@
{ {
"anime_id": 25, "anime_id": 25,
"titulo": "Steins;Gate 0", "titulo": "Steins;Gate 0",
"link": "/Anime/2018/Primavera/Steins;Gate-0", "link": "/Anime/Steins-Gate-0",
"imgurl": "https://cdn.myanimelist.net/images/anime/1768/93520l.jpg", "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... ", "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", "estudio": "White Fox",
@ -122,7 +122,7 @@
{ {
"anime_id": 24, "anime_id": 24,
"titulo": "Mahou Shoujo Site", "titulo": "Mahou Shoujo Site",
"link": "/Anime/2018/Primavera/Mahou-Shoujo-Site", "link": "/Anime/Mahou-Shoujo-Site",
"imgurl": "https://cdn.myanimelist.net/images/anime/1720/95064l.jpg", "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. ", "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", "estudio": "production doA",
@ -137,7 +137,7 @@
{ {
"anime_id": 23, "anime_id": 23,
"titulo": "Wotaku ni Koi wa Muzukashii", "titulo": "Wotaku ni Koi wa Muzukashii",
"link": "/Anime/2018/Primavera/WotaKoi", "link": "/Anime/WotaKoi",
"imgurl": "https://cdn.myanimelist.net/images/anime/1864/93518l.jpg", "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? ", "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", "estudio": "A-1 Pictures",
@ -152,7 +152,7 @@
{ {
"anime_id": 22, "anime_id": 22,
"titulo": "Shokugeki no Soma: San no Sara - Toutsuki Ressha-hen", "titulo": "Shokugeki no Soma: San no Sara - Toutsuki Ressha-hen",
"link": "/Anime/2018/Primavera/Shokugeki-no-Soma-3-2", "link": "/Anime/Shokugeki-no-Soma-3-2",
"imgurl": "https://cdn.myanimelist.net/images/anime/1604/93531l.jpg", "imgurl": "https://cdn.myanimelist.net/images/anime/1604/93531l.jpg",
"descripcion": "El segundo platillo de Shokugeki no Soma: San no Sara", "descripcion": "El segundo platillo de Shokugeki no Soma: San no Sara",
"estudio": "J.C. Staff", "estudio": "J.C. Staff",
@ -167,7 +167,7 @@
{ {
"anime_id": 21, "anime_id": 21,
"titulo": "Violet Evergarden", "titulo": "Violet Evergarden",
"link": "/Anime/2018/Invierno/Violet-Evergarden", "link": "/Anime/Violet-Evergarden",
"imgurl": "https://cdn.myanimelist.net/images/anime/1795/95088l.jpg", "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. ", "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", "estudio": "Kyoto Animation",
@ -182,7 +182,7 @@
{ {
"anime_id": 20, "anime_id": 20,
"titulo": "Inuyashiki", "titulo": "Inuyashiki",
"link": "/Anime/2017/Otono/Inuyashiki", "link": "/Anime/Inuyashiki",
"imgurl": "https://cdn.myanimelist.net/images/anime/3/88470l.jpg", "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. ", "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", "estudio": "MAPPA",
@ -197,7 +197,7 @@
{ {
"anime_id": 19, "anime_id": 19,
"titulo": "Kekkai Sensen and Beyond", "titulo": "Kekkai Sensen and Beyond",
"link": "/Anime/2017/Otono/Kekkai-Sensen-Beyond", "link": "/Anime/Kekkai-Sensen-Beyond",
"imgurl": "https://cdn.myanimelist.net/images/anime/9/88281l.jpg", "imgurl": "https://cdn.myanimelist.net/images/anime/9/88281l.jpg",
"descripcion": "Segunda temporada de Kekkai Sensen.", "descripcion": "Segunda temporada de Kekkai Sensen.",
"estudio": "Bones", "estudio": "Bones",
@ -212,7 +212,7 @@
{ {
"anime_id": 18, "anime_id": 18,
"titulo": "Just Because!", "titulo": "Just Because!",
"link": "/Anime/2017/Otono/Just-Because", "link": "/Anime/Just-Because",
"imgurl": "https://cdn.myanimelist.net/images/anime/3/88185l.jpg", "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. ", "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", "estudio": "Pine Jam",
@ -227,7 +227,7 @@
{ {
"anime_id": 17, "anime_id": 17,
"titulo": "Shokugeki no Soma: San no Sara", "titulo": "Shokugeki no Soma: San no Sara",
"link": "/Anime/2017/Otono/Shokugeki-no-Soma-3", "link": "/Anime/Shokugeki-no-Soma-3",
"imgurl": "https://cdn.myanimelist.net/images/anime/4/86603l.jpg", "imgurl": "https://cdn.myanimelist.net/images/anime/4/86603l.jpg",
"descripcion": "Tercera temporada de Shokugeki no Soma", "descripcion": "Tercera temporada de Shokugeki no Soma",
"estudio": "J.C. Staff", "estudio": "J.C. Staff",
@ -242,7 +242,7 @@
{ {
"anime_id": 16, "anime_id": 16,
"titulo": "Kakegurui", "titulo": "Kakegurui",
"link": "/Anime/2017/Verano/Kakegurui", "link": "/Anime/Kakegurui",
"imgurl": "https://cdn.myanimelist.net/images/anime/3/86578l.jpg", "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? ", "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", "estudio": "MAPPA",
@ -257,7 +257,7 @@
{ {
"anime_id": 15, "anime_id": 15,
"titulo": "Re:Creators", "titulo": "Re:Creators",
"link": "/Anime/2017/Verano/Re:Creators", "link": "/Anime/Re:Creators",
"imgurl": "https://cdn.myanimelist.net/images/anime/11/85469l.jpg", "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?", "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", "estudio": "TROYCA",
@ -272,7 +272,7 @@
{ {
"anime_id": 14, "anime_id": 14,
"titulo": "Flip Flappers", "titulo": "Flip Flappers",
"link": "/Anime/2016/Otono/Flip-Flappers", "link": "/Anime/Flip-Flappers",
"imgurl": "https://cdn.myanimelist.net/images/anime/4/82292l.jpg", "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.", "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", "estudio": "Studio 3Hz",

View File

@ -19,10 +19,27 @@
components: components:
'barra-lateral': barraLateral 'barra-lateral': barraLateral
mounted: -> mounted: ->
store = @$store vm = this
resTxt = await fetch "#{this.$store.state.servidor}/data/animes.json" do =>
resTxt = await fetch "#{@$store.state.servidor}/data/animes.json"
resultado = await resTxt.json() resultado = await resTxt.json()
store.commit "establecerAnime", resultado vm.$store.commit "establecerAnime", resultado
do =>
epsRaw = await fetch "#{@$store.state.servidor}/data/episodios.json"
eps = await epsRaw.json()
vm.$store.commit "establecerEpisodios", eps
do =>
epsOpcRaw = await fetch "#{@$store.state.servidor}/data/episodios_opciones.json"
epsOpc = await epsOpcRaw.json()
vm.$store.commit "establecerEpisodiosOpciones", epsOpc
do =>
epsOpcMetaRaw = await fetch "#{@$store.state.servidor}/data/episodios_opciones_meta.json"
epsOpcMeta = await epsOpcMetaRaw.json()
vm.$store.commit "establecerEpisodiosOpcionesMeta", epsOpcMeta
# #

View File

@ -19,11 +19,11 @@
div.temporada Temporada: {{ anime.temporada + " " + anime.anio }} div.temporada Temporada: {{ anime.temporada + " " + anime.anio }}
div.fuente Fuente: {{ anime.fuente }} div.fuente Fuente: {{ anime.fuente }}
div.generos Generos: {{ anime.generos }} div.generos Generos: {{ anime.generos }}
op-ed(:anime_ID="anime.anime_ID" :color="anime.color") op-ed(:anime_ID="anime.anime_id" :color="anime.color")
br br
div.tarjeta.aviso(:style="colorBackground") {{ aviso }} div.tarjeta.aviso(:style="colorBackground") {{ aviso }}
br br
panel-de-descarga(:animeid="anime.anime_ID" :color="anime.color" panel-de-descarga(:animeid="anime.anime_id" :color="anime.color"
:cambiar-aviso="cambiarAviso") :cambiar-aviso="cambiarAviso")
br br
div.tarjeta.background__disqus div.tarjeta.background__disqus
@ -58,7 +58,9 @@
vm = this vm = this
animes = @$store.state.animes animes = @$store.state.animes
resultado = -1 resultado = -1
console.log animes
for anime in animes for anime in animes
console.log "Param is #{@$route.params.nombre}"
if anime.link is "/Anime/" + @$route.params.nombre if anime.link is "/Anime/" + @$route.params.nombre
vm.anime = anime vm.anime = anime
resultado = 1 resultado = 1
@ -80,9 +82,7 @@
] ]
#
#
</script> </script>
<style scoped lang="sass"> <style scoped lang="sass">

View File

@ -25,8 +25,7 @@
<span v-for="(ep, num) in opcion.eps" class="panel__descripcion__link"> <span v-for="(ep, num) in opcion.eps" class="panel__descripcion__link">
<br> <br>
Episodio {{ num }} -> Episodio {{ num }} ->
<a :href="ep.link" target="_blank" :style="'color: ' + balancearColor" <a :href="ep.link" target="_blank" :style="'color: ' + balancearColor">
@mousedown.stop="incrementarContador(ep.ep_ID, $event)">
{{ ep.peso }} {{ ep.peso }}
</a> </a>
</span> </span>
@ -42,13 +41,11 @@
</template> </template>
<script> <script>
import YAML from "yaml"
const esModoOscuro = false; const esModoOscuro = false;
export default { export default {
name: "panelDeDescarga", name: "panelDeDescarga",
data: function () { data () {
return { return {
posActual: '1', posActual: '1',
datos: {}, datos: {},
@ -70,6 +67,11 @@
required: true required: true
} }
}, },
watch: {
epsOpcionesMeta() {
this.actualizarEpsOpciones();
}
},
computed: { computed: {
balancearColor() { balancearColor() {
const color = this.color; const color = this.color;
@ -85,6 +87,12 @@
return color; return color;
} }
},
epsOpciones() {
return this.$store.state.episodios_opciones;
},
epsOpcionesMeta() {
return this.$store.state.episodios_opciones_meta;
} }
}, },
methods: { methods: {
@ -119,22 +127,41 @@
elemNuevo + " " + elemAnterior + " " + opcionAnterior + " " + opcionNueva); elemNuevo + " " + elemAnterior + " " + opcionAnterior + " " + opcionNueva);
} }
}, },
incrementarContador(ep_ID, evento) { actualizarEpsOpciones() {
console.log("Llamando...");
const xhr = new XMLHttpRequest(); const vm = this;
xhr.open("PUT", `${this.$store.state.servidor}/links`); const epsOpciones = this.epsOpciones;
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); const epsOpcionesMeta = this.epsOpcionesMeta;
xhr.onload = () => { if (epsOpcionesMeta.length > 0) {
console.log(xhr.responseText); const opcionMeta = epsOpcionesMeta.find(x => x.anime_id === this.animeid);
}; vm.mostrarSpinnerParaCargaDeEps = false;
xhr.send(`ep_ID=${ep_ID}`); this.datos = epsOpciones;
this.datosCorrectos = true;
vm.cambiarAviso(opcionMeta.aviso);
} else {
vm.mostrarSpinnerParaCargaDeEps = false;
}
} }
}, },
created() { mounted () {
console.log("Montado");
this.actualizarEpsOpciones();
}
/*
mounted() {
const xhr = new XMLHttpRequest(); const xhr = new XMLHttpRequest();
const vm = this; const vm = this;
const epsOpciones = this.$store.state.episodios_opciones;
if (epsOpciones.length > 0) {
const epsOpciones = epsOpciones.filter(x => true);
vm.mostrarSpinnerParaCargaDeEps = false;
this.datos = epsOpciones;
this.datosCorrectos = true;
} else {
vm.mostrarSpinnerParaCargaDeEps = false;
}
xhr.open("POST", `${this.$store.state.servidor}/links`); xhr.open("POST", `${this.$store.state.servidor}/links`);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onload = () => { xhr.onload = () => {
@ -156,7 +183,7 @@
}; };
xhr.send(`animeID=${this.animeid}`); xhr.send(`animeID=${this.animeid}`);
} } // */
} }
</script> </script>

View File

@ -1,25 +1,14 @@
<template lang="pug"> <template lang="pug">
div(:id="`tarjeta${indice}`" :style="indice !== '1'? 'display: none' : ''") div(:id="`tarjeta${indice}`" :style="indice !== '1'? 'display: none' : ''")
div.notf(v-if="enEmision")
div.titulo(:style="'color: ' + color") Notificaciones
br
div.notf--ind(v-if="$store.state.navegador_hash !== '' || true")
boton-nuevos-eps(:opcion="opcion.opcion_ID")
span Avísame cuando salgan nuevos episodios.
template(v-else)
span Suscríbete&nbsp;
router-link(to="/ajustes" :style="'color: ' + color") aquí
span &nbsp;para recibir notificaciones cuando salgan episodios nuevos.
br
div.titulo(:style="'color: ' + color") Links div.titulo(:style="'color: ' + color") Links
p Todos los links se abren en una pestaña nueva.<br> p Todos los links se abren en una pestaña nueva.<br>
span.link(v-for="(ep, num) in opcion.eps") span.link(v-for="(ep, num) in opcion.eps")
br br
span Episodio {{ num }} -> span Episodio {{ ep.num_ep }} ->&nbsp;
a( a(
:href="ep.link" target="_blank" :style="'color: ' + color" :href="ep.link" target="_blank" :style="'color: ' + color"
@mousedown.stop="incrementarContador(ep.ep_ID, $event)"
) {{ ep.peso }} ) {{ ep.peso }}
// //
</template> </template>
<!-- TODO: arreglar funcionamiento de los links --> <!-- TODO: arreglar funcionamiento de los links -->
@ -32,7 +21,7 @@
"boton-nuevos-eps": botonNuevosEps "boton-nuevos-eps": botonNuevosEps
props: props:
indice: indice:
type: String type: Number
required: true required: true
opcion: opcion:
type: Object type: Object

View File

@ -45,6 +45,10 @@
cambiarAviso: cambiarAviso:
type: Function, type: Function,
required: true required: true
computed:
eps: -> @$store.state.episodios
epsOpciones: -> @$store.state.episodios_opciones
epsOpcionesMeta: -> @$store.state.episodios_opciones_meta
methods: methods:
cambiarDescripcionDescarga: (idDestino) -> cambiarDescripcionDescarga: (idDestino) ->
quitarClase = (nombre, nombreClase) => quitarClase = (nombre, nombreClase) =>
@ -84,30 +88,40 @@
console.log xhr.responseText console.log xhr.responseText
xhr.send "ep_ID=#{ep_ID}" xhr.send "ep_ID=#{ep_ID}"
created: -> actualizarOpciones: () ->
xhr = new XMLHttpRequest()
vm = this vm = this
eps = @eps
epsOpciones = @epsOpciones
epsOpcionesMeta = @epsOpcionesMeta
animeId = @animeid
if epsOpcionesMeta.length > 0
opcionMeta = epsOpcionesMeta.find (x) => x.anime_id == animeId
if opcionMeta?
opciones = epsOpciones.filter (x) => x.links_id == opcionMeta.links_id
vm.mostrarSpinnerParaCargaDeEps = false
vm.datos = opciones.map (opcion) =>
episodios = eps.filter (ep) => ep.opcion_id == opcion.opcion_id
console.log episodios
{ eps: episodios, opcion... }
xhr.open "POST", "#{this.$store.state.servidor}/links"
xhr.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xhr.onload = ->
try
data = YAML.parse xhr.responseText
if data.exito
vm.datos = data.payload["opciones"]
vm.sigEp = data.payload.sigEp
vm.datosCorrectos = true vm.datosCorrectos = true
vm.cambiarAviso data.payload.aviso vm.cambiarAviso(opcionMeta.aviso)
else else
vm.mostrarSpinnerParaCargaDeEps = false vm.mostrarSpinnerParaCargaDeEps = false
console.log ("Error al recibir los eps del anime. resp:\n" + xhr.responseText) else
catch e
vm.mostrarSpinnerParaCargaDeEps = false vm.mostrarSpinnerParaCargaDeEps = false
console.log ("Error al recibir los eps del anime:\n" + e + "\n" + xhr.responseText)
xhr.send "animeID=#{this.animeid}" created: ->
# vm = this
intervalo = setInterval (=>
if vm.epsOpciones.length > 0 && vm.epsOpcionesMeta.length > 0 && vm.eps.length > 0
clearInterval intervalo
vm.actualizarOpciones()
), 250
#
</script> </script>
<style scoped lang="sass"> <style scoped lang="sass">

View File

@ -15,7 +15,7 @@
name: "variante" name: "variante"
props: props:
indice: indice:
type: String type: Number
required: true required: true
opcion: opcion:
type: Object type: Object

View File

@ -16,14 +16,6 @@
hr hr
br br
router-link(to="/")
i.material-icons.texto2.mostrarEnTablet(title="Nosotros") group
br.mostrarEnTablet
router-link(to="/")
i.material-icons.texto2.mostrarEnTablet(title="Ayuda") help
br.mostrarEnTablet
a(href="https://github.com/Araozu/PseudoSubs_" target="_blank" title="GitHub") a(href="https://github.com/Araozu/PseudoSubs_" target="_blank" title="GitHub")
img.imgGitHub.texto2.mostrarEnTablet( img.imgGitHub.texto2.mostrarEnTablet(
:src="modoSiguiente === 'oscuro'? '/img/github.svg': '/img/githubOsc.svg' ") :src="modoSiguiente === 'oscuro'? '/img/github.svg': '/img/githubOsc.svg' ")
@ -47,7 +39,7 @@
div.inferior.texto2.fondo1.mostrarEnMovil div.inferior.texto2.fondo1.mostrarEnMovil
span.tituloInf span.tituloInf
template(v-for="i in $store.state.rutaActual") template(v-for="i in $store.state.rutaActual")
router-link.linkBarra(:to="i.ruta") {{ i.nombre }} router-link.linkBarra(:to="i.ruta? i.ruta: '/'") {{ i.nombre }}
span > span >
div.links div.links
i.material-icons.texto2.mostrarEnTablet(@click="cambiarModoColor()"). i.material-icons.texto2.mostrarEnTablet(@click="cambiarModoColor()").

View File

@ -4,15 +4,36 @@ import YAML from "yaml"
Vue.use(Vuex) Vue.use(Vuex)
DEV = process.env.NODE_ENV == "development" almacenarEnLocalStorage = (clave, valor, fnActualizar) =>
datosTxt = JSON.stringify valor
datosLocal = localStorage?.getItem clave
unless datosTxt is datosLocal
localStorage?.setItem clave, datosTxt
fnActualizar valor
export default new Vuex.Store export default new Vuex.Store
state: state:
servidor: unless DEV then "" else "" servidor: ""
animes: animes:
if localStorage? if localStorage?
YAML.parse ((localStorage.getItem "animes") ? "[]") JSON.parse ((localStorage.getItem "animes") ? "[]")
else []
episodios:
if localStorage?
JSON.parse ((localStorage.getItem "episodios") ? "[]")
else []
episodios_opciones:
if localStorage?
JSON.parse ((localStorage.getItem "episodios_opciones") ? "[]")
else []
episodios_opciones_meta:
if localStorage?
JSON.parse ((localStorage.getItem "episodios_opciones_meta") ? "[]")
else [] else []
modoColor: (localStorage?.getItem "modoColor") ? "claro" modoColor: (localStorage?.getItem "modoColor") ? "claro"
@ -29,19 +50,25 @@ export default new Vuex.Store
suscripciones: suscripciones:
if localStorage? if localStorage?
YAML.parse ((localStorage.getItem "suscripciones") ? "{}") JSON.parse ((localStorage.getItem "suscripciones") ? "{}")
else {} else {}
mutations: mutations:
establecerAnime: (state, animes) -> establecerAnime: (state, animes) ->
animesTxt = YAML.stringify animes fnActualizar = (v) => state.animes = v
animesLocal = localStorage?.getItem "animes" almacenarEnLocalStorage "animes", animes, fnActualizar
unless animesTxt is animesLocal
localStorage?.setItem "animes", animesTxt establecerEpisodios: (state, episodios) ->
state.animes = animes fnActualizar = (v) => state.episodios = v
if DEV then console.log "Actualicé los animes" almacenarEnLocalStorage "episodios", episodios, fnActualizar
else
if DEV then console.log "Ahorré tener que actualizar todo v:" establecerEpisodiosOpciones: (state, episodios) ->
fnActualizar = (v) => state.episodios_opciones = v
almacenarEnLocalStorage "episodios_opciones", episodios, fnActualizar
establecerEpisodiosOpcionesMeta: (state, episodios) ->
fnActualizar = (v) => state.episodios_opciones_meta = v
almacenarEnLocalStorage "episodios_opciones_meta", episodios, fnActualizar
cambiarModoColor: (state, color) -> cambiarModoColor: (state, color) ->
state.modoColor = color state.modoColor = color
@ -61,22 +88,4 @@ export default new Vuex.Store
cambiarRutaActual: (state, valor) -> cambiarRutaActual: (state, valor) ->
state.rutaActual = valor state.rutaActual = valor
cambiarNavegador_hash: (state, valor) ->
state.navegador_hash = valor
if localStorage? then localStorage.setItem "navegador_hash", valor
agregarSuscripcion: (state, opcion) ->
nuevasSuscr = Object.assign({}, state.suscripciones)
nuevasSuscr[opcion] = true
state.suscripciones = nuevasSuscr
if localStorage?
localStorage.setItem "suscripciones", (YAML.stringify nuevasSuscr)
eliminarSuscripcion: (state, opcion) ->
nuevasSuscr = Object.assign {}, state.suscripciones[opcion]
delete nuevasSuscr[opcion]
state.suscripciones = nuevasSuscr
if localStorage?
localStorage.setItem "suscripciones", (YAML.stringify nuevasSuscr)
actions: {} actions: {}