10182d9dbc
feat!: Added base datatable functionality
...
Deprecated: `SortDirection` is deprecated, use `SortDir` instead
2024-10-31 22:45:26 +07:00
ca3ca881fd
feat: Added paging package
...
Helper package for datatable pagination
2024-10-31 22:44:20 +07:00
ec6f0a1893
Changed LastChecked
from uint
to int64
...
Since the LastChecked record is storing unix timestamp, using `int64`
make it easier to work with `time` package.
2024-10-31 22:40:38 +07:00
30aa8d80dc
feat: Added favicon
2024-10-31 18:55:31 +07:00
f6adb40b3f
chore: Open GitHub repo in the new tab
2024-10-31 18:20:53 +07:00
93fb22f29b
feat: Added clipboard functionality
2024-10-31 18:09:02 +07:00
63e803ba17
style: Added remote-nodes and add-node page design
2024-10-31 16:28:51 +07:00
ddc837be4a
style: Changed sticky navbar to fixed position
2024-10-31 16:26:49 +07:00
4dfab11d2c
feat(style)!: Added the new homepage design view
...
TODO: Add copy to clipboard functionality
2024-10-31 16:25:16 +07:00
0a80a52d2d
chore: Moving Monero QR donation image location
2024-10-31 16:21:43 +07:00
176a02412a
Switching to BSD-3-Clause license
...
I've been suggested to change the license to more popular open-source
licenses. So I choose to change from GLWTPL to BSD-3-Clause.
2024-10-31 10:59:08 +07:00
8b39502d90
chore(style): Changed UI layout styles
2024-10-31 10:39:18 +07:00
965d3230a1
feat: Added navbar current page position indicator
2024-10-30 15:39:01 +07:00
dd48bd458a
feat: Added global loading indicator
2024-10-30 15:10:35 +07:00
2003c3c3ac
feat(ui): Added main navbar
2024-10-30 14:23:45 +07:00
3a45071cd6
feat: Refactor fiber server
2024-10-29 21:30:04 +07:00
be32011cfa
feat!: templ + htmx build system
2024-10-29 20:41:22 +07:00
ef953b36fd
fix: Reject input hostname with protocol
...
This is quick fix.
Do not accept submitted tor address with protocol since it won't work.
The initial clearnet validation can be done with `net.LookupIP`, but
for tor network can't be done with that method. For now, just inform
to remove the http:// or https:// part to the submitter.
2024-09-16 22:35:14 +07:00
9bd609e4dd
chore: Remove dev SQL statement
2024-09-12 05:27:54 +07:00
f6b048b017
feat: Record node ip addresses #84
...
For future use investigations about "suspicious" nodes. #105
2024-09-12 01:13:30 +07:00
c3f837e122
feat: Check IP-stack info everytime prober send report #84
...
This commit add IsIPv6Only function inside `internal/ip` package
and moving `geo` package from `internal/geo` to `internal/ip/geo`.
Although it increases server resource usage, checking hostname to IP is
required every time the prober sends a report so that the `ipv6_only`
record in the database is not up-to-date. Previously, this feature did
not exist.
2024-09-09 18:21:03 +07:00
518d4b4335
feat: Added IPv6 nodes support (alpha) #84
...
This commit accept IPv6 nodes submission.
When user submit new public node, the server will check IP addresses
from given hostname. If host IP addresses doesn't have IPv4, it will
be recorded as "IPv6 only" node.
Probers that support IPv6 may add `IPV6_CAPABLE=true` to the `.env`
file.
Please note that this feature still experimental and may not being
merged to the main branch.
2024-09-06 00:08:59 +07:00
5a6641a199
refactor: Use ptr for QueryNodes.toSQL()
...
Since `SortBy` and `SortDirection` is modified directly from `QueryNodes`
pointer, `sortBy` and `sortDirrection` return value from `QueryNodes.toSQL()`
no longger needed
2024-08-05 18:27:00 +07:00
4395a5e2d5
test: Add benchmark Test for QueryNodes.toSQL()
2024-07-29 22:44:10 +07:00
97fad6cacb
refactor: Use slice.Contains()
nettype check
...
Instead using `||` for each nettype query check , simply using `slice.Contains`.
Also, checking `any` value is not needed here.
2024-07-29 22:30:03 +07:00
73308d2a32
refactor: Use proberRepo struct instead of interface
...
o need to use interface when calling `NewProber()`.
2024-07-07 03:25:30 +07:00
4d1a2da49c
refactor: Use moneroRepo struct instead of interface
...
No need to use interface when calling `monero.New()`.
2024-07-07 03:13:11 +07:00
ef553dab9e
refactor: Use cronRepo
struct instead of interface
...
No need to use interface when calling `cron.New()`.
2024-07-07 02:57:36 +07:00
c250e8e3bb
feat!: Moving handler
to internal/handler
...
So people aware that the package is internal use and not using that
on their projects.
2024-07-07 01:42:29 +07:00
4c7d53547b
feat!: Change the module name to "URL based"
...
This make me easier to test the module with external services.
2024-07-07 01:28:44 +07:00
0d72dd9995
build: Inject version when build the binaries
...
The version include git current commit and branch info.
2024-07-04 03:45:37 +07:00
3f5c0c9472
refactor: Lowercase & upperase initialism acronyms
2024-06-19 16:24:18 +07:00
e9cacb478c
feat: Allow user to specify custom .env location
...
This feature can also be useful for running tests in CI.
2024-06-18 04:23:08 +07:00
17b5f18332
chore(docs): Note how to get list of public nodes
...
Adding example way to get list of Monero public nodes
using monero-wallet-cli for future integration test.
2024-06-11 14:47:01 +07:00
1429cde662
Uppercase CheckAPI test func
...
Ref cd52dc7
2024-06-10 03:23:03 +07:00
cd52dc7b70
Lowercase & upperase initialism acronyms
...
See https://google.github.io/styleguide/go/decisions#initialisms
2024-06-10 03:03:23 +07:00
5f5ebd81a9
Reuse existing db connection (if any)
2024-06-10 02:47:44 +07:00
70372e58ab
Changed the initialization of the countries
slice
2024-06-08 00:53:28 +07:00
054a4809dd
No need to use ptr for NetFee
2024-06-08 00:37:26 +07:00
459271408d
test: Unit test for parseStatuses()
2024-06-03 22:18:24 +07:00
ced90fde8e
feat: Function to parse node statuses from report
2024-06-03 22:13:12 +07:00
85f3169689
Only call time.Now() once
2024-06-03 19:26:12 +07:00
54d82e0c8f
fix: RowsPerPage nodes API return zero
...
Forget to set RowsPerPage response
2024-06-03 13:18:52 +07:00
48fe09c1cb
Adding table tbl_fee
...
This table used to store majority fee of monero nettype.
By calculating majority fee via "cron" every 300s, the function to
get majority fee for nettypes can be done with single query.
The frontend majority static data in the frontend removed and
now use `/api/v1/fees` endpoint to get majority fee value.
Note: Don't know if it works well with `onload` method or not. Let see.
2024-05-31 16:28:21 +07:00
55f6af1f22
Change estimate fee for stagenet to 56000
...
TODO: Create in-memory cache for NetFees function.
2024-05-31 13:30:56 +07:00
e83045f8b5
toSQL function for QueryLog struct
2024-05-31 13:04:53 +07:00
8b5bdc7523
toSQL function for QueryProber struct
...
Make the unit test easier
2024-05-30 20:14:16 +07:00
acc70111c8
fix: slog args message become slog.Attr
2024-05-30 19:41:03 +07:00
a11986ac0c
Separating QueryNode to it's own sql builder func
...
A quick note that is's ok to use "*" all columns on nodes query
since all columns really want to be displayed to the frontend.
2024-05-30 19:19:03 +07:00
4800bb3284
Adding test and bench example
2024-05-30 15:47:27 +07:00