likexian / whois-parser

Whois parser for domain whois information parsing in Go(Golang).
Apache License 2.0
284 stars 86 forks source link

Reorder parseDateString func date string formats #54

Closed atc0005 closed 1 year ago

atc0005 commented 1 year ago

Order date string formats so that formats containing time components are tried first before attempting to use the date-only formats.

Updated doc comment to reflect intent of format string order.

fixes GH-53

atc0005 commented 1 year ago

@likexian Please let me know if you'd like to have the spacing modified. I tend to favor splitting collections into distinct groupings, but I understand that this is not always acceptable.

FWIW, tests pass based on this change.

$ go test -v .
=== RUN   TestAsisNotFoundDomain
--- PASS: TestAsisNotFoundDomain (0.00s)
=== RUN   TestAsisExtNotFoundDomain
--- PASS: TestAsisExtNotFoundDomain (0.02s)
=== RUN   TestAsisReservedDomain
--- PASS: TestAsisReservedDomain (0.00s)
=== RUN   TestAsisPremiumDomain
--- PASS: TestAsisPremiumDomain (0.00s)
=== RUN   TestAsisBlockedDomain
--- PASS: TestAsisBlockedDomain (0.00s)
=== RUN   TestAsisLimitExceeded
--- PASS: TestAsisLimitExceeded (0.00s)
=== RUN   TestVersion
--- PASS: TestVersion (0.00s)
=== RUN   TestParseError
--- PASS: TestParseError (0.00s)
=== RUN   TestParse
--- PASS: TestParse (0.16s)
=== RUN   TestAssearchDomain
--- PASS: TestAssearchDomain (0.00s)
=== RUN   TestPrepare
--- PASS: TestPrepare (0.10s)
=== RUN   TestParseDateString
=== PAUSE TestParseDateString
=== CONT  TestParseDateString
=== RUN   TestParseDateString/09-Mar-2023
=== PAUSE TestParseDateString/09-Mar-2023
=== RUN   TestParseDateString/31-Jul-2022
=== PAUSE TestParseDateString/31-Jul-2022
=== RUN   TestParseDateString/2022-12-12T11:01:02Z
=== PAUSE TestParseDateString/2022-12-12T11:01:02Z
=== RUN   TestParseDateString/2022-12-03
=== PAUSE TestParseDateString/2022-12-03
=== RUN   TestParseDateString/2022._12._01.
=== PAUSE TestParseDateString/2022._12._01.
=== RUN   TestParseDateString/2022-12-12_11:40:12
=== PAUSE TestParseDateString/2022-12-12_11:40:12
=== RUN   TestParseDateString/28/06/2022_23:59:59
=== PAUSE TestParseDateString/28/06/2022_23:59:59
=== RUN   TestParseDateString/24.10.2022
=== PAUSE TestParseDateString/24.10.2022
=== RUN   TestParseDateString/2022-06-29_14:08:21+03
=== PAUSE TestParseDateString/2022-06-29_14:08:21+03
=== RUN   TestParseDateString/31.8.2025_00:00:00
=== PAUSE TestParseDateString/31.8.2025_00:00:00
=== RUN   TestParseDateString/01-10-2025
=== PAUSE TestParseDateString/01-10-2025
=== RUN   TestParseDateString/20-Apr-2023_03:28:40
=== PAUSE TestParseDateString/20-Apr-2023_03:28:40
=== RUN   TestParseDateString/2022-12-08_14:00:00_CLST
=== PAUSE TestParseDateString/2022-12-08_14:00:00_CLST
=== RUN   TestParseDateString/December__2_2022
=== PAUSE TestParseDateString/December__2_2022
=== RUN   TestParseDateString/02/28/2025
=== PAUSE TestParseDateString/02/28/2025
=== RUN   TestParseDateString/April_10_2023
=== PAUSE TestParseDateString/April_10_2023
=== RUN   TestParseDateString/2025-Dec-11
=== PAUSE TestParseDateString/2025-Dec-11
=== RUN   TestParseDateString/2025-Dec-11.
=== PAUSE TestParseDateString/2025-Dec-11.
=== RUN   TestParseDateString/2024-06-05_00:00:00_(UTC+8)
=== PAUSE TestParseDateString/2024-06-05_00:00:00_(UTC+8)
=== CONT  TestParseDateString/09-Mar-2023
=== CONT  TestParseDateString/2025-Dec-11.
=== CONT  TestParseDateString/31.8.2025_00:00:00
=== CONT  TestParseDateString/24.10.2022
=== CONT  TestParseDateString/December__2_2022
=== CONT  TestParseDateString/31-Jul-2022
=== CONT  TestParseDateString/2022-12-12_11:40:12
=== CONT  TestParseDateString/02/28/2025
=== CONT  TestParseDateString/2024-06-05_00:00:00_(UTC+8)
=== CONT  TestParseDateString/28/06/2022_23:59:59
=== CONT  TestParseDateString/2022._12._01.
=== CONT  TestParseDateString/2022-12-03
=== CONT  TestParseDateString/2022-12-08_14:00:00_CLST
=== CONT  TestParseDateString/20-Apr-2023_03:28:40
=== CONT  TestParseDateString/April_10_2023
=== CONT  TestParseDateString/01-10-2025
=== CONT  TestParseDateString/2022-06-29_14:08:21+03
=== CONT  TestParseDateString/2022-12-12T11:01:02Z
=== CONT  TestParseDateString/2025-Dec-11
--- PASS: TestParseDateString (0.00s)
    --- PASS: TestParseDateString/09-Mar-2023 (0.00s)
    --- PASS: TestParseDateString/2025-Dec-11. (0.00s)
    --- PASS: TestParseDateString/31.8.2025_00:00:00 (0.00s)
    --- PASS: TestParseDateString/24.10.2022 (0.00s)
    --- PASS: TestParseDateString/31-Jul-2022 (0.00s)
    --- PASS: TestParseDateString/December__2_2022 (0.00s)
    --- PASS: TestParseDateString/2022-12-12_11:40:12 (0.00s)
    --- PASS: TestParseDateString/02/28/2025 (0.00s)
    --- PASS: TestParseDateString/28/06/2022_23:59:59 (0.00s)
    --- PASS: TestParseDateString/2024-06-05_00:00:00_(UTC+8) (0.00s)
    --- PASS: TestParseDateString/2022._12._01. (0.00s)
    --- PASS: TestParseDateString/2022-12-03 (0.00s)
    --- PASS: TestParseDateString/20-Apr-2023_03:28:40 (0.00s)
    --- PASS: TestParseDateString/2022-12-08_14:00:00_CLST (0.00s)
    --- PASS: TestParseDateString/April_10_2023 (0.00s)
    --- PASS: TestParseDateString/01-10-2025 (0.00s)
    --- PASS: TestParseDateString/2022-06-29_14:08:21+03 (0.00s)
    --- PASS: TestParseDateString/2022-12-12T11:01:02Z (0.00s)
    --- PASS: TestParseDateString/2025-Dec-11 (0.00s)
PASS
ok      github.com/likexian/whois-parser        0.472s
likexian commented 1 year ago

Hello @atc0005 Thanks for your work!


If you think this repository is helpful, please share it with friends, thanks.