Commit graph

93 commits

Author SHA1 Message Date
hinto-janaiyo
1301d1a283
v1.1.0: Merge 'status' branch 2023-01-03 12:21:22 -05:00
hinto-janaiyo
388d279e77
v1.1.0 2023-01-03 12:17:38 -05:00
hinto-janaiyo
2684db1af9
Status Submenu: add README.md docs 2023-01-03 11:14:43 -05:00
hinto-janaiyo
e8751842ce
Status Submenu: Add [Status/P2Pool] UI and data 2022-12-30 19:22:43 -05:00
hinto-janaiyo
04d270b37f
main: properly show "Okay|Panic" after initial disk error
When Gupax can't read disk files at startup, it will [Error],
with an option to reset the state file, the user is given two
options [Yes] or [No].

Gupax's global error screen system ignores new errors from
overriding the current IF the current is a [Panic]. This makes
sure the worst errors stay on screen.

This also means after clicking [Yes], it will get ignored and the
screen won't change. So, allow for certain buttons to pass through.

I should probably re-make this whole global error screen system,
it's pretty much a global variable anyone can mutate randomly.
2022-12-29 17:23:49 -05:00
hinto-janaiyo
983f6560ad
Submenu Status: clean up types, funcs, etc
General cleanup and optimizations. Some functions are fixed,
some were turned into [const fn], and other small stuff like
[AtomicUnit] using a [u64] instead of a [u128]
2022-12-29 12:12:12 -05:00
hinto-janaiyo
19b5a2790b
Status Submenu: add macros!()
Writing [a.lock().unwrap().b.lock().unwrap()] sucks, so these are
some macros that are for common situations. This commit also has
a [sed] replace on all previous code that _could_ have been a macro,
which they all are now.

Hopefully nothing breaks :D
2022-12-28 22:03:45 -05:00
hinto-janaiyo
46b528ecbe
Status Submenu: separate [Regex], [AtomicUnit], [PayoutOrd]
This fixes some funcs, tests and separates some structs into separate files.
2022-12-28 16:04:26 -05:00
hinto-janaiyo
fd6398fb4d
Status Submenu: add [PayoutOrd] parse & update from log 2022-12-27 19:47:36 -05:00
hinto-janaiyo
a66e52bee5
Status Submenu: add submenu UI to [Status] tab 2022-12-27 16:29:12 -05:00
hinto-janaiyo
a6222bfa73
Status Submenu: add new API reads in P2Pool watchdog loop
This adds all necessary functions/conversions/serde/tests for the
new APIs. It also includes the actual reads inside the watchdog loop.

Every loop, [tick] will increment by 1. At [60], the watchdog
will attempt to read and parse the [network] & [pool] APIs.
Since the loop is [900ms], this means this will occur around
every 54 seconds. [tick] gets reset upon successful read/parsing.
2022-12-27 09:38:02 -05:00
hinto-janaiyo
2846441049
Status Submenu: add [GupaxP2poolApi] to [disk.rs], add to [App] 2022-12-26 17:37:45 -05:00
hinto-janaiyo
4cac807ca7
update: be more lenient on new binary filename match
Instead of a single "true" filename when walking dirs searching
for the newly downloaded (Gupax|P2Pool|XMRig), allow for multiple
valid names as long as they _seem_ correct AND are files, e.g:

GUPAX|Gupax|gupax (.exe)
P2POOL|P2Pool|P2pool|p2pool (.exe)
XMRIG|XMRig|Xmrig|xmrig (.exe)

If the packaging naming schemes change for any of these,
the update code will be able to actually handle it.
2022-12-24 10:44:12 -05:00
hinto-janaiyo
3717ab3b23
readme: add local monero node guide 2022-12-23 23:42:58 -05:00
hinto-janaiyo
e6bf49b309
v1.0.0
Includes some small fixes:

