aboutsummaryrefslogtreecommitdiffstats
path: root/docs/scripts/create_publications.py
blob: c260c760815e181ca63a7576255191e98764a40b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
import requests, json, time
from requests.auth import HTTPBasicAuth

'''
This script can create a collection of publications in Calenco. It use Rest API to launch requests to Calenco.
Specify:
- your credentials
- the workspace ws
- the storsrv, defined in Calenco and pointing to the server storing the publications
Check the publication list, in particular the collection of language in each manual
'''
def test():
    resp = requests.get('http://mageia.calenco.com:8284/workspaces/Documentation/publications/DrakX-FR-WebHelp', auth=HTTPBasicAuth('name','pw'))
    if resp.status_code != 200:
        # This means something went wrong.
        print('GET /workspaces/ {}'.format(resp.status_code))
        exit()
    #for item in resp.json():
    item = resp.json()
    print(item)

#print('name: {}\nhref: {}\nautomatic: {}\n isOutdatad: {}\n xsl : :{}\n input : :{}\n output ::{}\n'.format(item['name'], 
#    item['href'],  item['automatic'],  item['isOutdated'],  item['xsl'],  item['input'],  item['output']))
def create_pub(pub_params,ws):
    user = "to_complete@mageia.org"
    pw = "password_to_complete"
    site = "http://mageia.calenco.com:8284/workspaces/"
   
    resp = requests.post('{}{}/publications'.format(site,ws), 
            auth=HTTPBasicAuth(user, pw),
            data=json.dumps(pub_params))
    #item = resp.json()
    print('Pour : %s'% pub_params['name'] )
    print(resp.status_code, resp.text)
    if resp.status_code == 201:
        time.sleep(10)

ws = "Mga7"
dest = "/public_html/{}".format(ws)
#storsrv = "storageservers/STOR0504658793a605a18f558fcea37f7931"  Documentation
storsrv = "storageservers/STOR5fa984e7e2ee1d4be873674cf37561b1"

pub_params={}
pub_paths = {'DrakLive' : 'draklive', 'MCC' : 'mcc', 'DrakX' : 'installer', 'NetInstall' : 'netinstall'}
# code de deux lettres de la langue, manuel parmi DrakLive, MCC, DrakX, NetInstall
listLang = {
    "DrakLive": ('cs','de','el','en','es','et','eu','fr','hr','ja','nb','nl','pt_BR','ro','ru','sk','sq','sl','sv','tr','uk','zh_CN'),
    'DrakX' : ('ca','cs','de','el','en','eo','es','et','eu','fr','hr','hu','ja','nb','nl','pl',
             'pt_BR','ro','ru','sk','sl','sq','sv','tr','uk','zh_CN')  ,
    'MCC' : ('ca','cs','da','de','el','en','es','et','eu','fr','hu','id','it','ja','nb','nl','pl',
             'pt_BR','ro','ru','sk','sl','sq','sv','tr','uk','zh_CN'),
    'NetInstall' : ('ca','cs','de','el','en','es','et','eu','fr','hu','ja','nb','nl',
             'pt_BR','ru','sl','sv','tr','uk','zh_CN') 
    }
pubs = []
for manual in listLang.keys():
    for lang in listLang[manual]:
        pubs.append([lang,manual])
    
for pub in pubs:
    #WebHelp
    pub_params['input']=  '/workspaces/{ws}/content/{lang}/{manual}.xml'.format(manual=pub[1], lang=pub[0],ws = ws)
    pub_params['name'] = '{manual}-{lang}-WebHelp'.format(manual=pub[1], lang=pub[0].upper())
    pub_params['rs-path'] = "{dest}/{lang}/{path}".format( lang=pub[0].lower(), path=pub_paths[pub[1]], dest=dest)
    pub_params['outname'] = '{manual}'.format(manual=pub_paths[pub[1]])
    pub_params['intype'] = 'DocBook5.0'
    pub_params['toolchain'] = 'DocBook_Screen_WebHelp'
    pub_params['xsl'] =  '/workspaces/{}/content/WebHelp-DrakX.xsl'.format(ws)
    if (pub[1] == "DrakLive"):
        pub_params['xslparams'] = 'profile.condition=live'
    elif(pub[1] == "DrakX"):
        pub_params['xslparams'] = 'profile.condition=classical'
    pub_params['method'] = 'FTP'
    pub_params['storsrv'] = '/workspaces/{}/{}'.format(ws,storsrv)
    pub_params['rs-multifile'] = True
    pub_params['automatic'] = True
    create_pub(pub_params,ws)
    # WebHelp-zipped
    pub_params['name'] = '{manual}-{lang}-WebHelp-zipped'.format(manual=pub[1], lang=pub[0].upper())
    del pub_params['rs-multifile']
    pub_params['rs-path'] = "{dest}/zipped/{path}/{lang}".format(dest = dest, lang=pub[0].lower(), path=pub_paths[pub[1]])
    pub_params['outname'] = '{manual}-{lang}-WebHelp-zipped.zip'.format(lang=pub[0].upper(), manual=pub[1])
    create_pub(pub_params,ws)
    # Epub
    pub_params['name'] = '{manual}-{lang}-EPUB'.format(manual=pub[1], lang=pub[0].upper())
    pub_params['rs-path'] = "/public_html/EPUB/{path}".format( path=pub_paths[pub[1]])
    pub_params['toolchain'] = 'DocBook_EPUB3_Chunk'
    pub_params['xsl'] = 'http://www.calenco.com/xsl/epub3/epub.xsl'
    pub_params['outname'] = '{manual}-{lang}-EPUB.epub'.format(lang=pub[0].upper(), manual=pub[1])
    create_pub(pub_params,ws)
    # PDF (cover)
    pub_params['input']=  '/workspaces/{ws}/content/{lang}/{manual}-cover.xml'.format(manual=pub[1], lang=pub[0], ws = ws)
    pub_params['name'] = '{manual}-cover-{lang}-PDF'.format(manual=pub[1], lang=pub[0].upper())
    pub_params['rs-path'] = "{dest}/PDF/{path}".format( path=pub_paths[pub[1]],dest=dest)
    pub_params['xsl'] =  'http://www.calenco.com/xsl/docbook/ns/fo/calenco-fo.xsl'
    pub_params['outname'] = '{manual}-cover-{lang}-PDF.pdf'.format(lang=pub[0].upper(), manual=pub[1])
    pub_params['toolchain'] = 'DocBook_to_PDF_FOP'
    create_pub(pub_params,ws)