61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
}
#[derive(sqlx::FromRow)]
pub struct Queue {
pub source_id: Option<i32>,
pub next_fetch: Option<DateTime<Local>>,
pub owner: Option<i64>,
}
#[derive(Clone)]
pub struct Db (
Arc<Mutex<sqlx::Pool<sqlx::Postgres>>>,
);
|
>
|
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
}
#[derive(sqlx::FromRow)]
pub struct Queue {
pub source_id: Option<i32>,
pub next_fetch: Option<DateTime<Local>>,
pub owner: Option<i64>,
pub last_scrape: DateTime<Local>,
}
#[derive(Clone)]
pub struct Db (
Arc<Mutex<sqlx::Pool<sqlx::Postgres>>>,
);
|
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
|
.bind(id.into())
.fetch_one(&mut *self.0).await.stack()?;
let exists: Option<bool> = row.try_get("exists").stack()?;
Ok(exists)
}
pub async fn get_queue (&mut self) -> Result<Vec<Queue>> {
let block: Vec<Queue> = sqlx::query_as("select source_id, next_fetch, owner from rsstg_order natural left join rsstg_source where next_fetch < now() + interval '1 minute';")
.fetch_all(&mut *self.0).await.stack()?;
Ok(block)
}
pub async fn get_list <I> (&mut self, owner: I) -> Result<Vec<List>>
where I: Into<i64> {
let source: Vec<List> = sqlx::query_as("select source_id, channel, enabled, url, iv_hash, url_re from rsstg_source where owner = $1 order by source_id")
|
|
|
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
|
.bind(id.into())
.fetch_one(&mut *self.0).await.stack()?;
let exists: Option<bool> = row.try_get("exists").stack()?;
Ok(exists)
}
pub async fn get_queue (&mut self) -> Result<Vec<Queue>> {
let block: Vec<Queue> = sqlx::query_as("select source_id, next_fetch, owner, last_scrape from rsstg_order natural left join rsstg_source where next_fetch < now() + interval '1 minute';")
.fetch_all(&mut *self.0).await.stack()?;
Ok(block)
}
pub async fn get_list <I> (&mut self, owner: I) -> Result<Vec<List>>
where I: Into<i64> {
let source: Vec<List> = sqlx::query_as("select source_id, channel, enabled, url, iv_hash, url_re from rsstg_source where owner = $1 order by source_id")
|