- [localhost] will always be changed to [127.0.0.1] in the case
  of XMRig (it doesn't understand localhost by itself)

- P2Pool/XMRig API path now checks for a [/] or [\]
  and correctly applies the endpoint, e.g:
  BASEPATH = "/home/hinto/p2pool"
  ENDPOINT = "local/stats"
  if BASEPATH doesn't end with '/' { BASEPATH.push('/') }
  API_PATH = BASEPATH + ENDPOINT ("/home/hinto/p2pool/local/stats")

- P2Pool payout line got changed in: be18ad4177
  The regex is now a more generic: [payout of [0-9].[0-9]+ XMR]
2022-12-19 18:54:46 -05:00
hinto-janaiyo
8884dbd023
helper: fix p2pool's api combine, add #[test], add [debug!()] 2022-12-18 12:15:42 -05:00
hinto-janaiyo
3db1adce75
linux: add [--features distro] build flag 2022-12-18 10:22:32 -05:00
hinto-janaiyo
95fffac3cd
add [License] to README.md 2022-12-17 14:12:04 -05:00
hinto-janaiyo
ddec9fcb6d
cargo check/clippy fixes 2022-12-16 16:46:06 -05:00
hinto-janaiyo
813a59353e
helper: fix [XMR per ...] stat
It was using the [payouts] variable as a base instead of [xmr].
2022-12-16 13:36:39 -05:00
hinto-janaiyo
8f8c37ec57
Update P2Pool Main vs Mini vs Solo mining 2022-12-16 11:56:24 -05:00
hinto-janaiyo
29445e1bd1
keys/p2pool/xmrig: change key shortcuts, check for [ACCEPTABLE_*]
Keyboard shortcuts [Left] & [Right] were clobbering the
[TextEdit] left/right movement, so they are now [Z/X].
The shortcuts also look to make sure a TextEdit isn't
in focus so that [S/R/Z/X] can actually be typed.

P2Pool/XMRig now make sure the path ends with an [ACCEPTABLE_*]
value (e.g: P2pool, P2POOL) before enabling the [Start] UI.
2022-12-16 10:30:57 -05:00
hinto-janaiyo
aad1a26e1e
Add to Simple/Advanced README 2022-12-15 23:17:40 -05:00
hinto-janaiyo
94031359b3
Add [Video] guide 2022-12-15 17:18:28 -05:00
hinto-janaiyo
055f498a5d
Add to Advanced README 2022-12-15 13:39:14 -05:00
hinto-janaiyo
a40d203872
Update README 2022-12-15 10:13:46 -05:00
hinto-janaiyo
5e2f0b7ed7
Update FAQ & Community node list 2022-12-14 21:55:10 -05:00
hinto-janaiyo
79b0361152
helper/main: fix [Arc<Mutex>] deadlocks, add keyboard shortcuts
There was a deadlock happening between the [Helper]'s [gui_api_p2pool]
and the GUI's [gui_api_p2pool], since the locking order was different.
The watchdog loop locking order was fixed as well. This was a pain to
track down, better than a data race... I guess.

Oh and keyboard shortcuts were added in this commit too.

Comment from code:

// The ordering of these locks is _very_ important. They MUST be in sync
// with how the main GUI thread locks stuff or a deadlock will occur
// given enough time. They will eventually both want to lock the [Arc<Mutex>]
// the other thread is already locking. Yes, I figured this out the hard way,
// hence the vast amount of debug!() messages.
//
// Example of different order (BAD!):
//
// GUI Main       -> locks [p2pool] first
// Helper         -> locks [gui_api_p2pool] first
// GUI Status Tab -> trys to lock [gui_api_p2pool] -> CAN'T
// Helper         -> trys to lock [p2pool] -> CAN'T
//
// These two threads are now in a deadlock because both
// are trying to access locks the other one already has.
//
// The locking order here must be in the same chronological
// order as the main GUI thread (top to bottom).
2022-12-13 10:14:26 -05:00
hinto-janaiyo
798966d447
litter codebase with [debug!()]
The entire codebase is now littered with [debug!()] messages.
Thankfully [log] has 0 cost if you aren't using them, so regular
users won't have a runtime penalty unless they specify RUST_LOG=debug.
2022-12-12 14:50:34 -05:00
hinto-janaiyo
e2f6d90476
helper/sudo: small p2pool api fixes, don't allow ESC when [testing] 2022-12-11 20:44:46 -05:00
hinto-janaiyo
ede7bcb0a8
Update README.md 2022-12-11 17:22:49 -05:00
hinto-janaiyo
0a8deee359
helper: add functions for p2pool/xmrig UI -> command arguments 2022-12-03 13:41:14 -05:00
hinto-janaiyo
29a62f638a
app: resize only once on width diff, set static button size at init
A [must_resize] and [ctx.is_pointer_over_area()] is now used to
indicate we need a resizing. This makes it so when a user is
resizing the width of Gupax, the heavy [init_text_styles()] func
will only get called once when the user hovers over the GUI.

The button size is also now set in that function so it doesn't
have to be called in every separate tab.
2022-11-25 12:01:52 -05:00
hinto-janaiyo
c25cbacb46
[Simple/Advanced] for [Gupax/XMRig] tabs 2022-11-23 16:50:15 -05:00
hinto-janaiyo
a65bbf7a1c
node: add plowsof to community node list 2022-11-22 23:10:06 -05:00
hinto-janaiyo
ff98b2a303
update: recreate tor client on failure in metadata loop 2022-11-19 09:43:38 -05:00
hinto-janaiyo
14c7664177
Update CHANGELOG.md 2022-11-18 21:47:14 -05:00
hinto-janaiyo
9638f9dc5b
p2pool: add [Ping] into GUI, add [simple], add address regex check 2022-11-10 21:20:31 -05:00
hinto-janaiyo
22a03a6034
os: fix platform specific issues 2022-11-02 18:18:41 -04:00
hinto-janaiyo
20f5e2d917
icons: custom icon per OS, build.rs, cargo-bundle 2022-10-31 17:03:59 -04:00
hinto-janaiyo
5a686aaa1d
diagram 2022-10-21 14:16:21 -04:00
hinto-janaiyo
14a5538173
fix threads, gupax tab, inline about tab 2022-10-16 20:36:58 -04:00
hinto-janaiyo
d315e5c7cb
root 2022-10-09 14:08:16 -04:00