mirror of
https://github.com/sct/overseerr.git
synced 2025-09-17 17:24:35 +02:00

* feat: refresh token schedule fix #3861 * fix(i18n): add i18n message * refactor(plextv): use randomUUID crypto instead custom function
38 lines
930 B
TypeScript
38 lines
930 B
TypeScript
import PlexTvAPI from '@server/api/plextv';
|
|
import { getRepository } from '@server/datasource';
|
|
import { User } from '@server/entity/User';
|
|
import logger from '@server/logger';
|
|
|
|
class RefreshToken {
|
|
public async run() {
|
|
const userRepository = getRepository(User);
|
|
|
|
const users = await userRepository
|
|
.createQueryBuilder('user')
|
|
.addSelect('user.plexToken')
|
|
.where("user.plexToken != ''")
|
|
.getMany();
|
|
|
|
for (const user of users) {
|
|
await this.refreshUserToken(user);
|
|
}
|
|
}
|
|
|
|
private async refreshUserToken(user: User) {
|
|
if (!user.plexToken) {
|
|
logger.warn('Skipping user refresh token for user without plex token', {
|
|
label: 'Plex Refresh Token',
|
|
user: user.displayName,
|
|
});
|
|
return;
|
|
}
|
|
|
|
const plexTvApi = new PlexTvAPI(user.plexToken);
|
|
plexTvApi.pingToken();
|
|
}
|
|
}
|
|
|
|
const refreshToken = new RefreshToken();
|
|
|
|
export default refreshToken;
|