fix(backfill): map Plex username to Tautulli user ID before fetching history
Tautulli get_history requires internal user_id, not Plex ID. Now queries get_users first, matches by username/email/friendly_name, then uses matched user's ID for history fetch.
This commit is contained in:
@@ -266,6 +266,34 @@ async function backfillUserHistory(user: {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Map Plex username to Tautulli user ID
|
||||||
|
const usersResponse = await axios.get(`${TAUTULLI_URL}/api/v2`, {
|
||||||
|
params: {
|
||||||
|
apikey: TAUTULLI_API_KEY,
|
||||||
|
cmd: "get_users",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const tautulliUsers = usersResponse.data?.response?.data || [];
|
||||||
|
const tautulliUser = tautulliUsers.find(
|
||||||
|
(u: any) =>
|
||||||
|
u.username?.toLowerCase() === user.plexUsername.toLowerCase() ||
|
||||||
|
u.email?.toLowerCase() === user.plexUsername.toLowerCase() ||
|
||||||
|
u.friendly_name?.toLowerCase() === user.plexUsername.toLowerCase(),
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!tautulliUser) {
|
||||||
|
console.log(
|
||||||
|
`Tautulli user not found for Plex username ${user.plexUsername}, skipping backfill`,
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const tautulliUserId = tautulliUser.user_id;
|
||||||
|
console.log(
|
||||||
|
`Mapped ${user.plexUsername} to Tautulli user ID ${tautulliUserId}`,
|
||||||
|
);
|
||||||
|
|
||||||
// Calculate 30 days ago
|
// Calculate 30 days ago
|
||||||
const thirtyDaysAgo = new Date();
|
const thirtyDaysAgo = new Date();
|
||||||
thirtyDaysAgo.setDate(thirtyDaysAgo.getDate() - 30);
|
thirtyDaysAgo.setDate(thirtyDaysAgo.getDate() - 30);
|
||||||
@@ -276,7 +304,7 @@ async function backfillUserHistory(user: {
|
|||||||
params: {
|
params: {
|
||||||
apikey: TAUTULLI_API_KEY,
|
apikey: TAUTULLI_API_KEY,
|
||||||
cmd: "get_history",
|
cmd: "get_history",
|
||||||
user_id: user.plexId,
|
user_id: tautulliUserId,
|
||||||
start_date: startDate,
|
start_date: startDate,
|
||||||
length: 1000,
|
length: 1000,
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user