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"
 | 
			
		||||
 | 
			
		||||
	for _, item := range events.Items {
 | 
			
		||||
		ts, _ := time.Parse(time.RFC3339, item.Start.DateTime)
 | 
			
		||||
		timestamp := ts.Format("Mon, Jan 2 - 15:04")
 | 
			
		||||
		startTime, _ := time.Parse(time.RFC3339, item.Start.DateTime)
 | 
			
		||||
		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
 | 
			
		||||
@ -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