EpisodesView: Use chrono to categorize widgets intead of epoch calculations.
This commit is contained in:
parent
2ad0539a82
commit
8513ba3644
@ -42,7 +42,7 @@
|
|||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="halign">center</property>
|
<property name="halign">center</property>
|
||||||
<property name="orientation">vertical</property>
|
<property name="orientation">vertical</property>
|
||||||
<property name="spacing">7</property>
|
<property name="spacing">25</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox" id="today_box">
|
<object class="GtkBox" id="today_box">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
|||||||
@ -79,7 +79,7 @@ impl EpisodesView {
|
|||||||
pub fn new() -> Rc<EpisodesView> {
|
pub fn new() -> Rc<EpisodesView> {
|
||||||
let view = EpisodesView::default();
|
let view = EpisodesView::default();
|
||||||
let episodes = dbqueries::get_episodes_widgets_with_limit(100).unwrap();
|
let episodes = dbqueries::get_episodes_widgets_with_limit(100).unwrap();
|
||||||
let now_utc = Utc::now().timestamp() as i32;
|
let now_utc = Utc::now();
|
||||||
|
|
||||||
episodes.into_iter().for_each(|mut ep| {
|
episodes.into_iter().for_each(|mut ep| {
|
||||||
let viewep = EpisodesViewWidget::new(&mut ep);
|
let viewep = EpisodesViewWidget::new(&mut ep);
|
||||||
@ -87,7 +87,7 @@ impl EpisodesView {
|
|||||||
sep.set_sensitive(false);
|
sep.set_sensitive(false);
|
||||||
sep.set_can_focus(false);
|
sep.set_can_focus(false);
|
||||||
|
|
||||||
let t = split(now_utc, ep.epoch());
|
let t = split(&now_utc, i64::from(ep.epoch()));
|
||||||
match t {
|
match t {
|
||||||
ListSplit::Today => {
|
ListSplit::Today => {
|
||||||
view.today_list.add(&viewep.container);
|
view.today_list.add(&viewep.container);
|
||||||
@ -175,19 +175,18 @@ impl EpisodesView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Avoid epoch calculations, use chrono instead.
|
fn split(now: &DateTime<Utc>, epoch: i64) -> ListSplit {
|
||||||
fn split(now_utc: i32, epoch: i32) -> ListSplit {
|
let ep = Utc.timestamp(epoch, 0);
|
||||||
let t = now_utc - epoch;
|
|
||||||
|
|
||||||
if t < 86_400 {
|
if now.ordinal() == ep.ordinal() && now.year() == ep.year() {
|
||||||
ListSplit::Today
|
ListSplit::Today
|
||||||
} else if t < 172_800 {
|
} else if now.ordinal() == ep.ordinal() + 1 && now.year() == ep.year() {
|
||||||
ListSplit::Yday
|
ListSplit::Yday
|
||||||
} else if t < 604_800 {
|
} else if now.iso_week().week() == ep.iso_week().week() && now.year() == ep.year() {
|
||||||
ListSplit::Week
|
ListSplit::Week
|
||||||
} else if t < 2_419_200 {
|
} else if now.month() == ep.month() && now.year() == ep.year() {
|
||||||
ListSplit::Month
|
ListSplit::Month
|
||||||
} else if t < 31_536_000 {
|
} else if now.year() == ep.year() {
|
||||||
ListSplit::Year
|
ListSplit::Year
|
||||||
} else {
|
} else {
|
||||||
ListSplit::Rest
|
ListSplit::Rest
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user