added info for mac keychain
This commit is contained in:
parent
bd39268c0a
commit
064a2c7f7d
@ -19,7 +19,11 @@ import (
|
|||||||
var aniListJwt AniListJWT
|
var aniListJwt AniListJWT
|
||||||
|
|
||||||
var aniRing, _ = keyring.Open(keyring.Config{
|
var aniRing, _ = keyring.Open(keyring.Config{
|
||||||
ServiceName: "AniTrack",
|
ServiceName: "AniTrack",
|
||||||
|
KeychainName: "AniTrack",
|
||||||
|
KeychainSynchronizable: false,
|
||||||
|
KeychainTrustApplication: true,
|
||||||
|
KeychainAccessibleWhenUnlocked: true,
|
||||||
})
|
})
|
||||||
|
|
||||||
var aniCtxShutdown, aniCancel = context.WithCancel(context.Background())
|
var aniCtxShutdown, aniCancel = context.WithCancel(context.Background())
|
||||||
|
@ -23,7 +23,11 @@ import (
|
|||||||
var myAnimeListJwt MyAnimeListJWT
|
var myAnimeListJwt MyAnimeListJWT
|
||||||
|
|
||||||
var myAnimeListRing, _ = keyring.Open(keyring.Config{
|
var myAnimeListRing, _ = keyring.Open(keyring.Config{
|
||||||
ServiceName: "AniTrack",
|
ServiceName: "AniTrack",
|
||||||
|
KeychainName: "AniTrack",
|
||||||
|
KeychainSynchronizable: false,
|
||||||
|
KeychainTrustApplication: true,
|
||||||
|
KeychainAccessibleWhenUnlocked: true,
|
||||||
})
|
})
|
||||||
|
|
||||||
var myAnimeListCtxShutdown, myAnimeListCancel = context.WithCancel(context.Background())
|
var myAnimeListCtxShutdown, myAnimeListCancel = context.WithCancel(context.Background())
|
||||||
|
@ -17,7 +17,11 @@ import (
|
|||||||
var simklJwt SimklJWT
|
var simklJwt SimklJWT
|
||||||
|
|
||||||
var simklRing, _ = keyring.Open(keyring.Config{
|
var simklRing, _ = keyring.Open(keyring.Config{
|
||||||
ServiceName: "AniTrack",
|
ServiceName: "AniTrack",
|
||||||
|
KeychainName: "AniTrack",
|
||||||
|
KeychainSynchronizable: false,
|
||||||
|
KeychainTrustApplication: true,
|
||||||
|
KeychainAccessibleWhenUnlocked: true,
|
||||||
})
|
})
|
||||||
|
|
||||||
var simklCtxShutdown, simklCancel = context.WithCancel(context.Background())
|
var simklCtxShutdown, simklCancel = context.WithCancel(context.Background())
|
||||||
|
@ -6,26 +6,26 @@
|
|||||||
malLoggedIn,
|
malLoggedIn,
|
||||||
simklAnime,
|
simklAnime,
|
||||||
simklLoggedIn,
|
simklLoggedIn,
|
||||||
} from "../helperModules/GlobalVariablesAndHelperFunctions.svelte"
|
} from "../helperModules/GlobalVariablesAndHelperFunctions.svelte";
|
||||||
import { push } from "svelte-spa-router"
|
import { push } from "svelte-spa-router";
|
||||||
import { Button } from "flowbite-svelte"
|
import { Button } from "flowbite-svelte";
|
||||||
import type { AniListGetSingleAnime } from "../anilist/types/AniListCurrentUserWatchListType"
|
import type { AniListGetSingleAnime } from "../anilist/types/AniListCurrentUserWatchListType";
|
||||||
import Rating from "./Rating.svelte"
|
import Rating from "./Rating.svelte";
|
||||||
import convertAniListDateToString from "../helperFunctions/convertAniListDateToString"
|
import convertAniListDateToString from "../helperFunctions/convertAniListDateToString";
|
||||||
import AnimeTable from "./AnimeTable.svelte"
|
import AnimeTable from "./AnimeTable.svelte";
|
||||||
import type {
|
import type {
|
||||||
MALAnime,
|
MALAnime,
|
||||||
MalListStatus,
|
MalListStatus,
|
||||||
MALUploadStatus,
|
MALUploadStatus,
|
||||||
} from "../mal/types/MALTypes"
|
} from "../mal/types/MALTypes";
|
||||||
import type { SimklAnime } from "../simkl/types/simklTypes"
|
import type { SimklAnime } from "../simkl/types/simklTypes";
|
||||||
import { writable } from "svelte/store"
|
import { writable } from "svelte/store";
|
||||||
import type {
|
import type {
|
||||||
StatusOption,
|
StatusOption,
|
||||||
StatusOptions,
|
StatusOptions,
|
||||||
} from "../helperTypes/StatusTypes"
|
} from "../helperTypes/StatusTypes";
|
||||||
import type { AniListUpdateVariables } from "../anilist/types/AniListTypes"
|
import type { AniListUpdateVariables } from "../anilist/types/AniListTypes";
|
||||||
import convertDateStringToAniList from "../helperFunctions/convertDateStringToAniList"
|
import convertDateStringToAniList from "../helperFunctions/convertDateStringToAniList";
|
||||||
import {
|
import {
|
||||||
AniListDeleteEntry,
|
AniListDeleteEntry,
|
||||||
AniListUpdateEntry,
|
AniListUpdateEntry,
|
||||||
@ -35,32 +35,32 @@
|
|||||||
SimklSyncRating,
|
SimklSyncRating,
|
||||||
SimklSyncRemove,
|
SimklSyncRemove,
|
||||||
SimklSyncStatus,
|
SimklSyncStatus,
|
||||||
} from "../../wailsjs/go/main/App"
|
} from "../../wailsjs/go/main/App";
|
||||||
import { AddAnimeServiceToTable } from "../helperModules/AddAnimeServiceToTable.svelte"
|
import { AddAnimeServiceToTable } from "../helperModules/AddAnimeServiceToTable.svelte";
|
||||||
import { CheckIfAniListLoggedInAndLoadWatchList } from "../helperModules/CheckIfAniListLoggedInAndLoadWatchList.svelte"
|
import { CheckIfAniListLoggedInAndLoadWatchList } from "../helperModules/CheckIfAniListLoggedInAndLoadWatchList.svelte";
|
||||||
|
|
||||||
let isAniListLoggedIn: boolean
|
let isAniListLoggedIn: boolean;
|
||||||
let isMalLoggedIn: boolean
|
let isMalLoggedIn: boolean;
|
||||||
let isSimklLoggedIn: boolean
|
let isSimklLoggedIn: boolean;
|
||||||
let currentAniListAnime: AniListGetSingleAnime
|
let currentAniListAnime: AniListGetSingleAnime;
|
||||||
let currentMalAnime: MALAnime
|
let currentMalAnime: MALAnime;
|
||||||
let currentSimklAnime: SimklAnime
|
let currentSimklAnime: SimklAnime;
|
||||||
let submitting = writable(false)
|
let submitting = writable(false);
|
||||||
let isSubmitting: boolean
|
let isSubmitting: boolean;
|
||||||
let submitSuccess = writable(false)
|
let submitSuccess = writable(false);
|
||||||
|
|
||||||
aniListLoggedIn.subscribe((value) => (isAniListLoggedIn = value))
|
aniListLoggedIn.subscribe((value) => (isAniListLoggedIn = value));
|
||||||
malLoggedIn.subscribe((value) => (isMalLoggedIn = value))
|
malLoggedIn.subscribe((value) => (isMalLoggedIn = value));
|
||||||
simklLoggedIn.subscribe((value) => (isSimklLoggedIn = value))
|
simklLoggedIn.subscribe((value) => (isSimklLoggedIn = value));
|
||||||
aniListAnime.subscribe((value) => (currentAniListAnime = value))
|
aniListAnime.subscribe((value) => (currentAniListAnime = value));
|
||||||
malAnime.subscribe((value) => (currentMalAnime = value))
|
malAnime.subscribe((value) => (currentMalAnime = value));
|
||||||
simklAnime.subscribe((value) => (currentSimklAnime = value))
|
simklAnime.subscribe((value) => (currentSimklAnime = value));
|
||||||
submitting.subscribe((value) => (isSubmitting = value))
|
submitting.subscribe((value) => (isSubmitting = value));
|
||||||
|
|
||||||
const title =
|
const title =
|
||||||
currentAniListAnime.data.MediaList.media.title.english !== ""
|
currentAniListAnime.data.MediaList.media.title.english !== ""
|
||||||
? currentAniListAnime.data.MediaList.media.title.english
|
? currentAniListAnime.data.MediaList.media.title.english
|
||||||
: currentAniListAnime.data.MediaList.media.title.romaji
|
: currentAniListAnime.data.MediaList.media.title.romaji;
|
||||||
const statusOptions: StatusOptions = [
|
const statusOptions: StatusOptions = [
|
||||||
{ id: 0, aniList: "CURRENT", mal: "watching", simkl: "watching" },
|
{ id: 0, aniList: "CURRENT", mal: "watching", simkl: "watching" },
|
||||||
{
|
{
|
||||||
@ -73,17 +73,17 @@
|
|||||||
{ id: 3, aniList: "DROPPED", mal: "dropped", simkl: "dropped" },
|
{ id: 3, aniList: "DROPPED", mal: "dropped", simkl: "dropped" },
|
||||||
{ id: 4, aniList: "PAUSED", mal: "on_hold", simkl: "hold" },
|
{ id: 4, aniList: "PAUSED", mal: "on_hold", simkl: "hold" },
|
||||||
{ id: 5, aniList: "REPEATING", mal: "rewatching", simkl: "watching" },
|
{ id: 5, aniList: "REPEATING", mal: "rewatching", simkl: "watching" },
|
||||||
]
|
];
|
||||||
let startingAnilistStatusOption: StatusOption = statusOptions.filter(
|
let startingAnilistStatusOption: StatusOption = statusOptions.filter(
|
||||||
(option) =>
|
(option) =>
|
||||||
currentAniListAnime.data.MediaList.status === option.aniList,
|
currentAniListAnime.data.MediaList.status === option.aniList,
|
||||||
)[0]
|
)[0];
|
||||||
const startedAtDate = convertAniListDateToString(
|
const startedAtDate = convertAniListDateToString(
|
||||||
currentAniListAnime.data.MediaList.startedAt,
|
currentAniListAnime.data.MediaList.startedAt,
|
||||||
)
|
);
|
||||||
const completedAtDate = convertAniListDateToString(
|
const completedAtDate = convertAniListDateToString(
|
||||||
currentAniListAnime.data.MediaList.completedAt,
|
currentAniListAnime.data.MediaList.completedAt,
|
||||||
)
|
);
|
||||||
|
|
||||||
if (isAniListLoggedIn)
|
if (isAniListLoggedIn)
|
||||||
AddAnimeServiceToTable({
|
AddAnimeServiceToTable({
|
||||||
@ -101,7 +101,7 @@
|
|||||||
score: currentAniListAnime.data.MediaList.score,
|
score: currentAniListAnime.data.MediaList.score,
|
||||||
repeat: currentAniListAnime.data.MediaList.repeat,
|
repeat: currentAniListAnime.data.MediaList.repeat,
|
||||||
notes: currentAniListAnime.data.MediaList.notes,
|
notes: currentAniListAnime.data.MediaList.notes,
|
||||||
})
|
});
|
||||||
|
|
||||||
if (isMalLoggedIn)
|
if (isMalLoggedIn)
|
||||||
AddAnimeServiceToTable({
|
AddAnimeServiceToTable({
|
||||||
@ -115,7 +115,7 @@
|
|||||||
score: currentMalAnime.my_list_status.score,
|
score: currentMalAnime.my_list_status.score,
|
||||||
repeat: currentMalAnime.my_list_status.num_times_rewatched,
|
repeat: currentMalAnime.my_list_status.num_times_rewatched,
|
||||||
notes: currentMalAnime.my_list_status.comments,
|
notes: currentMalAnime.my_list_status.comments,
|
||||||
})
|
});
|
||||||
|
|
||||||
if (isSimklLoggedIn && Object.keys(currentSimklAnime).length > 0)
|
if (isSimklLoggedIn && Object.keys(currentSimklAnime).length > 0)
|
||||||
AddAnimeServiceToTable({
|
AddAnimeServiceToTable({
|
||||||
@ -129,18 +129,18 @@
|
|||||||
score: currentSimklAnime.user_rating,
|
score: currentSimklAnime.user_rating,
|
||||||
repeat: 0,
|
repeat: 0,
|
||||||
notes: "",
|
notes: "",
|
||||||
})
|
});
|
||||||
|
|
||||||
const handleSubmit = async (e: any) => {
|
const handleSubmit = async (e: any) => {
|
||||||
submitting.set(true)
|
submitting.set(true);
|
||||||
let submitData: {
|
let submitData: {
|
||||||
rating: number
|
rating: number;
|
||||||
episodes: number
|
episodes: number;
|
||||||
status: StatusOption
|
status: StatusOption;
|
||||||
startedAt: string
|
startedAt: string;
|
||||||
completedAt: string
|
completedAt: string;
|
||||||
repeat: number
|
repeat: number;
|
||||||
notes: string
|
notes: string;
|
||||||
} = {
|
} = {
|
||||||
rating: 0,
|
rating: 0,
|
||||||
episodes: 0,
|
episodes: 0,
|
||||||
@ -154,27 +154,27 @@
|
|||||||
completedAt: "",
|
completedAt: "",
|
||||||
repeat: 0,
|
repeat: 0,
|
||||||
notes: "",
|
notes: "",
|
||||||
}
|
};
|
||||||
const formData = new FormData(e.target)
|
const formData = new FormData(e.target);
|
||||||
for (let field of formData) {
|
for (let field of formData) {
|
||||||
const [key, value] = field
|
const [key, value] = field;
|
||||||
if (key === "rating") {
|
if (key === "rating") {
|
||||||
submitData.rating = Number(value) * 2
|
submitData.rating = Number(value) * 2;
|
||||||
continue
|
continue;
|
||||||
}
|
}
|
||||||
if (key === "episodes") {
|
if (key === "episodes") {
|
||||||
submitData.episodes = Number(value)
|
submitData.episodes = Number(value);
|
||||||
continue
|
continue;
|
||||||
}
|
}
|
||||||
if (key === "repeat") {
|
if (key === "repeat") {
|
||||||
submitData.repeat = Number(value)
|
submitData.repeat = Number(value);
|
||||||
continue
|
continue;
|
||||||
}
|
}
|
||||||
if (key === "status") {
|
if (key === "status") {
|
||||||
submitData.status = startingAnilistStatusOption
|
submitData.status = startingAnilistStatusOption;
|
||||||
continue
|
continue;
|
||||||
}
|
}
|
||||||
submitData[key] = value
|
submitData[key] = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
@ -190,16 +190,16 @@
|
|||||||
notes: submitData.notes,
|
notes: submitData.notes,
|
||||||
startedAt: convertDateStringToAniList(submitData.startedAt),
|
startedAt: convertDateStringToAniList(submitData.startedAt),
|
||||||
completedAt: convertDateStringToAniList(submitData.completedAt),
|
completedAt: convertDateStringToAniList(submitData.completedAt),
|
||||||
}
|
};
|
||||||
await AniListUpdateEntry(body).then(
|
await AniListUpdateEntry(body).then(
|
||||||
(value: AniListGetSingleAnime) => {
|
(value: AniListGetSingleAnime) => {
|
||||||
// in future when you inevitably add tags to typescript, until Anilist fixes the api bug
|
// in future when you inevitably add tags to typescript, until Anilist fixes the api bug
|
||||||
// where tags break the SaveMediaListEntry return, you'll want to use this delete line
|
// where tags break the SaveMediaListEntry return, you'll want to use this delete line
|
||||||
// delete value.data.MediaList.media.tags
|
// delete value.data.MediaList.media.tags
|
||||||
aniListAnime.update((newValue) => {
|
aniListAnime.update((newValue) => {
|
||||||
newValue = value
|
newValue = value;
|
||||||
return newValue
|
return newValue;
|
||||||
})
|
});
|
||||||
AddAnimeServiceToTable({
|
AddAnimeServiceToTable({
|
||||||
id: `a-${currentAniListAnime.data.MediaList.mediaId}`,
|
id: `a-${currentAniListAnime.data.MediaList.mediaId}`,
|
||||||
title,
|
title,
|
||||||
@ -215,9 +215,9 @@
|
|||||||
score: currentAniListAnime.data.MediaList.score,
|
score: currentAniListAnime.data.MediaList.score,
|
||||||
repeat: currentAniListAnime.data.MediaList.repeat,
|
repeat: currentAniListAnime.data.MediaList.repeat,
|
||||||
notes: currentAniListAnime.data.MediaList.notes,
|
notes: currentAniListAnime.data.MediaList.notes,
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (malLoggedIn && currentMalAnime.id !== 0) {
|
if (malLoggedIn && currentMalAnime.id !== 0) {
|
||||||
@ -228,22 +228,22 @@
|
|||||||
num_watched_episodes: submitData.episodes,
|
num_watched_episodes: submitData.episodes,
|
||||||
num_times_rewatched: submitData.repeat,
|
num_times_rewatched: submitData.repeat,
|
||||||
comments: submitData.notes,
|
comments: submitData.notes,
|
||||||
}
|
};
|
||||||
|
|
||||||
await MyAnimeListUpdate(currentMalAnime, body).then(
|
await MyAnimeListUpdate(currentMalAnime, body).then(
|
||||||
(malAnimeReturn: MalListStatus) => {
|
(malAnimeReturn: MalListStatus) => {
|
||||||
malAnime.update((value) => {
|
malAnime.update((value) => {
|
||||||
value.my_list_status.status = malAnimeReturn.status
|
value.my_list_status.status = malAnimeReturn.status;
|
||||||
value.my_list_status.is_rewatching =
|
value.my_list_status.is_rewatching =
|
||||||
malAnimeReturn.is_rewatching
|
malAnimeReturn.is_rewatching;
|
||||||
value.my_list_status.score = malAnimeReturn.score
|
value.my_list_status.score = malAnimeReturn.score;
|
||||||
value.my_list_status.num_episodes_watched =
|
value.my_list_status.num_episodes_watched =
|
||||||
malAnimeReturn.num_episodes_watched
|
malAnimeReturn.num_episodes_watched;
|
||||||
value.my_list_status.num_times_rewatched =
|
value.my_list_status.num_times_rewatched =
|
||||||
malAnimeReturn.num_times_rewatched
|
malAnimeReturn.num_times_rewatched;
|
||||||
value.my_list_status.comments = malAnimeReturn.comments
|
value.my_list_status.comments = malAnimeReturn.comments;
|
||||||
return value
|
return value;
|
||||||
})
|
});
|
||||||
AddAnimeServiceToTable({
|
AddAnimeServiceToTable({
|
||||||
id: `m-${currentMalAnime.id}`,
|
id: `m-${currentMalAnime.id}`,
|
||||||
title: currentMalAnime.title,
|
title: currentMalAnime.title,
|
||||||
@ -257,9 +257,9 @@
|
|||||||
repeat: currentMalAnime.my_list_status
|
repeat: currentMalAnime.my_list_status
|
||||||
.num_times_rewatched,
|
.num_times_rewatched,
|
||||||
notes: currentMalAnime.my_list_status.comments,
|
notes: currentMalAnime.my_list_status.comments,
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (simklLoggedIn && currentSimklAnime.show.ids.simkl !== 0) {
|
if (simklLoggedIn && currentSimklAnime.show.ids.simkl !== 0) {
|
||||||
@ -281,12 +281,12 @@
|
|||||||
score: value.user_rating,
|
score: value.user_rating,
|
||||||
repeat: 0,
|
repeat: 0,
|
||||||
notes: "",
|
notes: "",
|
||||||
})
|
});
|
||||||
simklAnime.update((newValue) => {
|
simklAnime.update((newValue) => {
|
||||||
newValue = value
|
newValue = value;
|
||||||
return newValue
|
return newValue;
|
||||||
})
|
});
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentSimklAnime.user_rating !== submitData.rating) {
|
if (currentSimklAnime.user_rating !== submitData.rating) {
|
||||||
@ -305,12 +305,12 @@
|
|||||||
score: value.user_rating,
|
score: value.user_rating,
|
||||||
repeat: 0,
|
repeat: 0,
|
||||||
notes: "",
|
notes: "",
|
||||||
})
|
});
|
||||||
simklAnime.update((newValue) => {
|
simklAnime.update((newValue) => {
|
||||||
newValue = value
|
newValue = value;
|
||||||
return newValue
|
return newValue;
|
||||||
})
|
});
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentSimklAnime.status !== submitData.status.simkl) {
|
if (currentSimklAnime.status !== submitData.status.simkl) {
|
||||||
@ -329,27 +329,27 @@
|
|||||||
score: value.user_rating,
|
score: value.user_rating,
|
||||||
repeat: 0,
|
repeat: 0,
|
||||||
notes: "",
|
notes: "",
|
||||||
})
|
});
|
||||||
simklAnime.update((newValue) => {
|
simklAnime.update((newValue) => {
|
||||||
newValue = value
|
newValue = value;
|
||||||
return newValue
|
return newValue;
|
||||||
})
|
});
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
submitting.set(false)
|
submitting.set(false);
|
||||||
submitSuccess.set(true)
|
submitSuccess.set(true);
|
||||||
setTimeout(() => submitSuccess.set(false), 2000)
|
setTimeout(() => submitSuccess.set(false), 2000);
|
||||||
}
|
};
|
||||||
|
|
||||||
const deleteEntries = async () => {
|
const deleteEntries = async () => {
|
||||||
submitting.set(true)
|
submitting.set(true);
|
||||||
if (
|
if (
|
||||||
isAniListLoggedIn &&
|
isAniListLoggedIn &&
|
||||||
currentAniListAnime.data.MediaList.mediaId !== 0
|
currentAniListAnime.data.MediaList.mediaId !== 0
|
||||||
) {
|
) {
|
||||||
await AniListDeleteEntry(currentAniListAnime.data.MediaList.id)
|
await AniListDeleteEntry(currentAniListAnime.data.MediaList.id);
|
||||||
AddAnimeServiceToTable({
|
AddAnimeServiceToTable({
|
||||||
id: `a-${currentAniListAnime.data.MediaList.mediaId}`,
|
id: `a-${currentAniListAnime.data.MediaList.mediaId}`,
|
||||||
title,
|
title,
|
||||||
@ -361,10 +361,10 @@
|
|||||||
score: 0,
|
score: 0,
|
||||||
repeat: 0,
|
repeat: 0,
|
||||||
notes: "",
|
notes: "",
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
if (malLoggedIn && currentMalAnime.id !== 0) {
|
if (malLoggedIn && currentMalAnime.id !== 0) {
|
||||||
await DeleteMyAnimeListEntry(currentMalAnime.id)
|
await DeleteMyAnimeListEntry(currentMalAnime.id);
|
||||||
AddAnimeServiceToTable({
|
AddAnimeServiceToTable({
|
||||||
id: `m-${currentMalAnime.id}`,
|
id: `m-${currentMalAnime.id}`,
|
||||||
title: currentMalAnime.title,
|
title: currentMalAnime.title,
|
||||||
@ -376,10 +376,10 @@
|
|||||||
score: 0,
|
score: 0,
|
||||||
repeat: 0,
|
repeat: 0,
|
||||||
notes: "",
|
notes: "",
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
if (simklLoggedIn && currentSimklAnime.show.ids.simkl !== 0) {
|
if (simklLoggedIn && currentSimklAnime.show.ids.simkl !== 0) {
|
||||||
await SimklSyncRemove(currentSimklAnime)
|
await SimklSyncRemove(currentSimklAnime);
|
||||||
AddAnimeServiceToTable({
|
AddAnimeServiceToTable({
|
||||||
id: `s-${currentSimklAnime.show.ids.simkl}`,
|
id: `s-${currentSimklAnime.show.ids.simkl}`,
|
||||||
title: currentSimklAnime.show.title,
|
title: currentSimklAnime.show.title,
|
||||||
@ -391,12 +391,12 @@
|
|||||||
score: 0,
|
score: 0,
|
||||||
repeat: 0,
|
repeat: 0,
|
||||||
notes: "",
|
notes: "",
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
submitting.set(false)
|
submitting.set(false);
|
||||||
submitSuccess.set(true)
|
submitSuccess.set(true);
|
||||||
setTimeout(() => submitSuccess.set(false), 2000)
|
setTimeout(() => submitSuccess.set(false), 2000);
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<form on:submit|preventDefault={handleSubmit} class="container pt-3 pb-10">
|
<form on:submit|preventDefault={handleSubmit} class="container pt-3 pb-10">
|
||||||
@ -431,8 +431,11 @@
|
|||||||
id="episodes"
|
id="episodes"
|
||||||
class="border {currentAniListAnime.data.MediaList
|
class="border {currentAniListAnime.data.MediaList
|
||||||
.progress < 0 ||
|
.progress < 0 ||
|
||||||
currentAniListAnime.data.MediaList.progress >
|
(currentAniListAnime.data.MediaList.media.episodes >
|
||||||
currentAniListAnime.data.MediaList.media.episodes
|
0 &&
|
||||||
|
currentAniListAnime.data.MediaList.progress >
|
||||||
|
currentAniListAnime.data.MediaList.media
|
||||||
|
.episodes)
|
||||||
? 'border-red-500 border-[2px] text-rose-300 focus:ring-red-500 focus:border-red-500'
|
? 'border-red-500 border-[2px] text-rose-300 focus:ring-red-500 focus:border-red-500'
|
||||||
: 'border-gray-500 text-white focus:ring-blue-500 focus:border-blue-500'} text-sm rounded-lg block w-24 p-2.5 bg-gray-600 placeholder-gray-400"
|
: 'border-gray-500 text-white focus:ring-blue-500 focus:border-blue-500'} text-sm rounded-lg block w-24 p-2.5 bg-gray-600 placeholder-gray-400"
|
||||||
bind:value={currentAniListAnime.data.MediaList.progress}
|
bind:value={currentAniListAnime.data.MediaList.progress}
|
||||||
@ -661,8 +664,8 @@
|
|||||||
focus:ring-gray-700 font-medium rounded-lg text-sm px-5 py-2.5 me-2 mb-2 dark:bg-gray-800 dark:text-white
|
focus:ring-gray-700 font-medium rounded-lg text-sm px-5 py-2.5 me-2 mb-2 dark:bg-gray-800 dark:text-white
|
||||||
dark:border-gray-600 dark:hover:bg-gray-700 dark:hover:border-gray-600 dark:focus:ring-gray-700"
|
dark:border-gray-600 dark:hover:bg-gray-700 dark:hover:border-gray-600 dark:focus:ring-gray-700"
|
||||||
on:click={async () => {
|
on:click={async () => {
|
||||||
await CheckIfAniListLoggedInAndLoadWatchList()
|
await CheckIfAniListLoggedInAndLoadWatchList();
|
||||||
return push("/")
|
return push("/");
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Go Home
|
Go Home
|
||||||
|
@ -0,0 +1,10 @@
|
|||||||
|
// vite.config.ts
|
||||||
|
import { defineConfig } from "file:///home/nymusicman/Code/AniTrack/frontend/node_modules/vite/dist/node/index.js";
|
||||||
|
import { svelte } from "file:///home/nymusicman/Code/AniTrack/frontend/node_modules/@sveltejs/vite-plugin-svelte/src/index.js";
|
||||||
|
var vite_config_default = defineConfig({
|
||||||
|
plugins: [svelte()]
|
||||||
|
});
|
||||||
|
export {
|
||||||
|
vite_config_default as default
|
||||||
|
};
|
||||||
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvaG9tZS9ueW11c2ljbWFuL0NvZGUvQW5pVHJhY2svZnJvbnRlbmRcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9ob21lL255bXVzaWNtYW4vQ29kZS9BbmlUcmFjay9mcm9udGVuZC92aXRlLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vaG9tZS9ueW11c2ljbWFuL0NvZGUvQW5pVHJhY2svZnJvbnRlbmQvdml0ZS5jb25maWcudHNcIjtpbXBvcnQge2RlZmluZUNvbmZpZ30gZnJvbSAndml0ZSdcbmltcG9ydCB7c3ZlbHRlfSBmcm9tICdAc3ZlbHRlanMvdml0ZS1wbHVnaW4tc3ZlbHRlJ1xuXG4vLyBodHRwczovL3ZpdGVqcy5kZXYvY29uZmlnL1xuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcbiAgcGx1Z2luczogW3N2ZWx0ZSgpXVxufSlcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBdVMsU0FBUSxvQkFBbUI7QUFDbFUsU0FBUSxjQUFhO0FBR3JCLElBQU8sc0JBQVEsYUFBYTtBQUFBLEVBQzFCLFNBQVMsQ0FBQyxPQUFPLENBQUM7QUFDcEIsQ0FBQzsiLAogICJuYW1lcyI6IFtdCn0K
|
@ -231,6 +231,8 @@ export namespace main {
|
|||||||
background: background;
|
background: background;
|
||||||
related_anime: relatedAnime;
|
related_anime: relatedAnime;
|
||||||
recommendations: recommendations;
|
recommendations: recommendations;
|
||||||
|
// Go type: struct { NumListUsers int "json:\"num_list_users\" ts_type:\"numListUsers\""; Status struct { Watching string "json:\"watching\" ts_type:\"watching\""; Completed string "json:\"completed\" ts_type:\"completed\""; OnHold string "json:\"on_hold\" ts_type:\"onHold\""; Dropped string "json:\"dropped\" ts_type:\"dropped\""; PlanToWatch string "json:\"plan_to_watch\" ts_type:\"planToWatch\"" } }
|
||||||
|
Statistics: any;
|
||||||
|
|
||||||
static createFrom(source: any = {}) {
|
static createFrom(source: any = {}) {
|
||||||
return new MALAnime(source);
|
return new MALAnime(source);
|
||||||
@ -268,6 +270,7 @@ export namespace main {
|
|||||||
this.background = source["background"];
|
this.background = source["background"];
|
||||||
this.related_anime = source["related_anime"];
|
this.related_anime = source["related_anime"];
|
||||||
this.recommendations = source["recommendations"];
|
this.recommendations = source["recommendations"];
|
||||||
|
this.Statistics = this.convertValues(source["Statistics"], Object);
|
||||||
}
|
}
|
||||||
|
|
||||||
convertValues(a: any, classs: any, asMap: boolean = false): any {
|
convertValues(a: any, classs: any, asMap: boolean = false): any {
|
||||||
|
22
go.mod
22
go.mod
@ -1,13 +1,11 @@
|
|||||||
module AniTrack
|
module AniTrack
|
||||||
|
|
||||||
go 1.21
|
go 1.23
|
||||||
|
|
||||||
toolchain go1.21.11
|
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/99designs/keyring v1.2.2
|
github.com/99designs/keyring v1.2.2
|
||||||
github.com/tidwall/gjson v1.17.3
|
github.com/tidwall/gjson v1.18.0
|
||||||
github.com/wailsapp/wails/v2 v2.9.1
|
github.com/wailsapp/wails/v2 v2.9.2
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
@ -35,17 +33,17 @@ require (
|
|||||||
github.com/rivo/uniseg v0.4.7 // indirect
|
github.com/rivo/uniseg v0.4.7 // indirect
|
||||||
github.com/samber/lo v1.47.0 // indirect
|
github.com/samber/lo v1.47.0 // indirect
|
||||||
github.com/tidwall/match v1.1.1 // indirect
|
github.com/tidwall/match v1.1.1 // indirect
|
||||||
github.com/tidwall/pretty v1.2.0 // indirect
|
github.com/tidwall/pretty v1.2.1 // indirect
|
||||||
github.com/tkrajina/go-reflector v0.5.6 // indirect
|
github.com/tkrajina/go-reflector v0.5.8 // indirect
|
||||||
github.com/valyala/bytebufferpool v1.0.0 // indirect
|
github.com/valyala/bytebufferpool v1.0.0 // indirect
|
||||||
github.com/valyala/fasttemplate v1.2.2 // indirect
|
github.com/valyala/fasttemplate v1.2.2 // indirect
|
||||||
github.com/wailsapp/go-webview2 v1.0.16 // indirect
|
github.com/wailsapp/go-webview2 v1.0.16 // indirect
|
||||||
github.com/wailsapp/mimetype v1.4.1 // indirect
|
github.com/wailsapp/mimetype v1.4.1 // indirect
|
||||||
golang.org/x/crypto v0.26.0 // indirect
|
golang.org/x/crypto v0.28.0 // indirect
|
||||||
golang.org/x/net v0.28.0 // indirect
|
golang.org/x/net v0.30.0 // indirect
|
||||||
golang.org/x/sys v0.25.0 // indirect
|
golang.org/x/sys v0.26.0 // indirect
|
||||||
golang.org/x/term v0.24.0 // indirect
|
golang.org/x/term v0.25.0 // indirect
|
||||||
golang.org/x/text v0.18.0 // indirect
|
golang.org/x/text v0.19.0 // indirect
|
||||||
)
|
)
|
||||||
|
|
||||||
// replace github.com/wailsapp/wails/v2 v2.9.1 => /home/nymusicman/go/pkg/mod
|
// replace github.com/wailsapp/wails/v2 v2.9.1 => /home/nymusicman/go/pkg/mod
|
||||||
|
35
go.sum
35
go.sum
@ -66,14 +66,15 @@ github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
|
|||||||
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
|
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
|
||||||
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
||||||
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||||
github.com/tidwall/gjson v1.17.3 h1:bwWLZU7icoKRG+C+0PNwIKC6FCJO/Q3p2pZvuP0jN94=
|
github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY=
|
||||||
github.com/tidwall/gjson v1.17.3/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
|
github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
|
||||||
github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA=
|
github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA=
|
||||||
github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM=
|
github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM=
|
||||||
github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs=
|
|
||||||
github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
|
github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
|
||||||
github.com/tkrajina/go-reflector v0.5.6 h1:hKQ0gyocG7vgMD2M3dRlYN6WBBOmdoOzJ6njQSepKdE=
|
github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4=
|
||||||
github.com/tkrajina/go-reflector v0.5.6/go.mod h1:ECbqLgccecY5kPmPmXg1MrHW585yMcDkVl6IvJe64T4=
|
github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
|
||||||
|
github.com/tkrajina/go-reflector v0.5.8 h1:yPADHrwmUbMq4RGEyaOUpz2H90sRsETNVpjzo3DLVQQ=
|
||||||
|
github.com/tkrajina/go-reflector v0.5.8/go.mod h1:ECbqLgccecY5kPmPmXg1MrHW585yMcDkVl6IvJe64T4=
|
||||||
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
|
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
|
||||||
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
|
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
|
||||||
github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo=
|
github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo=
|
||||||
@ -82,27 +83,27 @@ github.com/wailsapp/go-webview2 v1.0.16 h1:wffnvnkkLvhRex/aOrA3R7FP7rkvOqL/bir1b
|
|||||||
github.com/wailsapp/go-webview2 v1.0.16/go.mod h1:Uk2BePfCRzttBBjFrBmqKGJd41P6QIHeV9kTgIeOZNo=
|
github.com/wailsapp/go-webview2 v1.0.16/go.mod h1:Uk2BePfCRzttBBjFrBmqKGJd41P6QIHeV9kTgIeOZNo=
|
||||||
github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs=
|
github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs=
|
||||||
github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o=
|
github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o=
|
||||||
github.com/wailsapp/wails/v2 v2.9.1 h1:irsXnoQrCpeKzKTYZ2SUVlRRyeMR6I0vCO9Q1cvlEdc=
|
github.com/wailsapp/wails/v2 v2.9.2 h1:Xb5YRTos1w5N7DTMyYegWaGukCP2fIaX9WF21kPPF2k=
|
||||||
github.com/wailsapp/wails/v2 v2.9.1/go.mod h1:7maJV2h+Egl11Ak8QZN/jlGLj2wg05bsQS+ywJPT0gI=
|
github.com/wailsapp/wails/v2 v2.9.2/go.mod h1:uehvlCwJSFcBq7rMCGfk4rxca67QQGsbg5Nm4m9UnBs=
|
||||||
golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw=
|
golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw=
|
||||||
golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54=
|
golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U=
|
||||||
golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||||
golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE=
|
golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4=
|
||||||
golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg=
|
golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU=
|
||||||
golang.org/x/sys v0.0.0-20200810151505-1b9f1253b3ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200810151505-1b9f1253b3ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34=
|
golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo=
|
||||||
golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||||
golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM=
|
golang.org/x/term v0.25.0 h1:WtHI/ltw4NvSUig5KARz9h521QvRC8RmF/cuYqifU24=
|
||||||
golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8=
|
golang.org/x/term v0.25.0/go.mod h1:RPyXicDX+6vLxogjjRxjgD2TKtmAO6NZBsBRfrOLu7M=
|
||||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224=
|
golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM=
|
||||||
golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
|
golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b h1:QRR6H1YWRnHb4Y/HeNFCTJLFVxaq6wH4YuVdsUOr75U=
|
gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b h1:QRR6H1YWRnHb4Y/HeNFCTJLFVxaq6wH4YuVdsUOr75U=
|
||||||
gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
Loading…
Reference in New Issue
Block a user