[Devel] r180 - scripts

svn at agendadulibre.org svn at agendadulibre.org
Dim 9 Juil 19:01:04 CEST 2006


Author: thomas
Date: Sun Jul  9 19:01:03 2006
New Revision: 180

Modified:
   scripts/adl-submit.py

Log:

 * adl-submit.py:

  - Ajout de l'option --test-output.



Modified: scripts/adl-submit.py
==============================================================================
--- scripts/adl-submit.py	(original)
+++ scripts/adl-submit.py	Sun Jul  9 19:01:03 2006
@@ -66,6 +66,7 @@
 
 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.
@@ -131,6 +132,14 @@
   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:
+
+  ./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.
 """
     sys.exit (1)
 
@@ -152,8 +161,11 @@
    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:
@@ -171,12 +183,16 @@
          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)
 
-   return eventFieldValues
+   return (eventFieldValues, testOutputFile)
 
-def SubmitEvent(event):
+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"
@@ -251,8 +267,14 @@
       return
 
    curl = pycurl.Curl()
+
    contents = StringIO.StringIO()
-   curl.setopt (curl.URL, baseUrl + '/submit.php')
+   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])),
@@ -273,15 +295,21 @@
                                 ('__event_contact',      str(event['contact'])),
                                 ('__event_save',         str(1))])
 
-   curl.setopt(curl.WRITEFUNCTION, contents.write)
    curl.perform()
    if curl.getinfo(curl.HTTP_CODE) != 200:
       print u"Erreur lors de la soumission de l'évènement"
    else:
       print u"Évènement soumis avec succès. Il sera prochainement validé par un modérateur."
 
+   if testOutputFile:
+       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()
+
 if (len(sys.argv) == 1) and sys.argv[1] == "--help":
     Usage()
 
-event = ParseOptions(sys.argv[1:])
-SubmitEvent(event)
+(event, testOutputFile) = ParseOptions(sys.argv[1:])
+SubmitEvent(event, testOutputFile)


More information about the Devel mailing list