- Добавлен release-body.md для подробных заметок о релизе на русском языке. - Реализован release-gitea.ps1 для автоматизированного релиза Gitea с помощью PowerShell. - Создан release-gitea.sh для автоматизированного релиза Gitea с помощью Bash. - Добавлен release.sh для сборки и маркировки релизов с поддержкой нескольких платформ. - Улучшен пользовательский интерфейс благодаря информативному логированию и обработке ошибок. - Добавлена поддержка переменных окружения и управления конфигурацией. - Добавлена функция создания архивов и загрузки ресурсов в Gitea.
38 lines
1021 B
Go
38 lines
1021 B
Go
package entities
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
// PDFDocument представляет PDF документ
|
|
type PDFDocument struct {
|
|
Path string
|
|
Size int64
|
|
ModifiedTime time.Time
|
|
Pages int
|
|
}
|
|
|
|
// CompressionResult представляет результат сжатия
|
|
type CompressionResult struct {
|
|
CurrentFile string
|
|
OriginalSize int64
|
|
CompressedSize int64
|
|
CompressionRatio float64
|
|
SavedSpace int64
|
|
Success bool
|
|
Error error
|
|
}
|
|
|
|
// CalculateCompressionRatio вычисляет коэффициент сжатия
|
|
func (cr *CompressionResult) CalculateCompressionRatio() {
|
|
if cr.OriginalSize > 0 {
|
|
cr.CompressionRatio = ((float64(cr.OriginalSize) - float64(cr.CompressedSize)) / float64(cr.OriginalSize)) * 100
|
|
cr.SavedSpace = cr.OriginalSize - cr.CompressedSize
|
|
}
|
|
}
|
|
|
|
// IsEffective проверяет, было ли сжатие эффективным
|
|
func (cr *CompressionResult) IsEffective() bool {
|
|
return cr.Success && cr.CompressionRatio > 0
|
|
}
|