#!/usr/bin/env python # _*_ coding: utf-8 _*_ # Copyright (C) Michel Casabianca - 2008 # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # Script téléchargeant l'édition du jour de Bordeaux7 (sauf samedi et # dimanche, jours pour lesquels il ne fait rien). # # Il vous faut configurer : # - USER : l'utilisateur Unix sur le bureau duquel on doit déposer le journal. # - DESKTOP : le répertoire du bureau de l'utilisateur, qui est par défaut, # sous MacOSX, '/Users//Desktop'. Sous Linux votre bureau devrait être # '/home//Desktop', mais ce répertoire peut dépendre de votre # distribution. # # Pour lancer automatiquement ce script tous les jours avec anacron : # - Installer anacron : # . Sous Linux : 'sudo apt-get install anacron' # . sous MacOSX : 'sudo fink install anacron' # - Copier ce fichier dans le répertoire des tâches journalières : # . Sous Linux : 'sudo cp download-bordeux7 /etc/cron.daily' # . Sous MacOSX : 'sudo cp download-bordeaux7 /sw/etc/cron.daily' # - Changer le propriétaire du fichier pour root : # 'sudo chown root: download-bordeaux7' # - Rendre le fichier exécutable : # 'sudo chmod a+x download-bordeaux7' import os import sys import time from datetime import date import urllib2 import pwd USER = 'casa' HOST = 'http://www.bordeaux7.com' if sys.platform == 'darwin': DESKTOP = '/Users/'+USER+'/Desktop' else: DESKTOP = '/home/'+USER+'/Desktop' LOGS = '/var/log/download-bordeaux7.log' # Enregistre un message dans le fichier de log # - message: le message à enregistrer. def log(message): print message date = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) try: f = open(LOGS, 'a') f.write(date+': '+message+'\n') f.close() except: pass dayofweek = date.weekday(date.today()) # on ne télécharge pas samedi et dimanche if dayofweek < 5: try: # on télécharge le fichier date = time.strftime('%Y%d%d', time.localtime()) url = HOST+'/IMG/pdf_ABX7-'+time.strftime('%d', time.localtime())+'.pdf' filename = DESKTOP+'/'+'bordeaux7-'+date+'.pdf' handler = urllib2.urlopen(url) contenu = handler.read() f = open(filename, 'w') f.write(contenu) f.close() # on change le propriétaire du fichier uid = -1 gid = -1 db = pwd.getpwall() for user in db: if USER == user[0]: uid = user[2] gid = user[3] os.chown(filename, uid, gid) # on log le téléchargement log('Téléchargement OK') except: log('Erreur lors du téléchargement: '+str(sys.exc_info()[1])) raise # on log tout de même les samedi et dimanche else: log('Pas de téléchargement les samedi et dimanche')