]>
gitweb.pimeys.fr Git - today.git/blob - today-server.py
2 # -*- encoding: utf-8 -*-
5 script qui affiche des trucs à penser, des J-n des conneries
8 Partie serveur, prévue pour chercher périodiquement les trucs non lus
9 et répondre à un check.
19 os
.chdir('/home/vincent/scripts/today/')
20 sys
.path
.append("/home/vincent/scripts/dtc/")
23 #: Fichier où sont stockés les derniers IDs des trucs
24 store_published_file
= "lasts_published"
26 #: Fichier où est stockée une copie de la liste des derniers IDs *lus*
27 store_seen_file
= "lasts_sync"
30 """Obtenir la date actuelle sous le bon format"""
31 timestamp
= time
.time()
32 now
= datetime
.datetime(*time
.localtime(timestamp
)[:7])
36 """Vérifie si il y a des quotes DTC non lues"""
37 return dtc
.last_inserted()
41 p
= urllib
.urlopen("http://xkcd.com")
43 return "Impossible de se connecter à xkcd"
45 current_id
= int(re
.findall("Permanent link to this comic: http://xkcd.com/(.*?)/", t
)[0])
49 """Récupère la liste des derniers ids de chaque truc, stockée dans le fichiers."""
50 f
= open(store_published_file
)
55 def update_file(news
):
56 """Met à jour la liste des derniers ids dans le fichier."""
57 f
= open(store_published_file
, 'w')
62 """Va chercher sur les différents sites les nouveaux trucs."""
64 news
["xkcd"] = last_xkcd()
65 news
["dtc"] = last_dtc()
69 """Reçoit une requête de synchronisation."""
70 # On récupère où en est le client sur stdin
72 on_client
= json
.loads(t
)
73 # On récupère où en est le serveur dans le fichier idoine
74 if os
.path
.isfile(store_seen_file
):
75 on_server
= json
.load(open(store_seen_file
))
79 for k
in set(on_client
.keys() + on_server
.keys()):
80 on_server
[k
] = max(on_client
.get(k
, 0), on_server
.get(k
, 0))
81 # On enregistre ce nouveau dico
82 json
.dump(on_server
, open(store_seen_file
, "w"))
83 # On envoie au client ce nouveau dico
84 print json
.dumps(on_server
)
86 if __name__
== "__main__":
87 if sys
.argv
[1] == "check":
90 elif sys
.argv
[1] == "whatsup":
92 print json
.dumps(news
)
93 elif sys
.argv
[1] == "sync":