mirror of
https://github.com/hydralauncher/hydra.git
synced 2025-03-09 15:40:26 +00:00
54 lines
1.4 KiB
TypeScript
54 lines
1.4 KiB
TypeScript
import { DownloadManager, RepacksManager, startMainLoop } from "./services";
|
|
import {
|
|
downloadQueueRepository,
|
|
repackRepository,
|
|
userPreferencesRepository,
|
|
} from "./repository";
|
|
import { UserPreferences } from "./entity";
|
|
import { RealDebridClient } from "./services/real-debrid";
|
|
import { fetchDownloadSourcesAndUpdate } from "./helpers";
|
|
import { publishNewRepacksNotifications } from "./services/notifications";
|
|
import { MoreThan } from "typeorm";
|
|
|
|
startMainLoop();
|
|
|
|
const loadState = async (userPreferences: UserPreferences | null) => {
|
|
await RepacksManager.updateRepacks();
|
|
|
|
import("./events");
|
|
|
|
if (userPreferences?.realDebridApiToken)
|
|
RealDebridClient.authorize(userPreferences?.realDebridApiToken);
|
|
|
|
const [nextQueueItem] = await downloadQueueRepository.find({
|
|
order: {
|
|
id: "DESC",
|
|
},
|
|
relations: {
|
|
game: true,
|
|
},
|
|
});
|
|
|
|
if (nextQueueItem?.game.status === "active")
|
|
DownloadManager.startDownload(nextQueueItem.game);
|
|
|
|
const now = new Date();
|
|
|
|
fetchDownloadSourcesAndUpdate().then(async () => {
|
|
const newRepacksCount = await repackRepository.count({
|
|
where: {
|
|
createdAt: MoreThan(now),
|
|
},
|
|
});
|
|
|
|
if (newRepacksCount > 0) publishNewRepacksNotifications(newRepacksCount);
|
|
});
|
|
};
|
|
|
|
userPreferencesRepository
|
|
.findOne({
|
|
where: { id: 1 },
|
|
})
|
|
.then((userPreferences) => {
|
|
loadState(userPreferences);
|
|
});
|