private static void AddPluginToPluginPackageInfos(IMinerPlugin plugin) { var version = new MajorMinorVersion(plugin.Version.Major, plugin.Version.Minor); string pluginPackageURL = null; if (version.major == 3) { pluginPackageURL = "https://github.com/nicehash/NHM_MinerPluginsDownloads/releases/download/v3.x/" + GetPluginPackageName(plugin); } else if (version.major == 4) { pluginPackageURL = "https://github.com/nicehash/NHM_MinerPluginsDownloads/releases/download/v4.x/" + GetPluginPackageName(plugin); } else { //throw new Exception("Plugin version not supported"); } string minerPackageURL = null; if (plugin is IMinerBinsSource binsSource) { minerPackageURL = binsSource.GetMinerBinsUrlsForPlugin().FirstOrDefault(); } var binaryVersion = "N/A"; // TODO binary version if (plugin is IGetMinerBinaryVersion binVersionGetter) { binaryVersion = binVersionGetter.GetMinerBinaryVersion(); } PluginMetaInfo pluginMetaInfo = null; if (plugin is IGetPluginMetaInfo pluginMetaInfoGetter) { pluginMetaInfo = pluginMetaInfoGetter.GetPluginMetaInfo(); } if (pluginMetaInfo == null) { return; } var packageInfo = new PluginPackageInfoForJson { PluginUUID = plugin.PluginUUID, PluginAuthor = "*****@*****.**", PluginName = plugin.Name, PluginVersion = version, PluginPackageURL = pluginPackageURL, MinerPackageURL = minerPackageURL, SupportedDevicesAlgorithms = TransformToPluginPackageInfoSupportedDevicesAlgorithms(pluginMetaInfo.SupportedDevicesAlgorithms), // TODO enhance this with the bins version PluginDescription = $"Miner Binary Version '{binaryVersion}'.\n\n" + pluginMetaInfo.PluginDescription }; PluginPackageInfos.Add(packageInfo); }
private static PluginPackageInfoForJson ToPluginToPluginPackageInfos(IMinerPlugin plugin) { var version = new MajorMinorVersion(plugin.Version.Major, plugin.Version.Minor); if (!Checkers.IsMajorVersionSupported(version.major)) { throw new Exception($"Plugin version '{version.major}' not supported. Make sure you add the download link for this version"); } string minerPackageURL = null; if (plugin is IMinerBinsSource binsSource) { minerPackageURL = binsSource.GetMinerBinsUrlsForPlugin().FirstOrDefault(); } var binaryVersion = "N/A"; // TODO binary version if (plugin is IGetMinerBinaryVersion binVersionGetter) { binaryVersion = binVersionGetter.GetMinerBinaryVersion(); } PluginMetaInfo pluginMetaInfo = null; if (plugin is IGetPluginMetaInfo pluginMetaInfoGetter) { pluginMetaInfo = pluginMetaInfoGetter.GetPluginMetaInfo(); } if (pluginMetaInfo == null) { return(null); } var packagePassword = plugin is IGetBinsPackagePassword p ? p.BinsPackagePassword : null; var packageInfo = new PluginPackageInfoForJson { PluginUUID = plugin.PluginUUID, PluginAuthor = "*****@*****.**", PluginName = plugin.Name, PluginVersion = version, PluginPackageURL = $"https://github.com/nicehash/NHM_MinerPluginsDownloads/releases/download/v{version.major}.x/" + GetPluginPackageName(plugin), MinerPackageURL = minerPackageURL, SupportedDevicesAlgorithms = TransformToPluginPackageInfoSupportedDevicesAlgorithms(pluginMetaInfo.SupportedDevicesAlgorithms), // TODO enhance this with the bins version PluginDescription = $"Miner Binary Version '{binaryVersion}'.\n\n" + pluginMetaInfo.PluginDescription, PackagePassword = packagePassword }; return(packageInfo); }
private static PluginPackageInfoForJson ToPluginToPluginPackageInfos(IMinerPlugin plugin) { var version = new MajorMinorVersion(plugin.Version.Major, plugin.Version.Minor); if (!Checkers.IsMajorVersionSupported(version.major)) { throw new Exception($"Plugin version '{version.major}' not supported. Make sure you add the download link for this version"); } string minerPackageURL = null; if (plugin is IMinerBinsSource binsSource) { minerPackageURL = binsSource.GetMinerBinsUrlsForPlugin().FirstOrDefault(); } string binaryHash = null; if (minerPackageURL != null) { var filepath = GetTemporaryWorkFolder($"{plugin.PluginUUID}.tmp"); Logger.Info("MinerPluginsPacker", $"Calculating hash for {plugin.Name}-{plugin.PluginUUID}"); using var myWebClient = new WebClient(); myWebClient.DownloadFile(minerPackageURL, filepath); binaryHash = FileHelpers.GetFileSHA256Checksum(filepath); File.Delete(filepath); } var pluginZipFileName = GetPluginPackageName(plugin); var dllPackageZip = GetPluginsPackagesPath(pluginZipFileName); string pluginPackageHash = FileHelpers.GetFileSHA256Checksum(dllPackageZip); var binaryVersion = "N/A"; // TODO binary version if (plugin is IGetMinerBinaryVersion binVersionGetter) { binaryVersion = binVersionGetter.GetMinerBinaryVersion(); } PluginMetaInfo pluginMetaInfo = null; if (plugin is IGetPluginMetaInfo pluginMetaInfoGetter) { pluginMetaInfo = pluginMetaInfoGetter.GetPluginMetaInfo(); } if (pluginMetaInfo == null) { return(null); } var packagePassword = plugin is IGetBinsPackagePassword p ? p.BinsPackagePassword : null; var packageInfo = new PluginPackageInfoForJson { PluginUUID = plugin.PluginUUID, BinaryPackageHash = binaryHash, PluginPackageHash = pluginPackageHash, PluginAuthor = "*****@*****.**", PluginName = plugin.Name, PluginVersion = version, PluginPackageURL = $"https://github.com/nicehash/NHM_MinerPluginsDownloads/releases/download/v{version.major}.x/" + GetPluginPackageName(plugin), MinerPackageURL = minerPackageURL, SupportedDevicesAlgorithms = TransformToPluginPackageInfoSupportedDevicesAlgorithms(pluginMetaInfo.SupportedDevicesAlgorithms), // TODO enhance this with the bins version PluginDescription = $"Miner Binary Version '{binaryVersion}'.\n\n" + pluginMetaInfo.PluginDescription, PackagePassword = packagePassword }; return(packageInfo); }