Compare commits
6 Commits
10430caddf
...
0.1.2
Author | SHA1 | Date | |
---|---|---|---|
3edfed6272 | |||
aa81102194 | |||
0c90c3e29d | |||
2292ae32c2 | |||
31cc19ba7a | |||
5c712454d5 |
@ -360,14 +360,25 @@ func (a *App) GetAniListUserWatchingList(page int, perPage int, sort string) Ani
|
||||
},
|
||||
}
|
||||
|
||||
returnedBody, _ := AniListQuery(body, true)
|
||||
returnedBody, status := AniListQuery(body, true)
|
||||
|
||||
var badPost struct {
|
||||
Errors []struct {
|
||||
Message string `json:"message"`
|
||||
Status int `json:"status"`
|
||||
Locations []struct {
|
||||
Line int `json:"line"`
|
||||
Column int `json:"column"`
|
||||
} `json:"locations"`
|
||||
} `json:"errors"`
|
||||
Data any `json:"data"`
|
||||
}
|
||||
var post AniListCurrentUserWatchList
|
||||
if status == "200 OK" {
|
||||
err := json.Unmarshal(returnedBody, &post)
|
||||
if err != nil {
|
||||
log.Printf("Failed at unmarshal, %s\n", err)
|
||||
}
|
||||
|
||||
// Getting the real total, finding the real last page and storing that in the Page info
|
||||
statuses := post.Data.Page.MediaList[0].User.Statistics.Anime.Statuses
|
||||
var total int
|
||||
@ -381,6 +392,15 @@ func (a *App) GetAniListUserWatchingList(page int, perPage int, sort string) Ani
|
||||
|
||||
post.Data.Page.PageInfo.Total = total
|
||||
post.Data.Page.PageInfo.LastPage = lastPage
|
||||
}
|
||||
|
||||
if status == "403 Forbidden" {
|
||||
err := json.Unmarshal(returnedBody, &badPost)
|
||||
if err != nil {
|
||||
log.Printf("Failed at unmarshal, %s\n", err)
|
||||
}
|
||||
log.Fatal(badPost.Errors[0].Message)
|
||||
}
|
||||
|
||||
return post
|
||||
}
|
||||
|
90
bruno/AniTrack/AniList/Get Items/AniChart.bru
Normal file
90
bruno/AniTrack/AniList/Get Items/AniChart.bru
Normal file
@ -0,0 +1,90 @@
|
||||
meta {
|
||||
name: AniChart
|
||||
type: graphql
|
||||
seq: 5
|
||||
}
|
||||
|
||||
post {
|
||||
url: https://graphql.anilist.co
|
||||
body: graphql
|
||||
auth: none
|
||||
}
|
||||
|
||||
body:graphql {
|
||||
# Write your query or mutation here
|
||||
query ($page: Int, $perPage: Int, $airingAt_greater:Int) {
|
||||
Page(page: $page, perPage: $perPage) {
|
||||
pageInfo {
|
||||
total
|
||||
perPage
|
||||
currentPage
|
||||
lastPage
|
||||
hasNextPage
|
||||
}
|
||||
airingSchedules(airingAt_greater:$airingAt_greater){
|
||||
id
|
||||
airingAt
|
||||
timeUntilAiring
|
||||
episode
|
||||
mediaId
|
||||
media{
|
||||
id
|
||||
title{
|
||||
english
|
||||
romaji
|
||||
native
|
||||
}
|
||||
type
|
||||
format
|
||||
status
|
||||
startDate{
|
||||
year
|
||||
month
|
||||
day
|
||||
}
|
||||
endDate{
|
||||
year
|
||||
month
|
||||
day
|
||||
}
|
||||
season
|
||||
seasonYear
|
||||
episodes
|
||||
duration
|
||||
coverImage{
|
||||
medium
|
||||
large
|
||||
color
|
||||
extraLarge
|
||||
}
|
||||
bannerImage
|
||||
genres
|
||||
averageScore
|
||||
meanScore
|
||||
popularity
|
||||
trending
|
||||
favourites
|
||||
tags{
|
||||
id
|
||||
name
|
||||
description
|
||||
category
|
||||
rank
|
||||
isGeneralSpoiler
|
||||
isMediaSpoiler
|
||||
isAdult
|
||||
}
|
||||
isAdult
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
body:graphql:vars {
|
||||
{
|
||||
"page": 50,
|
||||
"perPage": 20,
|
||||
"airingAt_greater": 1730260800
|
||||
}
|
||||
}
|
@ -25,7 +25,7 @@ body:graphql {
|
||||
media {
|
||||
id
|
||||
idMal
|
||||
tags{
|
||||
tags {
|
||||
id
|
||||
name
|
||||
description
|
||||
|
@ -441,6 +441,13 @@
|
||||
bind:value={currentAniListAnime.data.MediaList.progress}
|
||||
required
|
||||
/>
|
||||
<div>
|
||||
/ {currentAniListAnime.data.MediaList.media
|
||||
.nextAiringEpisode.episode !== 0
|
||||
? currentAniListAnime.data.MediaList.media
|
||||
.nextAiringEpisode.episode - 1
|
||||
: currentAniListAnime.data.MediaList.media.episodes}
|
||||
</div>
|
||||
<div>
|
||||
of {currentAniListAnime.data.MediaList.media.episodes}
|
||||
</div>
|
||||
|
@ -2,38 +2,22 @@
|
||||
import Search from "./Search.svelte"
|
||||
import {
|
||||
aniListLoggedIn,
|
||||
aniListUser,
|
||||
loginToAniList,
|
||||
loginToMAL,
|
||||
loginToSimkl,
|
||||
malLoggedIn,
|
||||
malUser,
|
||||
simklLoggedIn,
|
||||
simklUser,
|
||||
} from "../helperModules/GlobalVariablesAndHelperFunctions.svelte"
|
||||
import type {AniListUser} from "../anilist/types/AniListTypes";
|
||||
import type {SimklUser} from "../simkl/types/simklTypes";
|
||||
import type {MyAnimeListUser} from "../mal/types/MALTypes";
|
||||
import AvatarMenu from "./AvatarMenu.svelte";
|
||||
import logo from "../assets/images/AniTrackLogo.svg"
|
||||
import {location} from "svelte-spa-router";
|
||||
|
||||
let isAniListLoggedIn: boolean
|
||||
let isSimklLoggedIn: boolean
|
||||
let isMALLoggedIn: boolean
|
||||
let currentAniListUser: AniListUser
|
||||
let currentSimklUser: SimklUser
|
||||
let currentMALUser: MyAnimeListUser
|
||||
|
||||
aniListLoggedIn.subscribe((value) => isAniListLoggedIn = value)
|
||||
simklLoggedIn.subscribe((value) => isSimklLoggedIn = value)
|
||||
malLoggedIn.subscribe((value) => isMALLoggedIn = value)
|
||||
aniListUser.subscribe((value) => currentAniListUser = value)
|
||||
simklUser.subscribe((value) => currentSimklUser = value)
|
||||
malUser.subscribe((value) => currentMALUser = value)
|
||||
|
||||
let currentLocation: any
|
||||
location.subscribe(value => currentLocation = value)
|
||||
</script>
|
||||
|
||||
<nav class="border-gray-200 bg-gray-900">
|
||||
@ -63,37 +47,23 @@
|
||||
<div class="hidden items-center justify-between w-full pb-4 min-[950px]:pb-0 min-[950px]:flex min-[950px]:w-auto min-[950px]:order-1 border border-gray-700 min-[950px]:border-0 bg-gray-800 min-[950px]:bg-transparent rounded-lg" id="navbar-user">
|
||||
<ul class="flex flex-col font-medium pb-6 min-[950px]:p-0 mt-4 min-[950px]:space-x-8 rtl:space-x-reverse min-[950px]:flex-row min-[950px]:mt-0">
|
||||
<li>
|
||||
{#if isAniListLoggedIn}
|
||||
<div class="flex justify-center py-2 px-3 rounded bg-transparent min-[950px]:p-0">
|
||||
<span class="w-48 min-[950px]:w-auto text-sm font-medium me-2 px-3 py-2 rounded bg-green-800 text-green-200 cursor-default">AniList: {currentAniListUser.data.Viewer.name}</span>
|
||||
</div>
|
||||
{:else}
|
||||
<button on:click={loginToAniList}
|
||||
class="block py-2 px-3 w-full min-[950px]:w-auto rounded min-[950px]:hover:text-blue-500 hover:bg-gray-700 hover:text-white min-[950px]:hover:bg-transparent border-gray-700">
|
||||
{#if !isAniListLoggedIn}
|
||||
<button on:click={loginToAniList}>
|
||||
<!-- class="block py-2 px-3 w-full min-[950px]:w-auto rounded text-gray-300 min-[950px]:hover:text-blue-500 hover:bg-gray-700 hover:text-white min-[950px]:hover:bg-transparent border-gray-700">-->
|
||||
AniList Login
|
||||
</button>
|
||||
{/if}
|
||||
</li>
|
||||
<li>
|
||||
{#if isMALLoggedIn}
|
||||
<div class="flex justify-center py-2 px-3 rounded bg-transparent min-[950px]:p-0">
|
||||
<span class="w-48 min-[950px]:w-auto text-sm font-medium me-2 px-3 py-2 rounded bg-blue-800 text-blue-200 cursor-default">MyAnimeList: {currentMALUser.name}</span>
|
||||
</div>
|
||||
{:else}
|
||||
<button on:click={loginToMAL}
|
||||
class="block py-2 px-3 w-full min-[950px]:w-auto rounded min-[950px]:p-0 text-gray-300 min-[950px]:hover:text-blue-500 hover:bg-gray-700 hover:text-white min-[950px]:hover:bg-transparent border-gray-700">
|
||||
{#if !isMALLoggedIn}
|
||||
<button on:click={loginToMAL}>
|
||||
<!-- class="block py-2 px-3 w-full min-[950px]:w-auto rounded min-[950px]:p-0 text-gray-300 min-[950px]:hover:text-blue-500 hover:bg-gray-700 hover:text-white min-[950px]:hover:bg-transparent border-gray-700">-->
|
||||
MyAnimeList Login
|
||||
</button>
|
||||
{/if}
|
||||
</li>
|
||||
<li>
|
||||
{#if isSimklLoggedIn}
|
||||
<div class="flex justify-center py-2 px-3 rounded bg-transparent min-[950px]:p-0">
|
||||
<span class="w-48 min-[950px]:w-auto text-sm font-medium me-2 px-3 py-2 rounded bg-indigo-800 text-indigo-200 cursor-default">Simkl: {currentSimklUser.user.name}</span>
|
||||
</div>
|
||||
{:else}
|
||||
<button on:click={loginToSimkl}
|
||||
class="block py-2 px-3 w-full min-[950px]:w-auto rounded min-[950px]:p-0 text-gray-300 min-[950px]:hover:text-blue-500 hover:bg-gray-700 hover:text-white min-[950px]:hover:bg-transparent border-gray-700">
|
||||
{#if !isSimklLoggedIn}
|
||||
<button on:click={loginToSimkl}>
|
||||
<!-- class="block py-2 px-3 w-full min-[950px]:w-auto rounded min-[950px]:p-0 text-gray-300 min-[950px]:hover:text-blue-500 hover:bg-gray-700 hover:text-white min-[950px]:hover:bg-transparent border-gray-700">-->
|
||||
Simkl Login
|
||||
</button>
|
||||
{/if}
|
||||
|
@ -1,3 +1,4 @@
|
||||
import flowbitePlugin from 'flowbite/plugin'
|
||||
/** @type {import('tailwindcss').Config} */
|
||||
export default {
|
||||
content: [
|
||||
@ -6,9 +7,7 @@ export default {
|
||||
"./node_modules/flowbite/**/*.{html,js,svelte,ts}",
|
||||
"./node_modules/flowbite-svelte/**/*.{html,js,svelte,ts}",
|
||||
],
|
||||
plugins: [
|
||||
require('flowbite/plugin')
|
||||
],
|
||||
plugins: [ flowbitePlugin ],
|
||||
|
||||
darkMode: 'media',
|
||||
|
||||
|
@ -12,6 +12,6 @@
|
||||
},
|
||||
"info": {
|
||||
"productName": "AniTrack",
|
||||
"productVersion": "0.1.1"
|
||||
"productVersion": "0.1.2"
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user