]> gitweb.pimeys.fr Git - scripts-20-100.git/blob - spambot/spambot.py
typo
[scripts-20-100.git] / spambot / spambot.py
1 #!/usr/bin/env python
2 # -*- encoding: utf-8 -*-
3
4 # Pour envoyer des mails en masses à plein de gens, parce que y'en a marre à la fin
5
6 import os
7 import email
8 import sys
9
10 DEBUG = False
11 if "--debug" in sys.argv:
12 DEBUG = True
13
14 QUIET = False
15 if "--quiet" in sys.argv:
16 QUIET = True
17
18 def sendmail(to, subject, body, froms=[u"20-100's spambot <legallic@crans.org>"], cc=[]):
19 if isinstance(to, unicode) or isinstance(to, str):
20 to = [to]
21 if isinstance(cc, unicode) or isinstance(cc, str):
22 cc = [cc]
23 if isinstance(froms, unicode) or isinstance(froms, str):
24 froms = [froms]
25 if DEBUG:
26 cc, to = [], [u"Default target for testing spambot <legallic@crans.org>"]
27 headers = u"From: %s\nTo: %s\n" % (", ".join(froms), ", ".join(to))
28 if cc:
29 headers += u"Cc: %s\n" % (", ".join(cc))
30 headers += u"Subject: %s\n" % email.Header.make_header([(subject, "utf8")]).encode()
31 headers += u"Content-Type: text/plain; charset=UTF-8\n"
32 mail = headers + "\n" + body
33 mailer = os.popen("/usr/sbin/sendmail -t", "w")
34 mailer.write(mail.encode("utf-8") + "\n.")
35 mailer.close()
36
37
38 def spam_quelu():
39 if not QUIET:
40 print "Spamming quelu about WiFi profile."
41 sendmail("pellissier@crans.org", "Profil Wifi", u"Au fait, tu devais pas me filer un profil Wifi ?\n\n-- \n20-100, qui s'est enfin codé son spambot")
42
43
44
45 def spam_acoeur(qui, combien):
46 if not QUIET:
47 print "Spamming %s about Bus/Pot A♡" % qui
48 body = u"""Plop,
49
50 Petit mail pour te rappeler que, tous calculs confondus, pour le bus et/ou le pot A♡, tu dois encore %s€.
51 Ce serait cool que tu me fasses un virement.
52
53 Si tu préfères par virement note ou par espèces (bof), envoie-moi un mail.
54
55 Si tu as déjà remboursé et que tu reçois ce mail, préviens-moi, j'ai du merder quelque part…
56
57 --
58 20-100, trésorier des A♡""" % combien
59 sendmail(qui, u"[Bus et/ou Pot A♡] Remboursement", body)
60
61 def get_acoeurs():
62 l = open("acoeurlist.txt").readlines()
63 l = [i.strip() for i in l if not i.strip().startswith("#") and i.strip() != ""]
64 return [i.split(" ") for i in l]
65
66 def spam_acoeurs():
67 liste = get_acoeurs()
68 for (qui, combien) in liste:
69 spam_acoeur(qui, combien)
70
71
72 def spam_29C3():
73 return
74
75 todolist = [spam_quelu] #, spam_acoeurs]#, spam_29C3]
76 if __name__ == "__main__":
77 for action in todolist:
78 action()