Пример #1
0
        private IEnumerable <EraiRawsReleaseInfo> ConvertFeedItemsToEraiRawsReleaseInfo(IEnumerable <RssFeedItem> feedItems)
        {
            foreach (var fi in feedItems)
            {
                EraiRawsReleaseInfo releaseInfo = new EraiRawsReleaseInfo(fi);

                // Validate the release
                if (releaseInfo.PublishDate == null)
                {
                    logger.Warn($"Failed to parse {DisplayName} RSS feed item '{fi.Title}' due to malformed publish date.");
                    continue;
                }

                if (releaseInfo.Link == null)
                {
                    logger.Warn($"Failed to parse {DisplayName} RSS feed item '{fi.Title}' due to malformed link URI.");
                    continue;
                }

                // If enabled, perform detailed title parsing
                if (IsTitleDetailParsingEnabled)
                {
                    releaseInfo.Title = titleParser.Parse(releaseInfo.Title);
                }

                yield return(releaseInfo);
            }
        }
Пример #2
0
        private IEnumerable <EraiRawsReleaseInfo> ConvertFeedItemsToEraiRawsReleaseInfo(IEnumerable <RssFeedItem> feedItems)
        {
            foreach (var fi in feedItems)
            {
                EraiRawsReleaseInfo releaseInfo = new EraiRawsReleaseInfo(fi);

                // Validate the release
                if (releaseInfo.PublishDate == null)
                {
                    logger.Warn($"Failed to parse {DisplayName} RSS feed item '{fi.Title}' due to malformed publish date.");
                    continue;
                }

                if (releaseInfo.MagnetLink == null)
                {
                    logger.Warn($"Failed to parse {DisplayName} RSS feed item '{fi.Title}' due to malformed link URI.");
                    continue;
                }

                // Run the title parser for the details link
                releaseInfo.DetailsLink = new Uri(string.Format("{0}anime-list/{1}", SiteLink, titleParser.GetUrlSlug(releaseInfo.Title)));

                // If enabled, perform detailed title parsing
                if (IsTitleDetailParsingEnabled)
                {
                    releaseInfo.Title = titleParser.Parse(releaseInfo.Title);
                }

                yield return(releaseInfo);
            }
        }
Пример #3
0
        /// <summary>
        /// Get an estimate of the file size based on the release info.
        /// </summary>
        /// <remarks>
        /// These estimates are currently only based on Quality. They will be very inaccurate for batch releases.
        /// </remarks>
        private long GetSizeEstimate(EraiRawsReleaseInfo releaseInfo)
        {
            long sizeEstimateInMiB = 256;

            if (sizeEstimates.ContainsKey(releaseInfo.Quality.ToLower()))
            {
                sizeEstimateInMiB = sizeEstimates[releaseInfo.Quality.ToLower()];
            }

            // Convert to bytes and return
            return(sizeEstimateInMiB * (1024 * 1024));
        }