#!/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')