예제 #1
0
        public async Task ProcessBookmark(CreateBookmarkRequest request)
        {
            var response = await _httpClient.GetAsync(request.Url);

            if (response.IsSuccessStatusCode)
            {
                var tempFileName = Path.GetTempFileName();
                using (var fileStream =
                           new FileStream(tempFileName, FileMode.CreateNew, FileAccess.ReadWrite))
                {
                    var stream = await response.Content.ReadAsStreamAsync();

                    await stream.CopyToAsync(fileStream);
                }

                var result = KindleConverter.Create(tempFileName)
                             .SetCompressionLevel(CompressionLevel.NoCompression)
                             .Convert();
                if (result.IsSuccess)
                {
                    string filePath = tempFileName.Replace(".tmp", ".mobi");
                    await _capPublisher.PublishAsync(Constants.SaveBookmarkQueue, new SaveBookmarkRequest()
                    {
                        UserId   = request.UserId,
                        Url      = request.Url,
                        FilePath = filePath
                    });
                }
            }
        }
예제 #2
0
        public bool Convert(string folder, string intputFileName, string outputFileName)
        {
            var inputPath = Path.Combine(folder, intputFileName);

            var result = KindleConverter.Create(inputPath)
                         .SetCompressionLevel(CompressionLevel.NoCompression)
                         .SetOutput(outputFileName)
                         .Convert();

            if (!result.IsSuccess)
            {
                string message = result.Details.FirstOrDefault(x => x.ConvertLogType == ConvertLogType.Error)?.Message;
                Console.WriteLine($"Has exception: {message}");
            }
            else
            {
                Console.WriteLine("Complete successfully");
            }

            return(result.IsSuccess);
        }
예제 #3
0
        static void Main(string[] args)
        {
            Console.Write("Write your .opf .htm .html .epub .zip or directory path: ");
            string path   = Console.ReadLine();
            var    result = KindleConverter.Create(path)
                            .SetCompressionLevel(CompressionLevel.NoCompression)
                            .SetOutput("test.mobi")
                            .Convert();

            if (!result.IsSuccess)
            {
                string message = result.Details.FirstOrDefault(x => x.ConvertLogType == ConvertLogType.Error)?.Message;
                Console.WriteLine($"Has exception: {message}");
            }
            else
            {
                Console.WriteLine("Complete successfully");
            }

            Console.ReadKey();
        }