Hoard lichess stats
This commit is contained in:
@@ -50,4 +50,9 @@ export default () => ({
|
||||
mailgun: {
|
||||
hooliKey: process.env.MAILGUN_SEND_KEY_HOOLI ?? '',
|
||||
},
|
||||
thirdPartyServices: {
|
||||
lichess: {
|
||||
token: process.env.SVC_LICHESS_TOKEN ?? '',
|
||||
},
|
||||
},
|
||||
});
|
||||
|
@@ -7,7 +7,10 @@ import { MinioService } from 'src/minio/minio.service';
|
||||
@Injectable()
|
||||
export class HoardingService {
|
||||
private readonly logger: Logger = new Logger(HoardingService.name);
|
||||
constructor(public readonly minioService: MinioService) {
|
||||
constructor(
|
||||
public readonly minioService: MinioService,
|
||||
private readonly configService: ConfigService,
|
||||
) {
|
||||
this.hoardChessStats();
|
||||
}
|
||||
|
||||
@@ -23,6 +26,36 @@ export class HoardingService {
|
||||
} catch (e) {
|
||||
this.logger.error(e);
|
||||
}
|
||||
try {
|
||||
await this.hoardLichessStats('sentientcrouton');
|
||||
} catch (e) {
|
||||
this.logger.error(e);
|
||||
}
|
||||
}
|
||||
|
||||
async hoardLichessStats(user: string) {
|
||||
if (!this.configService.get('thirdPartyServices.lichess.token')) {
|
||||
this.logger.error('No lichess token found');
|
||||
return;
|
||||
}
|
||||
const token = this.configService.get('thirdPartyServices.lichess.token');
|
||||
this.logger.log(`Hoarding lichess stats for ${user}`);
|
||||
const lichessState = (id: string) => `https://lichess.org/api/user/${id}`;
|
||||
const stats = await axios.get(lichessState(user), {
|
||||
headers: {
|
||||
Authorization: `Bearer ${token}`,
|
||||
},
|
||||
});
|
||||
await this.minioService.uploadBuffer(
|
||||
this.minioService.defaultBucketName,
|
||||
`hoarding/lichess-stats/${user}/${new Date().getTime()}-${user}.json`,
|
||||
Buffer.from(
|
||||
JSON.stringify({
|
||||
time: new Date().getTime(),
|
||||
data: stats.data,
|
||||
}),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
async hoardUserChessStats(user: string) {
|
||||
|
Reference in New Issue
Block a user