Create get_configured_provider(), remove delete_server_after == "1" check

This commit is contained in:
Hocuri
2021-01-20 13:31:42 +01:00
parent 687db252b6
commit b67fbedcef
3 changed files with 17 additions and 22 deletions

View File

@@ -3,7 +3,6 @@
use strum::{EnumProperty, IntoEnumIterator}; use strum::{EnumProperty, IntoEnumIterator};
use strum_macros::{AsRefStr, Display, EnumIter, EnumProperty, EnumString}; use strum_macros::{AsRefStr, Display, EnumIter, EnumProperty, EnumString};
use crate::blob::BlobObject;
use crate::chat::ChatId; use crate::chat::ChatId;
use crate::constants::DC_VERSION_STR; use crate::constants::DC_VERSION_STR;
use crate::context::Context; use crate::context::Context;
@@ -13,6 +12,10 @@ use crate::job;
use crate::message::MsgId; use crate::message::MsgId;
use crate::mimefactory::RECOMMENDED_FILE_SIZE; use crate::mimefactory::RECOMMENDED_FILE_SIZE;
use crate::stock::StockMessage; use crate::stock::StockMessage;
use crate::{
blob::BlobObject,
provider::{get_provider_by_id, Provider},
};
/// The available configuration keys. /// The available configuration keys.
#[derive( #[derive(
@@ -212,6 +215,14 @@ impl Context {
} }
} }
/// Gets the configured provider, as saved in the `configured_provider` value.
///
/// The provider is determined by `get_provider_info()` during configuration and then saved
/// to the db in `param.save_to_database()`, together with all the other `configured_*` values.
pub async fn get_configured_provider(&self) -> Option<&'static Provider> {
get_provider_by_id(&self.get_config(Config::ConfiguredProvider).await?)
}
/// Gets configured "delete_device_after" value. /// Gets configured "delete_device_after" value.
/// ///
/// `None` means never delete the message, `Some(x)` means delete /// `None` means never delete the message, `Some(x)` means delete

View File

@@ -3,11 +3,9 @@
use super::Smtp; use super::Smtp;
use async_smtp::{EmailAddress, Envelope, SendableEmail, Transport}; use async_smtp::{EmailAddress, Envelope, SendableEmail, Transport};
use crate::config::Config;
use crate::constants::DEFAULT_MAX_SMTP_RCPT_TO; use crate::constants::DEFAULT_MAX_SMTP_RCPT_TO;
use crate::context::Context; use crate::context::Context;
use crate::events::EventType; use crate::events::EventType;
use crate::provider::get_provider_by_id;
use itertools::Itertools; use itertools::Itertools;
use std::time::Duration; use std::time::Duration;
@@ -38,12 +36,7 @@ impl Smtp {
let message_len_bytes = message.len(); let message_len_bytes = message.len();
let mut chunk_size = DEFAULT_MAX_SMTP_RCPT_TO; let mut chunk_size = DEFAULT_MAX_SMTP_RCPT_TO;
if let Some(provider) = get_provider_by_id( if let Some(provider) = context.get_configured_provider().await {
&context
.get_config(Config::ConfiguredProvider)
.await
.unwrap_or_default(),
) {
if let Some(max_smtp_rcpt_to) = provider.max_smtp_rcpt_to { if let Some(max_smtp_rcpt_to) = provider.max_smtp_rcpt_to {
chunk_size = max_smtp_rcpt_to as usize; chunk_size = max_smtp_rcpt_to as usize;
} }

View File

@@ -9,6 +9,7 @@ use std::time::Duration;
use rusqlite::{Connection, Error as SqlError, OpenFlags}; use rusqlite::{Connection, Error as SqlError, OpenFlags};
use crate::chat::add_device_msg;
use crate::config::Config::DeleteServerAfter; use crate::config::Config::DeleteServerAfter;
use crate::constants::{ShowEmails, DC_CHAT_ID_TRASH}; use crate::constants::{ShowEmails, DC_CHAT_ID_TRASH};
use crate::context::Context; use crate::context::Context;
@@ -20,7 +21,6 @@ use crate::param::{Param, Params};
use crate::peerstate::Peerstate; use crate::peerstate::Peerstate;
use crate::provider::get_provider_by_domain; use crate::provider::get_provider_by_domain;
use crate::stock::StockMessage; use crate::stock::StockMessage;
use crate::{chat::add_device_msg, provider::get_provider_by_id};
use crate::{ use crate::{
chat::{update_device_icon, update_saved_messages_icon}, chat::{update_device_icon, update_saved_messages_icon},
config::Config, config::Config,
@@ -1481,19 +1481,10 @@ CREATE INDEX devmsglabels_index1 ON devmsglabels (label);
disable_server_delete = true; disable_server_delete = true;
// Don't disable server delete if it was on by default (Nauta): // Don't disable server delete if it was on by default (Nauta):
if let Some(provider) = get_provider_by_id( if let Some(provider) = context.get_configured_provider().await {
&context
.get_config(Config::ConfiguredProvider)
.await
.unwrap_or_default(),
) {
if let Some(defaults) = &provider.config_defaults { if let Some(defaults) = &provider.config_defaults {
if let Some(config) = if defaults.iter().any(|d| d.key == Config::DeleteServerAfter) {
defaults.iter().find(|d| d.key == Config::DeleteServerAfter) disable_server_delete = false;
{
if config.value == "1" {
disable_server_delete = false;
}
} }
} }
} }