From 33b67f43ff9acd46424411937cdf53bdc3d9ef38 Mon Sep 17 00:00:00 2001 From: Vincent Le Gallic Date: Sun, 7 Apr 2013 19:24:14 +0200 Subject: [PATCH] partie serveur --- today-server.py | 71 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100755 today-server.py diff --git a/today-server.py b/today-server.py new file mode 100755 index 0000000..9117507 --- /dev/null +++ b/today-server.py @@ -0,0 +1,71 @@ +#!/usr/bin/python +# -*- encoding: utf-8 -*- + +""" Codé par 20-100 +script qui affiche des trucs à penser, des J-n des conneries +or that kind of stuff. + +Partie serveur, prévue pour chercher périodiquement les trucs non lus +et répondre à un check. + +""" + +import time, datetime +import re +import os +import sys +import urllib +import json +os.chdir('/home/vincent/scripts/today/') +sys.path.append("/home/vincent/scripts/dtc/") +import dtc + +#: Fichier où sont stockés les derniers IDs des trucs +store_file = "lasts_published" + +def get_now(): + """Obtenir la date actuelle sous le bon format""" + timestamp = time.time() + now = datetime.datetime(*time.localtime(timestamp)[:7]) + return now + +def last_dtc(): + """Vérifie si il y a des quotes DTC non lues""" + return dtc.last_inserted() + +def last_xkcd(): + try: + p = urllib.urlopen("http://xkcd.com") + except IOError: + return "Impossible de se connecter à xkcd" + t = p.read() + current_id = int(re.findall("Permanent link to this comic: http://xkcd.com/(.*?)/", t)[0]) + return current_id + +def get_file(): + """Récupère la liste des derniers ids de chaque truc, stockée dans le fichiers.""" + f = open(store_file) + news = json.load(f) + f.close() + return news + +def update_file(news): + """Met à jour la liste des derniers ids dans le fichier.""" + f = open(store_file, 'w') + json.dump(news, f) + f.close() + +def fetch_all(): + """Va chercher sur les différents sites les nouveaux trucs.""" + news = {} + news["xkcd"] = last_xkcd() + news["dtc"] = last_dtc() + return news + +if __name__ == "__main__": + if sys.argv[1] == "check": + news = fetch_all() + update_file(news) + if sys.argv[1] == "whatsup": + news = get_file() + print json.dumps(news) -- 2.39.2