Auteur Sujet: [Python] JKP - Secret Ball  (Lu 945 fois)

JKP

  • Invité
[Python] JKP - Secret Ball « le: juillet 20, 2011, 11:39:18 am »
Secret Ball est une boule que l'on agite et qui fournit une réponse à votre question.
Voici une version mail de la Secret Ball.





Fonctionnement

Il suffit d'envoyer un mail avec votre question à secret.ball@antisocial.be et vous recevrez un mail de réponse.

Installation

Le script Python doit être executé sur un serveur Linux, régulièrement dans une crontab. ( avec, par exemple un intervalle de 5 minutes )

Le Script

# -*- coding: utf-8 -*-
import poplib
import email
import os
import sys
import string
import smtplib
from email.MIMEText import MIMEText
foo = ['Pas sur', 'Peut etre', 'Surement pas', 'Jamais', 'NON !!!!','y a des chances','va savoir','pas question','vraiment pas','cela semble bien parti','je ne sais pas','oui !!','oublie !','je le sens bien','absolument','pourquoi pas ?','pas de problème']

from random import choice

def sendTextMail(to,text):
    mail = MIMEText(text)
    mail['Subject'] = "Secret Ball"
    mail['To'] = to
    smtp = smtplib.SMTP()
    smtp.connect()
    smtp.sendmail("secret.ball@antisocial.be", [to], mail.as_string())
    smtp.close()
       
PROVIDER = "pop.xxxxxxxxxxx"
USER = "secret.ball"
PASSWORD = "xxxxxxxxx"

client = poplib.POP3(PROVIDER)
client.user(USER)
client.pass_(PASSWORD)
nrof_mails = len(client.list()[1])
for i in range(nrof_mails):
    lines = client.retr(i + 1)[1]
    mailstring = string.join(lines, "\n")
        msg = email.message_from_string(mailstring)
        to = msg.get('Return-Path')
    for part in msg.walk():
            blockit = 0
            if part.get_content_maintype() == "text" and blockit == 0:
                    blockit = 1
                    mycontent = part.get_payload()
        lines = mycontent.split("\n")
        res = "La reponse de Secret Ball"+"\n"
        res = res + "--------------------------\n"
        res = res+ "    " +choice(foo)
        res = res + "\n-------------------------\n"
        res = res+"\n"+"\n"+"\n"
    for line in lines:
            res = res + ">" + line + "\n"
        sendTextMail(to,res)
#effacement des mails
for j in range(nrof_mails):
    y = j+1
    client.dele(y)
client.quit()

)