public override async Task <bool> Verify(Archive a) { try { var gameMeta = GameRegistry.GetByMO2ArchiveName(GameName) ?? GameRegistry.GetByNexusName(GameName); if (gameMeta == null) { return(false); } var game = gameMeta.Game; if (!int.TryParse(ModID, out var modID)) { return(false); } var client = await NexusApiClient.Get(); var modFiles = await client.GetModFiles(game, modID); if (!ulong.TryParse(FileID, out var fileID)) { return(false); } var found = modFiles.files .FirstOrDefault(file => file.file_id == fileID && file.category_name != null); return(found != null); } catch (Exception ex) { Utils.Log($"{ModName} - {GameName} - {ModID} - {FileID} - Error getting Nexus download URL - {ex}"); return(false); } }
public async Task <AbstractDownloadState> GetDownloaderState(dynamic archiveINI) { var gameName = (string)archiveINI?.General?.gameName; var gameFile = (string)archiveINI?.General?.gameFile; if (gameFile == null || gameFile == null) { return(null); } var game = GameRegistry.GetByMO2ArchiveName(gameName); if (game == null) { return(null); } var path = game.GameLocation(); var filePath = Path.Combine(path, gameFile); if (!File.Exists(filePath)) { return(null); } var hash = filePath.FileHashCached(); return(new State { Game = GameRegistry.GetByMO2ArchiveName(gameName).Game, GameFile = gameFile, Hash = hash, }); }
public async Task <AbstractDownloadState> GetDownloaderState(dynamic archiveINI) { var general = archiveINI?.General; if (general.modID != null && general.fileID != null && general.gameName != null) { var name = (string)general.gameName; var gameMeta = GameRegistry.GetByMO2ArchiveName(name); var game = gameMeta != null?GameRegistry.GetByMO2ArchiveName(name).Game : GameRegistry.GetByNexusName(name).Game; var client = await NexusApiClient.Get(); var info = await client.GetModInfo(game, general.modID); return(new State { GameName = general.gameName, FileID = general.fileID, ModID = general.modID, Version = general.version ?? "0.0.0.0", Author = info.author, UploadedBy = info.uploaded_by, UploaderProfile = info.uploaded_users_profile_url, ModName = info.name, SlideShowPic = info.picture_url, NexusURL = NexusApiUtils.GetModURL(game, info.mod_id), Summary = info.summary, Adult = info.contains_adult_content }); } return(null); }
public static string ConvertGameName(string gameName) { if (Regex.IsMatch(gameName, @"^[^a-z\s]+\.[^a-z\s]+$")) { return(gameName); } return(GameRegistry.GetByMO2ArchiveName(gameName)?.NexusName ?? gameName.ToLower()); }
public static string ConvertGameName(string gameName) { return(GameRegistry.GetByMO2ArchiveName(gameName)?.NexusName ?? gameName.ToLower()); }