Added setup attribute
This commit is contained in:
pare
b2aeb6816f
commit
91adee9fa5
S'han modificat 1 arxius amb 47 adicions i 11 eliminacions
|
@ -1,6 +1,7 @@
|
|||
import os
|
||||
import os.path
|
||||
import requests
|
||||
import getpass
|
||||
from collections import OrderedDict
|
||||
|
||||
###
|
||||
|
@ -23,20 +24,22 @@ class Ejabberd:
|
|||
|
||||
name = 'Ejabberd API wrapper'
|
||||
|
||||
def __init__(self, secrets_config_file=None, api_base_url=None, local_vhost=None, admin_account=None, admin_pass=None):
|
||||
def __init__(self, api_base_url=None, local_vhost=None, admin_account=None, admin_pass=None):
|
||||
|
||||
self.__secrets_config_file = secrets_config_file
|
||||
self.__ejabberd_config_path = "secrets/ejabberd_secrets.txt"
|
||||
|
||||
try:
|
||||
|
||||
self.__api_base_url = self.__get_parameter("api_base_url", self.__secrets_config_file)
|
||||
self.__local_vhost = self.__get_parameter("local_vhost", self.__secrets_config_file)
|
||||
self.__admin_account = self.__get_parameter("admin_account", self.__secrets_config_file)
|
||||
self.__admin_pass = self.__get_parameter("admin_pass", self.__secrets_config_file)
|
||||
is_setup = self.__check_setup(self)
|
||||
|
||||
except:
|
||||
|
||||
raise EjabberdAPIConfigError("secrets config file not found! create it and pass it as argument to this class.")
|
||||
if is_setup:
|
||||
|
||||
self.__api_base_url = self.__get_parameter("api_base_url", self.__ejabberd_config_path)
|
||||
self.__local_vhost = self.__get_parameter("local_vhost", self.__ejabberd_config_path)
|
||||
self.__admin_account = self.__get_parameter("admin_account", self.__ejabberd_config_path)
|
||||
self.__admin_pass = self.__get_parameter("admin_pass", self.__ejabberd_config_path)
|
||||
|
||||
else:
|
||||
|
||||
self.__api_base_url, self.__local_vhost, self.__admin_account, self.__admin_pass = self.setup(self)
|
||||
|
||||
def check_account(self, username, host):
|
||||
|
||||
|
@ -253,6 +256,39 @@ class Ejabberd:
|
|||
|
||||
return response
|
||||
|
||||
@staticmethod
|
||||
def __check_setup(self):
|
||||
|
||||
is_setup = False
|
||||
|
||||
if not os.path.isfile(self.__ejabberd_config_path):
|
||||
print(f"File {self.__ejabberd_config_path} not found, running setup.")
|
||||
else:
|
||||
is_setup = True
|
||||
|
||||
return is_setup
|
||||
|
||||
@staticmethod
|
||||
def setup(self):
|
||||
|
||||
if not os.path.exists('secrets'):
|
||||
os.makedirs('secrets')
|
||||
|
||||
self.__api_base_url = input("api_base_url, in ex. 'http://127.0.0.1:5280': ")
|
||||
self.__local_vhost = input("local_vhost, in ex. 'ejabberd.server': ")
|
||||
self.__admin_account = input("admin_account, in ex. 'admin@ejabberd.server': ")
|
||||
self.__admin_pass = getpass.getpass("admin_pass, in ex. 'my_very_hard_secret_pass': ")
|
||||
|
||||
if not os.path.exists(self.__ejabberd_config_path):
|
||||
with open(self.__ejabberd_config_path, 'w'): pass
|
||||
print(f"{self.__ejabberd_config_path} created!")
|
||||
|
||||
with open(self.__ejabberd_config_path, 'a') as the_file:
|
||||
print("Writing ejabberd secrets parameters to " + self.__ejabberd_config_path)
|
||||
the_file.write(f'api_base_url: {self.__api_base_url}\n'+f'local_vhost: {self.__local_vhost}\n'+f'admin_account: {self.__admin_account}\n'+f'admin_pass: {self.__admin_pass}\n')
|
||||
|
||||
return (self.__api_base_url, self.__local_vhost, self.__admin_account, self.__admin_pass)
|
||||
|
||||
@staticmethod
|
||||
def __get_parameter(parameter, file_path ):
|
||||
|
||||
|
|
Loading…
Referencia en una nova incidència