diff options
Diffstat (limited to 'modules/base/tool.go')
-rw-r--r-- | modules/base/tool.go | 151 |
1 files changed, 0 insertions, 151 deletions
diff --git a/modules/base/tool.go b/modules/base/tool.go index 2bb39dbfea..43678979a5 100644 --- a/modules/base/tool.go +++ b/modules/base/tool.go @@ -12,7 +12,6 @@ import ( "encoding/base64" "encoding/hex" "fmt" - "html/template" "io" "math" "net/http" @@ -29,10 +28,8 @@ import ( "code.gitea.io/gitea/modules/git" "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/setting" - "code.gitea.io/gitea/modules/util" "github.com/Unknwon/com" - "github.com/Unknwon/i18n" ) // EncodeMD5 encodes string to md5 hex value. @@ -217,154 +214,6 @@ func AvatarLink(email string) string { return SizedAvatarLink(email, DefaultAvatarSize) } -// Seconds-based time units -const ( - Minute = 60 - Hour = 60 * Minute - Day = 24 * Hour - Week = 7 * Day - Month = 30 * Day - Year = 12 * Month -) - -func computeTimeDiff(diff int64, lang string) (int64, string) { - diffStr := "" - switch { - case diff <= 0: - diff = 0 - diffStr = i18n.Tr(lang, "tool.now") - case diff < 2: - diff = 0 - diffStr = i18n.Tr(lang, "tool.1s") - case diff < 1*Minute: - diffStr = i18n.Tr(lang, "tool.seconds", diff) - diff = 0 - - case diff < 2*Minute: - diff -= 1 * Minute - diffStr = i18n.Tr(lang, "tool.1m") - case diff < 1*Hour: - diffStr = i18n.Tr(lang, "tool.minutes", diff/Minute) - diff -= diff / Minute * Minute - - case diff < 2*Hour: - diff -= 1 * Hour - diffStr = i18n.Tr(lang, "tool.1h") - case diff < 1*Day: - diffStr = i18n.Tr(lang, "tool.hours", diff/Hour) - diff -= diff / Hour * Hour - - case diff < 2*Day: - diff -= 1 * Day - diffStr = i18n.Tr(lang, "tool.1d") - case diff < 1*Week: - diffStr = i18n.Tr(lang, "tool.days", diff/Day) - diff -= diff / Day * Day - - case diff < 2*Week: - diff -= 1 * Week - diffStr = i18n.Tr(lang, "tool.1w") - case diff < 1*Month: - diffStr = i18n.Tr(lang, "tool.weeks", diff/Week) - diff -= diff / Week * Week - - case diff < 2*Month: - diff -= 1 * Month - diffStr = i18n.Tr(lang, "tool.1mon") - case diff < 1*Year: - diffStr = i18n.Tr(lang, "tool.months", diff/Month) - diff -= diff / Month * Month - - case diff < 2*Year: - diff -= 1 * Year - diffStr = i18n.Tr(lang, "tool.1y") - default: - diffStr = i18n.Tr(lang, "tool.years", diff/Year) - diff -= (diff / Year) * Year - } - return diff, diffStr -} - -// MinutesToFriendly returns a user friendly string with number of minutes -// converted to hours and minutes. -func MinutesToFriendly(minutes int, lang string) string { - duration := time.Duration(minutes) * time.Minute - return TimeSincePro(time.Now().Add(-duration), lang) -} - -// TimeSincePro calculates the time interval and generate full user-friendly string. -func TimeSincePro(then time.Time, lang string) string { - return timeSincePro(then, time.Now(), lang) -} - -func timeSincePro(then, now time.Time, lang string) string { - diff := now.Unix() - then.Unix() - - if then.After(now) { - return i18n.Tr(lang, "tool.future") - } - if diff == 0 { - return i18n.Tr(lang, "tool.now") - } - - var timeStr, diffStr string - for { - if diff == 0 { - break - } - - diff, diffStr = computeTimeDiff(diff, lang) - timeStr += ", " + diffStr - } - return strings.TrimPrefix(timeStr, ", ") -} - -func timeSince(then, now time.Time, lang string) string { - return timeSinceUnix(then.Unix(), now.Unix(), lang) -} - -func timeSinceUnix(then, now int64, lang string) string { - lbl := "tool.ago" - diff := now - then - if then > now { - lbl = "tool.from_now" - diff = then - now - } - if diff <= 0 { - return i18n.Tr(lang, "tool.now") - } - - _, diffStr := computeTimeDiff(diff, lang) - return i18n.Tr(lang, lbl, diffStr) -} - -// RawTimeSince retrieves i18n key of time since t -func RawTimeSince(t time.Time, lang string) string { - return timeSince(t, time.Now(), lang) -} - -// TimeSince calculates the time interval and generate user-friendly string. -func TimeSince(then time.Time, lang string) template.HTML { - return htmlTimeSince(then, time.Now(), lang) -} - -func htmlTimeSince(then, now time.Time, lang string) template.HTML { - return template.HTML(fmt.Sprintf(`<span class="time-since" title="%s">%s</span>`, - then.Format(setting.TimeFormat), - timeSince(then, now, lang))) -} - -// TimeSinceUnix calculates the time interval and generate user-friendly string. -func TimeSinceUnix(then util.TimeStamp, lang string) template.HTML { - return htmlTimeSinceUnix(then, util.TimeStamp(time.Now().Unix()), lang) -} - -func htmlTimeSinceUnix(then, now util.TimeStamp, lang string) template.HTML { - return template.HTML(fmt.Sprintf(`<span class="time-since" title="%s">%s</span>`, - then.Format(setting.TimeFormat), - timeSinceUnix(int64(then), int64(now), lang))) -} - // Storage space size types const ( Byte = 1 |