Projet

Général

Profil

Révision a2a6f2e9

Ajouté par Julien Enselme il y a presque 11 ans

Ajout de commentaires dans les scripts goto_redmine et urls_parser

Voir les différences:

scripts_divers/migrer_taches_vers_redmine/goto_redmine.py
3 3
"""
4 4

  
5 5
import url_parser  #permet de connaître les id des taches
6
import urllib.request
7
import httplib2
6
import urllib.request #permet de récupérer une page web
7
import httplib2 #pour faire des requêtes http
8 8
import json
9
import re
10
import os
9
import re #pour les expressions régulières
10
import os #pour pouvoir faire appel à pandoc (commande system)
11 11

  
12
######## NB : cid : comment id, nid : node id, urls : urls des tâches
13

  
14
#Dictionnaire des gens dont on a la clé API
15
#id: clé
12 16
SUBMITERS = {'jenselme': '464c7c05b9bb53fb136092f1b9807ad91ec51321'}
17

  
18
#les entêtes des requêtes POST et PUT
13 19
Headers = {'content-type': 'application/json', 'X-Redmine-API-Key': ''}
20

  
21
#là où on poste les tâches
14 22
URL = 'https://forge.centrale-marseille.fr/issues'
23

  
24
#là où sont les tâches
15 25
LIST_TODO = 'http://localhost/portail/liste-tache'
26

  
27
#url de base de l’emplacement du contenu
16 28
BASE_URL = 'http://localhost/portail'
17 29
PROJECT_ID = 30
18 30
TRACKER_ID = 2
31

  
32

  
33
########## dictionnaires de correspondance
19 34
DONE_RATIO = {'En pause': 50, 'À commencer': 0, 'Entamée': 20, 'Bien avancée': 80, 'Terminée (success)': 100, 'Fermée (won\'t fix)': 100}
20 35
PRIORITY = {'5 - Très basse': 3, '4 - Basse': 3, '3 - Moyenne': 4, '2 - Haute': 5, '1 - Très haute': 6,\
21 36
        'Très basse': 3, 'Basse': 3, 'Moyenne': 4, 'Haute': 5, 'Très haute':6,\
22 37
        '0': 3, '1': 3, '2': 4, '3': 5, '4': 6}
23 38
STATUS = {'En cours': 2, 'Fermée': 5, 'Rejetée': 6, 'En pause': 7}
24
#NB : 17 : drupal6, 18 : drupal7
39
#NB sur le portail, on a les équivalences suivantes
40
#pour le champ version de drupal : 17 : drupal6, 18 : drupal7
25 41
DRUPAL_VERSION = {'17': 2, '18': 1}
26 42

  
27 43
def give_api_key(submiter):
44
    "Donne la clé API de submiter ou celle de jenselme si c’est la seule"
28 45
    if submiter in SUBMITERS:
29 46
        return SUBMITERS[submiter]
30 47
    else:
......
32 49

  
33 50

  
34 51
def give_comments_ids(nid):
52
    "permet de récupérer les id des commentaires de la tâche nid"
35 53
    page = urllib.request.urlopen(BASE_URL + '/entity_json/node/' + nid).read()
36 54
    page_json = json.loads(page.decode('utf-8'))
37 55
    comments_json = page_json['comments']
......
45 63

  
46 64

  
47 65
def give_comments(cids):
66
    "Donne la liste du texte des commentaires pour chaque cid in cids"
48 67
    comments = list()
49 68
    for cid in cids:
50 69
        comment = urllib.request.urlopen(BASE_URL + '/comment/' + cid + '.json').read()
......
53 72

  
54 73

  
55 74
def format(txt):
75
    "prend le texte en html et le renvoie en textile"
56 76
    txt.replace('\n', '')
57 77
    txt.replace('\t', '')
58 78
    with open('tmp.html', 'w') as f:
......
101 121
    return issue
102 122

  
103 123

  
124
######### Main
125

  
104 126
nids, urls = url_parser.give_json_urls(LIST_TODO, BASE_URL)
105 127

  
106 128
h = httplib2.Http()

Formats disponibles : Unified diff