Cambios para integrar los episodios de animes.
This commit is contained in:
parent
fa70eb8540
commit
85c5032f3b
@ -47,7 +47,7 @@
|
||||
{
|
||||
"anime_id": 29,
|
||||
"titulo": "Irozuku Sekai no Ashita Kara",
|
||||
"link": "/Anime/2018/Otono/IrozuKai",
|
||||
"link": "/Anime/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",
|
||||
@ -62,7 +62,7 @@
|
||||
{
|
||||
"anime_id": 28,
|
||||
"titulo": "Goblin Slayer",
|
||||
"link": "/Anime/2018/Otono/Goblin-Slayer",
|
||||
"link": "/Anime/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",
|
||||
@ -77,7 +77,7 @@
|
||||
{
|
||||
"anime_id": 27,
|
||||
"titulo": "Overlord 3",
|
||||
"link": "/Anime/2018/Verano/Overlord-3",
|
||||
"link": "/Anime/Overlord-3",
|
||||
"imgurl": "https://cdn.myanimelist.net/images/anime/1511/93473l.jpg",
|
||||
"descripcion": "Tercera temporada de Overlord.",
|
||||
"estudio": "Madhouse",
|
||||
@ -92,7 +92,7 @@
|
||||
{
|
||||
"anime_id": 26,
|
||||
"titulo": "Banana Fish",
|
||||
"link": "/Anime/2018/Verano/Banana-Fish",
|
||||
"link": "/Anime/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",
|
||||
@ -107,7 +107,7 @@
|
||||
{
|
||||
"anime_id": 25,
|
||||
"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",
|
||||
"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",
|
||||
@ -122,7 +122,7 @@
|
||||
{
|
||||
"anime_id": 24,
|
||||
"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",
|
||||
"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",
|
||||
@ -137,7 +137,7 @@
|
||||
{
|
||||
"anime_id": 23,
|
||||
"titulo": "Wotaku ni Koi wa Muzukashii",
|
||||
"link": "/Anime/2018/Primavera/WotaKoi",
|
||||
"link": "/Anime/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",
|
||||
@ -152,7 +152,7 @@
|
||||
{
|
||||
"anime_id": 22,
|
||||
"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",
|
||||
"descripcion": "El segundo platillo de Shokugeki no Soma: San no Sara",
|
||||
"estudio": "J.C. Staff",
|
||||
@ -167,7 +167,7 @@
|
||||
{
|
||||
"anime_id": 21,
|
||||
"titulo": "Violet Evergarden",
|
||||
"link": "/Anime/2018/Invierno/Violet-Evergarden",
|
||||
"link": "/Anime/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",
|
||||
@ -182,7 +182,7 @@
|
||||
{
|
||||
"anime_id": 20,
|
||||
"titulo": "Inuyashiki",
|
||||
"link": "/Anime/2017/Otono/Inuyashiki",
|
||||
"link": "/Anime/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",
|
||||
@ -197,7 +197,7 @@
|
||||
{
|
||||
"anime_id": 19,
|
||||
"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",
|
||||
"descripcion": "Segunda temporada de Kekkai Sensen.",
|
||||
"estudio": "Bones",
|
||||
@ -212,7 +212,7 @@
|
||||
{
|
||||
"anime_id": 18,
|
||||
"titulo": "Just Because!",
|
||||
"link": "/Anime/2017/Otono/Just-Because",
|
||||
"link": "/Anime/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",
|
||||
@ -227,7 +227,7 @@
|
||||
{
|
||||
"anime_id": 17,
|
||||
"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",
|
||||
"descripcion": "Tercera temporada de Shokugeki no Soma",
|
||||
"estudio": "J.C. Staff",
|
||||
@ -242,7 +242,7 @@
|
||||
{
|
||||
"anime_id": 16,
|
||||
"titulo": "Kakegurui",
|
||||
"link": "/Anime/2017/Verano/Kakegurui",
|
||||
"link": "/Anime/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",
|
||||
@ -257,7 +257,7 @@
|
||||
{
|
||||
"anime_id": 15,
|
||||
"titulo": "Re:Creators",
|
||||
"link": "/Anime/2017/Verano/Re:Creators",
|
||||
"link": "/Anime/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",
|
||||
@ -272,7 +272,7 @@
|
||||
{
|
||||
"anime_id": 14,
|
||||
"titulo": "Flip Flappers",
|
||||
"link": "/Anime/2016/Otono/Flip-Flappers",
|
||||
"link": "/Anime/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",
|
||||
|
25
src/App.vue
25
src/App.vue
@ -19,10 +19,27 @@
|
||||
components:
|
||||
'barra-lateral': barraLateral
|
||||
mounted: ->
|
||||
store = @$store
|
||||
resTxt = await fetch "#{this.$store.state.servidor}/data/animes.json"
|
||||
resultado = await resTxt.json()
|
||||
store.commit "establecerAnime", resultado
|
||||
vm = this
|
||||
do =>
|
||||
resTxt = await fetch "#{@$store.state.servidor}/data/animes.json"
|
||||
resultado = await resTxt.json()
|
||||
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
|
||||
|
||||
|
||||
|
||||
#
|
||||
|
@ -19,11 +19,11 @@
|
||||
div.temporada Temporada: {{ anime.temporada + " " + anime.anio }}
|
||||
div.fuente Fuente: {{ anime.fuente }}
|
||||
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
|
||||
div.tarjeta.aviso(:style="colorBackground") {{ aviso }}
|
||||
br
|
||||
panel-de-descarga(:animeid="anime.anime_ID" :color="anime.color"
|
||||
panel-de-descarga(:animeid="anime.anime_id" :color="anime.color"
|
||||
:cambiar-aviso="cambiarAviso")
|
||||
br
|
||||
div.tarjeta.background__disqus
|
||||
@ -58,7 +58,9 @@
|
||||
vm = this
|
||||
animes = @$store.state.animes
|
||||
resultado = -1
|
||||
console.log animes
|
||||
for anime in animes
|
||||
console.log "Param is #{@$route.params.nombre}"
|
||||
if anime.link is "/Anime/" + @$route.params.nombre
|
||||
vm.anime = anime
|
||||
resultado = 1
|
||||
@ -80,9 +82,7 @@
|
||||
]
|
||||
|
||||
|
||||
|
||||
#
|
||||
|
||||
#
|
||||
</script>
|
||||
|
||||
<style scoped lang="sass">
|
||||
|
@ -25,8 +25,7 @@
|
||||
<span v-for="(ep, num) in opcion.eps" class="panel__descripcion__link">
|
||||
<br>
|
||||
Episodio {{ num }} ->
|
||||
<a :href="ep.link" target="_blank" :style="'color: ' + balancearColor"
|
||||
@mousedown.stop="incrementarContador(ep.ep_ID, $event)">
|
||||
<a :href="ep.link" target="_blank" :style="'color: ' + balancearColor">
|
||||
{{ ep.peso }}
|
||||
</a>
|
||||
</span>
|
||||
@ -42,13 +41,11 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import YAML from "yaml"
|
||||
|
||||
const esModoOscuro = false;
|
||||
|
||||
export default {
|
||||
name: "panelDeDescarga",
|
||||
data: function () {
|
||||
data () {
|
||||
return {
|
||||
posActual: '1',
|
||||
datos: {},
|
||||
@ -70,6 +67,11 @@
|
||||
required: true
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
epsOpcionesMeta() {
|
||||
this.actualizarEpsOpciones();
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
balancearColor() {
|
||||
const color = this.color;
|
||||
@ -85,6 +87,12 @@
|
||||
return color;
|
||||
}
|
||||
|
||||
},
|
||||
epsOpciones() {
|
||||
return this.$store.state.episodios_opciones;
|
||||
},
|
||||
epsOpcionesMeta() {
|
||||
return this.$store.state.episodios_opciones_meta;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@ -119,22 +127,41 @@
|
||||
elemNuevo + " " + elemAnterior + " " + opcionAnterior + " " + opcionNueva);
|
||||
}
|
||||
},
|
||||
incrementarContador(ep_ID, evento) {
|
||||
|
||||
const xhr = new XMLHttpRequest();
|
||||
xhr.open("PUT", `${this.$store.state.servidor}/links`);
|
||||
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
||||
xhr.onload = () => {
|
||||
console.log(xhr.responseText);
|
||||
};
|
||||
xhr.send(`ep_ID=${ep_ID}`);
|
||||
|
||||
actualizarEpsOpciones() {
|
||||
console.log("Llamando...");
|
||||
const vm = this;
|
||||
const epsOpciones = this.epsOpciones;
|
||||
const epsOpcionesMeta = this.epsOpcionesMeta;
|
||||
if (epsOpcionesMeta.length > 0) {
|
||||
const opcionMeta = epsOpcionesMeta.find(x => x.anime_id === this.animeid);
|
||||
vm.mostrarSpinnerParaCargaDeEps = false;
|
||||
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 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.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
||||
xhr.onload = () => {
|
||||
@ -156,7 +183,7 @@
|
||||
|
||||
};
|
||||
xhr.send(`animeID=${this.animeid}`);
|
||||
}
|
||||
} // */
|
||||
|
||||
}
|
||||
</script>
|
||||
|
@ -1,25 +1,14 @@
|
||||
<template lang="pug">
|
||||
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
|
||||
router-link(to="/ajustes" :style="'color: ' + color") aquí
|
||||
span para recibir notificaciones cuando salgan episodios nuevos.
|
||||
br
|
||||
div.titulo(:style="'color: ' + color") Links
|
||||
p Todos los links se abren en una pestaña nueva.<br>
|
||||
span.link(v-for="(ep, num) in opcion.eps")
|
||||
br
|
||||
span Episodio {{ num }} ->
|
||||
span Episodio {{ ep.num_ep }} ->
|
||||
a(
|
||||
:href="ep.link" target="_blank" :style="'color: ' + color"
|
||||
@mousedown.stop="incrementarContador(ep.ep_ID, $event)"
|
||||
) {{ ep.peso }}
|
||||
|
||||
//
|
||||
</template>
|
||||
<!-- TODO: arreglar funcionamiento de los links -->
|
||||
@ -32,7 +21,7 @@
|
||||
"boton-nuevos-eps": botonNuevosEps
|
||||
props:
|
||||
indice:
|
||||
type: String
|
||||
type: Number
|
||||
required: true
|
||||
opcion:
|
||||
type: Object
|
||||
|
@ -45,6 +45,10 @@
|
||||
cambiarAviso:
|
||||
type: Function,
|
||||
required: true
|
||||
computed:
|
||||
eps: -> @$store.state.episodios
|
||||
epsOpciones: -> @$store.state.episodios_opciones
|
||||
epsOpcionesMeta: -> @$store.state.episodios_opciones_meta
|
||||
methods:
|
||||
cambiarDescripcionDescarga: (idDestino) ->
|
||||
quitarClase = (nombre, nombreClase) =>
|
||||
@ -84,30 +88,40 @@
|
||||
console.log xhr.responseText
|
||||
xhr.send "ep_ID=#{ep_ID}"
|
||||
|
||||
created: ->
|
||||
xhr = new XMLHttpRequest()
|
||||
vm = this
|
||||
actualizarOpciones: () ->
|
||||
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.cambiarAviso data.payload.aviso
|
||||
vm.cambiarAviso(opcionMeta.aviso)
|
||||
else
|
||||
vm.mostrarSpinnerParaCargaDeEps = false
|
||||
console.log ("Error al recibir los eps del anime. resp:\n" + xhr.responseText)
|
||||
catch e
|
||||
else
|
||||
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>
|
||||
|
||||
<style scoped lang="sass">
|
||||
|
@ -15,7 +15,7 @@
|
||||
name: "variante"
|
||||
props:
|
||||
indice:
|
||||
type: String
|
||||
type: Number
|
||||
required: true
|
||||
opcion:
|
||||
type: Object
|
||||
|
@ -16,14 +16,6 @@
|
||||
hr
|
||||
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")
|
||||
img.imgGitHub.texto2.mostrarEnTablet(
|
||||
:src="modoSiguiente === 'oscuro'? '/img/github.svg': '/img/githubOsc.svg' ")
|
||||
@ -47,7 +39,7 @@
|
||||
div.inferior.texto2.fondo1.mostrarEnMovil
|
||||
span.tituloInf
|
||||
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 >
|
||||
div.links
|
||||
i.material-icons.texto2.mostrarEnTablet(@click="cambiarModoColor()").
|
||||
|
@ -4,15 +4,36 @@ import YAML from "yaml"
|
||||
|
||||
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
|
||||
state:
|
||||
servidor: unless DEV then "" else ""
|
||||
servidor: ""
|
||||
|
||||
animes:
|
||||
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 []
|
||||
|
||||
modoColor: (localStorage?.getItem "modoColor") ? "claro"
|
||||
@ -29,19 +50,25 @@ export default new Vuex.Store
|
||||
|
||||
suscripciones:
|
||||
if localStorage?
|
||||
YAML.parse ((localStorage.getItem "suscripciones") ? "{}")
|
||||
JSON.parse ((localStorage.getItem "suscripciones") ? "{}")
|
||||
else {}
|
||||
|
||||
mutations:
|
||||
establecerAnime: (state, animes) ->
|
||||
animesTxt = YAML.stringify animes
|
||||
animesLocal = localStorage?.getItem "animes"
|
||||
unless animesTxt is animesLocal
|
||||
localStorage?.setItem "animes", animesTxt
|
||||
state.animes = animes
|
||||
if DEV then console.log "Actualicé los animes"
|
||||
else
|
||||
if DEV then console.log "Ahorré tener que actualizar todo v:"
|
||||
fnActualizar = (v) => state.animes = v
|
||||
almacenarEnLocalStorage "animes", animes, fnActualizar
|
||||
|
||||
establecerEpisodios: (state, episodios) ->
|
||||
fnActualizar = (v) => state.episodios = v
|
||||
almacenarEnLocalStorage "episodios", episodios, fnActualizar
|
||||
|
||||
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) ->
|
||||
state.modoColor = color
|
||||
@ -61,22 +88,4 @@ export default new Vuex.Store
|
||||
cambiarRutaActual: (state, 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: {}
|
||||
|
Loading…
Reference in New Issue
Block a user