pyzor.client¶
Networked spam-signature detection client.
>>> import pyzor
>>> import pyzor.client
>>> import pyzor.digest
>>> import pyzor.config
To load the accounts file:
>>> accounts = pyzor.config.load_accounts(filename)
To create a client (to then issue commands):
>>> client = pyzor.client.Client(accounts)
To create a client, using the anonymous user:
>>> client = pyzor.client.Client()
To get a digest (of an email.message.Message object, or similar):
>>> digest = pyzor.digest.get_digest(msg)
To query a server (where address is a (host, port) pair):
>>> client.ping(address)
>>> client.info(digest, address)
>>> client.report(digest, address)
>>> client.whitelist(digest, address)
>>> client.check(digest, address)
To query the default server (public.pyzor.org):
>>> client.ping()
>>> client.info(digest)
>>> client.report(digest)
>>> client.whitelist(digest)
>>> client.check(digest)
Response will contain, depending on the type of request, some of the following keys (e.g. client.ping()[‘Code’]):
All responses will have: - ‘Diag’ ‘OK’ or error message - ‘Code’ ‘200’ if OK - ‘PV’ Protocol Version - ‘Thread’
info and check responses will also contain: - ‘[WL-]Count’ Whitelist/Blacklist count
info responses will also have: - ‘[WL-]Entered’ timestamp when message was first whitelisted/blacklisted - ‘[WL-]Updated’ timestamp when message was last whitelisted/blacklisted
-
class
pyzor.client.BatchClient(accounts=None, timeout=None, spec=None, batch_size=10)¶ Bases:
pyzor.client.ClientLike the normal Client but with support for batching reports.
-
flush()¶ Deleting any saved digest reports.
-
force()¶ Force send any remaining reports.
-
report(digest, address=('public.pyzor.org', 24441))¶
-
whitelist(digest, address=('public.pyzor.org', 24441))¶
-
-
class
pyzor.client.CheckClientRunner(routine, r_count=0, wl_count=0)¶ Bases:
pyzor.client.ClientRunner-
handle_response(response, message)¶
-
-
class
pyzor.client.Client(accounts=None, timeout=None, spec=None)¶ Bases:
object-
check(digest, address=('public.pyzor.org', 24441))¶
-
info(digest, address=('public.pyzor.org', 24441))¶
-
max_packet_size= 8192¶
-
ping(address=('public.pyzor.org', 24441))¶
-
pong(digest, address=('public.pyzor.org', 24441))¶
-
read_response(sock, expected_id)¶
-
report(digest, address=('public.pyzor.org', 24441))¶
-
send(msg, address=('public.pyzor.org', 24441))¶
-
timeout= 5¶
-
whitelist(digest, address=('public.pyzor.org', 24441))¶
-
-
class
pyzor.client.ClientRunner(routine)¶ Bases:
object-
handle_response(response, message)¶ mesaage is a string we’ve built up so far
-
run(server, args, kwargs=None)¶
-
-
class
pyzor.client.InfoClientRunner(routine)¶ Bases:
pyzor.client.ClientRunner-
handle_response(response, message)¶
-