feat: 添加选项 信用溢出时无视黑名单

This commit is contained in:
Hydrogina
2022-09-25 19:04:23 +08:00
parent 34c369ad97
commit fd8ebb02c0
10 changed files with 49 additions and 6 deletions

View File

@@ -22,6 +22,12 @@ void asst::CreditShoppingTask::set_white_list(std::vector<std::string> black_lis
m_is_white_list = true;
}
asst::CreditShoppingTask& asst::CreditShoppingTask::set_save_credit_enabled(bool save_credit_enabled) noexcept
{
m_save_credit_enabled = save_credit_enabled;
return *this;
}
std::string asst::CreditShoppingTask::credit_ocr()
{
cv::Mat credit_image = m_ctrler->get_image();
@@ -117,7 +123,7 @@ bool asst::CreditShoppingTask::credit_shopping(bool white_list_enabled, bool cre
if (credit_ocr_enabled) {
std::string credit = credit_ocr();
if (credit == "" || std::stoi(credit) <= 300) {//信用值不再溢出,停止购物
if (credit == "" || std::stoi(credit) <= m_max_credit) {//信用值不再溢出,停止购物
break;
}
}
@@ -137,7 +143,7 @@ bool asst::CreditShoppingTask::_run()
std::string credit = credit_ocr();
if (credit != "" && std::stoi(credit) > 300) {//信用值溢出
if (credit != "" && std::stoi(credit) > m_max_credit) {//信用值溢出
if (!credit_shopping(false, true)) {
return false;
}

View File

@@ -17,11 +17,14 @@ namespace asst
void set_black_list(std::vector<std::string> black_list);
void set_white_list(std::vector<std::string> white_list);
CreditShoppingTask& set_save_credit_enabled(bool save_credit_enabled) noexcept;
protected:
virtual bool _run() override;
bool m_save_credit_enabled = true; // 设置是否防止信用值溢出
int m_max_credit = 300;
std::string credit_ocr();
bool credit_shopping(bool white_list_enabled, bool credit_ocr_enabled);
bool credit_shopping(bool white_list_enabled, bool credit_ocr_enabled);
std::vector<std::string> m_shopping_list;
bool m_is_white_list = false;

View File

@@ -21,6 +21,9 @@ asst::MallTask::MallTask(const AsstCallback& callback, void* callback_arg)
bool asst::MallTask::set_params(const json::value& params)
{
bool shopping = params.get("shopping", true);
bool save_credit_enabled = params.get("save_credit_enabled", true);
m_shopping_first_task_ptr->set_save_credit_enabled(false);
m_shopping_task_ptr->set_save_credit_enabled(save_credit_enabled);
if (shopping) {
if (auto buy_first_opt = params.find<json::array>("buy_first")) {

View File

@@ -1230,13 +1230,15 @@ namespace MeoAsstGui
/// <param name="with_shopping">是否购物。</param>
/// <param name="first_list">优先购买列表。</param>
/// <param name="blacklist">黑名单列表。</param>
/// <param name="save_credit_enabled">是否在信用溢出时无视黑名单</param>
/// <returns>是否成功。</returns>
public bool AsstAppendMall(bool with_shopping, string[] first_list, string[] blacklist)
public bool AsstAppendMall(bool with_shopping, string[] first_list, string[] blacklist, bool save_credit_enabled)
{
var task_params = new JObject();
task_params["shopping"] = with_shopping;
task_params["buy_first"] = new JArray { first_list };
task_params["blacklist"] = new JArray { blacklist };
task_params["save_credit_enabled"] = save_credit_enabled;
TaskId id = AsstAppendTaskWithEncoding("Mall", task_params);
_latestTaskId[TaskType.Mall] = id;
return id != 0;

View File

@@ -144,6 +144,7 @@
<system:String x:Key="HighPriority">Whitelist (split by semicolon)</system:String>
<system:String x:Key="Blacklist">Blacklist (split by semicolon)</system:String>
<system:String x:Key="Drink">Would you like a drink🍷? doctor</system:String>
<system:String x:Key="SaveCreditEnabled">Ignore blacklist if credit overflow</system:String>
<system:String x:Key="DroneUsage">Drone Usage</system:String>

View File

@@ -144,6 +144,7 @@
<system:String x:Key="HighPriority">优先购买 子串即可 分号分隔</system:String>
<system:String x:Key="Blacklist">黑名单 子串即可 分号分隔</system:String>
<system:String x:Key="Drink">要来一杯美酒吗🍷?博士</system:String>
<system:String x:Key="SaveCreditEnabled">信用溢出时无视黑名单</system:String>
<system:String x:Key="DroneUsage">无人机用途</system:String>

View File

@@ -137,6 +137,7 @@
<system:String x:Key="HighPriority">優先購買 子串即可 分号分隔</system:String>
<system:String x:Key="Blacklist">黑名單 子串即可 分号分隔</system:String>
<system:String x:Key="Drink">要來一杯美酒嗎🍷?博士</system:String>
<system:String x:Key="SaveCreditEnabled">信用溢出時無視黑名單</system:String>
<system:String x:Key="DroneUsage">無人機用途</system:String>

View File

@@ -16,12 +16,19 @@
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<CheckBox
Margin="10"
Margin="-200,10,10,10"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Block.TextAlignment="Center"
Content="{DynamicResource SocialPtShop}"
IsChecked="{Binding CreditShopping}" />
<CheckBox
Margin="200,10,10,10"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Block.TextAlignment="Center"
Content="{DynamicResource SaveCreditEnabled}"
IsChecked="{Binding CreditSaveCreditEnabled}" />
<StackPanel
Grid.Row="1"
HorizontalAlignment="Center"

View File

@@ -948,6 +948,25 @@ namespace MeoAsstGui
}
}
private string _creditSaveCreditEnabled = ViewStatusStorage.Get("Mall.CreditSaveCreditEnabled", true.ToString());
/// <summary>
/// Gets or sets a value indicating whether save credit is enabled.
/// </summary>
public bool CreditSaveCreditEnabled
{
get
{
return bool.Parse(_creditSaveCreditEnabled);
}
set
{
SetAndNotify(ref _creditSaveCreditEnabled, value.ToString());
ViewStatusStorage.Set("Mall.CreditSaveCreditEnabled", value.ToString());
}
}
/* 定时设置 */
private bool _timer1 = ViewStatusStorage.Get("Timer.Timer1", bool.FalseString) == bool.TrueString;

View File

@@ -904,7 +904,7 @@ namespace MeoAsstGui
black_list[i] = black_list[i].Trim();
}
return asstProxy.AsstAppendMall(settings.CreditShopping, buy_first, black_list);
return asstProxy.AsstAppendMall(settings.CreditShopping, buy_first, black_list, settings.CreditSaveCreditEnabled);
}
private bool appendRecruit()