[Devel] r189 - scripts

svn at agendadulibre.org svn at agendadulibre.org
Lun 18 Sep 23:33:40 CEST 2006


Author: thomas
Date: Mon Sep 18 23:33:39 2006
New Revision: 189

Modified:
   scripts/adl-submit.py

Log:
Re-indent avec Emacs.


Modified: scripts/adl-submit.py
==============================================================================
--- scripts/adl-submit.py	(original)
+++ scripts/adl-submit.py	Mon Sep 18 23:33:39 2006
@@ -65,81 +65,81 @@
     print u"""Soumettre un évènement dans l'Agenda du Libre
 
 Options:
-   --file        event.xml   Fichier XML décrivant l'évènement.
-   --test-output test.html   Fichier de sortie HTML de test
-   --start-date  YYYY-MM-DD  Date de début de l'évènement.
-   --end-date    YYYY-MM-DD  Date de fin de l'évènement.
-   --start-hour  HH:MM       Heure de début de l'évènement.
-   --end-hour    HH:MM       Heure de fin de l'évènement.
-   --title       chaine      Titre de l'évènement.
-   --description chaine-html Description de l'évènement.
-   --city        chaine      Ville de l'évènement.
-   --region      entier      Région de l'évènement.
-   --url         chaine      URL décrivant l'évènement.
-   --contact     chaine      E-mail de contact
+    --file        event.xml   Fichier XML décrivant l'évènement.
+    --test-output test.html   Fichier de sortie HTML de test
+    --start-date  YYYY-MM-DD  Date de début de l'évènement.
+    --end-date    YYYY-MM-DD  Date de fin de l'évènement.
+    --start-hour  HH:MM       Heure de début de l'évènement.
+    --end-hour    HH:MM       Heure de fin de l'évènement.
+    --title       chaine      Titre de l'évènement.
+    --description chaine-html Description de l'évènement.
+    --city        chaine      Ville de l'évènement.
+    --region      entier      Région de l'évènement.
+    --url         chaine      URL décrivant l'évènement.
+    --contact     chaine      E-mail de contact
 
 Exemple de fichier XML:
- <?xml version="1.0" encoding="ISO-8859-1"?>
- <event>
-  <title>Permanence Logiciels Libres</title>
-  <start-hour>18:00</start-hour>
-  <end-hour>21:00</end-hour>
-  <description><![CDATA[
-
-   <p><a href="http://www.gulliver.eu.org">Gulliver</a> organise chaque
-   semaine une permanence <i>Logiciels Libres</i> ouverte à tous,
-   membre de l'association ou non.</p>
-
-   <p>Durant cette permanence, vous pourrez trouver des réponses aux
-   questions que vous vous posez au sujet du Logiciel Libre, ainsi que
-   de l'aide pour résoudre vos problèmes d'installation, de
-   configuration et d'utilisation de Logiciels Libres. N'hésitez pas
-   à apporter votre ordinateur, afin que les autres participants
-   puissent vous aider.</p>
-
-   <p>Une connexion Internet est disponible sur place, ainsi que les
-   mises à jour pour les distributions GNU/Linux les plus
-   courantes.</p>
-
-   <p>Cette permanence a lieu à la <a
-   href=\"http://www.grand-cordel.com/\">MJC du Grand Cordel</a>, 18
-   rue des Plantes à Rennes.</p>
-
-  ]]></description>
-  <city>Rennes</city>
-  <region>6</region>
-  <url>http://www.gulliver.eu.org</url>
-  <contact>contact at gulliver.eu.org</contact>
- </event>
+    <?xml version="1.0" encoding="ISO-8859-1"?>
+    <event>
+        <title>Permanence Logiciels Libres</title>
+        <start-hour>18:00</start-hour>
+        <end-hour>21:00</end-hour>
+        <description><![CDATA[
+
+         <p><a href="http://www.gulliver.eu.org">Gulliver</a> organise chaque
+         semaine une permanence <i>Logiciels Libres</i> ouverte à tous,
+         membre de l'association ou non.</p>
+
+            <p>Durant cette permanence, vous pourrez trouver des réponses aux
+            questions que vous vous posez au sujet du Logiciel Libre, ainsi que
+            de l'aide pour résoudre vos problèmes d'installation, de
+            configuration et d'utilisation de Logiciels Libres. N'hésitez pas
+            à apporter votre ordinateur, afin que les autres participants
+            puissent vous aider.</p>
+
+            <p>Une connexion Internet est disponible sur place, ainsi que les
+            mises à jour pour les distributions GNU/Linux les plus
+            courantes.</p>
+
+            <p>Cette permanence a lieu à la <a
+            href=\"http://www.grand-cordel.com/\">MJC du Grand Cordel</a>, 18
+            rue des Plantes à Rennes.</p>
+
+        ]]></description>
+        <city>Rennes</city>
+        <region>6</region>
+        <url>http://www.gulliver.eu.org</url>
+        <contact>contact at gulliver.eu.org</contact>
+    </event>
 
 Valeurs des champs:
-  Le fichier XML peut contenir des champs dont le nom est semblable
-  à celui des options, à savoir start-date, end-date,
-  start-hour, end-hour, title, description, city, region, url et
-  contact. Si un champ est défini à la fois dans le fichier XML
-  et sur la ligne de commande, alors c'est la valeur donnée sur la
-  ligne de commande qui l'emporte. Entre le fichier XML et la ligne de
-  commande, tous les champs doivent être définis, sinon l'ajout
-  de l'évènement sera refusé. Le seul champ qui peut être
-  vide est end-date, auquel cas il sera positionné à la même
-  valeur que start-date.
+    Le fichier XML peut contenir des champs dont le nom est semblable
+    à celui des options, à savoir start-date, end-date,
+    start-hour, end-hour, title, description, city, region, url et
+    contact. Si un champ est défini à la fois dans le fichier XML
+    et sur la ligne de commande, alors c'est la valeur donnée sur la
+    ligne de commande qui l'emporte. Entre le fichier XML et la ligne de
+    commande, tous les champs doivent être définis, sinon l'ajout
+    de l'évènement sera refusé. Le seul champ qui peut être
+    vide est end-date, auquel cas il sera positionné à la même
+    valeur que start-date.
 
 Exemple d'utilisation:
-  ./adl-submit.py --file event.xml --start-date 2005-12-10
+    ./adl-submit.py --file event.xml --start-date 2005-12-10
 
-  Ajoutera l'évènement décrit dans le fichier event.xml
-  (donné ci-dessous) pour la date du 10 décembre 2005. Puisque
-  le champ end-date n'est pas spécifié, alors il vaudra la
-  même chose que start-date, c'est à dire le 10 décembre
-  2005.
+    Ajoutera l'évènement décrit dans le fichier event.xml
+    (donné ci-dessous) pour la date du 10 décembre 2005. Puisque
+    le champ end-date n'est pas spécifié, alors il vaudra la
+    même chose que start-date, c'est à dire le 10 décembre
+    2005.
 
-  Pour vérifier que le formatage est correct avant l'envoi,
-  on pourra utiliser:
+    Pour vérifier que le formatage est correct avant l'envoi,
+    on pourra utiliser:
 
-  ./adl-submit.py --file event.xml --start-date 2005-12-10
-                  --test-output test.html
+    ./adl-submit.py --file event.xml --start-date 2005-12-10
+        --test-output test.html
 
-  et regarder le fichier test.html avec un navigateur Web.
+    et regarder le fichier test.html avec un navigateur Web.
 """
     sys.exit (1)
 
