Skip to content

Commit

Permalink
feat(term): use entry updated if published is none
Browse files Browse the repository at this point in the history
  • Loading branch information
ymgyt committed Feb 23, 2024
1 parent 9967dc1 commit 2b16b51
Show file tree
Hide file tree
Showing 9 changed files with 33 additions and 4 deletions.
4 changes: 4 additions & 0 deletions crates/synd_feed/src/types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,10 @@ impl Entry {
self.0.title.as_ref().map(|text| text.content.as_str())
}

pub fn updated(&self) -> Option<Time> {
self.0.updated
}

pub fn published(&self) -> Option<Time> {
self.0.published
}
Expand Down
1 change: 1 addition & 0 deletions crates/synd_term/gql/mutation.gql
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ fragment Feed on Feed {
fragment EntryMeta on Entry {
title,
published,
updated,
summary,
}

Expand Down
2 changes: 2 additions & 0 deletions crates/synd_term/gql/query.gql
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ fragment Feed on Feed {
fragment EntryMeta on Entry {
title,
published,
updated,
summary,
}

Expand All @@ -59,6 +60,7 @@ query Entries($after: String, $first: Int!) {
fragment Entry on Entry {
title
published
updated
summary
websiteUrl
feed {
Expand Down
12 changes: 12 additions & 0 deletions crates/synd_term/gql/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,18 @@
"ofType": null
}
},
{
"args": [],
"deprecationReason": null,
"description": "Time at which the entry was last modified",
"isDeprecated": false,
"name": "updated",
"type": {
"kind": "SCALAR",
"name": "Rfc3339Time",
"ofType": null
}
},
{
"args": [],
"deprecationReason": null,
Expand Down
5 changes: 3 additions & 2 deletions crates/synd_term/src/client/mutation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ pub mod subscribe_feed {
#![allow(dead_code)]
use std::result::Result;
pub const OPERATION_NAME: &str = "SubscribeFeed";
pub const QUERY : & str = "mutation SubscribeFeed($input: SubscribeFeedInput!) {\n subscribeFeed(input: $input) {\n __typename\n ... on SubscribeFeedSuccess {\n feed {\n ...Feed\n }\n status {\n code\n }\n }\n ... on SubscribeFeedError {\n status {\n code\n }\n message\n }\n }\n}\n\nmutation UnsubscribeFeed($input: UnsubscribeFeedInput!) {\n unsubscribeFeed(input: $input) {\n __typename\n ... on UnsubscribeFeedSuccess {\n status {\n code\n }\n }\n ... on UnsubscribeFeedError {\n status {\n code\n }\n }\n }\n}\n\nfragment Feed on Feed {\n id\n title\n url\n updated\n websiteUrl\n description\n entries(first: 10) {\n nodes {\n ...EntryMeta\n }\n }\n links {\n nodes {\n ...Link\n }\n }\n}\n\nfragment EntryMeta on Entry {\n title,\n published,\n summary,\n}\n\nfragment Link on Link {\n href\n rel\n mediaType\n title \n}\n" ;
pub const QUERY : & str = "mutation SubscribeFeed($input: SubscribeFeedInput!) {\n subscribeFeed(input: $input) {\n __typename\n ... on SubscribeFeedSuccess {\n feed {\n ...Feed\n }\n status {\n code\n }\n }\n ... on SubscribeFeedError {\n status {\n code\n }\n message\n }\n }\n}\n\nmutation UnsubscribeFeed($input: UnsubscribeFeedInput!) {\n unsubscribeFeed(input: $input) {\n __typename\n ... on UnsubscribeFeedSuccess {\n status {\n code\n }\n }\n ... on UnsubscribeFeedError {\n status {\n code\n }\n }\n }\n}\n\nfragment Feed on Feed {\n id\n title\n url\n updated\n websiteUrl\n description\n entries(first: 10) {\n nodes {\n ...EntryMeta\n }\n }\n links {\n nodes {\n ...Link\n }\n }\n}\n\nfragment EntryMeta on Entry {\n title,\n published,\n updated,\n summary,\n}\n\nfragment Link on Link {\n href\n rel\n mediaType\n title \n}\n" ;
use super::*;
use serde::{Deserialize, Serialize};
#[allow(dead_code)]
Expand Down Expand Up @@ -82,6 +82,7 @@ pub mod subscribe_feed {
pub struct EntryMeta {
pub title: Option<String>,
pub published: Option<Rfc3339Time>,
pub updated: Option<Rfc3339Time>,
pub summary: Option<String>,
}
#[derive(Deserialize, Debug)]
Expand Down Expand Up @@ -139,7 +140,7 @@ pub mod unsubscribe_feed {
#![allow(dead_code)]
use std::result::Result;
pub const OPERATION_NAME: &str = "UnsubscribeFeed";
pub const QUERY : & str = "mutation SubscribeFeed($input: SubscribeFeedInput!) {\n subscribeFeed(input: $input) {\n __typename\n ... on SubscribeFeedSuccess {\n feed {\n ...Feed\n }\n status {\n code\n }\n }\n ... on SubscribeFeedError {\n status {\n code\n }\n message\n }\n }\n}\n\nmutation UnsubscribeFeed($input: UnsubscribeFeedInput!) {\n unsubscribeFeed(input: $input) {\n __typename\n ... on UnsubscribeFeedSuccess {\n status {\n code\n }\n }\n ... on UnsubscribeFeedError {\n status {\n code\n }\n }\n }\n}\n\nfragment Feed on Feed {\n id\n title\n url\n updated\n websiteUrl\n description\n entries(first: 10) {\n nodes {\n ...EntryMeta\n }\n }\n links {\n nodes {\n ...Link\n }\n }\n}\n\nfragment EntryMeta on Entry {\n title,\n published,\n summary,\n}\n\nfragment Link on Link {\n href\n rel\n mediaType\n title \n}\n" ;
pub const QUERY : & str = "mutation SubscribeFeed($input: SubscribeFeedInput!) {\n subscribeFeed(input: $input) {\n __typename\n ... on SubscribeFeedSuccess {\n feed {\n ...Feed\n }\n status {\n code\n }\n }\n ... on SubscribeFeedError {\n status {\n code\n }\n message\n }\n }\n}\n\nmutation UnsubscribeFeed($input: UnsubscribeFeedInput!) {\n unsubscribeFeed(input: $input) {\n __typename\n ... on UnsubscribeFeedSuccess {\n status {\n code\n }\n }\n ... on UnsubscribeFeedError {\n status {\n code\n }\n }\n }\n}\n\nfragment Feed on Feed {\n id\n title\n url\n updated\n websiteUrl\n description\n entries(first: 10) {\n nodes {\n ...EntryMeta\n }\n }\n links {\n nodes {\n ...Link\n }\n }\n}\n\nfragment EntryMeta on Entry {\n title,\n published,\n updated,\n summary,\n}\n\nfragment Link on Link {\n href\n rel\n mediaType\n title \n}\n" ;
use super::*;
use serde::{Deserialize, Serialize};
#[allow(dead_code)]
Expand Down
6 changes: 4 additions & 2 deletions crates/synd_term/src/client/query.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ pub mod subscription {
#![allow(dead_code)]
use std::result::Result;
pub const OPERATION_NAME: &str = "Subscription";
pub const QUERY : & str = "query Subscription($after: String, $first: Int) {\n output: subscription {\n feeds(after: $after, first: $first) {\n nodes {\n ...Feed\n }\n pageInfo {\n ...PageInfo\n }\n }\n }\n}\n\nfragment Feed on Feed {\n id\n title\n url\n updated\n websiteUrl\n description\n entries(first: 10) {\n nodes {\n ...EntryMeta\n }\n }\n links {\n nodes {\n ...Link\n }\n }\n}\n\nfragment EntryMeta on Entry {\n title,\n published,\n summary,\n}\n\nfragment Link on Link {\n href\n rel\n mediaType\n title \n}\n\nquery Entries($after: String, $first: Int!) {\n output: subscription {\n entries(after: $after, first: $first) {\n nodes {\n ...Entry\n }\n pageInfo {\n ...PageInfo\n }\n }\n }\n}\n\nfragment Entry on Entry {\n title\n published\n summary\n websiteUrl\n feed {\n ...FeedMeta\n }\n}\n\nfragment FeedMeta on FeedMeta {\n title\n url\n}\n\nfragment PageInfo on PageInfo {\n hasNextPage\n endCursor\n}\n" ;
pub const QUERY : & str = "query Subscription($after: String, $first: Int) {\n output: subscription {\n feeds(after: $after, first: $first) {\n nodes {\n ...Feed\n }\n pageInfo {\n ...PageInfo\n }\n }\n }\n}\n\nfragment Feed on Feed {\n id\n title\n url\n updated\n websiteUrl\n description\n entries(first: 10) {\n nodes {\n ...EntryMeta\n }\n }\n links {\n nodes {\n ...Link\n }\n }\n}\n\nfragment EntryMeta on Entry {\n title,\n published,\n updated,\n summary,\n}\n\nfragment Link on Link {\n href\n rel\n mediaType\n title \n}\n\nquery Entries($after: String, $first: Int!) {\n output: subscription {\n entries(after: $after, first: $first) {\n nodes {\n ...Entry\n }\n pageInfo {\n ...PageInfo\n }\n }\n }\n}\n\nfragment Entry on Entry {\n title\n published\n updated\n summary\n websiteUrl\n feed {\n ...FeedMeta\n }\n}\n\nfragment FeedMeta on FeedMeta {\n title\n url\n}\n\nfragment PageInfo on PageInfo {\n hasNextPage\n endCursor\n}\n" ;
use super::*;
use serde::{Deserialize, Serialize};
#[allow(dead_code)]
Expand Down Expand Up @@ -48,6 +48,7 @@ pub mod subscription {
pub struct EntryMeta {
pub title: Option<String>,
pub published: Option<Rfc3339Time>,
pub updated: Option<Rfc3339Time>,
pub summary: Option<String>,
}
#[derive(Deserialize, Debug)]
Expand Down Expand Up @@ -98,7 +99,7 @@ pub mod entries {
#![allow(dead_code)]
use std::result::Result;
pub const OPERATION_NAME: &str = "Entries";
pub const QUERY : & str = "query Subscription($after: String, $first: Int) {\n output: subscription {\n feeds(after: $after, first: $first) {\n nodes {\n ...Feed\n }\n pageInfo {\n ...PageInfo\n }\n }\n }\n}\n\nfragment Feed on Feed {\n id\n title\n url\n updated\n websiteUrl\n description\n entries(first: 10) {\n nodes {\n ...EntryMeta\n }\n }\n links {\n nodes {\n ...Link\n }\n }\n}\n\nfragment EntryMeta on Entry {\n title,\n published,\n summary,\n}\n\nfragment Link on Link {\n href\n rel\n mediaType\n title \n}\n\nquery Entries($after: String, $first: Int!) {\n output: subscription {\n entries(after: $after, first: $first) {\n nodes {\n ...Entry\n }\n pageInfo {\n ...PageInfo\n }\n }\n }\n}\n\nfragment Entry on Entry {\n title\n published\n summary\n websiteUrl\n feed {\n ...FeedMeta\n }\n}\n\nfragment FeedMeta on FeedMeta {\n title\n url\n}\n\nfragment PageInfo on PageInfo {\n hasNextPage\n endCursor\n}\n" ;
pub const QUERY : & str = "query Subscription($after: String, $first: Int) {\n output: subscription {\n feeds(after: $after, first: $first) {\n nodes {\n ...Feed\n }\n pageInfo {\n ...PageInfo\n }\n }\n }\n}\n\nfragment Feed on Feed {\n id\n title\n url\n updated\n websiteUrl\n description\n entries(first: 10) {\n nodes {\n ...EntryMeta\n }\n }\n links {\n nodes {\n ...Link\n }\n }\n}\n\nfragment EntryMeta on Entry {\n title,\n published,\n updated,\n summary,\n}\n\nfragment Link on Link {\n href\n rel\n mediaType\n title \n}\n\nquery Entries($after: String, $first: Int!) {\n output: subscription {\n entries(after: $after, first: $first) {\n nodes {\n ...Entry\n }\n pageInfo {\n ...PageInfo\n }\n }\n }\n}\n\nfragment Entry on Entry {\n title\n published\n updated\n summary\n websiteUrl\n feed {\n ...FeedMeta\n }\n}\n\nfragment FeedMeta on FeedMeta {\n title\n url\n}\n\nfragment PageInfo on PageInfo {\n hasNextPage\n endCursor\n}\n" ;
use super::*;
use serde::{Deserialize, Serialize};
#[allow(dead_code)]
Expand All @@ -120,6 +121,7 @@ pub mod entries {
pub struct Entry {
pub title: Option<String>,
pub published: Option<Rfc3339Time>,
pub updated: Option<Rfc3339Time>,
pub summary: Option<String>,
#[serde(rename = "websiteUrl")]
pub website_url: Option<String>,
Expand Down
5 changes: 5 additions & 0 deletions crates/synd_term/src/types/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ impl From<mutation::subscribe_feed::Link> for Link {
pub struct EntryMeta {
pub title: Option<String>,
pub published: Option<Time>,
pub updated: Option<Time>,
pub summary: Option<String>,
}

Expand All @@ -50,6 +51,7 @@ impl From<query::subscription::EntryMeta> for EntryMeta {
Self {
title: e.title,
published: e.published.map(parse_time),
updated: e.updated.map(parse_time),
summary: e.summary,
}
}
Expand All @@ -60,6 +62,7 @@ impl From<mutation::subscribe_feed::EntryMeta> for EntryMeta {
Self {
title: e.title,
published: e.published.map(parse_time),
updated: e.updated.map(parse_time),
summary: e.summary,
}
}
Expand Down Expand Up @@ -116,6 +119,7 @@ impl From<mutation::subscribe_feed::Feed> for Feed {
pub struct Entry {
pub title: Option<String>,
pub published: Option<Time>,
pub updated: Option<Time>,
pub website_url: Option<String>,
pub summary: Option<String>,
pub feed_title: Option<String>,
Expand All @@ -135,6 +139,7 @@ impl From<query::entries::Entry> for Entry {
Self {
title: v.title,
published: v.published.map(parse_time),
updated: v.updated.map(parse_time),
website_url: v.website_url,
feed_title: v.feed.title,
feed_url: v.feed.url,
Expand Down
1 change: 1 addition & 0 deletions crates/synd_term/src/ui/components/entries.rs
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ impl Entries {
let published = entry
.published
.as_ref()
.or(entry.updated.as_ref())
.map_or_else(|| ui::UNKNOWN_SYMBOL.to_string(), TimeExt::local_ymd);

let feed_title = entry.feed_title.as_deref().unwrap_or(ui::UNKNOWN_SYMBOL);
Expand Down
1 change: 1 addition & 0 deletions crates/synd_term/src/ui/components/subscription.rs
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@ impl Subscription {
let published = entry
.published
.as_ref()
.or(entry.updated.as_ref())
.map_or_else(|| ui::UNKNOWN_SYMBOL.to_string(), TimeExt::local_ymd);
let summary = entry.summary_text(100).unwrap_or(ui::UNKNOWN_SYMBOL.into());

Expand Down

0 comments on commit 2b16b51

Please sign in to comment.