Skip to content

Commit 4004625

Browse files
authored
Merge pull request #79 from MathNodes/main
Update 2.0 from main
2 parents 232fc5e + a6f41c2 commit 4004625

File tree

17 files changed

+488
-223
lines changed

17 files changed

+488
-223
lines changed

CHANGELOG.md

Lines changed: 67 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,31 @@
11
CHANGELOG
22
========================
3+
4+
# v1.7.17 (08/12/2023)
5+
6+
* NEW: Implement @TKd-Alex Price Cache for Subscription Dialog
7+
* FIX: Reduce API queries in coin price by half
8+
* FIX: NodeIDAbsent Exception Handling on Pin Map Country not found Crash
9+
* FIX: v2ray/inactive_pending logic in wallet.py (Linux)
10+
11+
# v1.7.16 (05/12/2023)
12+
13+
* FIX: "North Macedonia" country AWOC bug
14+
15+
# v1.7.15 (01/12/2023)
16+
17+
- FIX: Crash on destroy/create/restore new wallet due to read-only permission error of keyring-dir (WINDOWS)
18+
319
# v1.7.14 (24/11/2023)
20+
421
* NEW: Non-blocking threading on load screen and connection dialog
522
* NEW: sentinel-cli (MathNodes) v0.3.2 - fixes inactive_pending
623
* UPDATE: handling of self.connected in wallet.py and widgets.py
724
* UPDATE: remove async from get_price()
825
* FIX: "The Netherlands" node country anomoly
926

10-
1127
# v1.7.12 (05/11/2023)
28+
1229
* NEW: New Wallet implementation (@TkdAlex)
1330
* NEW: MathNodes sentinel-cli mod
1431
* UPDATE: CoinStats.app API for coin prices
@@ -18,6 +35,7 @@ CHANGELOG
1835
* FIX: "inactive_pending" session errors by sentinel-cli mod
1936

2037
# v1.7.10 (08/09/2023)
38+
2139
* NEW: Subscription type chooser interface (hourly/bandwidth)
2240
* NEW: Slider for hourly subscription on range of 1-30 days
2341
* NEW: Label for subscription expirary on subscription card (meile.kv)
@@ -39,15 +57,16 @@ CHANGELOG
3957
* REMOVE: FullImage/2 from meile.kv and interfaces.py
4058
* REMOVE: \<SelectableLabel\>, \<RV\> from meile.kv
4159

42-
4360
# v1.7.7 (19/08/2023)
61+
4462
* UPDATE: Sentinel Network Upgrade Version
4563
* UPDATE: v1->v2 protobuf
4664
* UPDATE: sentinel-protobuf v0.3.1
4765
* UPDATE: sentinel-cli v0.3.1-UNOFFICIAL (freQniK build)
4866
* UPDATE: sentinel.py, wallet.py sentinel-cli commands
4967

5068
# v1.7.2 (06/07/2023)
69+
5170
* NEW: Unsubscribe functions in HandleWalletFunctions()
5271
* NEW: Check for active or pending sessions before unsub
5372
* NEW: Click subscription card to prompt user to unsubscribe
@@ -60,6 +79,7 @@ CHANGELOG
6079
* FIX: Set SubResult = None on refresh to enable subscription refresh
6180

6281
# v1.6.3 (27/04/2023)
82+
6383
* ADD: DNSRequests Adapter
6484
* NEW: 70% map, 30% country nodes cards
6585
* NEW: Map pin marker to yellow pin
@@ -78,6 +98,7 @@ CHANGELOG
7898
* UPDATE: Load existing subs for faster processing
7999

80100
# v1.5.1 (22/03/2023)
101+
81102
* NEW: sentinelcli 0.3.0
82103
* NEW: v2ray support added
83104
* NEW: v2ray 5.1.0 binary added
@@ -95,32 +116,54 @@ CHANGELOG
95116
* FIX: IBC Coin listing crash
96117
* FIX: Node version reporting
97118

