]>
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.
14 from lxml
import etree
19 os
.chdir('/home/vincent/scripts/today/')
20 sys
.path
.append("/home/vincent/scripts/dtc/")
26 #: Récupération de toutes les nouveautés
30 """Vérifie si il y a des quotes DTC non lues"""
31 return dtc
.last_inserted()
34 p
= urllib
.urlopen("http://xkcd.com")
36 current_id
= int(re
.findall("Permanent link to this comic: http://xkcd.com/(.*?)/", t
)[0])
40 p
= urllib
.urlopen("http://www.adoprixtoxis.com/lite/download/xantah_downloads.php")
42 ids
= re
.findall("""<div class="top">Xantah (.*?)</div>""", t
)
43 ids
= [int(i
) for i
in ids
]
47 rss
= urllib
.urlopen("http://limbero.org/jl8/rss/")
49 x
= etree
.fromstring(t
)
50 links
= x
.xpath("//link")
51 maxnum
= links
[1].text
.split("/")[-1]
56 """Récupère la liste des derniers ids de chaque truc, stockée dans le fichier."""
57 f
= open(serverconfig
.store_published_file
)
62 def update_file(news
):
63 """Met à jour la liste des derniers ids dans le fichier."""
64 f
= open(serverconfig
.store_published_file
, 'w')
71 "xantah" : last_xantah
,
76 """Va chercher sur les différents sites les nouveaux trucs."""
78 for (k
, f
) in FETCHS
.iteritems():
81 except Exception as e
:
83 news
.update(gather
.gather())
87 """Reçoit une requête de synchronisation."""
88 # On récupère où en est le client sur stdin
90 on_client
= json
.loads(t
)
91 # On récupère où en est le serveur dans le fichier idoine
92 if os
.path
.isfile(serverconfig
.store_seen_file
):
93 on_server
= json
.load(open(serverconfig
.store_seen_file
))
97 for k
in set(on_client
.keys() + on_server
.keys()):
98 on_server
[k
] = max(on_client
.get(k
, 0), on_server
.get(k
, 0))
99 # On enregistre ce nouveau dico
100 json
.dump(on_server
, open(serverconfig
.store_seen_file
, "w"))
101 # On envoie au client ce nouveau dico
102 print json
.dumps(on_server
)
104 if __name__
== "__main__":
105 DEBUG
= ("--debug" in sys
.argv
) or ("--verbose" in sys
.argv
) or serverconfig
.DEBUG
106 if sys
.argv
[1] == "check":
108 if "--init" in sys
.argv
:
114 elif sys
.argv
[1] == "whatsup":
116 print json
.dumps(news
)
117 elif sys
.argv
[1] == "sync":