Skip to content
Snippets Groups Projects
Commit fad9e8ba authored by matograine's avatar matograine
Browse files

[mod] #344 use pendulum in silkaj.commands

  * changes display for commands `info`, `diffi`, `argos`, `blocks`
parent 525252ec
No related branches found
No related tags found
1 merge request!177#344: Fix import loop issue, Generalize pendulum usage
...@@ -15,15 +15,16 @@ You should have received a copy of the GNU Affero General Public License ...@@ -15,15 +15,16 @@ You should have received a copy of the GNU Affero General Public License
along with Silkaj. If not, see <https://www.gnu.org/licenses/>. along with Silkaj. If not, see <https://www.gnu.org/licenses/>.
""" """
import aiohttp
import jsonschema
from pendulum import from_timestamp
from click import command, option, argument, IntRange from click import command, option, argument, IntRange
from os import system from os import system
from collections import OrderedDict from collections import OrderedDict
from tabulate import tabulate from tabulate import tabulate
from operator import itemgetter from operator import itemgetter
from asyncio import sleep from asyncio import sleep
import aiohttp
from _socket import gaierror from _socket import gaierror
import jsonschema
from duniterpy.api import bma from duniterpy.api import bma
...@@ -36,8 +37,7 @@ from silkaj.network_tools import ( ...@@ -36,8 +37,7 @@ from silkaj.network_tools import (
) )
from silkaj.blockchain_tools import HeadBlock from silkaj.blockchain_tools import HeadBlock
from silkaj.tools import CurrencySymbol from silkaj.tools import CurrencySymbol
from silkaj.tui import convert_time from silkaj.constants import ASYNC_SLEEP, ALL, HOUR
from silkaj.constants import ASYNC_SLEEP
@command("info", help="Display information about currency") @command("info", help="Display information about currency")
...@@ -45,6 +45,8 @@ from silkaj.constants import ASYNC_SLEEP ...@@ -45,6 +45,8 @@ from silkaj.constants import ASYNC_SLEEP
async def currency_info(): async def currency_info():
head_block = await HeadBlock().head_block head_block = await HeadBlock().head_block
ep = EndPoint().ep ep = EndPoint().ep
current_time = from_timestamp(head_block["time"], tz="local")
mediantime = from_timestamp(head_block["medianTime"], tz="local")
print( print(
"Connected to node:", "Connected to node:",
ep[best_endpoint_address(ep, False)], ep[best_endpoint_address(ep, False)],
...@@ -58,11 +60,11 @@ async def currency_info(): ...@@ -58,11 +60,11 @@ async def currency_info():
"\nMinimal Proof-of-Work:", "\nMinimal Proof-of-Work:",
head_block["powMin"], head_block["powMin"],
"\nCurrent time:", "\nCurrent time:",
convert_time(head_block["time"], "all"), current_time.format(ALL),
"\nMedian time:", "\nMedian time:",
convert_time(head_block["medianTime"], "all"), mediantime.format(ALL),
"\nDifference time:", "\nDifference time:",
convert_time(head_block["time"] - head_block["medianTime"], "hour"), current_time.diff_for_humans(mediantime, True),
) )
client = ClientInstance().client client = ClientInstance().client
await client.close() await client.close()
...@@ -125,11 +127,11 @@ def display_diffi(current, diffi): ...@@ -125,11 +127,11 @@ def display_diffi(current, diffi):
d["Σ diffi"] = d.pop("level") d["Σ diffi"] = d.pop("level")
system("cls||clear") system("cls||clear")
print( print(
"Current block: n°{0}, generated on the {1}\n\ "Current block: n°{0}, generated on {1}\n\
Generation of next block n°{2} possible by at least {3}/{4} members\n\ Generation of next block n°{2} possible by at least {3}/{4} members\n\
Common Proof-of-Work difficulty level: {5}, hash starting with `{6}`\n{7}".format( Common Proof-of-Work difficulty level: {5}, hash starting with `{6}`\n{7}".format(
current["number"], current["number"],
convert_time(current["time"], "all"), from_timestamp(current["time"], tz="local").format(ALL),
diffi["block"], diffi["block"],
issuers, issuers,
len(diffi["levels"]), len(diffi["levels"]),
...@@ -164,9 +166,11 @@ async def list_blocks(number, detailed): ...@@ -164,9 +166,11 @@ async def list_blocks(number, detailed):
issuer = OrderedDict() issuer = OrderedDict()
issuer["pubkey"] = block["issuer"] issuer["pubkey"] = block["issuer"]
if detailed or number <= 30: if detailed or number <= 30:
gentime = from_timestamp(block["time"], tz="local").format(ALL)
mediantime = from_timestamp(block["medianTime"], tz="local").format(ALL)
issuer["block"] = block["number"] issuer["block"] = block["number"]
issuer["gentime"] = convert_time(block["time"], "all") issuer["gentime"] = gentime
issuer["mediantime"] = convert_time(block["medianTime"], "all") issuer["mediantime"] = mediantime
issuer["hash"] = block["hash"][:10] issuer["hash"] = block["hash"][:10]
issuer["powMin"] = block["powMin"] issuer["powMin"] = block["powMin"]
issuers_dict[issuer["pubkey"]] = issuer issuers_dict[issuer["pubkey"]] = issuer
...@@ -242,6 +246,8 @@ async def argos_info(): ...@@ -242,6 +246,8 @@ async def argos_info():
href = "href=https://%s/" % (endpoint_address) href = "href=https://%s/" % (endpoint_address)
else: else:
href = "href=http://%s:%s/" % (endpoint_address, ep["port"]) href = "href=http://%s:%s/" % (endpoint_address, ep["port"])
current_time = from_timestamp(head_block["time"], tz="local")
mediantime = from_timestamp(head_block["medianTime"], tz="local")
print( print(
"Connected to node:", "Connected to node:",
ep[best_endpoint_address(ep, False)], ep[best_endpoint_address(ep, False)],
...@@ -257,11 +263,11 @@ async def argos_info(): ...@@ -257,11 +263,11 @@ async def argos_info():
"\nMinimal Proof-of-Work:", "\nMinimal Proof-of-Work:",
head_block["powMin"], head_block["powMin"],
"\nCurrent time:", "\nCurrent time:",
convert_time(head_block["time"], "all"), current_time.format(ALL),
"\nMedian time:", "\nMedian time:",
convert_time(head_block["medianTime"], "all"), mediantime.format(ALL),
"\nDifference time:", "\nDifference time:",
convert_time(head_block["time"] - head_block["medianTime"], "hour"), current_time.diff_for_humans(mediantime, True),
) )
client = ClientInstance().client client = ClientInstance().client
await client.close() await client.close()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment