예제 #1
0
 private PotentialAddon ToPotentialAddon(TukUiAddon addon)
 {
     return(new PotentialAddon
     {
         Author = addon.Author,
         DownloadCount = int.Parse(addon.Downloads),
         ExternalId = addon.Id,
         ExternalUrl = addon.WebUrl,
         Name = addon.Name,
         ProviderName = Name,
         ThumbnailUrl = addon.ScreenshotUrl
     });
 }
예제 #2
0
 private AddonSearchResult ToSearchResult(TukUiAddon addon, string folderName)
 {
     return(new AddonSearchResult
     {
         Author = addon.Author,
         ExternalId = addon.Id,
         Folders = new[] { folderName },
         GameVersion = addon.Patch,
         Name = addon.Name,
         ThumbnailUrl = addon.ScreenshotUrl,
         Version = addon.Version,
         DownloadUrl = addon.Url,
         ExternalUrl = addon.WebUrl
     });
 }
예제 #3
0
        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
                    };
                }
            }
        }
예제 #4
0
        private AddonSearchResult ToSearchResult(TukUiAddon addon, string folderName)
        {
            var latestFile = new AddonSearchResultFile
            {
                ChannelType = AddonChannelType.Stable,
                Folders     = new[] { folderName },
                DownloadUrl = addon.Url,
                GameVersion = addon.Patch,
                Version     = addon.Version
            };

            return(new AddonSearchResult
            {
                Author = addon.Author,
                ExternalId = addon.Id,
                Name = addon.Name,
                ThumbnailUrl = addon.ScreenshotUrl,
                ExternalUrl = addon.WebUrl,
                ProviderName = Name,
                Files = new[] { latestFile }
            });
        }