From 0c313565f2b649366f7382dc1b3f28a3e80f4ffc Mon Sep 17 00:00:00 2001 From: nico Date: Tue, 6 Nov 2018 23:43:11 +0100 Subject: simplification and major rework * updated gitignore file * partly reworked servercontact implementation * complete rework of uptime, version * part rework of xep requests + added more comments to xep requests + added opt_arg to version, xep and contact * complete rework of validate function * updated HandleError function * part rework of StaticStrings function + implemented data dictionary to hold all data in main bot + added message_ids * complete rework of queue building and deduplication --- classes/functions.py | 108 --------------------------------------------------- 1 file changed, 108 deletions(-) delete mode 100644 classes/functions.py (limited to 'classes/functions.py') diff --git a/classes/functions.py b/classes/functions.py deleted file mode 100644 index a8ed356..0000000 --- a/classes/functions.py +++ /dev/null @@ -1,108 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- - -# XEP-0072: Server Version -class Version: - def __init__(self, version, msg, target): - self.version = version['software_version']['version'] - self.os = version['software_version']['os'] - self.name = version['software_version']['name'] - self.nick = msg['mucnick'] - self.message_type = msg['type'] - self.target = target - - def format_version(self): - if self.message_type == "groupchat": - text = "%s: %s is running %s version %s on %s" % (self.nick, self.target, self.name, self.version, self.os) - else: - text = "%s is running %s version %s on %s" % (self.target, self.name, self.version, self.os) - - return text - - -# XEP-0012: Last Activity -class LastActivity: - """ query the server uptime of the specified domain, defined by XEP-0012 """ - def __init__(self, last_activity, msg, target): - self.last_activity = last_activity - self.nick = msg['mucnick'] - self.message_type = msg['type'] - self.target = target - - def format_values(self, granularity=4): - seconds = self.last_activity['last_activity']['seconds'] - uptime = [] - intervals = ( - ('years', 31536000), # 60 * 60 * 24 * 365 - ('weeks', 604800), # 60 * 60 * 24 * 7 - ('days', 86400), # 60 * 60 * 24 - ('hours', 3600), # 60 * 60 - ('minutes', 60), - ('seconds', 1) - ) - for name, count in intervals: - value = seconds // count - if value: - seconds -= value * count - if value == 1: - name = name.rstrip('s') - uptime.append("{} {}".format(value, name)) - result = ' '.join(uptime[:granularity]) - - if self.message_type == "groupchat": - text = "%s: %s is running since %s" % (self.nick, self.target, result) - else: - text = "%s is running since %s" % (self.target, result) - - return text - - -# XEP-0157: Contact Addresses for XMPP Services -class ContactInfo: - def __init__(self, contact, msg, target): - self.contact = contact - self.message = msg - self.target = target - - def format_contact(self): - server_info = [] - sep = ' , ' - possible_vars = ['abuse-addresses', - 'admin-addresses', - 'feedback-addresses', - 'sales-addresses', - 'security-addresses', - 'support-addresses'] - - for field in self.contact['disco_info']['form']: - var = field['var'] - if var in possible_vars: - field_value = field.get_value(convert=False) - value = sep.join(field_value) if isinstance(field_value, list) else field_value - server_info.append(' - %s: %s' % (var, value)) - - if server_info: - text = "contact addresses for %s are" % self.target - for count in range(server_info.__len__()): - text += "\n" + server_info[count] - else: - text = "%s has no contact addresses configured." % self.target - - return text - - -# class handeling XMPPError exeptions -class HandleError: - def __init__(self, error, msg, key, target="target missing"): - self.error = error - self.message = msg - self.key = key - self.target = target - - def build_report(self): - condition = self.error.condition - keyword = self.key[1:] - - text = "There was an error requesting " + self.target + '\'s ' + keyword + " : " + condition - - return text -- cgit v1.2.3-54-g00ecf