mirror of
				https://gitea.com/gitea/tea.git
				synced 2025-10-31 17:25:27 +01:00 
			
		
		
		
	add tea times command (#54)
				
					
				
			Merge branch 'master' into 50-cmd-times labels: fix refactor bug fixup! use version check implemented in SDK instead add subcmds: `tea times (delete|reset)` fixes #87 fixes #88 times: reword help use version check implemented in SDK instead make fmt Check gitea server version for times endpoint refactor times.go dont print TrackedTime ID print username & issue index instead of IDs switch to urface/cli/v2 vendor araddon/dateparse use araddon/dateparse for arbitrary date inputs add --from, --until flags allow filtering by issue index make app name lower case to make the help texts consistent with the binary name add --total flag implement `tea times add` add `tea times` subcommand Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: Norwin Roosen <git@nroo.de> Reviewed-on: https://gitea.com/gitea/tea/pulls/54 Reviewed-by: 6543 <6543@noreply.gitea.io> Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
		
							
								
								
									
										14
									
								
								vendor/github.com/araddon/dateparse/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								vendor/github.com/araddon/dateparse/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| language: go | ||||
|  | ||||
| go: | ||||
|   - 1.10.x | ||||
|   - 1.11.x | ||||
|  | ||||
| before_install: | ||||
|   - go get -t -v ./... | ||||
|  | ||||
| script: | ||||
|   - go test -race -coverprofile=coverage.txt -covermode=atomic | ||||
|  | ||||
| after_success: | ||||
|   - bash <(curl -s https://codecov.io/bash) | ||||
							
								
								
									
										21
									
								
								vendor/github.com/araddon/dateparse/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								vendor/github.com/araddon/dateparse/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| The MIT License (MIT) | ||||
|  | ||||
| Copyright (c) 2015-2017 Aaron Raddon | ||||
|  | ||||
| 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. | ||||
							
								
								
									
										282
									
								
								vendor/github.com/araddon/dateparse/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										282
									
								
								vendor/github.com/araddon/dateparse/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,282 @@ | ||||
| Go Date Parser  | ||||
| --------------------------- | ||||
|  | ||||
| Parse many date strings without knowing format in advance.  Uses a scanner to read bytes and use a state machine to find format.  Much faster than shotgun based parse methods.  See [bench_test.go](https://github.com/araddon/dateparse/blob/master/bench_test.go) for performance comparison. | ||||
|  | ||||
|  | ||||
| [](https://codecov.io/gh/araddon/dateparse) | ||||
| [](http://godoc.org/github.com/araddon/dateparse) | ||||
| [](https://travis-ci.org/araddon/dateparse) | ||||
| [](https://goreportcard.com/report/araddon/dateparse) | ||||
|  | ||||
| **MM/DD/YYYY VS DD/MM/YYYY** Right now this uses mm/dd/yyyy WHEN ambiguous if this is not desired behavior, use `ParseStrict` which will fail on ambiguous date strings. | ||||
|  | ||||
| **Timezones** The location your server is configured affects the results!  See example or https://play.golang.org/p/IDHRalIyXh and last paragraph here https://golang.org/pkg/time/#Parse. | ||||
|  | ||||
|  | ||||
| ```go | ||||
|  | ||||
| // Normal parse.  Equivalent Timezone rules as time.Parse() | ||||
| t, err := dateparse.ParseAny("3/1/2014") | ||||
|  | ||||
| // Parse Strict, error on ambigous mm/dd vs dd/mm dates | ||||
| t, err := dateparse.ParseStrict("3/1/2014") | ||||
| > returns error  | ||||
|  | ||||
| // Return a string that represents the layout to parse the given date-time. | ||||
| layout, err := dateparse.ParseFormat("May 8, 2009 5:57:51 PM") | ||||
| > "Jan 2, 2006 3:04:05 PM" | ||||
|  | ||||
| ``` | ||||
|  | ||||
| cli tool for testing dateformats | ||||
| ---------------------------------- | ||||
|  | ||||
| [Date Parse CLI](https://github.com/araddon/dateparse/blob/master/dateparse) | ||||
|  | ||||
|  | ||||
| Extended example | ||||
| ------------------- | ||||
|  | ||||
| https://github.com/araddon/dateparse/blob/master/example/main.go | ||||
|  | ||||
| ```go | ||||
| package main | ||||
|  | ||||
| import ( | ||||
| 	"flag" | ||||
| 	"fmt" | ||||
| 	"time" | ||||
|  | ||||
| 	"github.com/apcera/termtables" | ||||
| 	"github.com/araddon/dateparse" | ||||
| ) | ||||
|  | ||||
| var examples = []string{ | ||||
| 	"May 8, 2009 5:57:51 PM", | ||||
| 	"oct 7, 1970", | ||||
| 	"oct 7, '70", | ||||
| 	"oct. 7, 1970", | ||||
| 	"oct. 7, 70", | ||||
| 	"Mon Jan  2 15:04:05 2006", | ||||
| 	"Mon Jan  2 15:04:05 MST 2006", | ||||
| 	"Mon Jan 02 15:04:05 -0700 2006", | ||||
| 	"Monday, 02-Jan-06 15:04:05 MST", | ||||
| 	"Mon, 02 Jan 2006 15:04:05 MST", | ||||
| 	"Tue, 11 Jul 2017 16:28:13 +0200 (CEST)", | ||||
| 	"Mon, 02 Jan 2006 15:04:05 -0700", | ||||
| 	"Thu, 4 Jan 2018 17:53:36 +0000", | ||||
| 	"Mon Aug 10 15:44:11 UTC+0100 2015", | ||||
| 	"Fri Jul 03 2015 18:04:07 GMT+0100 (GMT Daylight Time)", | ||||
| 	"September 17, 2012 10:09am", | ||||
| 	"September 17, 2012 at 10:09am PST-08", | ||||
| 	"September 17, 2012, 10:10:09", | ||||
| 	"October 7, 1970", | ||||
| 	"October 7th, 1970", | ||||
| 	"12 Feb 2006, 19:17", | ||||
| 	"12 Feb 2006 19:17", | ||||
| 	"7 oct 70", | ||||
| 	"7 oct 1970", | ||||
| 	"03 February 2013", | ||||
| 	"1 July 2013", | ||||
| 	"2013-Feb-03", | ||||
| 	//   mm/dd/yy | ||||
| 	"3/31/2014", | ||||
| 	"03/31/2014", | ||||
| 	"08/21/71", | ||||
| 	"8/1/71", | ||||
| 	"4/8/2014 22:05", | ||||
| 	"04/08/2014 22:05", | ||||
| 	"4/8/14 22:05", | ||||
| 	"04/2/2014 03:00:51", | ||||
| 	"8/8/1965 12:00:00 AM", | ||||
| 	"8/8/1965 01:00:01 PM", | ||||
| 	"8/8/1965 01:00 PM", | ||||
| 	"8/8/1965 1:00 PM", | ||||
| 	"8/8/1965 12:00 AM", | ||||
| 	"4/02/2014 03:00:51", | ||||
| 	"03/19/2012 10:11:59", | ||||
| 	"03/19/2012 10:11:59.3186369", | ||||
| 	// yyyy/mm/dd | ||||
| 	"2014/3/31", | ||||
| 	"2014/03/31", | ||||
| 	"2014/4/8 22:05", | ||||
| 	"2014/04/08 22:05", | ||||
| 	"2014/04/2 03:00:51", | ||||
| 	"2014/4/02 03:00:51", | ||||
| 	"2012/03/19 10:11:59", | ||||
| 	"2012/03/19 10:11:59.3186369", | ||||
| 	// Chinese | ||||
| 	"2014年04月08日", | ||||
| 	//   yyyy-mm-ddThh | ||||
| 	"2006-01-02T15:04:05+0000", | ||||
| 	"2009-08-12T22:15:09-07:00", | ||||
| 	"2009-08-12T22:15:09", | ||||
| 	"2009-08-12T22:15:09Z", | ||||
| 	//   yyyy-mm-dd hh:mm:ss | ||||
| 	"2014-04-26 17:24:37.3186369", | ||||
| 	"2012-08-03 18:31:59.257000000", | ||||
| 	"2014-04-26 17:24:37.123", | ||||
| 	"2013-04-01 22:43", | ||||
| 	"2013-04-01 22:43:22", | ||||
| 	"2014-12-16 06:20:00 UTC", | ||||
| 	"2014-12-16 06:20:00 GMT", | ||||
| 	"2014-04-26 05:24:37 PM", | ||||
| 	"2014-04-26 13:13:43 +0800", | ||||
| 	"2014-04-26 13:13:43 +0800 +08", | ||||
| 	"2014-04-26 13:13:44 +09:00", | ||||
| 	"2012-08-03 18:31:59.257000000 +0000 UTC", | ||||
| 	"2015-09-30 18:48:56.35272715 +0000 UTC", | ||||
| 	"2015-02-18 00:12:00 +0000 GMT", | ||||
| 	"2015-02-18 00:12:00 +0000 UTC", | ||||
| 	"2015-02-08 03:02:00 +0300 MSK m=+0.000000001", | ||||
| 	"2015-02-08 03:02:00.001 +0300 MSK m=+0.000000001", | ||||
| 	"2017-07-19 03:21:51+00:00", | ||||
| 	"2014-04-26", | ||||
| 	"2014-04", | ||||
| 	"2014", | ||||
| 	"2014-05-11 08:20:13,787", | ||||
| 	// mm.dd.yy | ||||
| 	"3.31.2014", | ||||
| 	"03.31.2014", | ||||
| 	"08.21.71", | ||||
| 	"2014.03", | ||||
| 	"2014.03.30", | ||||
| 	//  yyyymmdd and similar | ||||
| 	"20140601", | ||||
| 	"20140722105203", | ||||
| 	// unix seconds, ms, micro, nano | ||||
| 	"1332151919", | ||||
| 	"1384216367189", | ||||
| 	"1384216367111222", | ||||
| 	"1384216367111222333", | ||||
| } | ||||
|  | ||||
| var ( | ||||
| 	timezone = "" | ||||
| ) | ||||
|  | ||||
| func main() { | ||||
| 	flag.StringVar(&timezone, "timezone", "UTC", "Timezone aka `America/Los_Angeles` formatted time-zone") | ||||
| 	flag.Parse() | ||||
|  | ||||
| 	if timezone != "" { | ||||
| 		// NOTE:  This is very, very important to understand | ||||
| 		// time-parsing in go | ||||
| 		loc, err := time.LoadLocation(timezone) | ||||
| 		if err != nil { | ||||
| 			panic(err.Error()) | ||||
| 		} | ||||
| 		time.Local = loc | ||||
| 	} | ||||
|  | ||||
| 	table := termtables.CreateTable() | ||||
|  | ||||
| 	table.AddHeaders("Input", "Parsed, and Output as %v") | ||||
| 	for _, dateExample := range examples { | ||||
| 		t, err := dateparse.ParseLocal(dateExample) | ||||
| 		if err != nil { | ||||
| 			panic(err.Error()) | ||||
| 		} | ||||
| 		table.AddRow(dateExample, fmt.Sprintf("%v", t)) | ||||
| 	} | ||||
| 	fmt.Println(table.Render()) | ||||
| } | ||||
|  | ||||
| /* | ||||
| +-------------------------------------------------------+-----------------------------------------+ | ||||
| | Input                                                 | Parsed, and Output as %v                | | ||||
| +-------------------------------------------------------+-----------------------------------------+ | ||||
| | May 8, 2009 5:57:51 PM                                | 2009-05-08 17:57:51 +0000 UTC           | | ||||
| | oct 7, 1970                                           | 1970-10-07 00:00:00 +0000 UTC           | | ||||
| | oct 7, '70                                            | 1970-10-07 00:00:00 +0000 UTC           | | ||||
| | oct. 7, 1970                                          | 1970-10-07 00:00:00 +0000 UTC           | | ||||
| | oct. 7, 70                                            | 1970-10-07 00:00:00 +0000 UTC           | | ||||
| | Mon Jan  2 15:04:05 2006                              | 2006-01-02 15:04:05 +0000 UTC           | | ||||
| | Mon Jan  2 15:04:05 MST 2006                          | 2006-01-02 15:04:05 +0000 MST           | | ||||
| | Mon Jan 02 15:04:05 -0700 2006                        | 2006-01-02 15:04:05 -0700 -0700         | | ||||
| | Monday, 02-Jan-06 15:04:05 MST                        | 2006-01-02 15:04:05 +0000 MST           | | ||||
| | Mon, 02 Jan 2006 15:04:05 MST                         | 2006-01-02 15:04:05 +0000 MST           | | ||||
| | Tue, 11 Jul 2017 16:28:13 +0200 (CEST)                | 2017-07-11 16:28:13 +0200 +0200         | | ||||
| | Mon, 02 Jan 2006 15:04:05 -0700                       | 2006-01-02 15:04:05 -0700 -0700         | | ||||
| | Thu, 4 Jan 2018 17:53:36 +0000                        | 2018-01-04 17:53:36 +0000 UTC           | | ||||
| | Mon Aug 10 15:44:11 UTC+0100 2015                     | 2015-08-10 15:44:11 +0000 UTC           | | ||||
| | Fri Jul 03 2015 18:04:07 GMT+0100 (GMT Daylight Time) | 2015-07-03 18:04:07 +0100 GMT           | | ||||
| | September 17, 2012 10:09am                            | 2012-09-17 10:09:00 +0000 UTC           | | ||||
| | September 17, 2012 at 10:09am PST-08                  | 2012-09-17 10:09:00 -0800 PST           | | ||||
| | September 17, 2012, 10:10:09                          | 2012-09-17 10:10:09 +0000 UTC           | | ||||
| | October 7, 1970                                       | 1970-10-07 00:00:00 +0000 UTC           | | ||||
| | October 7th, 1970                                     | 1970-10-07 00:00:00 +0000 UTC           | | ||||
| | 12 Feb 2006, 19:17                                    | 2006-02-12 19:17:00 +0000 UTC           | | ||||
| | 12 Feb 2006 19:17                                     | 2006-02-12 19:17:00 +0000 UTC           | | ||||
| | 7 oct 70                                              | 1970-10-07 00:00:00 +0000 UTC           | | ||||
| | 7 oct 1970                                            | 1970-10-07 00:00:00 +0000 UTC           | | ||||
| | 03 February 2013                                      | 2013-02-03 00:00:00 +0000 UTC           | | ||||
| | 1 July 2013                                           | 2013-07-01 00:00:00 +0000 UTC           | | ||||
| | 2013-Feb-03                                           | 2013-02-03 00:00:00 +0000 UTC           | | ||||
| | 3/31/2014                                             | 2014-03-31 00:00:00 +0000 UTC           | | ||||
| | 03/31/2014                                            | 2014-03-31 00:00:00 +0000 UTC           | | ||||
| | 08/21/71                                              | 1971-08-21 00:00:00 +0000 UTC           | | ||||
| | 8/1/71                                                | 1971-08-01 00:00:00 +0000 UTC           | | ||||
| | 4/8/2014 22:05                                        | 2014-04-08 22:05:00 +0000 UTC           | | ||||
| | 04/08/2014 22:05                                      | 2014-04-08 22:05:00 +0000 UTC           | | ||||
| | 4/8/14 22:05                                          | 2014-04-08 22:05:00 +0000 UTC           | | ||||
| | 04/2/2014 03:00:51                                    | 2014-04-02 03:00:51 +0000 UTC           | | ||||
| | 8/8/1965 12:00:00 AM                                  | 1965-08-08 00:00:00 +0000 UTC           | | ||||
| | 8/8/1965 01:00:01 PM                                  | 1965-08-08 13:00:01 +0000 UTC           | | ||||
| | 8/8/1965 01:00 PM                                     | 1965-08-08 13:00:00 +0000 UTC           | | ||||
| | 8/8/1965 1:00 PM                                      | 1965-08-08 13:00:00 +0000 UTC           | | ||||
| | 8/8/1965 12:00 AM                                     | 1965-08-08 00:00:00 +0000 UTC           | | ||||
| | 4/02/2014 03:00:51                                    | 2014-04-02 03:00:51 +0000 UTC           | | ||||
| | 03/19/2012 10:11:59                                   | 2012-03-19 10:11:59 +0000 UTC           | | ||||
| | 03/19/2012 10:11:59.3186369                           | 2012-03-19 10:11:59.3186369 +0000 UTC   | | ||||
| | 2014/3/31                                             | 2014-03-31 00:00:00 +0000 UTC           | | ||||
| | 2014/03/31                                            | 2014-03-31 00:00:00 +0000 UTC           | | ||||
| | 2014/4/8 22:05                                        | 2014-04-08 22:05:00 +0000 UTC           | | ||||
| | 2014/04/08 22:05                                      | 2014-04-08 22:05:00 +0000 UTC           | | ||||
| | 2014/04/2 03:00:51                                    | 2014-04-02 03:00:51 +0000 UTC           | | ||||
| | 2014/4/02 03:00:51                                    | 2014-04-02 03:00:51 +0000 UTC           | | ||||
| | 2012/03/19 10:11:59                                   | 2012-03-19 10:11:59 +0000 UTC           | | ||||
| | 2012/03/19 10:11:59.3186369                           | 2012-03-19 10:11:59.3186369 +0000 UTC   | | ||||
| | 2014年04月08日                                           | 2014-04-08 00:00:00 +0000 UTC           | | ||||
| | 2006-01-02T15:04:05+0000                              | 2006-01-02 15:04:05 +0000 UTC           | | ||||
| | 2009-08-12T22:15:09-07:00                             | 2009-08-12 22:15:09 -0700 -0700         | | ||||
| | 2009-08-12T22:15:09                                   | 2009-08-12 22:15:09 +0000 UTC           | | ||||
| | 2009-08-12T22:15:09Z                                  | 2009-08-12 22:15:09 +0000 UTC           | | ||||
| | 2014-04-26 17:24:37.3186369                           | 2014-04-26 17:24:37.3186369 +0000 UTC   | | ||||
| | 2012-08-03 18:31:59.257000000                         | 2012-08-03 18:31:59.257 +0000 UTC       | | ||||
| | 2014-04-26 17:24:37.123                               | 2014-04-26 17:24:37.123 +0000 UTC       | | ||||
| | 2013-04-01 22:43                                      | 2013-04-01 22:43:00 +0000 UTC           | | ||||
| | 2013-04-01 22:43:22                                   | 2013-04-01 22:43:22 +0000 UTC           | | ||||
| | 2014-12-16 06:20:00 UTC                               | 2014-12-16 06:20:00 +0000 UTC           | | ||||
| | 2014-12-16 06:20:00 GMT                               | 2014-12-16 06:20:00 +0000 UTC           | | ||||
| | 2014-04-26 05:24:37 PM                                | 2014-04-26 17:24:37 +0000 UTC           | | ||||
| | 2014-04-26 13:13:43 +0800                             | 2014-04-26 13:13:43 +0800 +0800         | | ||||
| | 2014-04-26 13:13:43 +0800 +08                         | 2014-04-26 13:13:43 +0800 +0800         | | ||||
| | 2014-04-26 13:13:44 +09:00                            | 2014-04-26 13:13:44 +0900 +0900         | | ||||
| | 2012-08-03 18:31:59.257000000 +0000 UTC               | 2012-08-03 18:31:59.257 +0000 UTC       | | ||||
| | 2015-09-30 18:48:56.35272715 +0000 UTC                | 2015-09-30 18:48:56.35272715 +0000 UTC  | | ||||
| | 2015-02-18 00:12:00 +0000 GMT                         | 2015-02-18 00:12:00 +0000 UTC           | | ||||
| | 2015-02-18 00:12:00 +0000 UTC                         | 2015-02-18 00:12:00 +0000 UTC           | | ||||
| | 2015-02-08 03:02:00 +0300 MSK m=+0.000000001          | 2015-02-08 03:02:00 +0300 +0300         | | ||||
| | 2015-02-08 03:02:00.001 +0300 MSK m=+0.000000001      | 2015-02-08 03:02:00.001 +0300 +0300     | | ||||
| | 2017-07-19 03:21:51+00:00                             | 2017-07-19 03:21:51 +0000 UTC           | | ||||
| | 2014-04-26                                            | 2014-04-26 00:00:00 +0000 UTC           | | ||||
| | 2014-04                                               | 2014-04-01 00:00:00 +0000 UTC           | | ||||
| | 2014                                                  | 2014-01-01 00:00:00 +0000 UTC           | | ||||
| | 2014-05-11 08:20:13,787                               | 2014-05-11 08:20:13.787 +0000 UTC       | | ||||
| | 3.31.2014                                             | 2014-03-31 00:00:00 +0000 UTC           | | ||||
| | 03.31.2014                                            | 2014-03-31 00:00:00 +0000 UTC           | | ||||
| | 08.21.71                                              | 1971-08-21 00:00:00 +0000 UTC           | | ||||
| | 2014.03                                               | 2014-03-01 00:00:00 +0000 UTC           | | ||||
| | 2014.03.30                                            | 2014-03-30 00:00:00 +0000 UTC           | | ||||
| | 20140601                                              | 2014-06-01 00:00:00 +0000 UTC           | | ||||
| | 20140722105203                                        | 2014-07-22 10:52:03 +0000 UTC           | | ||||
| | 1332151919                                            | 2012-03-19 10:11:59 +0000 UTC           | | ||||
| | 1384216367189                                         | 2013-11-12 00:32:47.189 +0000 UTC       | | ||||
| | 1384216367111222                                      | 2013-11-12 00:32:47.111222 +0000 UTC    | | ||||
| | 1384216367111222333                                   | 2013-11-12 00:32:47.111222333 +0000 UTC | | ||||
| +-------------------------------------------------------+-----------------------------------------+ | ||||
| */ | ||||
|  | ||||
| ``` | ||||
							
								
								
									
										1864
									
								
								vendor/github.com/araddon/dateparse/parseany.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1864
									
								
								vendor/github.com/araddon/dateparse/parseany.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user
	 Norwin
					Norwin