Пример #1
0
        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);
            }
        }
Пример #2
0
        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));
        }
Пример #3
0
        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));
        }
Пример #4
0
 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)
     });
 }
Пример #5
0
        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)
            });
        }
Пример #6
0
 private string GetThumbnailUrl(CurseSearchResult result)
 {
     return(result.Attachments
            .FirstOrDefault(f => f.IsDefault && !string.IsNullOrEmpty(f.ThumbnailUrl))?.ThumbnailUrl);
 }
Пример #7
0
        private string GetAuthor(CurseSearchResult result)
        {
            var authorNames = result.Authors.Select(a => a.Name);

            return(string.Join(", ", authorNames));
        }