@@ -158,161 +158,161 @@
             values[field] = val
 
 def ParseOptions(options):
-   getoptOptions = map (lambda elt: elt + "=", eventFields)
-   getoptOptions.append ("file=")
-   getoptOptions.append ("help")
-   getoptOptions.append("test-output=")
-   eventFieldValues = {}
-
-   testOutputFile = ""
-
-   try:
-      opts, args = getopt.getopt(options, "", getoptOptions)
-   except getopt.GetoptError:
-      print u"Option inconnue."
-      Usage()
-
-   if opts == []:
-      Usage()
-
-   for param, val in opts:
-      if param == "--help":
-         Usage()
-
-      if param == "--file":
-         HandleXmlFile(val, eventFieldValues)
-         opts.remove ((param, val))
-
-      if param == "--test-output":
-          testOutputFile = val
-          opts.remove ((param, val))
+    getoptOptions = map (lambda elt: elt + "=", eventFields)
+    getoptOptions.append ("file=")
+    getoptOptions.append ("help")
+    getoptOptions.append("test-output=")
+    eventFieldValues = {}
+
+    testOutputFile = ""
+
+    try:
+        opts, args = getopt.getopt(options, "", getoptOptions)
+    except getopt.GetoptError:
+        print u"Option inconnue."
+        Usage()
+
+    if opts == []:
+        Usage()
+
+    for param, val in opts:
+        if param == "--help":
+            Usage()
+
+        if param == "--file":
+            HandleXmlFile(val, eventFieldValues)
+            opts.remove ((param, val))
+
+        if param == "--test-output":
+            testOutputFile = val
+            opts.remove ((param, val))
 
