X-Git-Url: https://scm.cri.ensmp.fr/git/photoprint.git/blobdiff_plain/ccaba0f54cbd41250107d36a49154353425da8b3..b521f0db73266a7bd6b69e6a9891046a03c482ee:/_utils/import_printing_list.py diff --git a/_utils/import_printing_list.py b/_utils/import_printing_list.py deleted file mode 100755 index 245e1e1..0000000 --- a/_utils/import_printing_list.py +++ /dev/null @@ -1,119 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -####################################################################################### -# Copyright © 2009 Benoît Pin # -# Plinn - http://plinn.org # -# # -# # -# This program is free software; you can redistribute it and/or # -# modify it under the terms of the GNU General Public License # -# as published by the Free Software Foundation; either version 2 # -# of the License, or (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program; if not, write to the Free Software # -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # -####################################################################################### -""" -Downloads RSS based order description and make a local human readable file tree -to facilitate printing tasks. - -""" - - -from urllib2 import HTTPBasicAuthHandler -from urllib2 import build_opener -from urllib2 import urlopen -from xml.dom.minidom import parseString -from xml.dom import Node -from os import mkdir, chdir -from os.path import abspath, join, expanduser, exists -from getpass import getpass - -ELEMENT_NODE = Node.ELEMENT_NODE - -def getHttpOpener(url, login, password) : - auth_handler = HTTPBasicAuthHandler() - host = '/'.join(url.split('/', 3)[:3]) - auth_handler.add_password('Zope', host, login, password) - opener = build_opener(auth_handler) - return opener - -def getXml(url, opener) : - url = '%s?disable_cookie_login__=1' % url - xml = opener.open(url).read() - return xml - -def genFileTree(url, login, password, dest) : - opener = getHttpOpener(url, login, password) - xml = getXml(url, opener) - d = parseString(xml) - doc = d.documentElement - - channel = doc.getElementsByTagName('channel')[0] - orderName = getContentOf(channel, 'title') - - chdir(dest) - mkdir(orderName) - - for item in iterElementChildsByTagName(d.documentElement, 'item') : - ppTitle = getContentOf(item, 'pp:title') - ppQuantity = getContentOf(item, 'pp:quantity') - - printTypePath = join(orderName, ppTitle) - printQuantityPath = join(orderName, ppTitle, ppQuantity) - - if not exists(printTypePath) : - mkdir(printTypePath) - infoFile = open(join(printTypePath, 'info.txt'), 'w') - infoFile.write(getContentOf(item, 'pp:title')) - infoFile.write('\n\n') - infoFile.write(getContentOf(item, 'pp:description')) - infoFile.close() - - if not exists(printQuantityPath) : - mkdir(printQuantityPath) - - hdUrl = '%s?disable_cookie_login__=1' % getContentOf(item, 'link') - localFileName = getContentOf(item, 'title') - print localFileName - localFile = open(join(printQuantityPath, localFileName), 'w') - localFile.write(opener.open(hdUrl).read()) - localFile.close() - -def iterElementChildsByTagName(parent, tagName) : - child = parent.firstChild - while child : - if child.nodeType == ELEMENT_NODE and child.tagName == tagName : - yield child - child = child.nextSibling - -def getContentOf(parent, tagName) : - child = parent.firstChild - while child : - if child.nodeType == ELEMENT_NODE and child.tagName == tagName : - return child.firstChild.nodeValue.encode('utf-8') - child = child.nextSibling - - raise ValueError("%r tag not found" % tagName) - - -def main() : - url = raw_input('url flux xml de la commande : ') - login = raw_input('login : ') - password = getpass('mot de passe : ') - dest = raw_input('cible [~/Desktop]') - if not dest : - dest = expanduser('~/Desktop') - - genFileTree(url, login, password, dest) - -if __name__ == '__main__' : - main() - -