98-
99119
# v1.4.1 (29/01/2023)
120+
100121
* NEW: Toast Message for Rating sent or errored out
122+
101123
* NEW: Version control in Help Screen
124+
102125
* NEW: Mac OS X App Bundle Release
126+
103127
* FIX: Logic in Rating and Location retrieval
128+
104129
* FIX: MapView Cache folder now located in ~/.meile.gui instead of CWD (fixes App Bundle)
130+
105131
* FIX: Wallet logic
132+
106133
* UPDATE: Sentinel-CLI for CosmWasm Sentinel Network Upgrade
134+
107135
* UPDATE: Packager Installer installs App Bundle to Desktop
136+
108137
* UPDATE: Improved HTTPs requests using requests adapter
109-
# v1.4.0 (17/01/2023)
138+
139+
# v1.4.0 (17/01/2023)
140+
110141
* NEW: First Windows Binary Release (Pre-release)
142+
111143
* NEW: gsudo Packaged with Windows binary
144+
112145
* NEW: Wireguard binary packaged with Meile binary
146+
113147
* NEW: HTTPSRequests Adapater for max retries and timeout on API Calls
148+
114149
* NEW: Packaging wexpect binary and collection bundle with app
150+
115151
* CHANGE: Swtiched from pexpect wrapper library to wexpect wrapper library for windows compatability
152+
116153
* CHANGE: Re-worked Ratings/Node Locations Logic
154+
117155
* CHANGE: Removed WARP support for Windows Users
156+
118157
* CHANGE: Updated Help version number routine to a constant
158+
119159
* CHANGE: Pyinstaller .spec file for Windows build. Changes from Linux/ OS X Version to include release for Windows.
160+
120161
* CHANGE: MapView cache now loads in .meile-gui home folder location instead of CWD
162+
121163
* CHANGE: Icon logo for Kivy and for Task Bar and Desktop Icon
122164

123165
# v1.3.0 (06/12/2022)
166+
124167
* NEW: Unicode Support for Moniker names
125168
* NEW: Rating scores in subscription tab
126169
* NEW: City names in subscription tabs
@@ -136,14 +179,15 @@ CHANGELOG
136179
* CHANGE: Housekeeping by adding src/typedef/konstants.py
137180
* CHANGE: Housekeeping in wallet.py and sentinel.py
138181

139-
140182
# v1.2.3 (13/11/2022)
183+
141184
* NEW: Persisent real-time bandwidth when switching between nodes
142185
* CHANGE: Handling of CONNECTED boolean
143186
* FIX: Issue #28
144187
* FIX: Issue #29
145188

146189
# v1.2.2 (12/11/2022)
190+
147191
* NEW: Real-time bandwidth usage for current session, snapshot taken every two minutes.
148192
* NEW: Dependency *psutil* added - needed for bandwidth usage
149193
* NEW: Unicode Handling in wallet passphrase and other textfields
@@ -154,6 +198,7 @@ CHANGELOG
154198
* FIX: Multiple spelling and grammatical errors. Thanks to *cryptomole*
155199

156200
# v1.2.0 (20/10/2022)
201+
157202
* NEW: Clickable Pin map with total node listings
158203
* NEW: Refresh button in wallet screen
159204
* NEW: Copy button for seed phrase on wallet restore/create
@@ -167,8 +212,8 @@ CHANGELOG
167212
* FIX: Divide by 0 bug and convert 0.00B to float
168213
* FIX: Switch set to off if user cancels connection
169214

170-
171215
# v1.1.0 (20/09/2022)
216+
172217
* NEW: Cloudflar DoH (DNS-over-HTTPS) WARP integration
173218
* NEW: Hover focus on node listings
174219
* NEW: Sort by Price (dpvn) or Moniker
@@ -178,62 +223,76 @@ CHANGELOG
178223
* FIX: Minor bugs
179224

180225
# v1.0.1 (01/09/2022)
226+
181227
* NEW: .deb package for virtual machine guest OSes
182228
* FIX: Binary release fix for FIAT Gateway
183229

