aboutsummaryrefslogtreecommitdiffhomepage
path: root/duration
diff options
context:
space:
mode:
Diffstat (limited to 'duration')
-rw-r--r--duration/LICENSE21
-rw-r--r--duration/doc.go10
-rw-r--r--duration/duration.go80
-rw-r--r--duration/duration_test.go38
4 files changed, 0 insertions, 149 deletions
diff --git a/duration/LICENSE b/duration/LICENSE
deleted file mode 100644
index 036a2a1..0000000
--- a/duration/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2017 Hervé GOUCHET
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/duration/doc.go b/duration/doc.go
deleted file mode 100644
index 8fc5296..0000000
--- a/duration/doc.go
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2018 Frédéric Guillot. All rights reserved.
-// Use of this source code is governed by the MIT license
-// that can be found in the LICENSE file.
-
-/*
-
-Package duration implements helpers to calculate time duration.
-
-*/
-package duration
diff --git a/duration/duration.go b/duration/duration.go
deleted file mode 100644
index fe84026..0000000
--- a/duration/duration.go
+++ /dev/null
@@ -1,80 +0,0 @@
-// Copyright (c) 2017 Hervé Gouchet. All rights reserved.
-// Use of this source code is governed by the MIT License
-// that can be found in the LICENSE file.
-
-package duration
-
-import (
- "math"
- "time"
-
- "github.com/miniflux/miniflux/locale"
-)
-
-// Texts to be translated if necessary.
-var (
- NotYet = `not yet`
- JustNow = `just now`
- LastMinute = `1 minute ago`
- Minutes = `%d minutes ago`
- LastHour = `1 hour ago`
- Hours = `%d hours ago`
- Yesterday = `yesterday`
- Days = `%d days ago`
- Weeks = `%d weeks ago`
- Months = `%d months ago`
- Years = `%d years ago`
-)
-
-// ElapsedTime returns in a human readable format the elapsed time
-// since the given datetime.
-func ElapsedTime(translator *locale.Language, timezone string, t time.Time) string {
- if t.IsZero() {
- return translator.Get(NotYet)
- }
-
- var now time.Time
- loc, err := time.LoadLocation(timezone)
- if err != nil {
- now = time.Now()
- } else {
- now = time.Now().In(loc)
-
- // The provided date is already converted to the user timezone by Postgres,
- // but the timezone information is not set in the time struct.
- // We cannot use time.In() because the date will be converted a second time.
- t = time.Date(t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute(), t.Second(), t.Nanosecond(), loc)
- }
-
- if now.Before(t) {
- return translator.Get(NotYet)
- }
-
- diff := now.Sub(t)
- // Duration in seconds
- s := diff.Seconds()
- // Duration in days
- d := int(s / 86400)
- switch {
- case s < 60:
- return translator.Get(JustNow)
- case s < 120:
- return translator.Get(LastMinute)
- case s < 3600:
- return translator.Get(Minutes, int(diff.Minutes()))
- case s < 7200:
- return translator.Get(LastHour)
- case s < 86400:
- return translator.Get(Hours, int(diff.Hours()))
- case d == 1:
- return translator.Get(Yesterday)
- case d < 7:
- return translator.Get(Days, d)
- case d < 31:
- return translator.Get(Weeks, int(math.Ceil(float64(d)/7)))
- case d < 365:
- return translator.Get(Months, int(math.Ceil(float64(d)/30)))
- default:
- return translator.Get(Years, int(math.Ceil(float64(d)/365)))
- }
-}
diff --git a/duration/duration_test.go b/duration/duration_test.go
deleted file mode 100644
index d1aae21..0000000
--- a/duration/duration_test.go
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (c) 2017 Hervé Gouchet. All rights reserved.
-// Use of this source code is governed by the MIT License
-// that can be found in the LICENSE file.
-
-package duration
-
-import (
- "fmt"
- "testing"
- "time"
-
- "github.com/miniflux/miniflux/locale"
-)
-
-func TestElapsedTime(t *testing.T) {
- var dt = []struct {
- in time.Time
- out string
- }{
- {time.Time{}, NotYet},
- {time.Now().Add(time.Hour), NotYet},
- {time.Now(), JustNow},
- {time.Now().Add(-time.Minute), LastMinute},
- {time.Now().Add(-time.Minute * 40), fmt.Sprintf(Minutes, 40)},
- {time.Now().Add(-time.Hour), LastHour},
- {time.Now().Add(-time.Hour * 3), fmt.Sprintf(Hours, 3)},
- {time.Now().Add(-time.Hour * 32), Yesterday},
- {time.Now().Add(-time.Hour * 24 * 3), fmt.Sprintf(Days, 3)},
- {time.Now().Add(-time.Hour * 24 * 14), fmt.Sprintf(Weeks, 2)},
- {time.Now().Add(-time.Hour * 24 * 60), fmt.Sprintf(Months, 2)},
- {time.Now().Add(-time.Hour * 24 * 365 * 3), fmt.Sprintf(Years, 3)},
- }
- for i, tt := range dt {
- if out := ElapsedTime(&locale.Language{}, "Local", tt.in); out != tt.out {
- t.Errorf(`%d. content mismatch for "%v": expected=%q got=%q`, i, tt.in, tt.out, out)
- }
- }
-}