diff --git a/backend/src/api/explorer/nodes.api.ts b/backend/src/api/explorer/nodes.api.ts index ec8ee35fb..9899e20fc 100644 --- a/backend/src/api/explorer/nodes.api.ts +++ b/backend/src/api/explorer/nodes.api.ts @@ -5,7 +5,7 @@ class NodesApi { public async $getNode(public_key: string): Promise { try { const query = ` - SELECT nodes.*, geo_names_as.names as as_organization, geo_names_city.names as city, + SELECT nodes.*, geo_names_iso.names as iso_code, geo_names_as.names as as_organization, geo_names_city.names as city, geo_names_country.names as country, geo_names_subdivision.names as subdivision, (SELECT Count(*) FROM channels @@ -24,6 +24,7 @@ class NodesApi { LEFT JOIN geo_names geo_names_city on geo_names_city.id = city_id LEFT JOIN geo_names geo_names_subdivision on geo_names_subdivision.id = subdivision_id LEFT JOIN geo_names geo_names_country on geo_names_country.id = country_id + LEFT JOIN geo_names geo_names_iso ON geo_names_iso.id = nodes.country_id AND geo_names_iso.type = 'country_iso_code' WHERE public_key = ? `; const [rows]: any = await DB.query(query, [public_key, public_key, public_key, public_key, public_key, public_key, public_key, public_key, public_key]); diff --git a/frontend/src/app/lightning/node/node.component.html b/frontend/src/app/lightning/node/node.component.html index e2132bca5..774f0aaab 100644 --- a/frontend/src/app/lightning/node/node.component.html +++ b/frontend/src/app/lightning/node/node.component.html @@ -43,11 +43,23 @@ Location - {{ node.city.en }}, {{ node.subdivision.en }}
{{ node.country.en }} + + {{ node.city.en }}, {{ node.subdivision.en }} +
+ + {{ node.country.en }} +   + {{ node.flag }} + + Location - {{ node.country.en }} + + + {{ node.country.en }} {{ node.flag }} + + @@ -77,7 +89,9 @@ ISP - {{ node.as_organization }} [ASN {{node.as_number}}] + + {{ node.as_organization }} [ASN {{node.as_number}}] + diff --git a/frontend/src/app/lightning/node/node.component.ts b/frontend/src/app/lightning/node/node.component.ts index c70983b54..c9971a4cb 100644 --- a/frontend/src/app/lightning/node/node.component.ts +++ b/frontend/src/app/lightning/node/node.component.ts @@ -3,6 +3,7 @@ import { ActivatedRoute, ParamMap } from '@angular/router'; import { Observable } from 'rxjs'; import { catchError, map, switchMap } from 'rxjs/operators'; import { SeoService } from 'src/app/services/seo.service'; +import { getFlagEmoji } from 'src/app/shared/graphs.utils'; import { LightningApiService } from '../lightning-api.service'; @Component({ @@ -51,6 +52,7 @@ export class NodeComponent implements OnInit { } else if (socket.indexOf('onion') > -1) { label = 'Tor'; } + node.flag = getFlagEmoji(node.iso_code); socketsObject.push({ label: label, socket: node.public_key + '@' + socket, diff --git a/frontend/src/app/shared/graphs.utils.ts b/frontend/src/app/shared/graphs.utils.ts index 6909e6fac..019ca49e4 100644 --- a/frontend/src/app/shared/graphs.utils.ts +++ b/frontend/src/app/shared/graphs.utils.ts @@ -92,6 +92,9 @@ export function detectWebGL() { } export function getFlagEmoji(countryCode) { + if (!countryCode) { + return ''; + } const codePoints = countryCode .toUpperCase() .split('')