treewide: allow for running w/o storage
This commit is contained in:
parent
827b5a4bd7
commit
a9a63f36ad
14 changed files with 174 additions and 90 deletions
|
@ -1,4 +1,4 @@
|
|||
use crate::Data;
|
||||
use crate::{api, Data};
|
||||
|
||||
use eyre::Result;
|
||||
use log::trace;
|
||||
|
@ -189,20 +189,15 @@ async fn outdated_launcher(log: &str, data: &Data) -> Result<Issue> {
|
|||
|
||||
let version_from_log = captures[0].replace("Prism Launcher version: ", "");
|
||||
|
||||
let storage = &data.storage;
|
||||
let latest_version = if let Ok(version) = storage.get_launcher_version().await {
|
||||
version
|
||||
let latest_version = if let Some(storage) = &data.storage {
|
||||
if let Ok(version) = storage.get_launcher_version().await {
|
||||
version
|
||||
} else {
|
||||
api::github::get_latest_prism_version().await?
|
||||
}
|
||||
} else {
|
||||
let version = data
|
||||
.octocrab
|
||||
.repos("PrismLauncher", "PrismLauncher")
|
||||
.releases()
|
||||
.get_latest()
|
||||
.await?
|
||||
.tag_name;
|
||||
|
||||
storage.cache_launcher_version(&version).await?;
|
||||
version
|
||||
trace!("Not caching launcher version, as we're running without a storage backend");
|
||||
api::github::get_latest_prism_version().await?
|
||||
};
|
||||
|
||||
if version_from_log < latest_version {
|
||||
|
|
|
@ -41,14 +41,16 @@ pub async fn handle(
|
|||
return Ok(());
|
||||
}
|
||||
|
||||
// detect PK users first to make sure we don't respond to unproxied messages
|
||||
pluralkit::handle(ctx, new_message, data).await?;
|
||||
if let Some(storage) = &data.storage {
|
||||
// detect PK users first to make sure we don't respond to unproxied messages
|
||||
pluralkit::handle(ctx, new_message, storage).await?;
|
||||
|
||||
if data.storage.is_user_plural(new_message.author.id).await?
|
||||
&& pluralkit::is_message_proxied(new_message).await?
|
||||
{
|
||||
debug!("Not replying to unproxied PluralKit message");
|
||||
return Ok(());
|
||||
if storage.is_user_plural(new_message.author.id).await?
|
||||
&& pluralkit::is_message_proxied(new_message).await?
|
||||
{
|
||||
debug!("Not replying to unproxied PluralKit message");
|
||||
return Ok(());
|
||||
}
|
||||
}
|
||||
|
||||
eta::handle(ctx, new_message).await?;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
use crate::{api, Data};
|
||||
use crate::{api, storage::Storage};
|
||||
use std::time::Duration;
|
||||
|
||||
use eyre::Result;
|
||||
|
@ -20,7 +20,7 @@ pub async fn is_message_proxied(message: &Message) -> Result<bool> {
|
|||
Ok(proxied)
|
||||
}
|
||||
|
||||
pub async fn handle(_: &Context, msg: &Message, data: &Data) -> Result<()> {
|
||||
pub async fn handle(_: &Context, msg: &Message, storage: &Storage) -> Result<()> {
|
||||
if msg.webhook_id.is_none() {
|
||||
return Ok(());
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ pub async fn handle(_: &Context, msg: &Message, data: &Data) -> Result<()> {
|
|||
sleep(PK_DELAY).await;
|
||||
|
||||
if let Ok(sender) = api::pluralkit::get_sender(msg.id).await {
|
||||
data.storage.store_user_plurality(sender).await?;
|
||||
storage.store_user_plurality(sender).await?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue