]>
gitweb.pimeys.fr Git - scripts-20-100.git/blob - newsbot/signe.py.deprecated
4 # codé par 20-100 à partir du 02/04/12, sur une idée de NeK
12 # ouvre une connexion avec le serveur de news et renvoie la socket
14 s
.connect(("news.crans.org",119))
19 # effectue une requête et renvoie (execution_code,result)
20 s
.send(something
+"\n")
24 firstline
,rest
=t
.split(' ',1)
28 return int(firstline
.split()[0]),rest
31 # donne la liste des groupes existants
33 if cod
in range(200,300):
35 return [i
.split()[0] for i
in l
]
37 raise KeyboardInterrup("communication error : %s"%(cod))
40 # charge le dico des derniers messages lus
41 return pickle
.load(open("dicoread.txt"))
43 def save_read(dicoread
):
44 # sauvegarde le dio des derniers messages lus
45 pickle
.dump(dicoread
,open("dicoread.txt","w"))
47 def get_last_message(s
,group
):
48 # renvoie le dernier message existant dans un groupe
49 cod
,t
=ask(s
,"group %s"%(group))
50 if cod
in range(200,300):
51 return int(t
.split()[2])
53 raise KeyboardInterrup("communication error : %s"%(cod))
55 def get_all_last(s
,groups
):
56 # récupère les derniers messages de tous les groupes
59 dicolast
[g
]=get_last_message(s
,g
)
62 def get_nouveaux_messages(s
,groups
,dicoread
,dicounread
):
63 # crée un itérateurs sur les nouveaux messages
64 # un "nouveau" message c'est un message dont le numéro
65 # est supérieur strict à celui dans dicoread
66 # mais inférieur à celui dans dicounread
68 if not(dicoread
.has_key(g
)):
70 # il faut lui redire dans quel groupe on est
72 for ident
in range(dicoread
[g
]+1,dicounread
[g
]+1):
73 # on demande les headers du message
74 cod
,rest
=ask(s
,"head %s"%(ident))
75 if cod
in range(200,300):
76 mid
=re
.findall('Message-ID:(.*)',t
)[0].strip()
79 ref
=re
.findall('References:(.*)',t
)[0].strip()
83 # bon bah ce massage existe pas, tant pis