public void SetClientAddonChannelType(WowClientType clientType, AddonChannelType channelType) { var preferenceKey = GetClientDefaultAddonChannelKey(clientType); SetPreference(preferenceKey, channelType.ToString()); _analyticsService.TrackUserAction("WowUp", $"ClientDefaultChannel|{clientType}", channelType.ToString()); }
public Task Scan( WowClientType clientType, AddonChannelType addonChannelType, IEnumerable <AddonFolder> addonFolder) { return(Task.CompletedTask); }
private Addon GetAddon( WowClientType clientType, AddonChannelType addonChannelType, CurseScanResult scanResult) { var currentVersion = scanResult.ExactMatch.File; var authors = string.Join(", ", scanResult.SearchResult.Authors.Select(author => author.Name)); var folderList = string.Join(",", scanResult.ExactMatch.File.Modules.Select(m => m.Foldername)); var latestVersion = GetLatestFiles(scanResult.SearchResult, clientType).First(); return(new Addon { Author = string.Join(", ", scanResult.SearchResult.Authors.Select(author => author.Name)), Name = scanResult.SearchResult.Name, ChannelType = addonChannelType, AutoUpdateEnabled = false, ClientType = clientType, DownloadUrl = latestVersion.DownloadUrl, ExternalUrl = scanResult.SearchResult.WebsiteUrl, ExternalId = scanResult.SearchResult.Id.ToString(), FolderName = scanResult.AddonFolder.Name, GameVersion = currentVersion.GameVersion.FirstOrDefault(), InstalledAt = DateTime.Now, InstalledFolders = folderList, InstalledVersion = currentVersion.DisplayName, IsIgnored = false, LatestVersion = latestVersion.DisplayName, ProviderName = Name, ThumbnailUrl = GetThumbnailUrl(scanResult.SearchResult) }); }
public Task Scan( WowClientType clientType, AddonChannelType addonChannelType, IEnumerable <AddonFolder> addonFolders) { Log.Debug($"{Name} Scanning {addonFolders.Count()} addons"); return(Task.CompletedTask); }
public async Task Scan( WowClientType clientType, AddonChannelType addonChannelType, IEnumerable <AddonFolder> addonFolders) { Log.Debug($"{Name} Scanning {addonFolders.Count()} addons"); var addons = await GetAllAddons(clientType); foreach (var addonFolder in addonFolders) { TukUiAddon addon = null; if (!string.IsNullOrEmpty(addonFolder.Toc.TukUiProjectId)) { addon = addons.FirstOrDefault(a => a.Id == addonFolder.Toc.TukUiProjectId); } else { var results = await SearchAddons(clientType, addonFolder.Toc.Title); addon = results.FirstOrDefault(); } if (addon != null) { addonFolder.MatchingAddon = new Addon { Author = addon.Author, AutoUpdateEnabled = false, ChannelType = addonChannelType, ClientType = clientType, DownloadUrl = addon.Url, ExternalId = addon.Id, ExternalUrl = addon.WebUrl, FolderName = addonFolder.Name, Name = addon.Name, GameVersion = addon.Patch, InstalledAt = DateTime.UtcNow, InstalledFolders = addonFolder.Name, InstalledVersion = addonFolder.Toc.Version, IsIgnored = false, LatestVersion = addon.Version, ProviderName = Name, ThumbnailUrl = addon.ScreenshotUrl }; } } }
public async Task Scan( WowClientType clientType, AddonChannelType addonChannelType, IEnumerable <AddonFolder> addonFolders) { Log.Debug($"{Name} Scanning {addonFolders.Count()} addons"); var addonDirectory = addonFolders.FirstOrDefault()?.Directory.Parent.FullName; var scanResults = await GetScanResults(addonFolders); await MapAddonFolders(scanResults, clientType); var addonIds = scanResults .Where(sr => sr.ExactMatch != null) .Select(sr => sr.ExactMatch.Id.ToString()) .Distinct(); //var addonIdStr = string.Join(",", addonIds); var addonResults = await GetAllIds(addonIds); foreach (var addonFolder in addonFolders) { var scanResult = scanResults.First(sr => sr.AddonFolder.Name == addonFolder.Name); if (scanResult.ExactMatch == null) { continue; } scanResult.SearchResult = addonResults.FirstOrDefault(ar => ar.Id == scanResult.ExactMatch.Id); if (scanResult.SearchResult == null) { continue; } try { addonFolder.MatchingAddon = GetAddon(clientType, addonChannelType, scanResult); } catch (Exception ex) { _analyticsService.Track(ex, $"Failed to create addon for result {scanResult.FolderScanner.Fingerprint}"); } } }
public async Task Scan( WowClientType clientType, AddonChannelType addonChannelType, IEnumerable <AddonFolder> addonFolders) { Log.Debug($"{Name} Scanning {addonFolders.Count()} addons"); foreach (var addonFolder in addonFolders) { if (string.IsNullOrEmpty(addonFolder.Toc.WowInterfaceId)) { continue; } var details = await GetAddonDetails(addonFolder.Toc.WowInterfaceId); addonFolder.MatchingAddon = new Addon { Author = details.Author, AutoUpdateEnabled = false, ChannelType = addonChannelType, ClientType = clientType, DownloadUrl = details.DownloadUri, ExternalId = details.Id.ToString(), ExternalUrl = GetAddonUrl(details), FolderName = addonFolder.Name, GameVersion = string.Empty, InstalledAt = DateTime.UtcNow, InstalledFolders = addonFolder.Name, InstalledVersion = addonFolder.Toc.Version, IsIgnored = false, LatestVersion = details.Version, Name = details.Title, ProviderName = Name, ThumbnailUrl = GetThumbnailUrl(details) }; } }
private Addon GetAddon( WowClientType clientType, AddonChannelType addonChannelType, AddonFolder addonFolder, CurseSearchResult searchResult) { if (addonFolder == null || searchResult == null) { return(null); } var currentVersion = addonFolder.Toc.Version; var latestFile = GetLatestFiles(searchResult, clientType).First(); var authors = GetAuthor(searchResult); return(new Addon { Author = authors, Name = searchResult.Name, ChannelType = addonChannelType, AutoUpdateEnabled = false, ClientType = clientType, DownloadUrl = latestFile.DownloadUrl, ExternalUrl = searchResult.WebsiteUrl, ExternalId = searchResult.Id.ToString(), FolderName = addonFolder.Name, GameVersion = latestFile.GameVersion.FirstOrDefault(), InstalledAt = DateTime.Now, InstalledFolders = string.Join(",", GetFolderNames(latestFile)), InstalledVersion = currentVersion, IsIgnored = false, LatestVersion = latestFile.DisplayName, ProviderName = Name, ThumbnailUrl = GetThumbnailUrl(searchResult) }); }
private AddonSearchResultFile GetLatestFile(AddonSearchResult searchResult, AddonChannelType channelType) { return(searchResult.Files .Where(lf => lf.ChannelType <= channelType) .FirstOrDefault()); }
private AddonSearchResultFile GetLatestFile(AddonSearchResult searchResult, AddonChannelType channelType) { return(searchResult.Files .OrderByDescending(f => f.ReleaseDate) .FirstOrDefault(lf => lf.ChannelType <= channelType)); }
public void SetDefaultAddonChannel(AddonChannelType type) { SetPreference(Constants.Preferences.DefaultAddonChannelKey, type.ToString()); }
public void SetClientAddonChannelType(WowClientType clientType, AddonChannelType channelType) { var preferenceKey = GetClientDefaultAddonChannelKey(clientType); SetPreference(preferenceKey, channelType.ToString()); }