A Python API for antispam service cleantalk.org. Invisible protection from spam, no captches, no puzzles, no animals and no math.
API uses several simple tests to stop spammers.
- Spam bots signatures.
- Blacklists checks by Email, IP, web-sites domain names.
- JavaScript availability.
- Comment submit time.
- Relevance test for the comment.
API sends a comment's text and several previous approved comments to the servers. Servers evaluates the relevance of the comment's text on the topic, tests on spam and finaly provides a solution - to publish or put on manual moderation of comments. If a comment is placed on manual moderation, the plugin adds to the text of a comment explaining the reason for the ban server publishing.
- Python 2.6 and above
- Python 3 and above
- CleanTalk account https://cleantalk.org/register?product=anti-spam
from cleantalk import CleanTalk
ct = CleanTalk(auth_key='yourkey')
ct_result = ct.request(
message = 'abc', # Visitor comment
sender_ip = '196.19.250.114', # Visitor IP address
sender_email = '[email protected]', # Visitor email
sender_nickname = 'spam_bot', # Visitor nickname
js_on = 1, # Is visitor has JavaScript
submit_time = 12 # Seconds from start form filling till the form POST
)
#Check
if ct_result['allow']:
print('Comment allowed. Reason ' + ct_result['comment'])
else:
print('Comment blocked. Reason ' + ct_result['comment'])
API returns Python dictionary object, where keys:
- allow (0|1) - allow to publish or not, in other words spam or ham
- comment (string) - server comment for requests.
- id (string MD5 HEX hash) - unique request idenifier.
Run the next command in the terminal:
pip install cleantalk-python-antispam
Then you can use Cleantalk class import:
from cleantalk_python_antispam.cleantalk import CleanTalk