aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornico <nico@magicbroccoli.de>2019-12-19 18:15:47 +0100
committernico <nico@magicbroccoli.de>2019-12-19 18:15:47 +0100
commit9b964690e79b5a4366e43fde01c6594de693be4d (patch)
tree72dd4c1ee364a44d6aedde66a798af239b3be44a
parent6f19f160ef0d2d72c1db35abcf03ee28a3982d7c (diff)
package finish up
* update setup.py * better format the main __init__ file * move exceptions to separate file for maintainability * small corrections
-rw-r--r--TSGroupAssigner/__init__.py8
-rw-r--r--TSGroupAssigner/exceptions.py8
-rw-r--r--TSGroupAssigner/group_assign.py17
-rw-r--r--setup.py24
-rw-r--r--tests/test_group_assign.py6
5 files changed, 41 insertions, 22 deletions
diff --git a/TSGroupAssigner/__init__.py b/TSGroupAssigner/__init__.py
index 04fc467..e434073 100644
--- a/TSGroupAssigner/__init__.py
+++ b/TSGroupAssigner/__init__.py
@@ -1,4 +1,10 @@
# -*- coding: utf-8 -*-
+# version
+__version__ = "0.0.1"
+
+# modules
from .group_assign import GroupAssigner
-from .group_assign import DateException
+
+# utils
+from .exceptions import DateException
diff --git a/TSGroupAssigner/exceptions.py b/TSGroupAssigner/exceptions.py
new file mode 100644
index 0000000..a0bb55b
--- /dev/null
+++ b/TSGroupAssigner/exceptions.py
@@ -0,0 +1,8 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+__all__ = ['DateException']
+
+
+class DateException(Exception):
+ """Exceptions thrown if configured date is out of range"""
diff --git a/TSGroupAssigner/group_assign.py b/TSGroupAssigner/group_assign.py
index 9f43d35..1f9fdbb 100644
--- a/TSGroupAssigner/group_assign.py
+++ b/TSGroupAssigner/group_assign.py
@@ -8,9 +8,9 @@ from contextlib import suppress
import ts3
+from .exceptions import DateException
-class DateException(Exception):
- """raise this if the date delta exceeds the configured range"""
+__all__ = ['GroupAssigner']
class GroupAssigner:
@@ -107,7 +107,7 @@ class GroupAssigner:
# calculate remaining time delta
remaindelta = starttime - now
- logging.debug('target date will be reached in {sec} seconds -- sleeping'.format(sec=remaindelta.seconds))
+ logging.debug(f'target date will be reached in {remaindelta.seconds} seconds -- sleeping')
time.sleep(remaindelta.seconds + 1)
else:
@@ -119,9 +119,6 @@ class GroupAssigner:
if data['client_type'] != '0' or data['reasonid'] != '0':
return
- # check if the current date is still eligible
- self.__datecheck()
-
cldbid = data['client_database_id']
user_grps = data['client_servergroups'].split(sep=',')
@@ -133,8 +130,7 @@ class GroupAssigner:
try:
# Usage: servergroupaddclient sgid={groupID} cldbid={clientDBID}
- # cmd = self.conn.servergroupaddclient(sgid=self.gid, cldbid=cldbid)
- cmd = self.conn.clientdbinfo(cldbid=cldbid)
+ cmd = self.conn.servergroupaddclient(sgid=self.gid, cldbid=cldbid)
if cmd.error['id'] != '0':
logging.error(cmd.data[0].decode("utf-8"))
@@ -142,7 +138,7 @@ class GroupAssigner:
# log process
logging.info('{client_nickname}:{client_database_id} added to {gid}'.format(**data, gid=self.gid))
- # log possible key errors while the teamspeak 5 client is not fully working
+ # log possible key errors while the teamspeak 5 client is not fully released
except KeyError as err:
logging.error([err, data])
@@ -150,6 +146,9 @@ class GroupAssigner:
"""
event handler which separates events to their specific handlers
"""
+ # check if event is still eligible
+ self.__datecheck()
+
# client enter events
if event == "notifycliententerview":
self.__notifycliententerview(data)
diff --git a/setup.py b/setup.py
index 6136fdc..3fbb8aa 100644
--- a/setup.py
+++ b/setup.py
@@ -1,25 +1,31 @@
# -*- coding: utf-8 -*-
from setuptools import setup, find_packages
+from TSGroupAssigner import __version__
+
with open("README.md", "r") as fh:
long_description = fh.read()
setup(
name='TSGroupAssigner',
- version='0.0.1',
- packages=find_packages(exclude=['tests', 'tests.*']),
- keywords='automation TeamSpeak teamspeak ts3 ts3server ts',
+ version=__version__,
url='https://github.com/mightyBroccoli/TSGroupAssigner',
- license='GPLv3',
author='nico wellpott',
author_email='nico@magicbroccoli.de',
- description='date based TeamSpeak Group Assigner',
- long_description=long_description,
- python_requires='>=3.7',
classifiers=[
'Programming Language :: Python :: 3',
'Intended Audience :: System Administrators',
'Operating System :: Unix',
- 'License :: OSI Approved :: GNU General Public License v3 (GPLv3)'
- ]
+ 'License :: OSI Approved :: GNU General Public License v3 (GPLv3)',
+ "Topic :: Communications",
+ "Topic :: Internet"
+ ],
+ license='GPLv3',
+ description='date based TeamSpeak Group Assigner',
+ long_description=long_description,
+ long_description_content_type='text/markdown',
+ keywords='automation TeamSpeak teamspeak ts3 ts3server ts',
+ install_requires='ts3>=1.0.11',
+ packages=find_packages(exclude=("tests",)),
+ python_requires='>=3.6'
)
diff --git a/tests/test_group_assign.py b/tests/test_group_assign.py
index c3529a0..150aa7b 100644
--- a/tests/test_group_assign.py
+++ b/tests/test_group_assign.py
@@ -32,7 +32,7 @@ class TestGroupAssigner:
duration = dt.timedelta()
with pytest.raises(DateException):
- GroupAssigner(date=startdate, delta=duration,**creds).start()
+ GroupAssigner(date=startdate, delta=duration, **creds).start()
def test_datecheck_enddate(self):
# this should produce a exit code 0 SystemExit as the end date is in the past
@@ -42,7 +42,7 @@ class TestGroupAssigner:
duration = dt.timedelta()
with pytest.raises(SystemExit):
- GroupAssigner(date=startdate, delta=duration,**creds).start()
+ GroupAssigner(date=startdate, delta=duration, **creds).start()
def test_connect_noconnection(self):
# connect should fail with ConnectionRefusedError
@@ -52,4 +52,4 @@ class TestGroupAssigner:
duration = dt.timedelta()
with pytest.raises(ConnectionRefusedError):
- GroupAssigner(date=startdate, delta=duration,**creds).start()
+ GroupAssigner(date=startdate, delta=duration, **creds).start()