184230
# v1.0.0 (30/8/2022)
231+
185232
* NEW: Fiat Gateway
186233
* CHANGE: Added CryptoCompare API alongside CoinGecko for additional DVPN price in FIAT gateway
187234
* NEW: Automatic DNS resolve configuration for MacOS and Linux. Resolves to cloudflar if host HNS does not work
188235
* FIX: No wallet subscription crash
189236
* FIX: Major/Minor bug fixes for stability
190237

191238
# v0.9.5-beta.1 (20/08/2022)
239+
192240
* NEW: Ping
193241
* FIX: pexpect timeout exception handling
194242

195243
# v0.9.4-beta.4 (06/08/2022)
244+
196245
* CHANGE: No longer needed to run as sudo/root.
197246
* CHANGE: Propmpts user for system password when connecting/disconnecting
198247

199248
# v0.9.4-beta.3 (06/08/2022)
249+
200250
* ENHANCEMENT: Better UX on sub cards with added info
201251

202252
# v0.9.4-beta.2 (03/08/2022)
253+
203254
* NEW: Gnome-menu launcher and icon (ran as sudo) for .deb package
204255
* ENHANCEMENT: Faster load times with option to refresh
205256
* FIX: Subscription button text color
206257
* FIX: Bug that created multiple nodes screen causing confusion
207258

208259
# v0.9.4-beta.1 (30/07/2022)
260+
209261
* NEW: Refresh Icon with Latency Selector
210262
* NEW: TextField with currently connected node name
211263
* FIX: Protected shield icon in pip install
212264
* FIX: Minor bugs
213265

214266
# v0.9.3-beta.6 (28/07/2022)
267+
215268
* FIX: Disconnect Issues on some platforms
216269

217270
# v0.9.3-beta.5 (27/07/2022)
271+
218272
* NEW: Shield Icon in App Bar to Notify User is Connected
219273
* FIX: Image stretching on subscriptions.
220274

221275
# v0.9.3-beta.4 (24/07/2022)
276+
222277
* FIX: Bug when parsing wallet create/restore output
223278

224279
# v0.9.3-beta.3 (22/07/2022)
280+
225281
* NEW: Extra console debug messages
226282
* FIX: Wallet Balance retrieval error. Now displays dialog if unable to process wallet balances
227283
* FIX: Crash on null price in Solar DVPN Node 15
228284

229285
# v0.9.3-beta.2 (20/07/2022)
286+
230287
* FIX: Error parsing JSON line when subscribing on certain machines/os
231288

232289
# v0.9.3-beta.1 (18/07/2022)
290+
233291
* NEW: 100% DeepPurple / Amber Theme
234292
* FIX: Multiple bug fixes and crashes
235293

236294
# v0.9.2-alpha.1 (11/07/2022)
295+
237296
* NEW: Meile ICON logo in app and window bar
238297
* NEW: Filter out dVPN nodes with version < 0.3.0
239298
* FIX: Check to see if user is sudo/root. Issues on some linux with users not having network device permissions causing a panic when connecting
@@ -243,13 +302,13 @@ CHANGELOG
243302
* CHANGE: Removed tkinter support in favor of smaller screen library
244303
* CHANGE: Determine actual user and place config files in ~/.meile-gui
245304

246-
247305
# v0.9.1-alpha.1 (04/07/2022)
306+
248307
* NEW: Main app now runs on main thread
249308
* NEW: Sub threads for other routines
250309
* NEW: Packaged sentinel-cli 0.1.9 in build. No need to install independently
251310
* FIX: Minor fixes and improvements
252311

253-
254312
# v0.9.0-alpha.1 (02/07/2022)
313+
255314
* Initial Release

src/awoc/datum/world.json

