]> gitweb.pimeys.fr Git - today.git/blob - today-server.py
partie serveur
[today.git] / today-server.py
1 #!/usr/bin/python
2 # -*- encoding: utf-8 -*-
3
4 """ Codé par 20-100
5 script qui affiche des trucs à penser, des J-n des conneries
6 or that kind of stuff.
7
8 Partie serveur, prévue pour chercher périodiquement les trucs non lus
9 et répondre à un check.
10
11 """
12
13 import time, datetime
14 import re
15 import os
16 import sys
17 import urllib
18 import json
19 os.chdir('/home/vincent/scripts/today/')
20 sys.path.append("/home/vincent/scripts/dtc/")
21 import dtc
22
23 #: Fichier où sont stockés les derniers IDs des trucs
24 store_file = "lasts_published"
25
26 def get_now():
27 """Obtenir la date actuelle sous le bon format"""
28 timestamp = time.time()
29 now = datetime.datetime(*time.localtime(timestamp)[:7])
30 return now
31
32 def last_dtc():
33 """Vérifie si il y a des quotes DTC non lues"""
34 return dtc.last_inserted()
35
36 def last_xkcd():
37 try:
38 p = urllib.urlopen("http://xkcd.com")
39 except IOError:
40 return "Impossible de se connecter à xkcd"
41 t = p.read()
42 current_id = int(re.findall("Permanent link to this comic: http://xkcd.com/(.*?)/", t)[0])
43 return current_id
44
45 def get_file():
46 """Récupère la liste des derniers ids de chaque truc, stockée dans le fichiers."""
47 f = open(store_file)
48 news = json.load(f)
49 f.close()
50 return news
51
52 def update_file(news):
53 """Met à jour la liste des derniers ids dans le fichier."""
54 f = open(store_file, 'w')
55 json.dump(news, f)
56 f.close()
57
58 def fetch_all():
59 """Va chercher sur les différents sites les nouveaux trucs."""
60 news = {}
61 news["xkcd"] = last_xkcd()
62 news["dtc"] = last_dtc()
63 return news
64
65 if __name__ == "__main__":
66 if sys.argv[1] == "check":
67 news = fetch_all()
68 update_file(news)
69 if sys.argv[1] == "whatsup":
70 news = get_file()
71 print json.dumps(news)