mirror of
				https://github.com/taigrr/wtf
				synced 2025-01-18 04:03:14 -08:00 
			
		
		
		
	Calendar displays number of days/hours/minutes until the listed meeting
This commit is contained in:
		
							parent
							
								
									693a05cf43
								
							
						
					
					
						commit
						9756e1885f
					
				@ -58,10 +58,11 @@ func (widget *Widget) contentFrom(events *calendar.Events) string {
 | 
				
			|||||||
	str := "\n"
 | 
						str := "\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for _, item := range events.Items {
 | 
						for _, item := range events.Items {
 | 
				
			||||||
		ts, _ := time.Parse(time.RFC3339, item.Start.DateTime)
 | 
							startTime, _ := time.Parse(time.RFC3339, item.Start.DateTime)
 | 
				
			||||||
		timestamp := ts.Format("Mon, Jan 2 - 15:04")
 | 
							timestamp := startTime.Format("Mon, Jan 2, 15:04")
 | 
				
			||||||
 | 
							until := widget.until(startTime)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		str = str + fmt.Sprintf(" [%s]%s[white]\n [%s]%s[white]\n\n", titleColor(item), item.Summary, descriptionColor(item), timestamp)
 | 
							str = str + fmt.Sprintf(" [%s]%s[white]\n [%s]%s %s[white]\n\n", titleColor(item), item.Summary, descriptionColor(item), timestamp, until)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return str
 | 
						return str
 | 
				
			||||||
@ -107,3 +108,31 @@ func (widget *Widget) refresher() {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// until returns the number of hours or days until the event
 | 
				
			||||||
 | 
					// If the event is in the past, returns nil
 | 
				
			||||||
 | 
					func (widget *Widget) until(start time.Time) string {
 | 
				
			||||||
 | 
						duration := time.Until(start)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						duration = duration.Round(time.Minute)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						days := duration / (24 * time.Hour)
 | 
				
			||||||
 | 
						duration -= days * (24 * time.Hour)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						hours := duration / time.Hour
 | 
				
			||||||
 | 
						duration -= hours * time.Hour
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mins := duration / time.Minute
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						untilStr := ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if days > 0 {
 | 
				
			||||||
 | 
							untilStr = fmt.Sprintf("%dd", days)
 | 
				
			||||||
 | 
						} else if hours > 0 {
 | 
				
			||||||
 | 
							untilStr = fmt.Sprintf("%dh", hours)
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							untilStr = fmt.Sprintf("%dm", mins)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return "[grey]" + untilStr + "[white]"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user