diff options
Diffstat (limited to 'docs/scripts')
-rw-r--r-- | docs/scripts/create_publications.py | 99 | ||||
-rw-r--r-- | docs/scripts/generate_desktop.py | 27 | ||||
-rw-r--r-- | docs/scripts/generate_help_desktop.py | 30 | ||||
-rw-r--r-- | docs/scripts/update_publications.py | 74 |
4 files changed, 230 insertions, 0 deletions
diff --git a/docs/scripts/create_publications.py b/docs/scripts/create_publications.py new file mode 100644 index 00000000..c260c760 --- /dev/null +++ b/docs/scripts/create_publications.py @@ -0,0 +1,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) + diff --git a/docs/scripts/generate_desktop.py b/docs/scripts/generate_desktop.py new file mode 100644 index 00000000..28cabea9 --- /dev/null +++ b/docs/scripts/generate_desktop.py @@ -0,0 +1,27 @@ + +import os +manuals =["netinstall","mcc", "installer","draklive"] +langs={} +langs['netinstall'] = ['ca','cs','de','el','en','es','et','eu','fr','ja','nb','nl','pt_br','sl','sv','tr','uk','zh_CN'] +langs['installer']=['ca','cs','de','el','en','eo','es','et','eu','fr','hr','hu','id','it','ja','nb','nl','pl','pt_br','ro','ru','sq','sv','tr','uk','zh_CN'] +langs['mcc']=['ca','cs','da','de','el','en','eo','es','et','eu','fr','id','it','ja','nb','nl','pl','pt_br','ro','ru','sq','sv','tr','uk','zh_CN'] +langs['draklive']=['cs','de','el','en','es','et','eu','fr','hr','ja','nb','nl','ro','ru','sk','sl','sq','sv','tr','uk','zh_CN'] + +languages_fr = {'ca':'catalan','cs':'tchèque','da':'danois', 'de':'allemand', 'el':'grec', 'en':'anglais','eo':'espéranto', 'es':'espagnol', + 'et':'estonien','eu':'basque', 'fr':'français', 'hr':'croate','hu':'hongrois','id':'indonésien','it':'italien','ja':'japonais','nb':'norvégien','nl':'néerlandais','pl':'polonais', + 'pt_br':'Brésilien','ro':'roumain','ru':'russe', 'sk':'slovaque','sl':'slovène','sq':'albanais','sv':'suédois','tr':'turc', 'uk':'ukrainien', 'zh_CN':'chinois'} +languages_en = {'ca':'Catalan', 'cs':'Chech', 'da':'Danish','de':'German', 'el':'Greek', 'en':'English','eo':'Esperanto', 'es':'Spanish', 'et':'Estonian', 'eu':'Basque', 'fr':'French', + 'hr':'Croatian','hu':'Hungarian','id':'Indonesian','it':'Italian', 'ja':'Japanese','nl':'Dutch', 'nb':'Bokmal Norwegian','pl':'Polish', 'pt_br':'Brazilian Portuguese', + 'ro':'Romanian','ru':'Russian', 'sk':'Slovak','sl':'Slovenian','sq':'Albanian', 'sv':'Swedish', 'tr':'Turkish', 'uk':'Ukranian','zh_CN':'Simplified Chinese'} +for manual in manuals: + for lang in langs[manual]: + nom_fichier = '/home/yves/Documents/mageia-doc-trunk/{1}/desktop/mageia-doc-{1}-{0}.desktop'.format( lang, manual) + with open(nom_fichier , 'w', encoding="utf-8") as nf: + nf.write('[Desktop Entry]\n') + nf.write('Name=@VENDOR@ Net Installer Manual in ' + languages_en[lang]) + nf.write("\nName[fr]=Manuel utilisateur de l'installation réseau de @VENDOR@ en " + languages_fr[lang]) + nf.write('\nComment=The @VENDOR@ manuals in ' + languages_en[lang]) + nf.write('\nComment[fr]=Les manuels utilisateur de @VENDOR@ en ' + languages_fr[lang]) + nf.write('\nExec=@BINDIR@/www-browser @DOCDIR@/mageia/{0}/{1}/index.html'.format(lang,manual)) + nf.write('\nIcon=documentation_section\nTerminal=false\nType=Application\nStartupNotify=true\nCategories=Documentation;Settings;') + diff --git a/docs/scripts/generate_help_desktop.py b/docs/scripts/generate_help_desktop.py new file mode 100644 index 00000000..66c038ec --- /dev/null +++ b/docs/scripts/generate_help_desktop.py @@ -0,0 +1,30 @@ + +import os +manuals =["netinstall","mcc", "installer","draklive"] +langs={} +langs['netinstall'] = ['ca','cs','de','el','en','es','et','eu','fr','ja','nb','nl','pt_br','sl','sv','tr','uk','zh_CN'] +langs['installer']=['ca','cs','de','el','en','eo','es','et','eu','fr','hr','hu','id','it','ja','nb','nl','pl','pt_br','ro','ru','sq','sv','tr','uk','zh_CN'] +langs['mcc']=['ca','cs','da','de','el','en','eo','es','et','eu','fr','id','it','ja','nb','nl','pl','pt_br','ro','ru','sq','sv','tr','uk','zh_CN'] +langs['draklive']=['cs','de','el','en','es','et','eu','fr','hr','ja','nb','nl','ro','ru','sk','sl','sq','sv','tr','uk','zh_CN'] +product={} +product['netinstall'] = "Installation with tiny image" +product['installer']= "DrakX installer" +product['mcc']="Mageia Control Center" +product['draklive']="Live installer" +languages_fr = {'ca':'catalan','cs':'tchèque','da':'danois', 'de':'allemand', 'el':'grec', 'en':'anglais','eo':'espéranto', 'es':'espagnol', + 'et':'estonien','eu':'basque', 'fr':'français', 'hr':'croate','hu':'hongrois','id':'indonésien','it':'italien','ja':'japonais','nb':'norvégien','nl':'néerlandais','pl':'polonais', + 'pt_br':'Brésilien','ro':'roumain','ru':'russe', 'sk':'slovaque','sl':'slovène','sq':'albanais','sv':'suédois','tr':'turc', 'uk':'ukrainien', 'zh_CN':'chinois'} +languages_en = {'ca':'Catalan', 'cs':'Chech', 'da':'Danish','de':'German', 'el':'Greek', 'en':'English','eo':'Esperanto', 'es':'Spanish', 'et':'Estonian', 'eu':'Basque', 'fr':'French', + 'hr':'Croatian','hu':'Hungarian','id':'Indonesian','it':'Italian', 'ja':'Japanese','nl':'Dutch', 'nb':'Bokmal Norwegian','pl':'Polish', 'pt_br':'Brazilian Portuguese', + 'ro':'Romanian','ru':'Russian', 'sk':'Slovak','sl':'Slovenian','sq':'Albanian', 'sv':'Swedish', 'tr':'Turkish', 'uk':'Ukranian','zh_CN':'Simplified Chinese'} + +for manual in manuals: + for lang in langs[manual]: + nom_fichier = '/home/yves/Documents/mageia-doc-trunk/{1}/help-desktop/mageia-doc-help-{1}-{0}.desktop'.format( lang, manual) + with open(nom_fichier , 'w', encoding="utf-8") as nf: + nf.write('[Desktop Entry]\n') + nf.write("X-DocPath=file:@DOCDIR@/mageia/{0}/{1}/index.html\n".format(lang,manual)) + nf.write('Icon=mageia\n') + nf.write('Name={0} manual in {1}\n'.format(product[manual], languages_en[lang])) + nf.write("Name[fr]=Manuel d'nstallation de Mageia en {}\n".format(languages_fr[lang])) + nf.write("Comment=Help for {}\n".format(product[manual])) diff --git a/docs/scripts/update_publications.py b/docs/scripts/update_publications.py new file mode 100644 index 00000000..20aa3458 --- /dev/null +++ b/docs/scripts/update_publications.py @@ -0,0 +1,74 @@ +import requests, json +from requests.auth import HTTPBasicAuth +import os.path as path +import time + +def list_pubs(manual): + pub_params={} + user = "to_complete@mageia.org" + pw = "to_complete" + site = "http://mageia.calenco.com:8284/workspaces/" + ws = "Mga7" + #storsrv = "storageservers/STOR0504658793a605a18f558fcea37f7931" + storsrv = "storageservers/Default" + headers = {'content-type': 'application/json'} + if manual != '': + pub_params['file'] = manual + pub_params['input']= '/workspaces/%s/publications'.format(ws) + print("Wait to get the list of publications...\n") + resp = requests.get(site+ws+'/publications', + auth=HTTPBasicAuth(user, pw), + data=json.dumps(pub_params)) + if int(resp.status_code) != 200: + # This means something went wrong. + print('GET /workspaces/ {}'.format(resp.status_code)) + exit() + print("Writing liste.csv") + with open("listeMga7.csv",'w') as f: + f.write("Name\thref\tInput\tOutput\tupdated\tStatus\tAutomatic\n") + for item in resp.json(): + print(item) + if item['output']['method'] in ('FTP','SFTP'): + serv=item['output']['storsrv'] + f.write("{name}\t{href}\t{input}\t{output}\t{updated}\t{status}\t{automatic}\t{server}\t{path}\n".format(name=item["name"],href=item["href"],updated=item["updated"], + output=item['output']['name'],status=item["status"],automatic=item["automatic"], input=item['input']['href'], server = serv, path=item['output']['path'])) + else: + serv='' + exit() + # Set a new storage server + for item in resp.json(): + # Point to prestored server + if item['output']['method'] in ('FTP','SFTP'): + print('{site}{ws}/publications/{name}'.format(site=site, ws=ws,name=item['name'])) + print(item['output']['path'], item['output']['storsrv']) + item['output']['rs-path']=item['output']['path'] + if not item['output']['zip'] : + item['output']['rs-multifile']='multifile' + item['output']['storsrv']= '/workspaces/{ws}/strorageservers/{storsrv}'.format (ws=ws, storsrv=storsrv) + resp2 = requests.put('{site}{ws}/publications/{name}'.format(site=site, ws=ws,name=item['name']), + auth=HTTPBasicAuth(user, pw), + data=json.dumps(item), + headers=headers) + if int(resp2.status_code) != 200: + # This means something went wrong. + print('PUT /workspaces/ {}: {}'.format(resp2.status_code, resp2.text)) + time.sleep(15) + exit() + # renew each publication + for item in resp.json(): + if item['name'].find('WebHelp') != -1: + pub_params = {} + pub_params['name']= item['name'] + print(item['name'], pub_params) + resp2 = requests.post('{site}{ws}/pubsqueue'.format(site=site, ws=ws), + auth=HTTPBasicAuth(user, pw), + data=json.dumps(pub_params), + headers=headers) + if int(resp2.status_code) != 202: + # This means something went wrong. + print('GET /workspaces/ {}'.format(resp2.status_code)) + exit() + # Add delay of 30 seconds between each publication + time.sleep(30) + +list_pubs('') |