Apply Vit advices about .env and few stuff
This commit is contained in:
parent
dea707babf
commit
02ae104da2
|
@ -0,0 +1,4 @@
|
|||
DUNIKEY="" # Chemin de la clé privé Ḡ1 de l'émetteur, au format PubSec
|
||||
#POD="https://g1.data.duniter.fr" # Adresse du pod Cesium ou Gchange à utiliser
|
||||
POD="https://g1.data.le-sou.org" # Adresse du pod Cesium de secours
|
||||
#POD="https://data.gchange.fr" # Adresse du pod ḠChange à utiliser
|
|
@ -1,3 +1,2 @@
|
|||
.env
|
||||
userEnv.py
|
||||
__pycache__
|
||||
|
|
64
dialog.py
64
dialog.py
|
@ -1,18 +1,24 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import argparse, os, sys
|
||||
import argparse, sys, os
|
||||
from os.path import join, dirname
|
||||
from shutil import copyfile
|
||||
if not os.path.isfile("userEnv.py"):
|
||||
copyfile("userEnv.py.template", "userEnv.py")
|
||||
try:
|
||||
from userEnv import dunikey, pod
|
||||
if dunikey == "":
|
||||
raise ValueError("Dunikey is empty")
|
||||
except:
|
||||
sys.stderr.write("Please fill the path to your private key (PubSec), and a Cesium ES address in userEnv.py\n")
|
||||
sys.exit(1)
|
||||
from dotenv import load_dotenv
|
||||
from lib.cesiumMessaging import ReadFromCesium, SendToCesium, DeleteFromCesium
|
||||
|
||||
# Get varriables environment
|
||||
if not os.path.isfile('.env'):
|
||||
copyfile(".env.template", ".env")
|
||||
dotenv_path = join(dirname(__file__), '.env')
|
||||
load_dotenv(dotenv_path)
|
||||
|
||||
dunikey = os.getenv('DUNIKEY')
|
||||
pod = os.getenv('POD')
|
||||
if not dunikey or not pod:
|
||||
sys.stderr.write("Please fill the path of your private key (PubSec), and a Cesium ES address in .env file\n")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
# Parse arguments
|
||||
parser = argparse.ArgumentParser()
|
||||
|
||||
|
@ -22,9 +28,9 @@ send_cmd = subparsers.add_parser('send', help="Envoi d'un message")
|
|||
delete_cmd = subparsers.add_parser('delete', help="Supression d'un message")
|
||||
|
||||
if len(sys.argv) <= 1 or not sys.argv[1] in ('read','send','delete'):
|
||||
sys.stderr.write("Veuillez indiquer une commande valide:\n\n")
|
||||
parser.print_help()
|
||||
sys.exit(1)
|
||||
sys.stderr.write("Veuillez indiquer une commande valide:\n\n")
|
||||
parser.print_help()
|
||||
sys.exit(1)
|
||||
|
||||
read_cmd.add_argument('-n', '--number',type=int, default=3, help="Affiche les NUMBER derniers messages")
|
||||
read_cmd.add_argument('-o', '--outbox', action='store_true', help="Lit les messages envoyés")
|
||||
|
@ -43,23 +49,23 @@ args = parser.parse_args()
|
|||
|
||||
# Build cesiumMessaging class
|
||||
if sys.argv[1] == "read":
|
||||
messages = ReadFromCesium(dunikey, pod)
|
||||
messages.read(args.number, args.outbox)
|
||||
messages = ReadFromCesium(dunikey, pod)
|
||||
messages.read(args.number, args.outbox)
|
||||
elif sys.argv[1] == "send":
|
||||
if args.fichier:
|
||||
with open(args.fichier, 'r') as f:
|
||||
titre = f.readline()
|
||||
msg = ''.join(f.read().splitlines(True)[0:])
|
||||
elif args.titre and args.message:
|
||||
titre = args.titre
|
||||
msg = args.message
|
||||
else:
|
||||
titre = input("Indiquez le titre du message: ")
|
||||
msg = input("Indiquez le contenu du message: ")
|
||||
messages = SendToCesium(dunikey, pod, args.destinataire, args.outbox)
|
||||
messages.send(titre, msg)
|
||||
if args.fichier:
|
||||
with open(args.fichier, 'r') as f:
|
||||
titre = f.readline()
|
||||
msg = ''.join(f.read().splitlines(True)[0:])
|
||||
elif args.titre and args.message:
|
||||
titre = args.titre
|
||||
msg = args.message
|
||||
else:
|
||||
titre = input("Indiquez le titre du message: ")
|
||||
msg = input("Indiquez le contenu du message: ")
|
||||
messages = SendToCesium(dunikey, pod, args.destinataire, args.outbox)
|
||||
messages.send(titre, msg)
|
||||
|
||||
elif sys.argv[1] == "delete":
|
||||
messages = DeleteFromCesium(dunikey, pod, args.outbox)
|
||||
messages.delete(args.id)
|
||||
messages = DeleteFromCesium(dunikey, pod, args.outbox)
|
||||
messages.delete(args.id)
|
||||
|
||||
|
|
|
@ -6,13 +6,14 @@ from hashlib import sha256
|
|||
from datetime import datetime
|
||||
from termcolor import colored
|
||||
|
||||
PUBKEY_REGEX = "(?![OIl])[1-9A-Za-z]{42,45}"
|
||||
|
||||
class ReadFromCesium:
|
||||
def __init__(self, dunikey, pod):
|
||||
# Get my pubkey from my private key
|
||||
try:
|
||||
self.dunikey = dunikey
|
||||
if dunikey == "":
|
||||
if not dunikey:
|
||||
raise ValueError("Dunikey is empty")
|
||||
except:
|
||||
sys.stderr.write("Please fill the path to your private key (PubSec)\n")
|
||||
|
@ -21,7 +22,7 @@ class ReadFromCesium:
|
|||
self.recipient = get_privkey(dunikey, "pubsec").pubkey
|
||||
self.pod = pod
|
||||
|
||||
if not re.match(r"(?![OIl])[1-9A-Za-z]{42,45}", self.recipient):
|
||||
if not re.match(PUBKEY_REGEX, self.recipient) or len(self.recipient) > 45:
|
||||
sys.stderr.write("La clé publique n'est pas au bon format.\n")
|
||||
sys.exit(1)
|
||||
|
||||
|
@ -117,6 +118,8 @@ class SendToCesium:
|
|||
# Get my pubkey from my private key
|
||||
try:
|
||||
self.dunikey = dunikey
|
||||
if not dunikey:
|
||||
raise ValueError("Dunikey is empty")
|
||||
except:
|
||||
sys.stderr.write("Please fill the path to your private key (PubSec)\n")
|
||||
sys.exit(1)
|
||||
|
@ -132,7 +135,7 @@ class SendToCesium:
|
|||
nonce.append(random.choice(string.ascii_letters + string.digits))
|
||||
self.nonce = base64.b64decode(''.join(nonce))
|
||||
|
||||
if not re.match(r"(?![OIl])[1-9A-Za-z]{42,45}", recipient):
|
||||
if not re.match(PUBKEY_REGEX, recipient) or len(recipient) > 45:
|
||||
sys.stderr.write("La clé publique n'est pas au bon format.\n")
|
||||
sys.exit(1)
|
||||
|
||||
|
@ -200,6 +203,8 @@ class DeleteFromCesium:
|
|||
# Get my pubkey from my private key
|
||||
try:
|
||||
self.dunikey = dunikey
|
||||
if not dunikey:
|
||||
raise ValueError("Dunikey is empty")
|
||||
except:
|
||||
sys.stderr.write("Please fill the path to your private key (PubSec)\n")
|
||||
sys.exit(1)
|
||||
|
|
|
@ -3,3 +3,4 @@ base58
|
|||
pybase64
|
||||
duniterpy
|
||||
termcolor
|
||||
python-dotenv
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
dunikey = "" # Chemin de la clé privé Ḡ1 de l'émetteur, au format PubSec
|
||||
#pod = "https://g1.data.duniter.fr" # Adresse du pod Cesium à utiliser
|
||||
pod = "https://g1.data.le-sou.org" # Adresse du pod Cesium de secours
|
||||
#pod = "https://data.gchange.fr" # Adresse du pod GChange à utiliser
|
Loading…
Reference in New Issue