100644100755
Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2214,7 +2214,7 @@
22142214
"Area KM2": "254"
22152215
},
22162216
{
2217-
"Country Name": "Macedonia",
2217+
"Country Name": "North Macedonia",
22182218
"ISO2": "MK",
22192219
"ISO3": "MKD",
22202220
"TLD": "mk",
@@ -3959,6 +3959,24 @@
39593959
"Languages": "Turkish (official), Kurdish, other minority languages",
39603960
"Area KM2": "780580"
39613961
},
3962+
{
3963+
"Country Name": "T\u00FCrkiye",
3964+
"ISO2": "TR",
3965+
"ISO3": "TUR",
3966+
"TLD": "tr",
3967+
"FIPS": "TU",
3968+
"ISO Numeric": "792",
3969+
"GeoNameID": "298795",
3970+
"E164": "90",
3971+
"Phone Code": "90",
3972+
"Continent Name": "Asia",
3973+
"Continent Code": "as",
3974+
"Capital": "Ankara",
3975+
"Time Zone in Capital": "Europe/Istanbul",
3976+
"Currency Name": "Lira",
3977+
"Languages": "Turkish (official), Kurdish, other minority languages",
3978+
"Area KM2": "780580"
3979+
},
39623980
{
39633981
"Country Name": "Turkmenistan",
39643982
"ISO2": "TM",

src/bin/sentinelcli

-14.6 KB
Binary file not shown.

src/cli/sentinel.py

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ class NodeTreeData():
2727
NodeScores = {}
2828
NodeLocations = {}
2929
NodeTypes = {}
30+
NodeHealth = {}
3031

3132
def __init__(self, node_tree):
3233
if not node_tree:
@@ -99,8 +100,15 @@ def get_nodes(self, latency, *kwargs):
99100

100101
if OurWorld.CZ in d[NodeKeys.NodesInfoKeys[4]]:
101102
d[NodeKeys.NodesInfoKeys[4]] = OurWorld.CZ_FULL
102-
103-
d_continent = OurWorld.our_world.get_country_continent_name(d[NodeKeys.NodesInfoKeys[4]])
103+
104+
105+
if OurWorld.NL_FULL in d[NodeKeys.NodesInfoKeys[4]]:
106+
d[NodeKeys.NodesInfoKeys[4]] = OurWorld.NL
107+
try:
108+
d_continent = OurWorld.our_world.get_country_continent_name(d[NodeKeys.NodesInfoKeys[4]])
109+
except NameError as e:
110+
print(str(e))
111+
continue
104112
try:
105113
self.NodeTree.create_node(d[NodeKeys.NodesInfoKeys[4]],d[NodeKeys.NodesInfoKeys[4]], parent=d_continent)
106114
except:
@@ -114,6 +122,32 @@ def get_nodes(self, latency, *kwargs):
114122
self.GetNodeScores()
115123
self.GetNodeLocations()
116124
self.GetNodeTypes()
125+
self.GetHealthCheckData()
126+
127+
128+
def GetHealthCheckData(self):
129+
Request = HTTPRequests.MakeRequest(TIMEOUT=2)
130+
http = Request.hadapter()
131+
try:
132+
r = http.get(HTTParams.HEALTH_CHECK) #specify a constant in konstants.py
133+
data = r.json()
134+
135+
for nodehealthdata in data['result']:
136+
# integrity check
137+
if nodehealthdata['status'] != 1:
138+
self.NodeHealth[nodehealthdata['addr']] = False
139+
elif "info_fetch_error " in nodehealthdata:
140+
self.NodeHealth[nodehealthdata['addr']] = False
141+
elif "config_exchange_error" in nodehealthdata:
142+
self.NodeHealth[nodehealthdata['addr']] = False
143+
elif "location_fetch_error" in nodehealthdata:
144+
self.NodeHealth[nodehealthdata['addr']] = False
145+
else:
146+
self.NodeHealth[nodehealthdata['addr']] = True
147+
148+
149+
except Exception as e:
150+
print(str(e))
117151

118152
def GetNodeScores(self):
119153
Request = HTTPRequests.MakeRequest(TIMEOUT=2)

0 commit comments

Comments
 (0)