|
Ce script permet d'effectuer l'ensemble des tâches courantes pour le courrier et les news.
C'est la version planifiée avec connexion automatique de OZNow.hsc.
Il utilise certaines fonctions des modules suivants, présents sur cette page ou dans la distribution d'Hamster-Fr :
Il utilise également Fai.ini qui est le fichier de configuration.
Fai.ini vous permet de changer le paramétrage de vos fournisseurs d'accès et de vos serveurs sans avoir à modifier une seule ligne du script ou des modules.
Grâce à ce script vous pourrez :
Pratiquement toutes les lignes de ce script sont commentées, ce qui facilite la compréhension mais pas la lecture.
Une version moins commentée est disponible ici.
#!hs2
#####################################################################
# Script : OZPlan.hsm
# Description : Envoi et réception planifiés du courrier et des news
# La sélection Des FAIs se fait d'après une liste
# préférientielle.
# Configuration : Les FAIs et les serveurs SMTP ET POP3 sont indiqués
# dans le fichier Fai.ini.
# Ne pas oublier de configurer aussi Hamster !
# Nécessite :
# - Fai.ini
# - Fai.hsm
# - News.hsm (BStrings.hsm, BMsgHeader.hsm, BFichierTexte.hsm)
# - Mail.hsm
#
# Auteur : Olivier Zolli <ozolli@online.fr>
# Version : 15/02/01
#####################################################################
# Chargement des modules nécessaires.
#!load Fai.hsm
#!load News.hsm
#!load Mail.hsm
# Remise à zéro des compteurs et de l'écran log
HamMessage(2,0)
# Remise à zéro des entrées de planification
AtClear
# Lancement du planificateur
# Appel de la fonction Traitement de 8:00 h, à 19:00 h,
# du lundi au vendredi, toutes les 60 minutes
AtAdd(Traitement,"08:00","19:00","1111100",60)
# Appel de la fonction Traitement à midi, samedi et dimanche
AtAdd(Traitement,"12:00","","0000011")
# Ecrit un message dans l'écran log
print( "Script OZPlan activé" )
# Attend qu'une des 2 entrées de planification se déclenche et
# exécute la fonction qui lui est associée (Traitement)
AtExecute
# Fin du script. Ne devrait jamais être lu puisque la
# planification est sensée être infinie
quit
# Connexion, envoi, réception et déconnexion : Traitement
sub Traitement
print("SCRIPT EN COURS DE TRAITEMENT")
# Déclaration et initialisation des variables
VarSet($CxHamster,True)
# Préparation des articles
# News Jobs
EnteteNews
HamNewsJobsClear
HamNewsJobsPostDef
HamNewsJobsPullDef
HamWaitIdle
# Teste si un FAI est déja connecté
if(RasIsConnected)
$CxHamster=False
print("Déja connecté à "+RasGetConnection)
# Sinon
else
# Répète les instructions qui suivent (jusqu'à until)
repeat
# Connexion au 1er FAI de la liste (Fai.ini) qui répond
cxmulti
# Si connexion établie
if(RasIsConnected)
print("Connecté à "+RasGetConnection)
# Sinon
else
# Ecrit un message d'avertissement dans le log
Warning("Le script OZPlan n'a pas pu se connecter, _
reconnection dans 25 minutes.")
# Attente de 25 minutes
sleep(1500000)
# Fin de condition Si connexion établie
endif
# Jusqu'à établissement d'une connexion
until(RasIsConnected)
Fin de condition Si un FAI est déja connecté
endif
# Connexion au(x) serveur(s) de news.
HamNewsJobsStart
# Envoi du courrier en instance.
EnvoieCourrier
# Réception du courrier.
RecoitCourrier
# Déconnexion du FAI si c'est OZPlan qui s'est connecté
if($CxHamster)
# Attente de fin des tâches en cours puis déconnexion
HamWaitIdle
HamRasHangup
endif
HamWaitIdle
print("Traitement du courrier et des news effectué.")
# Fin de la fonction, retour au planificateur
Endsub