-   for param, val in opts:
-      HandleParamValue (param, val, eventFieldValues)
+    for param, val in opts:
+        HandleParamValue (param, val, eventFieldValues)
 
-   return (eventFieldValues, testOutputFile)
+    return (eventFieldValues, testOutputFile)
 
 def SubmitEvent(event, testOutputFile):
 
-   if event.has_key ("start-date") is False:
-      print u"La date de début de l'évènement n'est pas spécifiée"
-      return
-
-   if event.has_key ("end-date") is False:
-      event ["end-date"] = event ["start-date"]
-
-   if re.compile(r'^[^\<\>]*$').search (event['title']) is None:
-      print u"Problème de formatage dans le titre: '%s'. Les tags HTML ne sont pas autorisés." % event['title']
-      return
-
-   try:
-      startDate = time.strptime(event['start-date'], "%Y-%m-%d")
-   except ValueError:
-      print u"Problème de formatage dans la date de début: '%s'. Elle doit être de la forme AAAA-MM-JJ" % event['start-date']
-      return
-
-   try:
-      endDate = time.strptime(event['end-date'], "%Y-%m-%d")
-   except ValueError:
-      print u"Problème de formatage dans la date de fin: '%s'. Elle doit être de la forme AAAA-MM-JJ" % event['end-date']
-      return
-
-   try:
-      startHour = time.strptime(event['start-hour'], "%H:%M")
-   except ValueError:
-      print u"Problème de formatage dans l'heure de début: '%s'. Elle doit être de la forme: HH:MM" % event['start-hour']
-      return
-
-   try:
-      endHour = time.strptime(event['end-hour'], "%H:%M")
-   except ValueError:
-      print u"Problème de formatage dans l'heure de fin: '%s'. Elle doit être de la forme HH:MM" % event['start-hour']
-      return
-
-   startDate = (startDate[0], startDate[1], startDate[2], startHour[3],
-                startHour[4], startDate[5], startDate[6], startDate[7], startDate[8])
-   endDate   = (endDate[0],   endDate[1],   endDate[2],   endHour[3],
-                endHour[4],   endDate[5],   endDate[6],   endDate[7],   endDate[8])
-
-   if time.mktime(startDate) <= time.time():
-      print u"ERREUR: La date de début de l'évènement est dans le passé."
-      return
-
-   if time.mktime(endDate) <= time.time():
-      print u"ERREUR: La date de fin de l'évènement est dans le passé."
-      return
-
-   if time.mktime(endDate) < time.mktime(startDate):
-      print u"ERREUR: La date de fin de l'évènement est avant la date de début."
-      return
-
-   if re.compile(r'^[^\<\>]*$').search (event['city']) is None:
-      print u"ERREUR: Problème de formatage dans le nom de la ville: '%s'. Les tags HTML sont interdits." % event['city']
-      return
-
-   event['region'] = unicode(event['region'], 'iso-8859-1')
-   if regions.has_key(event['region']) is False:
-      print u"ERREUR: La région '%s' n'existe pas." % event['region']
-      print u"Les régions existantes sont:"
-      for name in regions:
-         print u" - " + name
-      return
-
-   if re.compile(r'^http://.*$').search (event['url']) is None and re.compile(r'^https://.*$').search (event['url']) is None:
-      print u"ERREUR: Problème de formatage dans l'URL: '%s'. Elle doit commencer par http:// ou https://." % event['url']
-      return
-
-   if re.compile(r'^([A-Za-z0-9_\.\-]*)@([A-Za-z0-9_\-]*)\.([A-Za-z0-9_\.\-]*)$').search (event['contact']) is None:
-      print u"ERREUR: Problème de formatage dans l'adresse e-mail." % event ['contact']
-      return
-
-   curl = pycurl.Curl()
-
-   contents = StringIO.StringIO()
-   curl.setopt(curl.WRITEFUNCTION, contents.write)
-
-   if testOutputFile:
-       curl.setopt (curl.URL, baseUrl + './testevent.php')
-   else:
-       curl.setopt (curl.URL, baseUrl + '/submit.php')
-
-   curl.setopt(curl.HTTPPOST,  [('__event_title',        str(event['title'])),
-                                ('__event_start_day',    str(startDate[2])),
-                                ('__event_start_month',  str(startDate[1])),
-                                ('__event_start_year',   str(startDate[0])),
-                                ('__event_start_hour',   str(startDate[3])),
-                                ('__event_start_minute', str(startDate[4])),
-                                ('__event_end_day',      str(endDate[2])),
-                                ('__event_end_month',    str(endDate[1])),
-                                ('__event_end_year',     str(endDate[0])),
-                                ('__event_end_hour',     str(endHour[3])),
-                                ('__event_end_minute',   str(endHour[4])),
-                                ('__event_description',  str(event['description'])),
-                                ('__event_city',         str(event['city'])),
-                                ('__event_region',       str(regions[event['region']])),
-                                ('__event_locality',     str(0)),
-                                ('__event_url',          str(event['url'])),
-                                ('__event_contact',      str(event['contact'])),
-                                ('__event_save',         str(1))])
-
-   curl.perform()
-
-   if testOutputFile:
-       if curl.getinfo(curl.HTTP_CODE) != 200:
-           print u"Erreur lors de la récupération de la sortie HTML"
-           sys.exit(0)
-       fp = open(testOutputFile, "wb")
-       s = contents.getvalue()
-       s = re.sub(r'href="([A-Za-z0-9]*).css"', r'href="http://www.agendadulibre.org/\1.css"', s)
-       fp.write(s)
-       fp.close()
-
-   else:
-       if curl.getinfo(curl.HTTP_CODE) != 200:
-           print u"Erreur lors de la soumission de l'évènement"
-           sys.exit(0)
-       else:
-           print u"Évènement soumis avec succès. Il sera prochainement validé par un modérateur."
+    if event.has_key ("start-date") is False:
+        print u"La date de début de l'évènement n'est pas spécifiée"
+        return
+
+    if event.has_key ("end-date") is False:
+        event ["end-date"] = event ["start-date"]
+
+    if re.compile(r'^[^\<\>]*$').search (event['title']) is None:
+        print u"Problème de formatage dans le titre: '%s'. Les tags HTML ne sont pas autorisés." % event['title']
+        return
+
+    try:
+        startDate = time.strptime(event['start-date'], "%Y-%m-%d")
+    except ValueError:
+        print u"Problème de formatage dans la date de début: '%s'. Elle doit être de la forme AAAA-MM-JJ" % event['start-date']
+        return
+
+    try:
+        endDate = time.strptime(event['end-date'], "%Y-%m-%d")
+    except ValueError:
+        print u"Problème de formatage dans la date de fin: '%s'. Elle doit être de la forme AAAA-MM-JJ" % event['end-date']
+        return
+
+    try:
+        startHour = time.strptime(event['start-hour'], "%H:%M")
+    except ValueError:
+        print u"Problème de formatage dans l'heure de début: '%s'. Elle doit être de la forme: HH:MM" % event['start-hour']
+        return
+
+    try:
+        endHour = time.strptime(event['end-hour'], "%H:%M")
+    except ValueError:
+        print u"Problème de formatage dans l'heure de fin: '%s'. Elle doit être de la forme HH:MM" % event['start-hour']
+        return
+
+    startDate = (startDate[0], startDate[1], startDate[2], startHour[3],
+                 startHour[4], startDate[5], startDate[6], startDate[7], startDate[8])
+    endDate   = (endDate[0],   endDate[1],   endDate[2],   endHour[3],
+                 endHour[4],   endDate[5],   endDate[6],   endDate[7],   endDate[8])
+
+    if time.mktime(startDate) <= time.time():
+        print u"ERREUR: La date de début de l'évènement est dans le passé."
+        return
+
+    if time.mktime(endDate) <= time.time():
+        print u"ERREUR: La date de fin de l'évènement est dans le passé."
+        return
+
+    if time.mktime(endDate) < time.mktime(startDate):
+        print u"ERREUR: La date de fin de l'évènement est avant la date de début."
+        return
+
+    if re.compile(r'^[^\<\>]*$').search (event['city']) is None:
+        print u"ERREUR: Problème de formatage dans le nom de la ville: '%s'. Les tags HTML sont interdits." % event['city']
+        return
+
+    event['region'] = unicode(event['region'], 'iso-8859-1')
+    if regions.has_key(event['region']) is False:
+        print u"ERREUR: La région '%s' n'existe pas." % event['region']
+        print u"Les régions existantes sont:"
+        for name in regions:
+            print u" - " + name
+        return
+
+    if re.compile(r'^http://.*$').search (event['url']) is None and re.compile(r'^https://.*$').search (event['url']) is None:
+        print u"ERREUR: Problème de formatage dans l'URL: '%s'. Elle doit commencer par http:// ou https://." % event['url']
+        return
+
+    if re.compile(r'^([A-Za-z0-9_\.\-]*)@([A-Za-z0-9_\-]*)\.([A-Za-z0-9_\.\-]*)$').search (event['contact']) is None:
+        print u"ERREUR: Problème de formatage dans l'adresse e-mail." % event ['contact']
+        return
+
+    curl = pycurl.Curl()
+
+    contents = StringIO.StringIO()
+    curl.setopt(curl.WRITEFUNCTION, contents.write)
+
+    if testOutputFile:
+        curl.setopt (curl.URL, baseUrl + './testevent.php')
+    else:
+        curl.setopt (curl.URL, baseUrl + '/submit.php')
+
+    curl.setopt(curl.HTTPPOST,  [('__event_title',        str(event['title'])),
+                                 ('__event_start_day',    str(startDate[2])),
+                                 ('__event_start_month',  str(startDate[1])),
+                                 ('__event_start_year',   str(startDate[0])),
+                                 ('__event_start_hour',   str(startDate[3])),
+                                 ('__event_start_minute', str(startDate[4])),
+                                 ('__event_end_day',      str(endDate[2])),
+                                 ('__event_end_month',    str(endDate[1])),
+                                 ('__event_end_year',     str(endDate[0])),
+                                 ('__event_end_hour',     str(endHour[3])),
+                                 ('__event_end_minute',   str(endHour[4])),
+                                 ('__event_description',  str(event['description'])),
+                                 ('__event_city',         str(event['city'])),
+                                 ('__event_region',       str(regions[event['region']])),
+                                 ('__event_locality',     str(0)),
+                                 ('__event_url',          str(event['url'])),
+                                 ('__event_contact',      str(event['contact'])),
+                                 ('__event_save',         str(1))])
+
+    curl.perform()
+
+    if testOutputFile:
+        if curl.getinfo(curl.HTTP_CODE) != 200:
+            print u"Erreur lors de la récupération de la sortie HTML"
+            sys.exit(0)
+        fp = open(testOutputFile, "wb")
+        s = contents.getvalue()
+        s = re.sub(r'href="([A-Za-z0-9]*).css"', r'href="http://www.agendadulibre.org/\1.css"', s)
+        fp.write(s)
+        fp.close()
+
+    else:
+        if curl.getinfo(curl.HTTP_CODE) != 200:
+            print u"Erreur lors de la soumission de l'évènement"
+            sys.exit(0)
+        else:
+            print u"Évènement soumis avec succès. Il sera prochainement validé par un modérateur."
 
 
 if (len(sys.argv) == 1) and sys.argv[1] == "--help":


Plus d'informations sur la liste de diffusion Devel