private AddonSearchResult GetAddonSearchResult(CurseSearchResult result, CurseFile latestFile) { try { var thumbnailUrl = GetThumbnailUrl(result); var id = result.Id; var name = result.Name; var fileName = latestFile.FileName; var folders = GetFolderNames(latestFile); var gameVersion = GetGameVersion(latestFile); var author = GetAuthor(result); var downloadUrl = latestFile.DownloadUrl; return(new AddonSearchResult { Author = author, ExternalId = id.ToString(), Folders = folders, GameVersion = gameVersion, Name = name, ThumbnailUrl = thumbnailUrl, Version = fileName, DownloadUrl = downloadUrl, ExternalUrl = result.WebsiteUrl }); } catch (Exception ex) { Log.Error(ex, "GetAddonSearchResult"); Console.WriteLine(ex); return(null); } }
private CurseFile GetLatestFile(CurseSearchResult result, WowClientType clientType) { var clientTypeStr = GetClientTypeString(clientType); return(result.LatestFiles .Where(f => f.IsAlternate == false) .OrderByDescending(f => f.Id) .FirstOrDefault(f => f.GameVersionFlavor == clientTypeStr && f.ReleaseType == CurseReleaseType.Release)); }
private CurseFile GetLatestFile(CurseSearchResult result, WowClientType clientType) { if (result.Name.Contains("Details")) { } var clientTypeStr = GetClientTypeString(clientType); return(result.LatestFiles .OrderByDescending(f => f.Id) .FirstOrDefault(f => f.GameVersionFlavor == clientTypeStr && f.ReleaseType == CurseReleaseType.Release)); }
private PotentialAddon GetPotentialAddon(CurseSearchResult searchResult) { return(new PotentialAddon { ProviderName = Name, Name = searchResult.Name, DownloadCount = (int)searchResult.DownloadCount, ThumbnailUrl = GetThumbnailUrl(searchResult), ExternalId = searchResult.Id.ToString(), ExternalUrl = searchResult.WebsiteUrl, Author = GetAuthor(searchResult) }); }
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 string GetThumbnailUrl(CurseSearchResult result) { return(result.Attachments .FirstOrDefault(f => f.IsDefault && !string.IsNullOrEmpty(f.ThumbnailUrl))?.ThumbnailUrl); }
private string GetAuthor(CurseSearchResult result) { var authorNames = result.Authors.Select(a => a.Name); return(string.Join(", ", authorNames)); }