Skip to content

Commit

Permalink
Merge pull request #11 from mostafaei2002/dev
Browse files Browse the repository at this point in the history
feat: add XvB options, refactor & improve algorithm
  • Loading branch information
Cyrix126 authored Jul 24, 2024
2 parents 5b322ce + 8f669aa commit b3c0e6e
Show file tree
Hide file tree
Showing 19 changed files with 1,466 additions and 967 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: CI

on:
push:
branches: [ "main" ]
branches: [ "main", "dev" ]
pull_request:
branches: [ "main" ]

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Rust

on:
push:
branches: [ "main" ]
branches: [ "main", "dev" ]
pull_request:
branches: [ "main" ]

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/typo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ name: Typo

on:
push:
branches: [ "main" ]
branches: [ "main", "dev" ]
pull_request:
branches: [ "main" ]

Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
/target
/feature
.DS_Store
rustc-ice-*
.vscode/
6 changes: 4 additions & 2 deletions src/app/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -571,8 +571,10 @@ impl App {
app.tab = app.state.gupax.tab;

// Set saved Hero mode to runtime.
app.xvb_api.lock().unwrap().stats_priv.runtime_hero_mode = app.state.xvb.hero;

debug!("Setting runtime_mode & runtime_manual_amount");
app.xvb_api.lock().unwrap().stats_priv.runtime_mode = app.state.xvb.mode.clone().into();
app.xvb_api.lock().unwrap().stats_priv.runtime_manual_amount =
app.state.xvb.manual_amount_raw;
// Check if [P2pool.node] exists
info!("App Init | Checking if saved remote node still exists...");
app.state.p2pool.node = RemoteNode::check_exists(&app.state.p2pool.node);
Expand Down
174 changes: 101 additions & 73 deletions src/app/panels/bottom.rs
Original file line number Diff line number Diff line change
Expand Up @@ -128,14 +128,17 @@ impl crate::app::App {
wants_input,
);
}
Tab::Xvb => self.xvb_run_actions(
ui,
height,
xvb_is_waiting,
xvb_is_alive,
key,
wants_input,
),
Tab::Xvb => {
self.xvb_submenu(ui, size);
self.xvb_run_actions(
ui,
height,
xvb_is_waiting,
xvb_is_alive,
key,
wants_input,
)
}
Tab::About => {}
}
});
Expand Down Expand Up @@ -552,168 +555,193 @@ impl crate::app::App {
}
});
}
fn xmrig_proxy_run_actions(

fn xvb_submenu(&mut self, ui: &mut Ui, size: Vec2) {
ui.group(|ui| {
let width = size.x / 1.5;
let size = vec2(width, size.y);
if ui
.add_sized(
size,
SelectableLabel::new(!self.state.xvb.simple, "Advanced"),
)
.clicked()
{
self.state.xvb.simple = false;
}
ui.separator();
if ui
.add_sized(size, SelectableLabel::new(self.state.xvb.simple, "Simple"))
.clicked()
{
self.state.xvb.simple = true;
}
});
}
fn xvb_run_actions(
&mut self,
ui: &mut Ui,
height: f32,
xmrig_proxy_is_waiting: bool,
xmrig_proxy_is_alive: bool,
xvb_is_waiting: bool,
xvb_is_alive: bool,
key: &KeyPressed,
wants_input: bool,
) {
ui.group(|ui| {
let width = (ui.available_width() / 3.0) - 5.0;
let size = vec2(width, height);
if xmrig_proxy_is_waiting {
if xvb_is_waiting {
ui.add_enabled_ui(false, |ui| {
ui.add_sized(size, Button::new("⟲"))
.on_disabled_hover_text(XMRIG_PROXY_MIDDLE);
.on_disabled_hover_text(XVB_MIDDLE);
ui.add_sized(size, Button::new("⏹"))
.on_disabled_hover_text(XMRIG_PROXY_MIDDLE);
.on_disabled_hover_text(XVB_MIDDLE);
ui.add_sized(size, Button::new("▶"))
.on_disabled_hover_text(XMRIG_PROXY_MIDDLE);
.on_disabled_hover_text(XVB_MIDDLE);
});
} else if xmrig_proxy_is_alive {
} else if xvb_is_alive {
if key.is_up() && !wants_input
|| ui
.add_sized(size, Button::new("⟲"))
.on_hover_text("Restart XMRig-Proxy")
.on_hover_text("Restart Xvb")
.clicked()
{
let _ = lock!(self.og).update_absolute_path();
let _ = self.state.update_absolute_path();
Helper::restart_xp(
Helper::restart_xvb(
&self.helper,
&self.state.xmrig_proxy,
&self.state.xvb,
&self.state.p2pool,
&self.state.xmrig,
&self.state.gupax.absolute_xp_path,
&self.state.xmrig_proxy,
);
}
if key.is_down() && !wants_input
|| ui
.add_sized(size, Button::new("⏹"))
.on_hover_text("Stop XMRig-Proxy")
.on_hover_text("Stop Xvb")
.clicked()
{
Helper::stop_xp(&self.helper);
Helper::stop_xvb(&self.helper);
}
ui.add_enabled_ui(false, |ui| {
ui.add_sized(size, Button::new("▶"))
.on_disabled_hover_text("Start XMRig-Proxy");
.on_disabled_hover_text("Start Xvb");
});
} else {
ui.add_enabled_ui(false, |ui| {
ui.add_sized(size, Button::new("⟲"))
.on_disabled_hover_text("Restart XMRig-Proxy");
.on_disabled_hover_text("Restart Xvb");
ui.add_sized(size, Button::new("⏹"))
.on_disabled_hover_text("Stop XMRig-Proxy");
.on_disabled_hover_text("Stop Xvb");
});
let mut text = String::new();
let mut ui_enabled = true;
if !Gupax::path_is_file(&self.state.gupax.xmrig_proxy_path) {
ui_enabled = false;
text = format!("Error: {}", XMRIG_PROXY_PATH_NOT_FILE);
} else if !crate::components::update::check_xp_path(
&self.state.gupax.xmrig_proxy_path,
) {
ui_enabled = false;
text = format!("Error: {}", XMRIG_PROXY_PATH_NOT_VALID);
}
// verify that address and token syntaxes are correct
let ui_enabled = Regexes::addr_ok(&self.state.p2pool.address)
&& self.state.xvb.token.len() == 9
&& self.state.xvb.token.parse::<u32>().is_ok();
ui.set_enabled(ui_enabled);
let color = if ui_enabled { GREEN } else { RED };
if (ui_enabled && key.is_up() && !wants_input)
|| ui
.add_sized(size, Button::new(RichText::new("▶").color(color)))
.on_hover_text("Start XMRig-Proxy")
.on_disabled_hover_text(text)
.on_hover_text("Start Xvb")
.on_disabled_hover_text(XVB_NOT_CONFIGURED)
.clicked()
{
let _ = lock!(self.og).update_absolute_path();
let _ = self.state.update_absolute_path();
Helper::start_xp(
Helper::start_xvb(
&self.helper,
&self.state.xmrig_proxy,
&self.state.xvb,
&self.state.p2pool,
&self.state.xmrig,
&self.state.gupax.absolute_xp_path,
&self.state.xmrig_proxy,
);
}
}
});
}
fn xvb_run_actions(

fn xmrig_proxy_run_actions(
&mut self,
ui: &mut Ui,
height: f32,
xvb_is_waiting: bool,
xvb_is_alive: bool,
xmrig_proxy_is_waiting: bool,
xmrig_proxy_is_alive: bool,
key: &KeyPressed,
wants_input: bool,
) {
ui.group(|ui| {
let width = (ui.available_width() / 3.0) - 5.0;
let size = vec2(width, height);
if xvb_is_waiting {
if xmrig_proxy_is_waiting {
ui.add_enabled_ui(false, |ui| {
ui.add_sized(size, Button::new("⟲"))
.on_disabled_hover_text(XVB_MIDDLE);
.on_disabled_hover_text(XMRIG_PROXY_MIDDLE);
ui.add_sized(size, Button::new("⏹"))
.on_disabled_hover_text(XVB_MIDDLE);
.on_disabled_hover_text(XMRIG_PROXY_MIDDLE);
ui.add_sized(size, Button::new("▶"))
.on_disabled_hover_text(XVB_MIDDLE);
.on_disabled_hover_text(XMRIG_PROXY_MIDDLE);
});
} else if xvb_is_alive {
} else if xmrig_proxy_is_alive {
if key.is_up() && !wants_input
|| ui
.add_sized(size, Button::new("⟲"))
.on_hover_text("Restart Xvb")
.on_hover_text("Restart XMRig-Proxy")
.clicked()
{
Helper::restart_xvb(
let _ = lock!(self.og).update_absolute_path();
let _ = self.state.update_absolute_path();
Helper::restart_xp(
&self.helper,
&self.state.xvb,
&self.state.p2pool,
&self.state.xmrig,
&self.state.xmrig_proxy,
&self.state.xmrig,
&self.state.gupax.absolute_xp_path,
);
}
if key.is_down() && !wants_input
|| ui
.add_sized(size, Button::new("⏹"))
.on_hover_text("Stop Xvb")
.on_hover_text("Stop XMRig-Proxy")
.clicked()
{
Helper::stop_xvb(&self.helper);
Helper::stop_xp(&self.helper);
}
ui.add_enabled_ui(false, |ui| {
ui.add_sized(size, Button::new("▶"))
.on_disabled_hover_text("Start Xvb");
.on_disabled_hover_text("Start XMRig-Proxy");
});
} else {
ui.add_enabled_ui(false, |ui| {
ui.add_sized(size, Button::new("⟲"))
.on_disabled_hover_text("Restart Xvb");
.on_disabled_hover_text("Restart XMRig-Proxy");
ui.add_sized(size, Button::new("⏹"))
.on_disabled_hover_text("Stop Xvb");
.on_disabled_hover_text("Stop XMRig-Proxy");
});
// verify that address and token syntaxes are correct
let ui_enabled = Regexes::addr_ok(&self.state.p2pool.address)
&& self.state.xvb.token.len() == 9
&& self.state.xvb.token.parse::<u32>().is_ok();

let mut text = String::new();
let mut ui_enabled = true;
if !Gupax::path_is_file(&self.state.gupax.xmrig_proxy_path) {
ui_enabled = false;
text = format!("Error: {}", XMRIG_PROXY_PATH_NOT_FILE);
} else if !crate::components::update::check_xp_path(
&self.state.gupax.xmrig_proxy_path,
) {
ui_enabled = false;
text = format!("Error: {}", XMRIG_PROXY_PATH_NOT_VALID);
}
ui.set_enabled(ui_enabled);
let color = if ui_enabled { GREEN } else { RED };
if (ui_enabled && key.is_up() && !wants_input)
|| ui
.add_sized(size, Button::new(RichText::new("▶").color(color)))
.on_hover_text("Start Xvb")
.on_disabled_hover_text(XVB_NOT_CONFIGURED)
.on_hover_text("Start XMRig-Proxy")
.on_disabled_hover_text(text)
.clicked()
{
Helper::start_xvb(
let _ = lock!(self.og).update_absolute_path();
let _ = self.state.update_absolute_path();
Helper::start_xp(
&self.helper,
&self.state.xvb,
&self.state.p2pool,
&self.state.xmrig,
&self.state.xmrig_proxy,
&self.state.xmrig,
&self.state.gupax.absolute_xp_path,
);
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/app/panels/middle/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ path_xmr: {:#?}\n
}
Tab::Xvb => {
debug!("App | Entering [XvB] Tab");
crate::disk::state::Xvb::show(&mut self.state.xvb, self.size, &self.state.p2pool.address, ctx, ui, &self.xvb_api, lock!(self.xvb).state == ProcessState::Alive);
crate::disk::state::Xvb::show(&mut self.state.xvb, self.size, &self.state.p2pool.address, ctx, ui, &self.xvb_api, &self.xmrig_api, lock!(self.xvb).state == ProcessState::Alive);
}
}
});
Expand Down
Loading

0 comments on commit b3c0e6e

Please sign in to comment.