timeago/0000775000175000017500000000000015132253370012444 5ustar joostvbjoostvbtimeago/LICENSE0000664000175000017500000000206115132234162013446 0ustar joostvbjoostvbThe MIT License (MIT) Copyright (c) 2016 hustcc 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. timeago/README.rst0000664000175000017500000000655215132234162014141 0ustar joostvbjoostvbtimeago ======= A very simple python lib, used to format datetime with ``*** time ago`` statement. Javascript version here. `timeago.js`_. |Build Status| |PyPi Status| |Python Versions| Such as: :: just now 12 seconds ago 3 minutes ago 2 hours ago 24 days ago 6 months ago 2 years ago in 12 seconds in 3 minutes in 2 hours in 24 days in 6 months in 2 years For other languages see below. Install ------- .. code:: sh pip install timeago .. _usage--example: Usage & Example --------------- .. code:: py # -*- coding: utf-8 -*- import timeago, datetime now = datetime.datetime.now() + datetime.timedelta(seconds = 60 * 3.4) date = datetime.datetime.now() # locale print (timeago.format(date, now, 'zh_CN')) # will print `3分钟前` # input datetime print (timeago.format(date, now)) # will print 3 minutes ago # input timedelta print (timeago.format(datetime.timedelta(seconds = 60 * 3.4))) # will print 3 minutes ago # input date, auto add time(0, 0, 0) print (timeago.format(datetime.date(2016, 5, 27), now)) # input datetime formatted string print (timeago.format('2016-05-27 12:12:03', '2016-05-27 12:12:12')) # will print just now # inverse two parameters print (timeago.format('2016-05-27 12:12:12', '2016-05-27 12:12:03')) # will print a while .. _method--parameter: Method & Parameter ------------------ only one API ``format``. Three parameters of method ``format``: - ``date``: the parameter which will be formatted, must be instance of ``datetime`` / ``timedelta`` or datetime formatted string. - ``now``: reference time, must be instance of ``datetime`` or datetime formatted string. - ``locale``: the locale code, default ``en``. Locale ------ At the time we're speaking, `following locale`_ are available: - ``ar`` - ``bg`` - ``ca`` - ``da`` - ``de`` - ``el`` - ``en`` - ``en_short`` - ``es`` - ``eu`` - ``fa_IR`` - ``fi`` - ``fr`` - ``gl`` - ``guj_IN`` - ``he`` - ``hu`` - ``in_BG`` - ``in_HI`` - ``in_ID`` - ``is`` - ``it`` - ``ja`` - ``ko`` - ``lt`` - ``ml`` - ``my`` - ``nb_NO`` - ``nl`` - ``nn_NO`` - ``pl`` - ``pt_PT`` - ``pt_BR`` - ``ro`` - ``ru`` - ``sk`` - ``sv_SE`` - ``ta`` - ``th`` - ``tr`` - ``uk`` - ``vi`` - ``zh_CN`` - ``zh_TW`` Localization ------------ 1. Fork the project 2. Create a locale python script called ``[name_of_your_locale].py`` following the existing other locales. 3. Add the name of your locale in the Readme to keep it updated (**alphabetically**). 4. Add test case following the `english model`_ 5. Create the Pull Request. Notes ~~~~~ For complicated plurals, you can take example on the PL (Polish) locale `here`_ .. _timeago.js: https://github.com/hustcc/timeago.js .. _following locale: https://github.com/hustcc/timeago/tree/master/src/timeago/locales .. _english model: https://github.com/hustcc/timeago/tree/master/test/testcase.py#L50 .. _here: https://github.com/hustcc/timeago/tree/master/src/timeago/locales/pl.py .. |Build Status| image:: https://travis-ci.org/hustcc/timeago.svg?branch=master :target: https://travis-ci.org/hustcc/timeago .. |PyPi Status| image:: https://img.shields.io/pypi/v/timeago.svg :target: https://pypi.python.org/pypi/timeago .. |Python Versions| image:: https://img.shields.io/pypi/pyversions/timeago.svg :target: https://pypi.python.org/pypi/timeago timeago/src/0000775000175000017500000000000015132234162013231 5ustar joostvbjoostvbtimeago/src/timeago/0000775000175000017500000000000015132234162014656 5ustar joostvbjoostvbtimeago/src/timeago/locales/0000775000175000017500000000000015132234162016300 5ustar joostvbjoostvbtimeago/src/timeago/locales/ko.py0000664000175000017500000000112715132234162017264 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["방금", "곧"], ["%s초 전", "%s초 후"], ["1분 전", "1분 후"], ["%s분 전", "%s분 후"], ["1시간 전", "1시간 후"], ["%s시간 전", "%s시간 후"], ["1일 전", "1일 후"], ["%s일 전", "%s일 후"], ["1주일 전", "1주일 후"], ["%s주일 전", "%s주일 후"], ["1개월 전", "1개월 후"], ["%s개월 전", "%s개월 후"], ["1년 전", "1년 후"], ["%s년 전", "%s년 후"] ] timeago/src/timeago/locales/sk.py0000664000175000017500000000177315132234162017277 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2021-11-6 @author: jenca-adam ''' base = [ ["práve teraz", "pred chvíľou"], ["pred %s sekundami", "o %s sekúnd","o %s sekundy"], ["pred minútou", "o minútu"], ["pred %s minútami", "o %s minút","o %s minúty"], ["pred hodinou", "o hodinu"], ["pred %s hodinami", "o %s hodín","o %s hodiny"], ["pred dňom", "o deň"], ["pred %s dňami", "o %s dni"], ["pred týždňom", "o týždeň"], ["pred %s týždňami", "o %s týždňov","o %s týždne"], ["pred mesiacom", "o mesiac"], ["pred %s mesiacmi", "o %s mesiacov","o %s mesiace"], ["pred rokom", "o rok"], ["pred %s rokmi", "o %s rokov","o %s roky"], ] def generate(row,y): def formatting(time): if y==1 and time<5: try: return base[row][y+1] except IndexError: pass return base[row][y] return formatting LOCALE=generate timeago/src/timeago/locales/nl.py0000664000175000017500000000134515132234162017266 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["recent", "binnenkort"], ["%s seconden geleden", "binnen %s seconden"], ["1 minuut geleden", "binnen 1 minuut"], ["%s minuten geleden", "binnen %s minuten"], ["1 uur geleden", "binnen 1 uur"], ["%s uren geleden", "binnen %s uren"], ["1 dag geleden", "binnen 1 dag"], ["%s dagen geleden", "binnen %s dagen"], ["1 week geleden", "binnen 1 week"], ["%s weken geleden", "binnen %s weken"], ["1 maand geleden", "binnen 1 maand"], ["%s maanden geleden", "binnen %s maanden"], ["1 jaar geleden", "binnen 1 jaar"], ["%s jaren geleden", "binnen %s jaren"] ] timeago/src/timeago/locales/eu.py0000664000175000017500000000131215132234162017260 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["orain", "denbora bat barru"], ["duela %s segundu", "%s segundu barru"], ["duela minutu 1", "minutu 1 barru"], ["duela %s minutu", "%s minutu barru"], ["duela ordu 1", "ordu 1 barru"], ["duela %s ordu", "%s ordu barru"], ["duela egun 1", "egun 1 barru"], ["duela %s egun", "%s egun barru"], ["duela aste 1", "aste 1 barru"], ["duela %s aste", "%s aste barru"], ["duela hillabete 1", "hillabete 1 barru"], ["duela %s hillabete", "%s hillabete barru"], ["duela urte 1", "urte 1 barru"], ["duela %s urte", "%s urte barru"] ] timeago/src/timeago/locales/nb_NO.py0000664000175000017500000000123115132234162017642 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["akkurat nå", "om litt"], ["%s sekunder siden", "om %s sekunder"], ["1 minutt siden", "om 1 minutt"], ["%s minutter siden", "om %s minutter"], ["1 time siden", "om 1 time"], ["%s timer siden", "om %s timer"], ["1 dag siden", "om 1 dag"], ["%s dager siden", "om %s dager"], ["1 uke siden", "om 1 uke"], ["%s uker siden", "om %s uker"], ["1 måned siden", "om 1 måned"], ["%s måneder siden", "om %s måneder"], ["1 år siden", "om 1 år"], ["%s år siden", "om %s år"] ] timeago/src/timeago/locales/in_HI.py0000664000175000017500000000213315132234162017637 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2016-9-26 @author : ajphukan @email : leocreed1994@gmail.com @Country : India @Language : Hindi ''' LOCALE = [ ['अभी', 'कुछ समय'], ['%s सेकंड पहले', '%s सेकंड में'], ['1 मिनट पहले', '1 मिनट में'], ['%s मिनट पहले', '%s मिनट में'] , ['1 घंटे पहले', '1 घंटे में'] , ['%s घंटे पहले', '%s घंटे में'] , ['1 दिन पहले', '1 दिन में'] , ['%s दिन पहले', '%s दिनों में'] , ['1 सप्ताह पहले', '1 सप्ताह में'] , ['%s हफ्ते पहले', '%s हफ्तों में'] , ['1 महीने पहले', '1 महीने में'] , ['%s महीने पहले', '%s महीनों में'] , ['1 साल पहले', '1 साल में'] , ['%s साल पहले','%s साल में'], ] timeago/src/timeago/locales/lt.py0000664000175000017500000000315415132234162017274 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2020-04-17 @author: naglis ''' base = [ ["ką tik", "po akimirkos"], ["prieš %s sekundę", "po %s sekundės", "prieš %s sekundes", "po %s sekundžių", "prieš %s sekundžių", "po %s sekundžių"], ["prieš 1 minutę", "po 1 minutės"], ["prieš %s minutę", "po %s minutės", "prieš %s minutes", "po %s minučių", "prieš %s minučių", "po %s minučių"], ["prieš 1 valandą", "po 1 valandos"], ["prieš %s valandą", "po %s valandos", "prieš %s valandas", "po %s valandų", "prieš %s valandų", "po %s valandų"], ["prieš 1 dieną", "po 1 dienos"], ["prieš %s dieną", "po %s dienos", "prieš %s dienas", "po %s dienų", "prieš %s dienų", "po %s dienų"], ["prieš 1 savaitę", "po 1 savaitės"], ["prieš %s savaitę", "po %s savaitės", "prieš %s savaites", "po %s savaičių", "prieš %s savaičių", "po %s savaičių"], ["prieš 1 mėnesį", "po 1 mėnesio"], ["prieš %s mėnesį", "po %s mėnesio", "prieš %s mėnesius", "po %s mėnesių", "prieš %s mėnesių", "po %s mėnesių"], ["prieš 1 metus", "po 1 metų"], ["prieš %s metus", "po %s metų", "prieš %s metus", "po %s metų", "prieš %s metų", "po %s metų"], ] def generate(row, y): def formatting(time): if row % 2 == 0: return base[row][y] r_10, r_100 = time % 10, time % 100 if 10 < r_100 < 20 or r_10 == 0: return base[row][y + 4] elif r_10 != 1: return base[row][y + 2] else: return base[row][y] return formatting LOCALE = generate timeago/src/timeago/locales/is.py0000664000175000017500000000135415132234162017270 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2016-5-26 @author: gylfiolafsson and lolobosse ''' LOCALE = [ ['rétt í þessu', 'rétt strax'], ['fyrir %s sekúndum', 'eftir %s sekúndur'], ['fyrir 1 mínútu', 'eftir 1 mínútu'], ['fyrir %s mínútum', 'eftir %s mínútur'], ['fyrir 1 klukkutíma', 'eftir 1 klukkutíma'], ['fyrir %s klukkutímum', 'eftir %s klukkutíma'], ['fyrir 1 degi', 'eftir 1 dag'], ['fyrir %s dögum', 'eftir %s daga'], ['fyrir 1 viku', 'eftir 1 viku'], ['fyrir %s vikum', 'eftir %s vikur'], ['fyrir 1 mánuði', 'eftir 1 mánuð'], ['fyrir %s mánuðum', 'eftir %s mánuði'], ['fyrir 1 ári', 'eftir 1 ár'], ['fyrir %s árum', 'eftir %s ár'], ]timeago/src/timeago/locales/create_tests.py0000664000175000017500000000672415132234162021350 0ustar joostvbjoostvbimport glob override = True test_text = """ def test_timeago_%s(self): locale = '%s' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "%s") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "%s") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "%s") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "%s") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "%s") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "%s") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "%s") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "%s") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "%s") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "%s") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "%s") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "%s") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "%s") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "%s")""" deltas = [10, 3, 2, 4, 4, 3, 2] test_functions = [] for filename in glob.glob('./*py'): with open(filename) as f: content = f.read() # We need to use a bit of reflexion to load the module dynamically if not 'generated by @lolobosse script' in content: continue locale_name = filename[2:-3] print('Generating tests for %s' % locale_name) if "import_locale" or "create_tests" in filename: continue try: values = __import__(locale_name).LOCALE except: print('No locale found for %s' % locale_name) continue args = [locale_name, locale_name] for index, line in enumerate(values): if index % 2 == 1: # With format args.append(line[0] % str(deltas[index/2])) else: args.append(line[0]) result = test_text % tuple(args) test_functions.append(result) with open('../../../test/testcase.py', 'r') as input: content = input.readlines() line_number = 0 for index, line in enumerate(content): if '__name__' in line: line_number = index content.insert(line_number - 2, ("\n"*2).join(test_functions)) text = "".join(content) input.close() if not override: with open('../../../test/testcase2.py', 'w+') as result: result.write(text) result.close() else: open('../../../test/testcase.py', 'w').close() with open('../../../test/testcase.py', 'w') as original: original.write(text) original.close()timeago/src/timeago/locales/pt_PT.py0000664000175000017500000000115315132234162017700 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2020-12-19 @author: @t3m2 and @lolobosse ''' LOCALE = [ ['agora mesmo', 'agora'], ['há %s segundos', 'em %s segundos'], ['há 1 minuto', 'em 1 minuto'], ['há %s minutos', 'em %s minutos'], ['há 1 hora', 'em 1 hora'], ['há %s horas', 'em %s horas'], ['há 1 dia', 'em 1 dia'], ['há %s dias', 'em %s dias'], ['há 1 semana', 'em 1 semana'], ['há %s semanas', 'em %s semanas'], ['há 1 mês', 'em 1 mês'], ['há %s meses', 'em %s meses'], ['há 1 ano', 'em 1 ano'], ['há %s anos', 'em %s anos'] ]timeago/src/timeago/locales/zh_CN.py0000664000175000017500000000106515132234162017655 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2016-5-26 @author: hustcc ''' LOCALE = [ [u"刚刚", u"片刻后"], [u"%s秒前", u"%s秒后"], [u"1分钟前", u"1分钟后"], [u"%s分钟前", u"%s分钟后"], [u"1小时前", u"1小时后"], [u"%s小时前", u"%s小时后"], [u"1天前", u"1天后"], [u"%s天前", u"%s天后"], [u"1周前", u"1周后"], [u"%s周前", u"%s周后"], [u"1月前", u"1月后"], [u"%s月前", u"%s月后"], [u"1年前", u"1年后"], [u"%s年前", u"%s年后"], ] timeago/src/timeago/locales/en.py0000664000175000017500000000113415132234162017253 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2016-5-26 @author: hustcc ''' LOCALE = [ ["just now", "a while"], ["%s seconds ago", "in %s seconds"], ["1 minute ago", "in 1 minute"], ["%s minutes ago", "in %s minutes"], ["1 hour ago", "in 1 hour"], ["%s hours ago", "in %s hours"], ["1 day ago", "in 1 day"], ["%s days ago", "in %s days"], ["1 week ago", "in 1 week"], ["%s weeks ago", "in %s weeks"], ["1 month ago", "in 1 month"], ["%s months ago", "in %s months"], ["1 year ago", "in 1 year"], ["%s years ago", "in %s years"], ] timeago/src/timeago/locales/hu.py0000664000175000017500000000124015132234162017263 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["éppen most", "éppen most"], ["%s másodperce", "%s másodpercen belül"], ["1 perce", "1 percen belül"], ["%s perce", "%s percen belül"], ["1 órája", "1 órán belül"], ["%s órája", "%s órán belül"], ["1 napja", "1 napon belül"], ["%s napja", "%s napon belül"], ["1 hete", "1 héten belül"], ["%s hete", "%s héten belül"], ["1 hónapja", "1 hónapon belül"], ["%s hónapja", "%s hónapon belül"], ["1 éve", "1 éven belül"], ["%s éve", "%s éven belül"] ] timeago/src/timeago/locales/fi.py0000664000175000017500000000144315132234162017252 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["juuri äsken", "juuri nyt"], ["%s sekuntia sitten", "%s sekunnin päästä"], ["minuutti sitten", "minuutin päästä"], ["%s minuuttia sitten", "%s minuutin päästä"], ["tunti sitten", "tunnin päästä"], ["%s tuntia sitten", "%s tunnin päästä"], ["päivä sitten", "päivän päästä"], ["%s päivää sitten", "%s päivän päästä"], ["viikko sitten", "viikon päästä"], ["%s viikkoa sitten", "%s viikon päästä"], ["kuukausi sitten", "kuukauden päästä"], ["%s kuukautta sitten", "%s kuukauden päästä"], ["vuosi sitten", "vuoden päästä"], ["%s vuotta sitten", "%s vuoden päästä"] ] timeago/src/timeago/locales/uk.py0000664000175000017500000000407715132234162017301 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2019-11-05 @author: immoroz ''' base = [ ["щойно", "через мить"], ["%s секунду тому", "через %s секунду", "%s секунди тому", "через %s секунди", "%s секунд тому", "через %s секунд"], ["хвилину тому", "через хвилину"], ["%s хвилину тому", "через %s хвилину", "%s хвилини тому", "через %s хвилини", "%s хвилин тому", "через %s минут"], ["годину тому", "через годину"], ["%s годину тому", "через %s годину", "%s години тому", "через %s години", "%s годин тому", "через %s годин"], ["вчора", "завтра"], ["%s день тому", "через %s день", "%s дні тому", "через %s дні", "%s днів тому", "через %s днів"], ["тиждень тому", "через тиждень"], ["%s тиждень тому", "через %s тиждень", "%s тиждні тому", "через %s тиждні", "%s тижднів тому", "через %s тижднів"], ["місяць тому", "через місяць"], ["%s місяць тому", "через %s місяць", "%s місяці тому", "через %s місяці", "%s місяців тому", "через %s місяців"], ["рік тому", "через рік"], ["%s рік тому", "через %s рік", "%s роки тому", "через %s роки", "%s років тому", "через %s років"], ] def generate(row, y): def formatting(time): if row % 2 == 0: return base[row][y] if time > 20: # for 21,32,43 but not for 11, 12, 13 time = time % 10 if time == 1: return base[row][y] elif time in (2, 3, 4): return base[row][y + 2] else: return base[row][y + 4] return formatting LOCALE = generate timeago/src/timeago/locales/el.py0000664000175000017500000000162015132234162017251 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["μόλις τώρα", "σε λίγο"], ["%s δευτερόλεπτα πριν", "σε %s δευτερόλεπτα"], ["1 λεπτό πριν", "σε 1 λεπτό"], ["%s λεπτά πριν", "σε %s λεπτά"], ["1 ώρα πριν", "σε 1 ώρα"], ["%s ώρες πριν", "σε %s ώρες"], ["1 μέρα πριν", "σε 1 μέρα"], ["%s μέρες πριν", "σε %s μέρες"], ["1 εβδομάδα πριν", "σε 1 εβδομάδα"], ["%s εβδομάδες πριν", "σε %s εβδομάδες"], ["1 μήνα πριν", "σε 1 μήνα"], ["%s μήνες πριν", "σε %s μήνες"], ["1 χρόνο πριν", "σε 1 χρόνο"], ["%s χρόνια πριν", "σε %s χρόνια"] ] timeago/src/timeago/locales/in_ID.py0000664000175000017500000000135115132234162017634 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["baru saja", "sebentar"], ["%s detik yang lalu", "dalam %s detik"], ["1 menit yang lalu", "dalam 1 menit"], ["%s menit yang lalu", "dalam %s menit"], ["1 jam yang lalu", "dalam 1 jam"], ["%s jam yang lalu", "dalam %s jam"], ["1 hari yang lalu", "dalam 1 hari"], ["%s hari yang lalu", "dalam %s hari"], ["1 minggu yang lalu", "dalam 1 minggu"], ["%s minggu yang lalu", "dalam %s minggu"], ["1 bulan yang lalu", "dalam 1 bulan"], ["%s bulan yang lalu", "dalam %s bulan"], ["1 tahun yang lalu", "dalam 1 tahun"], ["%s tahun yang lalu", "dalam %s tahun"] ] timeago/src/timeago/locales/th.py0000664000175000017500000000227115132234162017267 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["เมื่อสักครู่นี้", "อีกสักครู่"], ["%s วินาทีที่แล้ว", "ใน %s วินาที"], ["1 นาทีที่แล้ว", "ใน 1 นาที"], ["%s นาทีที่แล้ว", "ใน %s นาที"], ["1 ชั่วโมงที่แล้ว", "ใน 1 ชั่วโมง"], ["%s ชั่วโมงที่แล้ว", "ใน %s ชั่วโมง"], ["1 วันที่แล้ว", "ใน 1 วัน"], ["%s วันที่แล้ว", "ใน %s วัน"], ["1 อาทิตย์ที่แล้ว", "ใน 1 อาทิตย์"], ["%s อาทิตย์ที่แล้ว", "ใน %s อาทิตย์"], ["1 เดือนที่แล้ว", "ใน 1 เดือน"], ["%s เดือนที่แล้ว", "ใน %s เดือน"], ["1 ปีที่แล้ว", "ใน 1 ปี"], ["%s ปีที่แล้ว", "ใน %s ปี"] ] timeago/src/timeago/locales/convert_local_to_json.js0000664000175000017500000000066215132234162023227 0ustar joostvbjoostvbif (!process.argv[2]){ console.log('No file') return; } var test = require('./'+process.argv[2]) var fs = require('fs'); var dir = './tmp'; if (!fs.existsSync(dir)){ fs.mkdirSync(dir); } var statements = [] for(var i = 0; i<14; i++){ statements.push(test(null, i)) } result = {statements: statements}; fs.writeFileSync(dir+'/'+process.argv[2].split('/').pop().replace('.js', '')+'.json', JSON.stringify(result)) timeago/src/timeago/locales/gl.py0000664000175000017500000000121115132234162017247 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["xusto agora", "daquí a un pouco"], ["hai %s segundos", "en %s segundos"], ["hai 1 minuto", "nun minuto"], ["hai %s minutos", "en %s minutos"], ["hai 1 hora", "nunha hora"], ["hai %s horas", "en %s horas"], ["hai 1 día", "nun día"], ["hai %s días", "en %s días"], ["hai 1 semana", "nunha semana"], ["hai %s semanas", "en %s semanas"], ["hai 1 mes", "nun mes"], ["hai %s meses", "en %s meses"], ["hai 1 ano", "nun ano"], ["hai %s anos", "en %s anos"] ] timeago/src/timeago/locales/en_short.py0000664000175000017500000000100215132234162020464 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["just now", "right now"], ["%ss ago", "in %ss"], ["1m ago", "in 1m"], ["%sm ago", "in %sm"], ["1h ago", "in 1h"], ["%sh ago", "in %sh"], ["1d ago", "in 1d"], ["%sd ago", "in %sd"], ["1w ago", "in 1w"], ["%sw ago", "in %sw"], ["1mo ago", "in 1mo"], ["%smo ago", "in %smo"], ["1yr ago", "in 1yr"], ["%syr ago", "in %syr"] ] timeago/src/timeago/locales/ro.py0000664000175000017500000000123215132234162017270 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2020-07-31 @author: abelradac ''' LOCALE = [ ["chiar acum", "în curând"], ["acum %s secunde", "în %s secunde"], ["acum un minut", "într-un minut"], ["acum %s minute", "în %s minute"], ["acum o oră", "într-o oră"], ["acum %s ore", "în %s ore"], ["acum o zi", "într-o zi"], ["acum %s zile", "în %s days"], ["acum o săptămână", "într-o săptămână"], ["acum %s săptămâni", "în %s săptămâni"], ["acum o lună", "într-o lună"], ["acum %s luni", "în %s luni"], ["acum un an", "într-un an"], ["acum %s ani", "în %s ani"], ] timeago/src/timeago/locales/fr.py0000664000175000017500000000131715132234162017263 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["à l'instant", "dans un instant"], ["il y a %s secondes", "dans %s secondes"], ["il y a 1 minute", "dans 1 minute"], ["il y a %s minutes", "dans %s minutes"], ["il y a 1 heure", "dans 1 heure"], ["il y a %s heures", "dans %s heures"], ["il y a 1 jour", "dans 1 jour"], ["il y a %s jours", "dans %s jours"], ["il y a 1 semaine", "dans 1 semaine"], ["il y a %s semaines", "dans %s semaines"], ["il y a 1 mois", "dans 1 mois"], ["il y a %s mois", "dans %s mois"], ["il y a 1 an", "dans 1 an"], ["il y a %s ans", "dans %s ans"] ] timeago/src/timeago/locales/he.py0000664000175000017500000000147315132234162017253 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["זה עתה", "עכשיו"], ["לפני %s שניות", "בעוד %s שניות"], ["לפני דקה", "בעוד דקה"], ["לפני %s דקות", "בעוד %s דקות"], ["לפני שעה", "בעוד שעה"], ["לפני %s שעות", "בעוד %s שעות"], ["אתמול", "מחר"], ["לפני %s ימים", "בעוד %s ימים"], ["לפני שבוע", "בעוד שבוע"], ["לפני %s שבועות", "בעוד %s שבועות"], ["לפני חודש", "בעוד חודש"], ["לפני %s חודשים", "בעוד %s חודשים"], ["לפני שנה", "בעוד שנה"], ["לפני %s שנים", "בעוד %s שנים"] ] timeago/src/timeago/locales/ar.py0000664000175000017500000000336115132234162017257 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2019-12-19 @author: ANJD ''' base = [ ["الآن", "خلال لحظات"], ["منذ ثانيتين", "خلال ثانيتين", "منذ %s ثواني", "خلال %s ثواني", "منذ %s ثانية", "خلال %s ثانية"], ["منذ دقيقة", "خلال دقيقة"], ["منذ دقيقتين", "خلال دقيقتين", "منذ %s دقائق", "خلال %s دقائق", "منذ %s دقيقة", "خلال %s دقيقة"], ["منذ ساعة", "خلال ساعة"], ["منذ ساعتين", "خلال ساعتين", "منذ %s ساعات", "خلال %s ساعات", "منذ %s ساعة", "خلال %s ساعة"], ["منذ يوم", "خلال يوم"], ["منذ يومين", "خلال يومين", "منذ %s أيام", "خلال %s أيام", "منذ %s يوم", "خلال %s يوم"], ["منذ أسبوع", "خلال أسبوع"], ["منذ أسبوعين", "خلال أسبوعين", "منذ %s أسابيع", "خلال %s أسابيع", "منذ %s أسبوع", "خلال %s أسبوع"], ["منذ شهر", "خلال شهر"], ["منذ شهرين", "خلال شهرين", "منذ %s أشهر", "خلال %s أشهر", "منذ %s شهراً", "خلال %s شهراً"], ["منذ سنة", "خلال سنة"], ["منذ سنتين", "خلال سنتين", "منذ %s سنوات", "خلال %s سنوات", "منذ %s سنة", "خلال %s سنة"] ] def generate(row, y): def formatting(time): if row % 2 == 0: return base[row][y] if time == 2: return base[row][y] if time in range(3, 11): return base[row][y + 2] return base[row][y + 4] return formatting LOCALE = generate timeago/src/timeago/locales/bg.py0000664000175000017500000000171215132234162017243 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["току що", "съвсем скоро"], ["преди %s секунди", "след %s секунди"], ["преди 1 минута", "след 1 минута"], ["преди %s минути", "след %s минути"], ["преди 1 час", "след 1 час"], ["преди %s часа", "след %s часа"], ["преди 1 ден", "след 1 ден"], ["преди %s дни", "след %s дни"], ["преди 1 седмица", "след 1 седмица"], ["преди %s седмици", "след %s седмици"], ["преди 1 месец", "след 1 месец"], ["преди %s месеца", "след %s месеца"], ["преди 1 година", "след 1 година"], ["преди %s години", "след %s години"] ] timeago/src/timeago/locales/nn_NO.py0000664000175000017500000000122115132234162017655 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["nett no", "om litt"], ["%s sekund sidan", "om %s sekund"], ["1 minutt sidan", "om 1 minutt"], ["%s minutt sidan", "om %s minutt"], ["1 time sidan", "om 1 time"], ["%s timar sidan", "om %s timar"], ["1 dag sidan", "om 1 dag"], ["%s dagar sidan", "om %s dagar"], ["1 veke sidan", "om 1 veke"], ["%s veker sidan", "om %s veker"], ["1 månad sidan", "om 1 månad"], ["%s månadar sidan", "om %s månadar"], ["1 år sidan", "om 1 år"], ["%s år sidan", "om %s år"] ] timeago/src/timeago/locales/ja.py0000664000175000017500000000115215132234162017243 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2016-5-26 @author: HAKASHUN ''' LOCALE = [ [u"たった今", u"すぐに"], [u"%s秒前", u"%s秒以内"], [u"1分前", u"1分以内"], [u"%s分前", u"%s分以内"], [u"1時間前", u"1時間以内"], [u"%s時間前", u"%s時間以内"], [u"昨日", u"1日以内"], [u"%s日前", u"%s日以内"], [u"先週", u"1週間以内"], [u"%s週間前", u"%s週間以内"], [u"1ヶ月前", u"1ヶ月以内"], [u"%sヶ月前", u"%sヶ月以内"], [u"1年前", u"1年以内"], [u"%s年前", u"%s年以内"], ]timeago/src/timeago/locales/de.py0000664000175000017500000000116615132234162017246 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2016-5-26 @author: thinhlx ''' LOCALE = [ ["gerade eben", "gleich"], ["vor %s Sekunden", "in %s Sekunden"], ["vor 1 Minute", "in 1 Minute"], ["vor %s Minuten", "in %s Minuten"], ["vor einer Stunde", "in 1 Stunde"], ["vor %s Stunden", "in %s Stunden"], ["vor 1 Tag", "in 1 Tag"], ["vor %s Tagen", "in %s Tagen"], ["vor 1 Woche", "in 1 Woche"], ["vor %s Wochen", "in %s Wochen"], ["vor 1 Monat", "in 1 Monat"], ["vor %s Monaten", "in %s Monaten"], ["vor 1 Jahr", "in 1 Jahr"], ["vor %s Jahren", "in %s Jahren"], ] timeago/src/timeago/locales/it.py0000664000175000017500000000127315132234162017271 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["poco fa", "tra poco"], ["%s secondi fa", "%s secondi da ora"], ["un minuto fa", "un minuto da ora"], ["%s minuti fa", "%s minuti da ora"], ["un'ora fa", "un'ora da ora"], ["%s ore fa", "%s ore da ora"], ["un giorno fa", "un giorno da ora"], ["%s giorni fa", "%s giorni da ora"], ["una settimana fa", "una settimana da ora"], ["%s settimane fa", "%s settimane da ora"], ["un mese fa", "un mese da ora"], ["%s mesi fa", "%s mesi da ora"], ["un anno fa", "un anno da ora"], ["%s anni fa", "%s anni da ora"] ] timeago/src/timeago/locales/da.py0000664000175000017500000000133215132234162017235 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["for et øjeblik siden", "om et øjeblik"], ["for %s sekunder siden", "om %s sekunder"], ["for 1 minut siden", "om 1 minut"], ["for %s minutter siden", "om %s minutter"], ["for 1 time siden", "om 1 time"], ["for %s timer siden", "om %s timer"], ["for 1 dag siden", "om 1 dag"], ["for %s dage siden", "om %s dage"], ["for 1 uge siden", "om 1 uge"], ["for %s uger siden", "om %s uger"], ["for 1 måned siden", "om 1 måned"], ["for %s måneder siden", "om %s måneder"], ["for 1 år siden", "om 1 år"], ["for %s år siden", "om %s år"] ] timeago/src/timeago/locales/sv_SE.py0000664000175000017500000000131115132234162017665 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2016-9-12 @author: drummersbrother ''' LOCALE = [ ["just nu", "ett tag"], ["för %s sekunder sedan", "om %s sekunder"], ["för 1 minut sedan", "om 1 minut"], ["för %s minuter sedan", "om %s minuter"], ["för 1 timme sedan", "om 1 timme"], ["för %s timmar sedan", "om %s timmar"], ["för 1 dag sedan", "om 1 dag"], ["för %s dagar sedan", "om %s dagar"], ["för 1 vecka sedan", "om 1 vecka"], ["för %s veckor sedan", "om %s veckor"], ["för 1 månad sedan", "om 1 månad"], ["för %s månader sedan", "om %s månader"], ["för 1 år sedan", "om 1 år"], ["för %s år sedan", "om %s år"], ] timeago/src/timeago/locales/pl.py0000664000175000017500000000263415132234162017272 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2018-11-11 @author: marcel-odya ''' base = [ ["właśnie teraz", "za chwilę"], ["%s sekund temu", "za %s sekund", "%s sekundy temu", "za %s sekundy"], ["minutę temu", "za minutę"], ["%s minut temu", "za %s minut", "%s minuty temu", "za %s minuty"], ["godzinę temu", "za godzinę"], ["%s godzin temu", "za %s godzin", "%s godziny temu", "za %s godziny"], ["1 dzień temu", "za 1 dzień"], ["%s dni temu", "za %s dni", "%s dni temu", "za %s dni"], ["tydzień temu", "za tydzień"], ["%s tygodni temu", "za %s tygodni", "%s tygodnie temu", "za %s tygodnie"], ["miesiąc temu", "za miesiąc"], ["%s miesięcy temu", "za %s miesięcy", "%s miesiące temu", "za %s miesiące"], ["rok temu", "za rok"], ["%s lat temu", "za %s lat", "%s lata temu", "za %s lata"] ] def generate(row, y): def formatting(time): ''' Uses the 3rd and 4th field of the list in every 2 entries - the ones containing %s, if the diff ends with 2, 3 or 4 but not with 12, 13 or 14. ''' if row % 2 == 0: return base[row][y] last_number = time % 10 last_two_numbers = time % 100 if last_number in range(2, 5) and last_two_numbers not in range(12, 15): return base[row][y + 2] return base[row][y] return formatting LOCALE = generate timeago/src/timeago/locales/import_locale.py0000664000175000017500000000410615132234162021504 0ustar joostvbjoostvb# coding=utf-8 import codecs import glob import json from git import Repo import os import shutil import re from subprocess import call # Note that you have to specify path to script dest = './jsrepo' # Clean dest try: shutil.rmtree(dest) except: pass if not os.access(dest, os.F_OK): os.mkdir(dest) Repo.clone_from('https://github.com/hustcc/timeago.js.git', dest) for filename in glob.glob(os.path.join(dest, 'locales/*.js')): with open(filename) as f: content = f.readlines() # We're doing just the basic syntax and we're not trying to understand locale.js which is the index file if len(content) > 18 or 'locales.js' in filename: print('Seems that %s is a bit too complex for this parser' % filename) continue print('Generating %s\'s JSON Object...' % filename) call(["node", "convert_local_to_json.js", filename]) override = False for filename in glob.glob('./tmp/*.json'): wrong = False pure_filename = filename.split('/')[-1:][0][:-5] if not override: for already_existing in glob.glob('./*.py'): if already_existing[2:-3] == pure_filename: wrong = True break if wrong: continue with open(filename) as g: json_value = json.loads(g.read()) generated_placeholder = [] for x in json_value['statements']: generated_placeholder.append(x[0]) generated_placeholder.append(x[1]) txt = \ """#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["%s", "%s"], ["%s", "%s"], ["%s", "%s"], ["%s", "%s"], ["%s", "%s"], ["%s", "%s"], ["%s", "%s"], ["%s", "%s"], ["%s", "%s"], ["%s", "%s"], ["%s", "%s"], ["%s", "%s"], ["%s", "%s"], ["%s", "%s"] ] """ % tuple(generated_placeholder) with codecs.open(pure_filename+'.py', 'w+', "utf-8") as h: h.write(txt) h.close() # Clean shutil.rmtree('./tmp') shutil.rmtree(dest) timeago/src/timeago/locales/guj_IN.py0000664000175000017500000000222315132234162020024 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2020-10-04 @author : Aashrut @Country : India @Language : Gujarati ''' LOCALE = [ ['હમણાં', 'થોડી વાર'], ['%s સેકંડ પહેલા', '%s સેકંડમાં'], ['1 મિનિટ પહેલા', '1 મિનિટમાં'], ['%s મિનિટ પહેલા', '%s મિનિટમાં'] , ['1 કલાક પહેલા', '1 કલાકમાં'] , ['%s કલાક પહેલા', '%s કલાકમાં'] , ['1 દિવસ પહેલા', '1 દિવસમાં'] , ['%s દિવસ પહેલા', '%s દિવસમાં'] , ['1 અઠવાડિયા પહેલા', '1 અઠવાડિયામાં'] , ['%s અઠવાડિયા પહેલા', '%s અઠવાડિયામાં'] , ['1 મહિના પહેલા', '1 મહિનામાં'] , ['%s મહિના પહેલા', '%s મહિનામાં'] , ['1 વર્ષ પહેલા', '1 વર્ષમાં'] , ['%s વર્ષ પહેલા','%s વર્ષમાં'], ]timeago/src/timeago/locales/tr.py0000664000175000017500000000130215132234162017273 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["az önce", "şimdi"], ["%s saniye önce", "%s saniye içinde"], ["1 dakika önce", "1 dakika içinde"], ["%s dakika önce", "%s dakika içinde"], ["1 saat önce", "1 saat içinde"], ["%s saat önce", "%s saat içinde"], ["1 gün önce", "1 gün içinde"], ["%s gün önce", "%s gün içinde"], ["1 hafta önce", "1 hafta içinde"], ["%s hafta önce", "%s hafta içinde"], ["1 ay önce", "1 ay içinde"], ["%s ay önce", "%s ay içinde"], ["1 yıl önce", "1 yıl içinde"], ["%s yıl önce", "%s yıl içinde"] ] timeago/src/timeago/locales/my.py0000664000175000017500000000220615132234162017277 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["ယခုအတွင်း", "ယခု"], ["%s စက္ကန့် အကြာက", "%s စက္ကန့်အတွင်း"], ["1 မိနစ် အကြာက", "1 မိနစ်အတွင်း"], ["%s မိနစ် အကြာက", "%s မိနစ်အတွင်း"], ["1 နာရီ အကြာက", "1 နာရီအတွင်း"], ["%s နာရီ အကြာက", "%s နာရီအတွင်း"], ["1 ရက် အကြာက", "1 ရက်အတွင်း"], ["%s ရက် အကြာက", "%s ရက်အတွင်း"], ["1 ပတ် အကြာက", "1 ပတ်အတွင်း"], ["%s ပတ် အကြာက", "%s ပတ်အတွင်း"], ["1 လ အကြာက", "1 လအတွင်း"], ["%s လ အကြာက", "%s လအတွင်း"], ["1 နှစ် အကြာက", "1 နှစ်အတွင်း"], ["%s နှစ် အကြာက", "%s နှစ်အတွင်း"] ] timeago/src/timeago/locales/__init__.py0000664000175000017500000000141615132234162020413 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2016-5-26 @author: hustcc ''' from __future__ import absolute_import from timeago import setting def locale_module(mod, locale): try: return getattr(getattr(getattr(mod, 'locales'), locale), 'LOCALE') except: raise def timeago_template(locale, index, ago_in): ''' simple locale implement ''' try: LOCALE = __import__('timeago.locales.' + locale) LOCALE = locale_module(LOCALE, locale) except: locale = setting.DEFAULT_LOCALE LOCALE = __import__('timeago.locales.' + locale) LOCALE = locale_module(LOCALE, locale) if isinstance(LOCALE, list): return LOCALE[index][ago_in] else: return LOCALE(index, ago_in) timeago/src/timeago/locales/vi.py0000664000175000017500000000135315132234162017272 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["vừa xong", "một lúc"], ["%s giây trước", "trong %s giây"], ["1 phút trước", "trong 1 phút"], ["%s phút trước", "trong %s phút"], ["1 giờ trước", "trong 1 giờ"], ["%s giờ trước", "trong %s giờ"], ["1 ngày trước", "trong 1 ngày"], ["%s ngày trước", "trong %s ngày"], ["1 tuần trước", "trong 1 tuần"], ["%s tuần trước", "trong %s tuần"], ["1 tháng trước", "trong 1 tháng"], ["%s tháng trước", "trong %s tháng"], ["1 năm trước", "trong 1 năm"], ["%s năm trước", "trong %s năm"] ] timeago/src/timeago/locales/ca.py0000664000175000017500000000127015132234162017235 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["fa un moment", "d'aquí un moment"], ["fa %s segons", "d'aquí %s segons"], ["fa 1 minut", "d'aquí 1 minut"], ["fa %s minuts", "d'aquí %s minuts"], ["fa 1 hora", "d'aquí 1 hora"], ["fa %s hores", "d'aquí %s hores"], ["fa 1 dia", "d'aquí 1 dia"], ["fa %s dies", "d'aquí %s dies"], ["fa 1 setmana", "d'aquí 1 setmana"], ["fa %s setmanes", "d'aquí %s setmanes"], ["fa 1 mes", "d'aquí 1 mes"], ["fa %s mesos", "d'aquí %s mesos"], ["fa 1 any", "d'aquí 1 any"], ["fa %s anys", "d'aquí %s anys"] ] timeago/src/timeago/locales/ru.py0000664000175000017500000000467315132234162017312 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: avrong ''' base = [ ["только что", "через несколько секунд"], ["%s секунду назад", "через %s секунду", "%s секунды назад", "через %s секунды", "%s секунд назад", "через %s секунд"], ["минуту назад", "через минуту"], ["%s минуту назад", "через %s минуту", "%s минуты назад", "через %s минуты", "%s минут назад", "через %s минут"], ["час назад", "через час"], ["%s час назад", "через %s час", "%s часа назад", "через %s часа", "%s часов назад", "через %s часов"], ["вчера", "завтра"], ["%s день назад", "через %s день", "%s дня назад", "через %s дня", "%s дней назад", "через %s дней"], ["неделю назад", "через неделю"], ["%s неделю назад", "через %s неделю", "%s недели назад", "через %s недели", "%s недель назад", "через %s недель"], ["месяц назад", "через месяц"], ["%s месяц назад", "через %s месяц", "%s месяца назад", "через %s месяца", "%s месяцев назад", "через %s месяцев"], ["год назад", "через год"], ["%s год назад", "через %s год", "%s года назад", "через %s года", "%s лет назад", "через %s лет"], ] def generate(row, y): def formatting(time): '''Uses the first and second fields for (2,3,4) cases and 3rd and 4th for the rest.''' multiple_rows = [ 1, # multiple seconds 3, # multiple minutes 5, # multiple hours 7, # multiple days 9, # multiple weeks 11, # multiple months 13, # multiple years ] if row in multiple_rows: if time > 20: time = time % 10 if time == 1: return base[row][y] elif time in (2, 3, 4): return base[row][y + 2] else: return base[row][y + 4] return base[row][y] return formatting LOCALE = generate timeago/src/timeago/locales/ml.py0000664000175000017500000000341615132234162017266 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["ഇപ്പോള്‍", "കുറച്ചു മുന്‍പ്"], ["%s സെക്കന്റ്‌കള്‍ക്ക് മുന്‍പ്", "%s സെക്കന്റില്‍"], ["1 മിനിറ്റിനു മുന്‍പ്", "1 മിനിറ്റില്‍"], ["%s മിനിറ്റുകള്‍ക്ക് മുന്‍പ", "%s മിനിറ്റില്‍"], ["1 മണിക്കൂറിനു മുന്‍പ്", "1 മണിക്കൂറില്‍"], ["%s മണിക്കൂറുകള്‍ക്കു മുന്‍പ്", "%s മണിക്കൂറില്‍"], ["1 ഒരു ദിവസം മുന്‍പ്", "1 ദിവസത്തില്‍"], ["%s ദിവസങ്ങള്‍ക് മുന്‍പ്", "%s ദിവസങ്ങള്‍ക്കുള്ളില്‍"], ["1 ആഴ്ച മുന്‍പ്", "1 ആഴ്ചയില്‍"], ["%s ആഴ്ചകള്‍ക്ക് മുന്‍പ്", "%s ആഴ്ചകള്‍ക്കുള്ളില്‍"], ["1 മാസത്തിനു മുന്‍പ്", "1 മാസത്തിനുള്ളില്‍"], ["%s മാസങ്ങള്‍ക്ക് മുന്‍പ്", "%s മാസങ്ങള്‍ക്കുള്ളില്‍"], ["1 വര്‍ഷത്തിനു മുന്‍പ്", "1 വര്‍ഷത്തിനുള്ളില്‍"], ["%s വര്‍ഷങ്ങള്‍ക്കു മുന്‍പ്", "%s വര്‍ഷങ്ങള്‍ക്കുല്ല്ളില്‍"] ] timeago/src/timeago/locales/pt_BR.py0000664000175000017500000000122615132234162017661 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["agora mesmo", "daqui um pouco"], ["há %s segundos", "em %s segundos"], ["há um minuto", "em um minuto"], ["há %s minutos", "em %s minutos"], ["há uma hora", "em uma hora"], ["há %s horas", "em %s horas"], ["há um dia", "em um dia"], ["há %s dias", "em %s dias"], ["há uma semana", "em uma semana"], ["há %s semanas", "em %s semanas"], ["há um mês", "em um mês"], ["há %s meses", "em %s meses"], ["há um ano", "em um ano"], ["há %s anos", "em %s anos"] ] timeago/src/timeago/locales/zh_TW.py0000664000175000017500000000106715132234162017711 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["剛剛", "片刻後"], ["%s秒前", "%s秒後"], ["1分鐘前", "1分鐘後"], ["%s分鐘前", "%s分鐘後"], ["1小時前", "1小時後"], ["%s小時前", "%s小時後"], ["1天前", "1天後"], ["%s天前", "%s天後"], ["1周前", "1周後"], ["%s周前", "%s周後"], ["1月前", "1月後"], ["%s月前", "%s月後"], ["1年前", "1年後"], ["%s年前", "%s年後"] ] timeago/src/timeago/locales/in_BG.py0000664000175000017500000000226315132234162017633 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2016-9-26 @author : ajphukan @email : leocreed1994@gmail.com @Country : India @Language : Bengali ''' LOCALE = [ [ 'এইমাত্র' , 'একটা সময়'] , [ '%s সেকেন্ড আগে', '%s এর সেকেন্ডের মধ্যে'] , [ '1 মিনিট আগে', '1 মিনিটে'] , [ '%s এর মিনিট আগে', '%s এর মিনিটের মধ্যে'] , [ '1 ঘন্টা আগে', '1 ঘন্টা'] , [ '%s ঘণ্টা আগে', '%s এর ঘন্টার মধ্যে'] , [ '1 দিন আগে', '1 দিনের মধ্যে'] , [ '%s এর দিন আগে', '%s এর দিন'] , [ '1 সপ্তাহ আগে', '1 সপ্তাহের মধ্যে'] , [ '%s এর সপ্তাহ আগে', '%s সপ্তাহের মধ্যে'] , [ '1 মাস আগে', '1 মাসে'] , [ '%s মাস আগে', '%s মাসে'] , [ '1 বছর আগে', '1 বছরের মধ্যে'] , [ '%s বছর আগে', '%s বছরে'], ] timeago/src/timeago/locales/fa_IR.py0000664000175000017500000000151715132234162017636 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-01-26 @author: meyti[mahdi.ghane.g] ''' LOCALE = [ ["هم اکنون", "به زودی"], ["%s ثانیه پیش", "%s ثانیه بعد"], ["یک دقیقه پیش", "یک دقیقه بعد"], ["%s دقیقه پیش", "%s دقیقه بعد"], ["یک ساعت پیش", "یک ساعت بعد"], ["%s ساعت پیش", "%s ساعت بعد"], ["دیروز", "فردا"], ["%s روز پیش", "%s روز بعد"], ["هفته پیش", "هفته بعد"], ["%s هفته پیش", "%s هفته بعد"], ["ماه پیش", "ماه بعد"], ["%s ماه پیش", "%s ماه بعد"], ["پارسال", "سال بعد"], ["%s سال پیش", "%s سال بعد"], ] timeago/src/timeago/locales/es.py0000664000175000017500000000122515132234162017261 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["justo ahora", "en un rato"], ["hace %s segundos", "en %s segundos"], ["hace 1 minuto", "en 1 minuto"], ["hace %s minutos", "en %s minutos"], ["hace 1 hora", "en 1 hora"], ["hace %s horas", "en %s horas"], ["hace 1 día", "en 1 día"], ["hace %s días", "en %s días"], ["hace 1 semana", "en 1 semana"], ["hace %s semanas", "en %s semanas"], ["hace 1 mes", "en 1 mes"], ["hace %s meses", "en %s meses"], ["hace 1 año", "en 1 año"], ["hace %s años", "en %s años"] ] timeago/src/timeago/locales/ta.py0000664000175000017500000000276715132234162017272 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017-8-30 @author: generated by @lolobosse script ''' LOCALE = [ ["இப்போது", "சற்று நேரம் முன்பு"], ["%s நொடிக்கு முன்", "%s நொடிகளில்"], ["1 நிமிடத்திற்க்கு முன்", "1 நிமிடத்தில்"], ["%s நிமிடத்திற்க்கு முன்", "%s நிமிடங்களில்"], ["1 மணி நேரத்திற்கு முன்", "1 மணி நேரத்திற்குள்"], ["%s மணி நேரத்திற்கு முன்", "%s மணி நேரத்திற்குள்"], ["1 நாளுக்கு முன்", "1 நாளில்"], ["%s நாட்களுக்கு முன்", "%s நாட்களில்"], ["1 வாரத்திற்கு முன்", "1 வாரத்தில்"], ["%s வாரங்களுக்கு முன்", "%s வாரங்களில்"], ["1 மாதத்திற்கு முன்", "1 மாதத்தில்"], ["%s மாதங்களுக்கு முன்", "%s மாதங்களில்"], ["1 வருடத்திற்கு முன்", "1 வருடத்தில்"], ["%s வருடங்களுக்கு முன்", "%s வருடங்களில்"] ] timeago/src/timeago/setting.py0000664000175000017500000000020615132234162016703 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2016-5月26 @author: hustcc ''' DEFAULT_LOCALE = 'en' # default lang timeago/src/timeago/parser.py0000664000175000017500000000430615132234162016527 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2016-5-27 @author: hustcc ''' from datetime import datetime from datetime import date from datetime import time __ALL__ = ['parse'] def parse(input): ''' parse input to datetime ''' if isinstance(input, datetime): return input if isinstance(input, date): return date_to_datetime(input) if isinstance(input, time): return time_to_datetime(input) if isinstance(input, (int, float)): return timestamp_to_datetime(input) if isinstance(input, (str)): return string_to_data_time(input) return None def date_to_datetime(d): return _combine_date_time(d, time(0, 0, 0)) def time_to_datetime(t): return _combine_date_time(date.today(), t) def timestamp_to_datetime(ts): ''' parse timestamp to datetime ''' return datetime.fromtimestamp(ts) def _combine_date_time(d, t): if (d is not None) and (t is not None): return datetime(d.year, d.month, d.day, t.hour, t.minute, t.second) return None def _string_to_date(date_string): if not date_string: return None try: d_array = date_string.split('-') return date(int(d_array[0]), int(d_array[1]), int(d_array[2])) except: return None def _string_to_time(time_string): if not time_string: return None try: t_array = time_string.split(':') return time(int(t_array[0]), int(t_array[1]), int(t_array[2])) except: return None def string_to_data_time(d): ''' simple parse date string, such as: 2016-5-27 21:22:20 2016-05-27 21:22:2 2016/05/27 21:22:2 2016-05-27 2016/5/27 21:22:2 ''' if d: d = d.replace('/', '-') if ' ' in d: _datetime = d.split(' ') if len(_datetime) == 2: _d = _string_to_date(_datetime[0]) _t = _string_to_time(_datetime[1]) return _combine_date_time(_d, _t) else: # no space if '-' in d: return date_to_datetime(_string_to_date(d)) elif ':' in d: return time_to_datetime(_string_to_time(d)) return None timeago/src/timeago/excepts.py0000664000175000017500000000041215132234162016700 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2016-5-26 @author: hustcc ''' # parameter not valid class ParameterUnvalid(Exception): def __init__(self, value): self.value = value def __str__(self): return repr(self.value) timeago/src/timeago/__init__.py0000664000175000017500000000424415132234162016773 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2016-5-26 @author: hustcc ''' from datetime import datetime, timedelta from timeago.locales import timeago_template from timeago.excepts import ParameterUnvalid from timeago import parser from timeago.setting import DEFAULT_LOCALE __version__ = '1.0.14' __license__ = 'MIT' __ALL__ = ['format'] # Original fix #2 for Py2.6 def total_seconds(dt): # Keep backward compatibility with Python 2.6 which doesn't have # this method if hasattr(datetime, 'total_seconds'): return dt.total_seconds() else: return (dt.microseconds + (dt.seconds + dt.days * 24 * 3600) * 10**6) / 10**6 # second, minute, hour, day, week, month, year(365 days) SEC_ARRAY = [60.0, 60.0, 24.0, 7.0, 365.0 / 7.0 / 12.0, 12.0] SEC_ARRAY_LEN = 6 def format(date, now=None, locale='en'): ''' the entry method ''' if not isinstance(date, timedelta): if now is None: now = datetime.now() date = parser.parse(date) now = parser.parse(now) if date is None: raise ParameterUnvalid('the parameter `date` should be datetime ' '/ timedelta, or datetime formatted string.') if now is None: raise ParameterUnvalid('the parameter `now` should be datetime, ' 'or datetime formatted string.') date = now - date # the gap sec diff_seconds = int(total_seconds(date)) # is ago or in ago_in = 0 if diff_seconds < 0: ago_in = 1 # date is later then now, is the time in future diff_seconds *= -1 # change to positive tmp = 0 i = 0 while i < SEC_ARRAY_LEN: tmp = SEC_ARRAY[i] if diff_seconds >= tmp: i += 1 diff_seconds /= tmp else: break diff_seconds = int(diff_seconds) i *= 2 if diff_seconds > (i == 0 and 9 or 1): i += 1 if locale is None: locale = DEFAULT_LOCALE tmp = timeago_template(locale, i, ago_in) if hasattr(tmp, '__call__'): tmp = tmp(diff_seconds) return '%s' in tmp and tmp % diff_seconds or tmp timeago/src/__init__.py0000664000175000017500000000000015132234162015330 0ustar joostvbjoostvbtimeago/test/0000775000175000017500000000000015132234162013421 5ustar joostvbjoostvbtimeago/test/do_test.sh0000775000175000017500000000023415132234162015420 0ustar joostvbjoostvb#!/bin/bash python test/testcase.py # flake8 --format=pylint --max-line-length=120 --ignore=F403 --builtins=_ \ # $(find src/timeago/ -name "*.py" -print)timeago/test/__init__.py0000664000175000017500000000000015132234162015520 0ustar joostvbjoostvbtimeago/test/testcase.py0000664000175000017500000033625615132234162015625 0ustar joostvbjoostvb#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2016年5月26日 @author: hustcc ''' import sys import os # We need to add the source to the path (required at least on my machine). sys.path.insert(0, os.path.realpath('src')) import unittest import datetime import random from datetime import date as dateimport, time import timeago from timeago.excepts import ParameterUnvalid from timeago import parser def datetime_to_string(d): temp = ['%s-%s-%s %s:%s:%s', '%s/%s/%s %s:%s:%s'][(random.randint(1, 99)) % 2] return temp % (d.year, d.month, d.day, d.hour, d.minute, d.second) class TestCase(unittest.TestCase): # init def setUp(self): unittest.TestCase.setUp(self) # exit def tearDown(self): pass # test except def test_timeago_except(self): date = '' self.assertRaises(ParameterUnvalid, timeago.format, date) date = '12:23:23a' self.assertRaises(ParameterUnvalid, timeago.format, date) date = '2016-5-27 12:23:23' self.assertRaises(ParameterUnvalid, timeago.format, date) # test en lang def test_timeago_en(self): locale = None date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), 'just now') now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), '10 seconds ago') now = date + datetime.timedelta(seconds=12) self.assertEqual(timeago.format(date, now, locale), '12 seconds ago') now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), '1 minute ago') now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), '3 minutes ago') now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), '1 hour ago') now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), '2 hours ago') now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), '1 day ago') now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), '4 days ago') now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), '4 weeks ago') now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), '3 months ago') now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), '1 year ago') now = date + datetime.timedelta(seconds=31536000 * 1.1) self.assertEqual(timeago.format(date, now, locale), '1 year ago') now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), '2 years ago') # test sk lang def test_timeago_sk(self): locale = "sk" date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), 'práve teraz') now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), 'pred 10 sekundami') now = date + datetime.timedelta(seconds=12) self.assertEqual(timeago.format(date, now, locale), 'pred 12 sekundami') now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), 'pred minútou') now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), 'pred 3 minútami') now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), 'pred hodinou') now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), 'pred 2 hodinami') now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), 'pred dňom') now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), 'pred 4 dňami') now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), 'pred 4 týždňami') now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), 'pred 3 mesiacmi') now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), 'pred rokom') now = date + datetime.timedelta(seconds=31536000 * 1.1) self.assertEqual(timeago.format(date, now, locale), 'pred rokom') now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), 'pred 2 rokmi') def test_raw_timedelta_defaults_to_now(self): delta = datetime.timedelta(seconds=10) self.assertEqual(timeago.format(delta, None), '10 seconds ago') # test fa lang def test_timeago_fa(self): locale = 'fa_IR' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), 'هم اکنون') now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), '10 ثانیه پیش') now = date + datetime.timedelta(seconds=12) self.assertEqual(timeago.format(date, now, locale), '12 ثانیه پیش') now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), 'یک دقیقه پیش') now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), '3 دقیقه پیش') now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), 'یک ساعت پیش') now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), '2 ساعت پیش') now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), 'دیروز') now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), '4 روز پیش') now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), '4 هفته پیش') now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), '3 ماه پیش') now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), 'پارسال') now = date + datetime.timedelta(seconds=31536000 * 1.1) self.assertEqual(timeago.format(date, now, locale), 'پارسال') now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), '2 سال پیش') # test guj_IN lang def test_timeago_guj_IN(self): locale = 'guj_IN' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), 'હમણાં') now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), '10 સેકંડ પહેલા') now = date + datetime.timedelta(seconds=12) self.assertEqual(timeago.format(date, now, locale), '12 સેકંડ પહેલા') now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), '1 મિનિટ પહેલા') now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), '3 મિનિટ પહેલા') now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), '1 કલાક પહેલા') now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), '2 કલાક પહેલા') now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), '1 દિવસ પહેલા') now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), '4 દિવસ પહેલા') now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), '4 અઠવાડિયા પહેલા') now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), '3 મહિના પહેલા') now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), '1 વર્ષ પહેલા') now = date + datetime.timedelta(seconds=31536000 * 1.1) self.assertEqual(timeago.format(date, now, locale), '1 વર્ષ પહેલા') now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), '2 વર્ષ પહેલા') # test zh_CN lang def test_timeago_cn(self): locale = 'zh_CN' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), u'刚刚') now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), u'10秒前') now = date + datetime.timedelta(seconds=12) self.assertEqual(timeago.format(date, now, locale), u'12秒前') now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), u'1分钟前') now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), u'3分钟前') now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), u'1小时前') now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), u'2小时前') now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), u'1天前') now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), u'4天前') now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), u'4周前') now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), u'3月前') now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), u'1年前') now = date + datetime.timedelta(seconds=31536000 * 1.1) self.assertEqual(timeago.format(date, now, locale), u'1年前') now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), u'2年前') # test ja lang def test_timeago_ja(self): locale = 'ja' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), u'たった今') now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), u'10秒前') now = date + datetime.timedelta(seconds=12) self.assertEqual(timeago.format(date, now, locale), u'12秒前') now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), u'1分前') now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), u'3分前') now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), u'1時間前') now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), u'2時間前') now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), u'昨日') now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), u'4日前') now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), u'4週間前') now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), u'3ヶ月前') now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), u'1年前') now = date + datetime.timedelta(seconds=31536000 * 1.1) self.assertEqual(timeago.format(date, now, locale), u'1年前') now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), u'2年前') # test in def test_timeago_en_in(self): locale = 'en' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(now, date, locale), 'a while') now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(now, date, locale), 'in 10 seconds') now = date + datetime.timedelta(seconds=12) self.assertEqual(timeago.format(now, date, locale), 'in 12 seconds') now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(now, date, locale), 'in 1 minute') now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(now, date, locale), 'in 3 minutes') now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(now, date, locale), 'in 1 hour') now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(now, date, locale), 'in 2 hours') now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(now, date, locale), 'in 1 day') now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(now, date, locale), 'in 4 days') now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(now, date, locale), 'in 4 weeks') now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(now, date, locale), 'in 3 months') now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(now, date, locale), 'in 1 year') now = date + datetime.timedelta(seconds=31536000 * 1.1) self.assertEqual(timeago.format(now, date, locale), 'in 1 year') now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(now, date, locale), 'in 2 years') # test in def test_timeago_fa_in(self): locale = 'fa_IR' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(now, date, locale), 'به زودی') now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(now, date, locale), '10 ثانیه بعد') now = date + datetime.timedelta(seconds=12) self.assertEqual(timeago.format(now, date, locale), '12 ثانیه بعد') now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(now, date, locale), 'یک دقیقه بعد') now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(now, date, locale), '3 دقیقه بعد') now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(now, date, locale), 'یک ساعت بعد') now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(now, date, locale), '2 ساعت بعد') now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(now, date, locale), 'فردا') now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(now, date, locale), '4 روز بعد') now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(now, date, locale), '4 هفته بعد') now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(now, date, locale), '3 ماه بعد') now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(now, date, locale), 'سال بعد') now = date + datetime.timedelta(seconds=31536000 * 1.1) self.assertEqual(timeago.format(now, date, locale), 'سال بعد') now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(now, date, locale), '2 سال بعد') def test_timeago_cn_in(self): locale = 'zh_CN' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(now, date, locale), u'片刻后') now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(now, date, locale), u'10秒后') now = date + datetime.timedelta(seconds=12) self.assertEqual(timeago.format(now, date, locale), u'12秒后') now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(now, date, locale), u'1分钟后') now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(now, date, locale), u'3分钟后') now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(now, date, locale), u'1小时后') now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(now, date, locale), u'2小时后') now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(now, date, locale), u'1天后') now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(now, date, locale), u'4天后') now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(now, date, locale), u'4周后') now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(now, date, locale), u'3月后') now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(now, date, locale), u'1年后') now = date + datetime.timedelta(seconds=31536000 * 1.1) self.assertEqual(timeago.format(now, date, locale), u'1年后') now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(now, date, locale), u'2年后') # test ja lang in def test_timeago_ja_in(self): locale = 'ja' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(now, date, locale), u'すぐに') now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(now, date, locale), u'10秒以内') now = date + datetime.timedelta(seconds=12) self.assertEqual(timeago.format(now, date, locale), u'12秒以内') now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(now, date, locale), u'1分以内') now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(now, date, locale), u'3分以内') now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(now, date, locale), u'1時間以内') now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(now, date, locale), u'2時間以内') now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(now, date, locale), u'1日以内') now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(now, date, locale), u'4日以内') now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(now, date, locale), u'4週間以内') now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(now, date, locale), u'3ヶ月以内') now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(now, date, locale), u'1年以内') now = date + datetime.timedelta(seconds=31536000 * 1.1) self.assertEqual(timeago.format(now, date, locale), u'1年以内') now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(now, date, locale), u'2年以内') # test ru lang def test_timeago_ru(self): locale = 'ru' # Just now. date = datetime.datetime.now() now = date + datetime.timedelta(seconds=4) self.assertEqual(timeago.format(date, now, locale), 'только что') # Seconds. now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), '10 секунд назад') now = date + datetime.timedelta(seconds=21) self.assertEqual(timeago.format(date, now, locale), '21 секунду назад') now = date + datetime.timedelta(seconds=22) self.assertEqual(timeago.format(date, now, locale), '22 секунды назад') now = date + datetime.timedelta(seconds=26) self.assertEqual(timeago.format(date, now, locale), '26 секунд назад') # Minutes. now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), 'минуту назад') now = date + datetime.timedelta(seconds=60 * 2) self.assertEqual(timeago.format(date, now, locale), '2 минуты назад') now = date + datetime.timedelta(seconds=60 * 5) self.assertEqual(timeago.format(date, now, locale), '5 минут назад') now = date + datetime.timedelta(seconds=60 * 21) self.assertEqual(timeago.format(date, now, locale), '21 минуту назад') now = date + datetime.timedelta(seconds=60 * 22) self.assertEqual(timeago.format(date, now, locale), '22 минуты назад') now = date + datetime.timedelta(seconds=60 * 26) self.assertEqual(timeago.format(date, now, locale), '26 минут назад') # Hours. now = date + datetime.timedelta(hours=1) self.assertEqual(timeago.format(date, now, locale), 'час назад') now = date + datetime.timedelta(hours=3) self.assertEqual(timeago.format(date, now, locale), '3 часа назад') now = date + datetime.timedelta(hours=5) self.assertEqual(timeago.format(date, now, locale), '5 часов назад') now = date + datetime.timedelta(hours=21) self.assertEqual(timeago.format(date, now, locale), '21 час назад') now = date + datetime.timedelta(hours=23) self.assertEqual(timeago.format(date, now, locale), '23 часа назад') # Days. now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), 'вчера') now = date + datetime.timedelta(hours=24 * 3) self.assertEqual(timeago.format(date, now, locale), '3 дня назад') now = date + datetime.timedelta(hours=24 * 5) self.assertEqual(timeago.format(date, now, locale), '5 дней назад') # Weeks. now = date + datetime.timedelta(days=7) self.assertEqual(timeago.format(date, now, locale), 'неделю назад') for week in (2, 3, 4): now = date + datetime.timedelta(days=week * 7) self.assertEqual(timeago.format(date, now, locale), '%s недели назад' % week) # Months. now = date + datetime.timedelta(days=31) self.assertEqual(timeago.format(date, now, locale), 'месяц назад') for month in (2, 3, 4): now = date + datetime.timedelta(days=month * 31) self.assertEqual(timeago.format(date, now, locale), '%s месяца назад' % month) now = date + datetime.timedelta(seconds=2592000 * 5.5) self.assertEqual(timeago.format(date, now, locale), '5 месяцев назад') # Years. now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), 'год назад') for year in (2, 3, 4): now = date + datetime.timedelta(seconds=31536000 * (year + 0.1)) self.assertEqual(timeago.format(date, now, locale), '%s года назад' % year) now = date + datetime.timedelta(seconds=31536000 * 5.1) self.assertEqual(timeago.format(date, now, locale), '5 лет назад') now = date + datetime.timedelta(seconds=31536000 * 21.1) self.assertEqual(timeago.format(date, now, locale), '21 год назад') now = date + datetime.timedelta(seconds=31536000 * 22.1) self.assertEqual(timeago.format(date, now, locale), '22 года назад') now = date + datetime.timedelta(seconds=31536000 * 26.1) self.assertEqual(timeago.format(date, now, locale), '26 лет назад') # test ja lang def test_timeago_de(self): locale = 'de' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), u'gerade eben') now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), u'vor 10 Sekunden') now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), u'vor 1 Minute') now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), u'vor 3 Minuten') now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), u'vor einer Stunde') now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), u'vor 2 Stunden') now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), u'vor 1 Tag') now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), u'vor 4 Tagen') now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), u'vor 1 Woche') now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), u'vor 4 Wochen') now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), u'vor 1 Monat') now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), u'vor 3 Monaten') now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), u'vor 1 Jahr') now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), u'vor 2 Jahren') # test en lang def test_timeago_parse_input(self): date = datetime.datetime(2016, 5, 27, 21, 22, 2) # datetime string input = '2016-05-27 21:22:02' self.assertEqual(parser.parse(input), date) input = '2016-5-27 21:22:2' self.assertEqual(parser.parse(input), date) input = '2016/05/27 21:22:02' self.assertEqual(parser.parse(input), date) input = '2016/5/27 21:22:02' self.assertEqual(parser.parse(input), date) date = datetime.datetime(2016, 5, 27, 0, 0, 0) input = '2016/05/27' self.assertEqual(parser.parse(input), date) input = '2016-5-27' self.assertEqual(parser.parse(input), date) input = '2016-05-27' self.assertEqual(parser.parse(input), date) today = dateimport.today() date = datetime.datetime( today.year, today.month, today.day, 12, 12, 12) input = '12:12:12' self.assertEqual(parser.parse(input), date) # date input = dateimport(2016, 5, 27) date = datetime.datetime(2016, 5, 27, 0, 0, 0) self.assertEqual(parser.parse(input), date) # time today = dateimport.today() input = time(21, 45, 27) date = datetime.datetime( today.year, today.month, today.day, 21, 45, 27) self.assertEqual(parser.parse(input), date) # datetime input = datetime.datetime(2016, 5, 27, 21, 45, 27) date = datetime.datetime(2016, 5, 27, 21, 45, 27) self.assertEqual(parser.parse(input), date) # None input = '2016-05-27 23.23:21' self.assertEqual(parser.parse(input), None) # None input = '2016-05-27 23:23:21' self.assertEqual(parser.parse(input), None) # test en lang def test_timeago_string_input(self): locale = None date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format( datetime_to_string(date), now, locale), 'just now') now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(datetime_to_string( date), datetime_to_string(now), locale), '10 seconds ago') now = date + datetime.timedelta(seconds=12) self.assertEqual(timeago.format( datetime_to_string(date), now, locale), '12 seconds ago') now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format( datetime_to_string(date), now, locale), '1 minute ago') now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format( datetime_to_string(date), now, locale), '3 minutes ago') now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format( datetime_to_string(date), now, locale), '1 hour ago') now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format( datetime_to_string(date), now, locale), '2 hours ago') now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format( datetime_to_string(date), now, locale), '1 day ago') now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format( datetime_to_string(date), now, locale), '4 days ago') now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format( datetime_to_string(date), now, locale), '4 weeks ago') now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format( datetime_to_string(date), now, locale), '3 months ago') now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format( datetime_to_string(date), now, locale), '1 year ago') now = date + datetime.timedelta(seconds=31536000 * 1.1) self.assertEqual(timeago.format( datetime_to_string(date), now, locale), '1 year ago') now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format( datetime_to_string(date), now, locale), '2 years ago') # test en lang def test_timeago_delta(self): locale = None date = datetime.timedelta(seconds=9) self.assertEqual(timeago.format(date, None, locale), 'just now') def test_timeago_bg(self): locale = 'bg' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "току що") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "преди 10 секунди") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "преди 1 минута") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "преди 3 минути") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "преди 1 час") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "преди 2 часа") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "преди 1 ден") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "преди 4 дни") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "преди 1 седмица") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "преди 4 седмици") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "преди 1 месец") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "преди 3 месеца") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "преди 1 година") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "преди 2 години") def test_timeago_ca(self): locale = 'ca' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "fa un moment") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "fa 10 segons") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "fa 1 minut") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "fa 3 minuts") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "fa 1 hora") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "fa 2 hores") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "fa 1 dia") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "fa 4 dies") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "fa 1 setmana") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "fa 4 setmanes") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "fa 1 mes") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "fa 3 mesos") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "fa 1 any") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "fa 2 anys") def test_timeago_da(self): locale = 'da' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "for et øjeblik siden") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "for 10 sekunder siden") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "for 1 minut siden") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "for 3 minutter siden") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "for 1 time siden") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "for 2 timer siden") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "for 1 dag siden") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "for 4 dage siden") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "for 1 uge siden") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "for 4 uger siden") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "for 1 måned siden") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "for 3 måneder siden") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "for 1 år siden") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "for 2 år siden") def test_timeago_el(self): locale = 'el' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "μόλις τώρα") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "10 δευτερόλεπτα πριν") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "1 λεπτό πριν") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "3 λεπτά πριν") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "1 ώρα πριν") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "2 ώρες πριν") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "1 μέρα πριν") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "4 μέρες πριν") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "1 εβδομάδα πριν") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "4 εβδομάδες πριν") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "1 μήνα πριν") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "3 μήνες πριν") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "1 χρόνο πριν") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "2 χρόνια πριν") def test_timeago_en_short(self): locale = 'en_short' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "just now") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "10s ago") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "1m ago") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "3m ago") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "1h ago") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "2h ago") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "1d ago") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "4d ago") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "1w ago") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "4w ago") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "1mo ago") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "3mo ago") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "1yr ago") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "2yr ago") def test_timeago_es(self): locale = 'es' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "justo ahora") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "hace 10 segundos") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "hace 1 minuto") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "hace 3 minutos") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "hace 1 hora") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "hace 2 horas") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "hace 1 día") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "hace 4 días") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "hace 1 semana") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "hace 4 semanas") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "hace 1 mes") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "hace 3 meses") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "hace 1 año") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "hace 2 años") def test_timeago_eu(self): locale = 'eu' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "orain") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "duela 10 segundu") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "duela minutu 1") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "duela 3 minutu") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "duela ordu 1") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "duela 2 ordu") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "duela egun 1") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "duela 4 egun") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "duela aste 1") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "duela 4 aste") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "duela hillabete 1") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "duela 3 hillabete") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "duela urte 1") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "duela 2 urte") def test_timeago_fi(self): locale = 'fi' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "juuri äsken") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "10 sekuntia sitten") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "minuutti sitten") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "3 minuuttia sitten") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "tunti sitten") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "2 tuntia sitten") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "päivä sitten") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "4 päivää sitten") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "viikko sitten") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "4 viikkoa sitten") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "kuukausi sitten") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "3 kuukautta sitten") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "vuosi sitten") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "2 vuotta sitten") def test_timeago_fr(self): locale = 'fr' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "à l'instant") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "il y a 10 secondes") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "il y a 1 minute") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "il y a 3 minutes") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "il y a 1 heure") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "il y a 2 heures") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "il y a 1 jour") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "il y a 4 jours") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "il y a 1 semaine") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "il y a 4 semaines") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "il y a 1 mois") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "il y a 3 mois") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "il y a 1 an") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "il y a 2 ans") def test_timeago_gl(self): locale = 'gl' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "xusto agora") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "hai 10 segundos") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "hai 1 minuto") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "hai 3 minutos") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "hai 1 hora") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "hai 2 horas") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "hai 1 día") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "hai 4 días") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "hai 1 semana") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "hai 4 semanas") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "hai 1 mes") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "hai 3 meses") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "hai 1 ano") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "hai 2 anos") def test_timeago_he(self): locale = 'he' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "זה עתה") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "לפני 10 שניות") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "לפני דקה") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "לפני 3 דקות") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "לפני שעה") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "לפני 2 שעות") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "אתמול") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "לפני 4 ימים") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "לפני שבוע") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "לפני 4 שבועות") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "לפני חודש") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "לפני 3 חודשים") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "לפני שנה") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "לפני 2 שנים") def test_timeago_hu(self): locale = 'hu' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "éppen most") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "10 másodperce") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "1 perce") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "3 perce") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "1 órája") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "2 órája") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "1 napja") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "4 napja") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "1 hete") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "4 hete") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "1 hónapja") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "3 hónapja") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "1 éve") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "2 éve") def test_timeago_in_ID(self): locale = 'in_ID' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "baru saja") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "10 detik yang lalu") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "1 menit yang lalu") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "3 menit yang lalu") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "1 jam yang lalu") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "2 jam yang lalu") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "1 hari yang lalu") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "4 hari yang lalu") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "1 minggu yang lalu") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "4 minggu yang lalu") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "1 bulan yang lalu") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "3 bulan yang lalu") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "1 tahun yang lalu") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "2 tahun yang lalu") def test_timeago_is(self): locale = 'is' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "rétt í þessu") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "fyrir 10 sekúndum") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "fyrir 1 mínútu") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "fyrir 3 mínútum") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "fyrir 1 klukkutíma") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "fyrir 2 klukkutímum") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "fyrir 1 degi") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "fyrir 4 dögum") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "fyrir 1 viku") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "fyrir 4 vikum") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "fyrir 1 mánuði") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "fyrir 3 mánuðum") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "fyrir 1 ári") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "fyrir 2 árum") def test_timeago_it(self): locale = 'it' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "poco fa") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "10 secondi fa") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "un minuto fa") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "3 minuti fa") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "un'ora fa") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "2 ore fa") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "un giorno fa") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "4 giorni fa") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "una settimana fa") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "4 settimane fa") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "un mese fa") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "3 mesi fa") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "un anno fa") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "2 anni fa") def test_timeago_ko(self): locale = 'ko' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "방금") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "10초 전") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "1분 전") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "3분 전") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "1시간 전") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "2시간 전") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "1일 전") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "4일 전") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "1주일 전") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "4주일 전") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "1개월 전") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "3개월 전") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "1년 전") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "2년 전") def test_timeago_ml(self): locale = 'ml' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "ഇപ്പോള്‍") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "10 സെക്കന്റ്‌കള്‍ക്ക് മുന്‍പ്") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "1 മിനിറ്റിനു മുന്‍പ്") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "3 മിനിറ്റുകള്‍ക്ക് മുന്‍പ") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "1 മണിക്കൂറിനു മുന്‍പ്") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "2 മണിക്കൂറുകള്‍ക്കു മുന്‍പ്") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "1 ഒരു ദിവസം മുന്‍പ്") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "4 ദിവസങ്ങള്‍ക് മുന്‍പ്") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "1 ആഴ്ച മുന്‍പ്") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "4 ആഴ്ചകള്‍ക്ക് മുന്‍പ്") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "1 മാസത്തിനു മുന്‍പ്") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "3 മാസങ്ങള്‍ക്ക് മുന്‍പ്") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "1 വര്‍ഷത്തിനു മുന്‍പ്") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "2 വര്‍ഷങ്ങള്‍ക്കു മുന്‍പ്") def test_timeago_my(self): locale = 'my' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "ယခုအတွင်း") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "10 စက္ကန့် အကြာက") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "1 မိနစ် အကြာက") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "3 မိနစ် အကြာက") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "1 နာရီ အကြာက") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "2 နာရီ အကြာက") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "1 ရက် အကြာက") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "4 ရက် အကြာက") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "1 ပတ် အကြာက") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "4 ပတ် အကြာက") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "1 လ အကြာက") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "3 လ အကြာက") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "1 နှစ် အကြာက") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "2 နှစ် အကြာက") def test_timeago_nb_NO(self): locale = 'nb_NO' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "akkurat nå") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "10 sekunder siden") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "1 minutt siden") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "3 minutter siden") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "1 time siden") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "2 timer siden") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "1 dag siden") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "4 dager siden") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "1 uke siden") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "4 uker siden") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "1 måned siden") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "3 måneder siden") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "1 år siden") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "2 år siden") def test_timeago_nl(self): locale = 'nl' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "recent") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "10 seconden geleden") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "1 minuut geleden") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "3 minuten geleden") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "1 uur geleden") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "2 uren geleden") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "1 dag geleden") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "4 dagen geleden") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "1 week geleden") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "4 weken geleden") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "1 maand geleden") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "3 maanden geleden") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "1 jaar geleden") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "2 jaren geleden") def test_timeago_nn_NO(self): locale = 'nn_NO' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "nett no") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "10 sekund sidan") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "1 minutt sidan") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "3 minutt sidan") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "1 time sidan") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "2 timar sidan") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "1 dag sidan") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "4 dagar sidan") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "1 veke sidan") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "4 veker sidan") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "1 månad sidan") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "3 månadar sidan") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "1 år sidan") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "2 år sidan") # test pl lang def test_timeago_pl(self): locale = 'pl' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), 'właśnie teraz') now = date - datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), 'za chwilę') now = date - datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), 'za 10 sekund') now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), '10 sekund temu') now = date + datetime.timedelta(seconds=12) self.assertEqual(timeago.format(date, now, locale), '12 sekund temu') now = date + datetime.timedelta(seconds=33) self.assertEqual(timeago.format(date, now, locale), '33 sekundy temu') now = date + datetime.timedelta(seconds=52) self.assertEqual(timeago.format(date, now, locale), '52 sekundy temu') now = date - datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), 'za minutę') now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), 'minutę temu') now = date - datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), 'za 3 minuty') now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), '3 minuty temu') now = date - datetime.timedelta(seconds=60 * 5.1) self.assertEqual(timeago.format(date, now, locale), 'za 5 minut') now = date + datetime.timedelta(seconds=60 * 5.1) self.assertEqual(timeago.format(date, now, locale), '5 minut temu') now = date - datetime.timedelta(minutes=11) self.assertEqual(timeago.format(date, now, locale), 'za 11 minut') now = date + datetime.timedelta(minutes=11) self.assertEqual(timeago.format(date, now, locale), '11 minut temu') now = date - datetime.timedelta(minutes=12) self.assertEqual(timeago.format(date, now, locale), 'za 12 minut') now = date + datetime.timedelta(minutes=12) self.assertEqual(timeago.format(date, now, locale), '12 minut temu') now = date - datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), 'za godzinę') now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), 'godzinę temu') now = date - datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), 'za 2 godziny') now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), '2 godziny temu') now = date - datetime.timedelta(hours=5) self.assertEqual(timeago.format(date, now, locale), 'za 5 godzin') now = date + datetime.timedelta(hours=5) self.assertEqual(timeago.format(date, now, locale), '5 godzin temu') now = date + datetime.timedelta(hours=13) self.assertEqual(timeago.format(date, now, locale), '13 godzin temu') now = date + datetime.timedelta(hours=23) self.assertEqual(timeago.format(date, now, locale), '23 godziny temu') now = date - datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), 'za 1 dzień') now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), '1 dzień temu') now = date - datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), 'za 4 dni') now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), '4 dni temu') now = date - datetime.timedelta(weeks=1) self.assertEqual(timeago.format(date, now, locale), 'za tydzień') now = date + datetime.timedelta(weeks=1) self.assertEqual(timeago.format(date, now, locale), 'tydzień temu') now = date - datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), 'za 4 tygodnie') now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), '4 tygodnie temu') now = date - datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), 'za 3 miesiące') now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), '3 miesiące temu') now = date - datetime.timedelta(seconds=2592000 * 5.5) self.assertEqual(timeago.format(date, now, locale), 'za 5 miesięcy') now = date + datetime.timedelta(seconds=2592000 * 5.5) self.assertEqual(timeago.format(date, now, locale), '5 miesięcy temu') now = date - datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), 'za rok') now = date + datetime.timedelta(seconds=31536000 * 1.1) self.assertEqual(timeago.format(date, now, locale), 'rok temu') now = date - datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), 'za 2 lata') now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), '2 lata temu') now = date - datetime.timedelta(weeks=4.35 * 12 * 5.5) self.assertEqual(timeago.format(date, now, locale), 'za 5 lat') now = date + datetime.timedelta(weeks=4.35 * 12 * 5.5) self.assertEqual(timeago.format(date, now, locale), '5 lat temu') now = date + datetime.timedelta(weeks=4.35 * 12 * 22.5) self.assertEqual(timeago.format(date, now, locale), '22 lata temu') now = date + datetime.timedelta(weeks=4.35 * 12 * 25.5) self.assertEqual(timeago.format(date, now, locale), '25 lat temu') now = date + datetime.timedelta(weeks=4.35 * 12 * 101) self.assertEqual(timeago.format(date, now, locale), '101 lat temu') now = date + datetime.timedelta(weeks=4.35 * 12 * 102) self.assertEqual(timeago.format(date, now, locale), '102 lata temu') now = date + datetime.timedelta(weeks=4.35 * 12 * 112) self.assertEqual(timeago.format(date, now, locale), '112 lat temu') now = date + datetime.timedelta(weeks=4.35 * 12 * 122) self.assertEqual(timeago.format(date, now, locale), '122 lata temu') now = date + datetime.timedelta(weeks=4.35 * 12 * 125) self.assertEqual(timeago.format(date, now, locale), '125 lat temu') def test_timeago_pt_BR(self): locale = 'pt_BR' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "agora mesmo") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "há 10 segundos") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "há um minuto") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "há 3 minutos") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "há uma hora") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "há 2 horas") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "há um dia") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "há 4 dias") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "há uma semana") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "há 4 semanas") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "há um mês") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "há 3 meses") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "há um ano") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "há 2 anos") def test_timeago_pt_PT(self): locale = 'pt_PT' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "agora mesmo") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "há 10 segundos") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "há 1 minuto") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "há 3 minutos") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "há 1 hora") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "há 2 horas") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "há 1 dia") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "há 4 dias") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "há 1 semana") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "há 4 semanas") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "há 1 mês") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "há 3 meses") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "há 1 ano") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "há 2 anos") def test_timeago_ta(self): locale = 'ta' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "இப்போது") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "10 நொடிக்கு முன்") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "1 நிமிடத்திற்க்கு முன்") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "3 நிமிடத்திற்க்கு முன்") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "1 மணி நேரத்திற்கு முன்") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "2 மணி நேரத்திற்கு முன்") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "1 நாளுக்கு முன்") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "4 நாட்களுக்கு முன்") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "1 வாரத்திற்கு முன்") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "4 வாரங்களுக்கு முன்") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "1 மாதத்திற்கு முன்") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "3 மாதங்களுக்கு முன்") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "1 வருடத்திற்கு முன்") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "2 வருடங்களுக்கு முன்") def test_timeago_ro(self): locale = 'ro' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "chiar acum") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "acum 10 secunde") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "acum un minut") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "acum 3 minute") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "acum o oră") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "acum 2 ore") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "acum o zi") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "acum 4 zile") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "acum o săptămână") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "acum 4 săptămâni") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "acum o lună") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "acum 3 luni") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "acum un an") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "acum 2 ani") def test_timeago_th(self): locale = 'th' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "เมื่อสักครู่นี้") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "10 วินาทีที่แล้ว") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "1 นาทีที่แล้ว") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "3 นาทีที่แล้ว") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "1 ชั่วโมงที่แล้ว") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "2 ชั่วโมงที่แล้ว") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "1 วันที่แล้ว") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "4 วันที่แล้ว") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "1 อาทิตย์ที่แล้ว") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "4 อาทิตย์ที่แล้ว") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "1 เดือนที่แล้ว") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "3 เดือนที่แล้ว") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "1 ปีที่แล้ว") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "2 ปีที่แล้ว") def test_timeago_tr(self): locale = 'tr' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "az önce") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "10 saniye önce") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "1 dakika önce") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "3 dakika önce") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "1 saat önce") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "2 saat önce") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "1 gün önce") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "4 gün önce") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "1 hafta önce") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "4 hafta önce") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "1 ay önce") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "3 ay önce") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "1 yıl önce") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "2 yıl önce") def test_timeago_vi(self): locale = 'vi' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "vừa xong") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "10 giây trước") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "1 phút trước") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "3 phút trước") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "1 giờ trước") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "2 giờ trước") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "1 ngày trước") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "4 ngày trước") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "1 tuần trước") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "4 tuần trước") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "1 tháng trước") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "3 tháng trước") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "1 năm trước") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "2 năm trước") def test_timeago_zh_TW(self): locale = 'zh_TW' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), "剛剛") now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), "10秒前") now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), "1分鐘前") now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), "3分鐘前") now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), "1小時前") now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), "2小時前") now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), "1天前") now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), "4天前") now = date + datetime.timedelta(seconds=86400 * 7) self.assertEqual(timeago.format(date, now, locale), "1周前") now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), "4周前") now = date + datetime.timedelta(seconds=86400 * 31) self.assertEqual(timeago.format(date, now, locale), "1月前") now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), "3月前") now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), "1年前") now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), "2年前") # test ar lang def test_timeago_ar(self): locale = "ar" date = datetime.datetime.now() now = date + datetime.timedelta(seconds=1) self.assertEqual(timeago.format(date, now, locale), 'الآن') now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), 'منذ 10 ثواني') now = date + datetime.timedelta(seconds=12) self.assertEqual(timeago.format(date, now, locale), 'منذ 12 ثانية') now = date + datetime.timedelta(seconds=50) self.assertEqual(timeago.format(date, now, locale), 'منذ 50 ثانية') now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), 'منذ دقيقة') now = date + datetime.timedelta(seconds=65) self.assertEqual(timeago.format(date, now, locale), 'منذ دقيقة') now = date + datetime.timedelta(seconds=120) self.assertEqual(timeago.format(date, now, locale), 'منذ دقيقتين') now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), 'منذ 3 دقائق') now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), 'منذ ساعة') now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), 'منذ ساعتين') now = date + datetime.timedelta(seconds=3600 * 3) self.assertEqual(timeago.format(date, now, locale), 'منذ 3 ساعات') now = date + datetime.timedelta(seconds=3600 * 4) self.assertEqual(timeago.format(date, now, locale), 'منذ 4 ساعات') now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), 'منذ يوم') now = date + datetime.timedelta(seconds=86400 * 2) self.assertEqual(timeago.format(date, now, locale), 'منذ يومين') now = date + datetime.timedelta(seconds=86400 * 3) self.assertEqual(timeago.format(date, now, locale), 'منذ 3 أيام') now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), 'منذ 4 أيام') now = date + datetime.timedelta(seconds=648000) self.assertEqual(timeago.format(date, now, locale), 'منذ أسبوع') now = date + datetime.timedelta(seconds=648000 * 2) self.assertEqual(timeago.format(date, now, locale), 'منذ أسبوعين') now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), 'منذ 4 أسابيع') now = date + datetime.timedelta(seconds=2592000 * 1.5) self.assertEqual(timeago.format(date, now, locale), 'منذ شهر') now = date + datetime.timedelta(seconds=2592000 * 2.5) self.assertEqual(timeago.format(date, now, locale), 'منذ شهرين') now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), 'منذ 3 أشهر') now = date + datetime.timedelta(seconds=2592000 * 10.5) self.assertEqual(timeago.format(date, now, locale), 'منذ 10 أشهر') now = date + datetime.timedelta(seconds=2592000 * 11.5) self.assertEqual(timeago.format(date, now, locale), 'منذ 11 شهراً') now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), 'منذ سنة') now = date + datetime.timedelta(seconds=31536000 * 1.1) self.assertEqual(timeago.format(date, now, locale), 'منذ سنة') now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), 'منذ سنتين') now = date + datetime.timedelta(seconds=31536000 * 3.1) self.assertEqual(timeago.format(date, now, locale), 'منذ 3 سنوات') now = date + datetime.timedelta(seconds=31536000 * 11.1) self.assertEqual(timeago.format(date, now, locale), 'منذ 11 سنة') now = date + datetime.timedelta(seconds=31536000 * 100.1) self.assertEqual(timeago.format(date, now, locale), 'منذ 100 سنة') now = date - datetime.timedelta(seconds=1) self.assertEqual(timeago.format(date, now, locale), 'خلال لحظات') now = date - datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), 'خلال 10 ثواني') now = date - datetime.timedelta(seconds=12) self.assertEqual(timeago.format(date, now, locale), 'خلال 12 ثانية') now = date - datetime.timedelta(seconds=50) self.assertEqual(timeago.format(date, now, locale), 'خلال 50 ثانية') now = date - datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), 'خلال دقيقة') now = date - datetime.timedelta(seconds=65) self.assertEqual(timeago.format(date, now, locale), 'خلال دقيقة') now = date - datetime.timedelta(seconds=120) self.assertEqual(timeago.format(date, now, locale), 'خلال دقيقتين') now = date - datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), 'خلال 3 دقائق') now = date - datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), 'خلال ساعة') now = date - datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), 'خلال ساعتين') now = date - datetime.timedelta(seconds=3600 * 3) self.assertEqual(timeago.format(date, now, locale), 'خلال 3 ساعات') now = date - datetime.timedelta(seconds=3600 * 4) self.assertEqual(timeago.format(date, now, locale), 'خلال 4 ساعات') now = date - datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), 'خلال يوم') now = date - datetime.timedelta(seconds=86400 * 2) self.assertEqual(timeago.format(date, now, locale), 'خلال يومين') now = date - datetime.timedelta(seconds=86400 * 3) self.assertEqual(timeago.format(date, now, locale), 'خلال 3 أيام') now = date - datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), 'خلال 4 أيام') now = date - datetime.timedelta(seconds=648000) self.assertEqual(timeago.format(date, now, locale), 'خلال أسبوع') now = date - datetime.timedelta(seconds=648000 * 2) self.assertEqual(timeago.format(date, now, locale), 'خلال أسبوعين') now = date - datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), 'خلال 4 أسابيع') now = date - datetime.timedelta(seconds=2592000 * 1.5) self.assertEqual(timeago.format(date, now, locale), 'خلال شهر') now = date - datetime.timedelta(seconds=2592000 * 2.5) self.assertEqual(timeago.format(date, now, locale), 'خلال شهرين') now = date - datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), 'خلال 3 أشهر') now = date - datetime.timedelta(seconds=2592000 * 10.5) self.assertEqual(timeago.format(date, now, locale), 'خلال 10 أشهر') now = date - datetime.timedelta(seconds=2592000 * 11.5) self.assertEqual(timeago.format(date, now, locale), 'خلال 11 شهراً') now = date - datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), 'خلال سنة') now = date - datetime.timedelta(seconds=31536000 * 1.1) self.assertEqual(timeago.format(date, now, locale), 'خلال سنة') now = date - datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), 'خلال سنتين') now = date - datetime.timedelta(seconds=31536000 * 3.1) self.assertEqual(timeago.format(date, now, locale), 'خلال 3 سنوات') now = date - datetime.timedelta(seconds=31536000 * 11.1) self.assertEqual(timeago.format(date, now, locale), 'خلال 11 سنة') now = date - datetime.timedelta(seconds=31536000 * 100.1) self.assertEqual(timeago.format(date, now, locale), 'خلال 100 سنة') def test_timeago_uk(self): locale = 'uk' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), 'щойно') now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), '10 секунд тому') now = date + datetime.timedelta(seconds=12) self.assertEqual(timeago.format(date, now, locale), '12 секунд тому') now = date + datetime.timedelta(seconds=22) self.assertEqual(timeago.format(date, now, locale), '22 секунди тому') now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), 'хвилину тому') now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), '3 хвилини тому') now = date + datetime.timedelta(seconds=60 * 13) self.assertEqual(timeago.format(date, now, locale), '13 хвилин тому') now = date + datetime.timedelta(seconds=60 * 23) self.assertEqual(timeago.format(date, now, locale), '23 хвилини тому') now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), 'годину тому') now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), '2 години тому') now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), 'вчора') now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), '4 дні тому') now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), '4 тиждні тому') now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), '3 місяці тому') now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), 'рік тому') now = date + datetime.timedelta(seconds=31536000 * 21.1) self.assertEqual(timeago.format(date, now, locale), '21 рік тому') now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), '2 роки тому') now = date + datetime.timedelta(seconds=31536000 * 100) self.assertEqual(timeago.format(date, now, locale), '100 років тому') def test_timeago_lt(self): locale = 'lt' date = datetime.datetime.now() now = date + datetime.timedelta(seconds=2) self.assertEqual(timeago.format(date, now, locale), 'ką tik') now = date + datetime.timedelta(seconds=10) self.assertEqual(timeago.format(date, now, locale), 'prieš 10 sekundžių') now = date + datetime.timedelta(seconds=12) self.assertEqual(timeago.format(date, now, locale), 'prieš 12 sekundžių') now = date + datetime.timedelta(seconds=60) self.assertEqual(timeago.format(date, now, locale), 'prieš 1 minutę') now = date + datetime.timedelta(seconds=60 * 3.4) self.assertEqual(timeago.format(date, now, locale), 'prieš 3 minutes') now = date + datetime.timedelta(seconds=3600) self.assertEqual(timeago.format(date, now, locale), 'prieš 1 valandą') now = date + datetime.timedelta(seconds=3600 * 2) self.assertEqual(timeago.format(date, now, locale), 'prieš 2 valandas') now = date + datetime.timedelta(seconds=3600 * 15) self.assertEqual(timeago.format(date, now, locale), 'prieš 15 valandų') now = date + datetime.timedelta(seconds=3600 * 20) self.assertEqual(timeago.format(date, now, locale), 'prieš 20 valandų') now = date + datetime.timedelta(seconds=3600 * 22) self.assertEqual(timeago.format(date, now, locale), 'prieš 22 valandas') now = date + datetime.timedelta(seconds=86400) self.assertEqual(timeago.format(date, now, locale), 'prieš 1 dieną') now = date + datetime.timedelta(seconds=86400 * 4.5) self.assertEqual(timeago.format(date, now, locale), 'prieš 4 dienas') now = date + datetime.timedelta(seconds=2592000) self.assertEqual(timeago.format(date, now, locale), 'prieš 4 savaites') now = date + datetime.timedelta(seconds=2592000 * 3.5) self.assertEqual(timeago.format(date, now, locale), 'prieš 3 mėnesius') now = date + datetime.timedelta(seconds=31536000) self.assertEqual(timeago.format(date, now, locale), 'prieš 1 metus') now = date + datetime.timedelta(seconds=31536000 * 1.1) self.assertEqual(timeago.format(date, now, locale), 'prieš 1 metus') now = date + datetime.timedelta(seconds=31536000 * 2.1) self.assertEqual(timeago.format(date, now, locale), 'prieš 2 metus') now = date + datetime.timedelta(seconds=31536000 * 10.1) self.assertEqual(timeago.format(date, now, locale), 'prieš 10 metų') now = date + datetime.timedelta(seconds=31536000 * 17.1) self.assertEqual(timeago.format(date, now, locale), 'prieš 17 metų') now = date + datetime.timedelta(seconds=31536000 * 20.1) self.assertEqual(timeago.format(date, now, locale), 'prieš 20 metų') now = date + datetime.timedelta(seconds=31536000 * 28.1) self.assertEqual(timeago.format(date, now, locale), 'prieš 28 metus') now = date + datetime.timedelta(seconds=31536000 * 103.1) self.assertEqual(timeago.format(date, now, locale), 'prieš 103 metus') now = date + datetime.timedelta(seconds=31536000 * 110.1) self.assertEqual(timeago.format(date, now, locale), 'prieš 110 metų') now = date + datetime.timedelta(seconds=31536000 * 111.1) self.assertEqual(timeago.format(date, now, locale), 'prieš 111 metų') now = date + datetime.timedelta(seconds=31536000 * 125.1) self.assertEqual(timeago.format(date, now, locale), 'prieš 125 metus') if __name__ == '__main__': unittest.main() timeago/.travis.yml0000664000175000017500000000045315132234162014555 0ustar joostvbjoostvblanguage: python python: - "2.7" - "3.4" - "3.5" - "3.6" - "3.7" before_install: - pip install codecov # command to install dependencies install: - pip install . before_script: - chmod 777 ./test/do_test.sh # command to run tests script: ./test/do_test.sh after_success: - codecov timeago/MANIFEST.in0000664000175000017500000000002215132234162014172 0ustar joostvbjoostvbinclude README.rsttimeago/setup.py0000664000175000017500000000257615132234162014166 0ustar joostvbjoostvb# -*- coding: utf-8 -*- from distutils.core import setup from io import open from setuptools import find_packages def readme(): with open('README.rst', encoding='utf8') as f: return f.read() setup(name = 'timeago', version = '1.0.16', description = 'A very simple python library, used to format datetime with `*** time ago` statement. eg: "3 hours ago".', long_description = readme(), author = 'hustcc', author_email = 'i@hust.cc', url = 'https://github.com/hustcc/timeago', license = 'MIT', install_requires = [], classifiers = [ 'Intended Audience :: Developers', 'Operating System :: OS Independent', 'Natural Language :: Chinese (Simplified)', 'Programming Language :: Python', 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.5', 'Programming Language :: Python :: 2.6', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.2', 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Topic :: Utilities' ], keywords = 'timeago, seconds ago, minutes ago, hours ago, just now', packages = find_packages('src'), package_dir = {'':'src'}, ) timeago/.gitignore0000664000175000017500000000152315132234162014433 0ustar joostvbjoostvb# Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C extensions *.so # Distribution / packaging .Python env/ build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ *.egg-info/ .installed.cfg *.egg # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .coverage .coverage.* .cache nosetests.xml coverage.xml *,cover .hypothesis/ # Translations *.mo *.pot # Django stuff: *.log # Sphinx documentation docs/_build/ # PyBuilder target/ #Ipython Notebook .ipynb_checkpoints .project .pydevproject .settings \.idea/ bin/ pip-selfcheck\.json include/ share/ timeago/README.md0000664000175000017500000000545315132234162013730 0ustar joostvbjoostvb# timeago A very simple python lib, used to format datetime with `*** time ago` statement. Javascript version here. [timeago.js](https://github.com/hustcc/timeago.js). [![Build Status](https://travis-ci.org/hustcc/timeago.svg?branch=master)](https://travis-ci.org/hustcc/timeago) [![PyPi Status](https://img.shields.io/pypi/v/timeago.svg)](https://pypi.python.org/pypi/timeago) [![Python Versions](https://img.shields.io/pypi/pyversions/timeago.svg)](https://pypi.python.org/pypi/timeago) Such as: ``` just now 12 seconds ago 3 minutes ago 2 hours ago 24 days ago 6 months ago 2 years ago in 12 seconds in 3 minutes in 2 hours in 24 days in 6 months in 2 years ``` For other languages see below. ## Install ```sh pip install timeago ``` ## Usage & Example ```py # -*- coding: utf-8 -*- import timeago, datetime now = datetime.datetime.now() + datetime.timedelta(seconds = 60 * 3.4) date = datetime.datetime.now() # locale print (timeago.format(date, now, 'zh_CN')) # will print `3分钟前` # input datetime print (timeago.format(date, now)) # will print 3 minutes ago # input timedelta print (timeago.format(datetime.timedelta(seconds = 60 * 3.4))) # will print 3 minutes ago # input date, auto add time(0, 0, 0) print (timeago.format(datetime.date(2016, 5, 27), now)) # input datetime formatted string print (timeago.format('2016-05-27 12:12:03', '2016-05-27 12:12:12')) # will print just now # inverse two parameters print (timeago.format('2016-05-27 12:12:12', '2016-05-27 12:12:03')) # will print a while ``` ## Method & Parameter only one API **`format`**. Three parameters of method `format`: - **`date`**: the parameter which will be formatted, must be instance of `datetime` / `timedelta` or datetime formatted string. - **`now`**: reference time, must be instance of `datetime` or datetime formatted string. - **`locale`**: the locale code, default `en`. ## Locale At the time we're speaking, [following locale](src/timeago/locales) are available: - `ar` - `bg` - `ca` - `da` - `de` - `el` - `en` - `en_short` - `es` - `eu` - `fa_IR` - `fi` - `fr` - `gl` - `guj_IN` - `he` - `hu` - `in_BG` - `in_HI` - `in_ID` - `is` - `it` - `ja` - `ko` - `lt` - `ml` - `my` - `nb_NO` - `nl` - `nn_NO` - `pl` - `pt_BR` - `pt_PT` - `ro` - `ru` - `sk` - `sv_SE` - `ta` - `th` - `tr` - `uk` - `vi` - `zh_CN` - `zh_TW` ## Localization 1. Fork the project 2. Create a locale python script called `[name_of_your_locale].py` following the existing other locales. 3. Add the name of your locale in the Readme (both in MD and in RST) to keep it updated (**alphabetically**). 4. Add test case following the [english model](/test/testcase.py#L50) 5. Create the Pull Request. ### Notes For complicated plurals, you can take example on the PL :flag-pl: locale [here](src/timeago/locales/pl.py)