diff --git a/Jellyfin.Plugin.AnilistSync/Configuration/configPage.html b/Jellyfin.Plugin.AnilistSync/Configuration/configPage.html
index 8deb0a4..c8856a2 100644
--- a/Jellyfin.Plugin.AnilistSync/Configuration/configPage.html
+++ b/Jellyfin.Plugin.AnilistSync/Configuration/configPage.html
@@ -24,21 +24,38 @@
class="raised block">Create an account
-
Logging In
-
+
Logging In...
+
Please visit:
+
+
+
+ Copy the authorization code from Anilist into the box below
+
+
+
+
+ class="raised button-submit block">
+
Submit
+
+ class="raised button-cancel block">
+
Cancel
+
-
Hello again USERNAME!
+ Hello again USERNAME!
Scrobbling options:
@@ -74,24 +91,36 @@
guid: "18c2a8ea-afa0-4a0b-aa94-072b492ab80b",
onLoginProcess: false,
configCache: [],
- loginTimer: null,
- remainingTimer: null,
- finish: null,
userSelector: document.querySelector('#user-selector'),
loginButtonContainer: document.querySelector('#loginButtonContainer'),
configOptionsContainer: document.querySelector('#configOptionsContainer'),
- simklName: document.querySelector('#simklName'),
- loginSecondsRemaining: document.querySelector('#loginSecondsRemaining'),
- loginText: document.querySelector('#loginText'),
- loginPin: document.querySelector('#loginPin'),
+ anilistName: document.querySelector('#anilistName'),
loggingIn: document.querySelector('#loggingIn'),
+ copyText: document.querySelector('#copyText'),
+ authCopy: document.querySelector('#authCopy'),
populateUsers: async function (users) {
users.forEach(function (user) {
AnilistSyncConfig.userSelector.append(new Option(user.Name, user.Id));
});
},
+ openAnilistAuth: async function () {
+ window.open(authCopy.innerText);
+ },
+ copyLink: async function () {
+ const area = document.createElement('textarea');
+ authCopy.appendChild(area);
+ area.value = authCopy.innerText;
+ console.log(area.value);
+ area.select();
+ document.execCommand('copy');
+
+ copyText.innerText = 'Copied'
+ Dashboard.alert('Copied link');
+
+ authCopy.removeChild(area);
+ },
loadConfig: async function (user, config) {
if (config != null) {
this.configCache = config;
@@ -136,7 +165,7 @@
const userSettings = await AnilistAPI.getUserSettings(userConfig.Id);
console.log("User");
console.log(userSettings);
- AnilistSyncConfig.simklName.innerText = userSettings.data.Viewer.name;
+ AnilistSyncConfig.anilistName.innerText = userSettings.data.Viewer.name;
for (const key in userConfig) {
const chk = document.querySelector("#configOptionsContainer input[type=checkbox]#" + key);
@@ -152,9 +181,6 @@
},
startLoginProcess: async function () {
this.onLoginProcess = true;
- AnilistAPI.openAnilistAuth();
-
- AnilistSyncConfig.loginText.innerHTML = 'Please log in and authorize the application.';
AnilistSyncConfig.loginButtonContainer.setAttribute('hidden', '');
AnilistSyncConfig.loggingIn.removeAttribute('hidden');
@@ -221,9 +247,6 @@
}
var AnilistAPI = {
- openAnilistAuth: function () {
- window.open('https://anilist.co/api/v2/oauth/authorize?client_id=5659&redirect_uri=https://anilist.co/api/v2/oauth/pin&response_type=code')
- },
getToken: function (user_code) {
const request = {
url: window.ApiClient.getUrl('AnilistSync/oauth/token/' + user_code),
diff --git a/Jellyfin.Plugin.AnilistSync/Services/PlaybackScrobbler.cs b/Jellyfin.Plugin.AnilistSync/Services/PlaybackScrobbler.cs
index ba39332..4a55bd6 100644
--- a/Jellyfin.Plugin.AnilistSync/Services/PlaybackScrobbler.cs
+++ b/Jellyfin.Plugin.AnilistSync/Services/PlaybackScrobbler.cs
@@ -77,7 +77,14 @@ namespace Jellyfin.Plugin.AnilistSync.Services
{
return false;
}
- return true;
+
+ // Check if movie or episode then check against user config
+ return playbackProgress.MediaInfo.Type switch
+ {
+ nameof(Movie) => userConfig.ScrobbleMovies,
+ nameof(Episode) => userConfig.ScrobbleShows,
+ _ => false
+ };
}
private async void OnPlaybackProgress(object? sessions, PlaybackProgressEventArgs eventArgs)