Projet

Général

Profil

Révision 35c29fad

Ajouté par Julien Enselme il y a environ 11 ans

  • Suppression du module urllib (on utilise httplib2 à la place)
  • clarification des urls
  • On modifie le corps du commentaire pour savoir qui a dit quoi même si la clé API n’est pas disponible

Voir les différences:

scripts_divers/migrer_taches_vers_redmine/goto_redmine.py
2 2
import comments_parser
3 3
import submiters_parser
4 4
import url_parser
5
import urllib.request
6 5
import httplib2
7 6
import json
8 7
import re
......
23 22

  
24 23
h = httplib2.Http()
25 24

  
26
for url in urls:
27
    nid = nids[urls.index(url)]
28

  
29
    page = urllib.request.urlopen('url')
25
for post_url in urls:
26
    nid = nids[urls.index(post_url)]
27
    resp, page = h.request(post_url, 'GET')
28
    page = page.decode('utf-8')
30 29
    txt = page.read()
31 30
    #tout les scripts fonctionnent en lisant ligne à ligne le fichier.
32 31
    #la liste input permet de mimer ce comportement
......
49 48

  
50 49
    iid = re.findall(r',"id":([0-9]*),', content.decode('utf-8'))[0]
51 50

  
51
    #on a besoin de l’url à laquelle on met les commentaires, pour changer le status
52
    put_url = ''
52 53
    for index, comment in enumerate(comments):
53
       submiter = submiters[index + 1]  #le premier est celui qui a soumis le node
54
       Headers['X-Redmine-API-Key'] = give_api_key(submiters[0])
55

  
56
       h.request(URL + '/' + iid + '.json', 'PUT', body=data, headers=Headers)
54
        submiter = submiters[index + 1]  #le premier est celui qui a soumis le node
55
        Headers['X-Redmine-API-Key'] = give_api_key(submiter)
56
        #si la personne n’a pas sa clé, on modifie le commentaire
57
        if not submiter in SUBMITERS:
58
            comment = "{} a dit que {}".format(submiter, comment)
59
        update = {}
60
        update['issue'] = {'notes': comment}
61
        data = json.dumps(update)
62
        put_url = URL + '/' + iid + '.json'
63
        h.request(put_url, 'PUT', body=data, headers=Headers)
57 64

  
58 65
    #Les taches sont crées avec le status nouveau peu importe ce qu’il y a dans le json
59 66
    #on modifie le status après coup
60
    update_status = '{"issue": {"status_id":' + node['status_id'] + '}}'
67
    update_status = {'issue': {'status_id': node['status_id']}}
68
    data = json.dumps(update_status)
69
    h.request(put_url, 'PUT', body=data, headers=Headers)

Formats disponibles : Unified diff