Changed some vars visibility and Fix #3
This commit is contained in:
pare
0e854876ad
commit
da93574d73
S'han modificat 2 arxius amb 31 adicions i 31 eliminacions
|
@ -34,14 +34,14 @@ class Ejabberd:
|
||||||
|
|
||||||
if is_setup:
|
if is_setup:
|
||||||
|
|
||||||
self.__api_base_url = self.__get_parameter("api_base_url", self.__ejabberd_config_path)
|
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.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_account = self.__get_parameter("admin_account", self.__ejabberd_config_path)
|
||||||
self.__admin_pass = self.__get_parameter("admin_pass", self.__ejabberd_config_path)
|
self.admin_pass = self.__get_parameter("admin_pass", self.__ejabberd_config_path)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
|
||||||
self.__api_base_url, self.__local_vhost, self.__admin_account, self.__admin_pass = self.setup(self)
|
self.api_base_url, self.local_vhost, self.admin_account, self.admin_pass = self.setup(self)
|
||||||
|
|
||||||
def generate_pass(self):
|
def generate_pass(self):
|
||||||
|
|
||||||
|
@ -61,10 +61,10 @@ class Ejabberd:
|
||||||
def check_account(self, username, host):
|
def check_account(self, username, host):
|
||||||
|
|
||||||
data = {'user':username,
|
data = {'user':username,
|
||||||
'host':self.__local_vhost,
|
'host':self.local_vhost,
|
||||||
}
|
}
|
||||||
|
|
||||||
endpoint = self.__api_base_url + '/api/check_account?'
|
endpoint = self.api_base_url + '/api/check_account?'
|
||||||
|
|
||||||
response = self.__api_request(endpoint, data)
|
response = self.__api_request(endpoint, data)
|
||||||
|
|
||||||
|
@ -79,11 +79,11 @@ class Ejabberd:
|
||||||
if not account_exists:
|
if not account_exists:
|
||||||
|
|
||||||
data = {'user':username,
|
data = {'user':username,
|
||||||
'host':self.__local_vhost,
|
'host':self.local_vhost,
|
||||||
'password':user_password,
|
'password':user_password,
|
||||||
}
|
}
|
||||||
|
|
||||||
endpoint = self.__api_base_url + '/api/register?'
|
endpoint = self.api_base_url + '/api/register?'
|
||||||
|
|
||||||
response = self.__api_request(endpoint, data)
|
response = self.__api_request(endpoint, data)
|
||||||
|
|
||||||
|
@ -111,17 +111,17 @@ class Ejabberd:
|
||||||
|
|
||||||
is_admin = False
|
is_admin = False
|
||||||
|
|
||||||
if username+'@'+host == self.__admin_account:
|
if username == self.admin_account.replace('@'+self.local_vhost, ''):
|
||||||
|
|
||||||
is_admin = True
|
is_admin = True
|
||||||
|
|
||||||
return (is_unregistered, is_admin)
|
return (is_unregistered, is_admin)
|
||||||
|
|
||||||
data = {'user':username,
|
data = {'user':username,
|
||||||
'host':self.__local_vhost,
|
'host':self.local_vhost,
|
||||||
}
|
}
|
||||||
|
|
||||||
endpoint = self.__api_base_url + '/api/unregister?'
|
endpoint = self.api_base_url + '/api/unregister?'
|
||||||
|
|
||||||
response = self.__api_request(endpoint, data)
|
response = self.__api_request(endpoint, data)
|
||||||
|
|
||||||
|
@ -143,7 +143,7 @@ class Ejabberd:
|
||||||
"name": name
|
"name": name
|
||||||
}
|
}
|
||||||
|
|
||||||
endpoint = self.__api_base_url + '/api/stats?'
|
endpoint = self.api_base_url + '/api/stats?'
|
||||||
|
|
||||||
response = self.__api_request(endpoint, data)
|
response = self.__api_request(endpoint, data)
|
||||||
|
|
||||||
|
@ -160,7 +160,7 @@ class Ejabberd:
|
||||||
data = {
|
data = {
|
||||||
}
|
}
|
||||||
|
|
||||||
endpoint = self.__api_base_url + '/api/status?'
|
endpoint = self.api_base_url + '/api/status?'
|
||||||
|
|
||||||
response = self.__api_request(endpoint, data)
|
response = self.__api_request(endpoint, data)
|
||||||
|
|
||||||
|
@ -175,10 +175,10 @@ class Ejabberd:
|
||||||
sessions_dict = {}
|
sessions_dict = {}
|
||||||
|
|
||||||
data = {'user':username,
|
data = {'user':username,
|
||||||
'host':self.__local_vhost,
|
'host':self.local_vhost,
|
||||||
}
|
}
|
||||||
|
|
||||||
endpoint = self.__api_base_url + '/api/user_sessions_info?'
|
endpoint = self.api_base_url + '/api/user_sessions_info?'
|
||||||
|
|
||||||
response = self.__api_request(endpoint, data)
|
response = self.__api_request(endpoint, data)
|
||||||
|
|
||||||
|
@ -223,7 +223,7 @@ class Ejabberd:
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
||||||
response = requests.post(url = endpoint, json = data, auth=(self._Ejabberd__admin_account, self._Ejabberd__admin_pass))
|
response = requests.post(url = endpoint, json = data, auth=(self.admin_account, self.admin_pass))
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
||||||
|
@ -296,10 +296,10 @@ class Ejabberd:
|
||||||
if not os.path.exists('secrets'):
|
if not os.path.exists('secrets'):
|
||||||
os.makedirs('secrets')
|
os.makedirs('secrets')
|
||||||
|
|
||||||
self.__api_base_url = input("api_base_url, in ex. 'http://127.0.0.1:5280': ")
|
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.local_vhost = input("local_vhost, in ex. 'ejabberd.server': ")
|
||||||
self.__admin_account = input("admin_account, in ex. 'admin@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': ")
|
self.admin_pass = getpass.getpass("admin_pass, in ex. 'my_very_hard_secret_pass': ")
|
||||||
|
|
||||||
if not os.path.exists(self.__ejabberd_config_path):
|
if not os.path.exists(self.__ejabberd_config_path):
|
||||||
with open(self.__ejabberd_config_path, 'w'): pass
|
with open(self.__ejabberd_config_path, 'w'): pass
|
||||||
|
@ -307,9 +307,9 @@ class Ejabberd:
|
||||||
|
|
||||||
with open(self.__ejabberd_config_path, 'a') as the_file:
|
with open(self.__ejabberd_config_path, 'a') as the_file:
|
||||||
print("Writing ejabberd secrets parameters to " + self.__ejabberd_config_path)
|
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')
|
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)
|
return (self.api_base_url, self.local_vhost, self.admin_account, self.admin_pass)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def __get_parameter(parameter, file_path ):
|
def __get_parameter(parameter, file_path ):
|
||||||
|
|
16
xmpp.py
16
xmpp.py
|
@ -35,19 +35,19 @@ if __name__ == '__main__':
|
||||||
|
|
||||||
if mention.question == bot.register_str:
|
if mention.question == bot.register_str:
|
||||||
|
|
||||||
account_exists = ejabberd.check_account(mention.acct, bot.mastodon_hostname)
|
account_exists = ejabberd.check_account(mention.acct, ejabberd.local_vhost)
|
||||||
|
|
||||||
if not account_exists:
|
if not account_exists:
|
||||||
|
|
||||||
password = ejabberd.generate_pass()
|
password = ejabberd.generate_pass()
|
||||||
|
|
||||||
is_registered, text = ejabberd.register(mention.acct, bot.mastodon_hostname, password)
|
is_registered, text = ejabberd.register(mention.acct, ejabberd.local_vhost, password)
|
||||||
|
|
||||||
if is_registered:
|
if is_registered:
|
||||||
|
|
||||||
post = f"@{mention.acct} {bot.registerok_str}\n\n{bot.user_str} {mention.acct}@{bot.mastodon_hostname}\n"
|
post = f"@{mention.acct} {bot.registerok_str}\n\n{bot.user_str} {mention.acct}@{ejabberd.local_vhost}\n"
|
||||||
|
|
||||||
post += f"{bot.password_str} {password}\n{bot.server_str} {bot.mastodon_hostname}"
|
post += f"{bot.password_str} {password}\n{bot.server_str} {ejabberd.local_vhost}"
|
||||||
|
|
||||||
bot.mastodon.status_post(post, in_reply_to_id=mention.status_id, visibility='direct')
|
bot.mastodon.status_post(post, in_reply_to_id=mention.status_id, visibility='direct')
|
||||||
|
|
||||||
|
@ -61,11 +61,11 @@ if __name__ == '__main__':
|
||||||
|
|
||||||
elif mention.question == bot.unregister_str:
|
elif mention.question == bot.unregister_str:
|
||||||
|
|
||||||
is_unregistered, is_admin = ejabberd.unregister(mention.acct, bot.mastodon_hostname)
|
is_unregistered, is_admin = ejabberd.unregister(mention.acct, ejabberd.local_vhost)
|
||||||
|
|
||||||
if is_unregistered:
|
if is_unregistered:
|
||||||
|
|
||||||
bot.mastodon.status_post(f"@{mention.acct}, {bot.xmpp_account_str} {mention.acct}@{bot.mastodon_hostname}: {bot.deleted_str}", in_reply_to_id=mention.status_id, visibility='direct')
|
bot.mastodon.status_post(f"@{mention.acct}, {bot.xmpp_account_str} {mention.acct}@{ejabberd.local_vhost}: {bot.deleted_str}", in_reply_to_id=mention.status_id, visibility='direct')
|
||||||
|
|
||||||
elif not is_unregistered:
|
elif not is_unregistered:
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ if __name__ == '__main__':
|
||||||
|
|
||||||
stats = ejabberd.stats()
|
stats = ejabberd.stats()
|
||||||
|
|
||||||
post = f'@{mention.acct}, {bot.stats_title_str} {ejabberd._Ejabberd__local_vhost}:\n\n'
|
post = f'@{mention.acct}, {bot.stats_title_str} {ejabberd.local_vhost}:\n\n'
|
||||||
|
|
||||||
post += f'{bot.registered_users_str} {stats.registeredusers}\n'
|
post += f'{bot.registered_users_str} {stats.registeredusers}\n'
|
||||||
|
|
||||||
|
@ -101,7 +101,7 @@ if __name__ == '__main__':
|
||||||
|
|
||||||
elif mention.question == bot.user_sessions_info_str:
|
elif mention.question == bot.user_sessions_info_str:
|
||||||
|
|
||||||
sessions = ejabberd.user_sessions_info(mention.acct, bot.mastodon_hostname)
|
sessions = ejabberd.user_sessions_info(mention.acct, ejabberd.local_vhost)
|
||||||
|
|
||||||
post = f'@{mention.acct}, {bot.current_sessions_str}\n\n'
|
post = f'@{mention.acct}, {bot.current_sessions_str}\n\n'
|
||||||
|
|
||||||
|
|
Loading…
Referencia en una nova incidència