# HG changeset patch # User rougeronj # Date 1433933636 -7200 # Node ID 4b222d82735e43e5e79ea6ee97af3a51e9ab08f8 # Parent fd1b3d9a928e4a7c37e17725ee0efc6271870aa4 make serializers folder a package and extract extractor file from it diff -r fd1b3d9a928e -r 4b222d82735e server/ammicosrv/ammico/extractors.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/server/ammicosrv/ammico/extractors.py Wed Jun 10 12:53:56 2015 +0200 @@ -0,0 +1,67 @@ + +import json + +import requests +import xmltodict + +from ammicosrv.ammico.utils import fetchJson, MyHTMLParser + + +def extractFromMIMO(slide): + details = {} + params = {'of': 'json', 'q': 'record_inventorynumber:' + slide.id_inventory} + data = requests.get(slide.book.exposition.url_exalead, params=params) + results = json.loads(data.content.decode('utf-8')) + if (len(results['hits']) == 1): + for i in results['hits'][0]['metas']: + if('images' not in i): + if ('name' in i): + details[i['name']] = i['value'] + else: + details.setdefault('images', []).append(i['images'][0]['value']) + details['title'] = details.pop('name') + return details + +def extractFromJameSpot(slide): + details={} + stopList = fetchJson(slide.book.exposition.url_jamespot + '&f=list&o=article&type=stop&itemFormat=article') + for stops in stopList: + if (slide.id_stop == stops['idStop']): + details = stops + details.setdefault('images', []).append(details.pop('firstImg')) + details['description'] = details.pop('captionImg') + return details + +def extractFromOrpheo(slide): + details = {} + params = {'id': slide.id_stop.replace('stop-', '')} + data = requests.get(slide.book.exposition.url_orpheo, params=params) + parsed_data = xmltodict.parse(data.content.decode('utf-8')) + + if ('item' in parsed_data['result']): + details = { + 'title': parsed_data['result']['item']['title'], + 'id_inventory': parsed_data['result']['item']['Numero_inventaire'], + } + parser = MyHTMLParser() + + if (parsed_data['result']['item']['Description']): + parser.feed(parsed_data['result']['item']['Description']) + details['description']= parser.description + + if (parsed_data['result']['item']['Audio']): + parser.feed(parsed_data['result']['item']['Audio']) + details['images']= parser.images + details['audio']= parser.audio + details['captions']= parser.captions + + if (parsed_data['result']['item']['Video']): + parser.feed(parsed_data['result']['item']['Video']) + details['video']= parser.video + details['images']= parser.images + + #if (parsed_data['result']['item']['Image']): + # parser.feed(parsed_data['result']['item']['Image']) + # details['image']= parser.caption + + return details \ No newline at end of file diff -r fd1b3d9a928e -r 4b222d82735e server/ammicosrv/ammico/serializers/__init__.py diff -r fd1b3d9a928e -r 4b222d82735e server/ammicosrv/ammico/serializers/ammico.py --- a/server/ammicosrv/ammico/serializers/ammico.py Wed Jun 10 12:32:10 2015 +0200 +++ b/server/ammicosrv/ammico/serializers/ammico.py Wed Jun 10 12:53:56 2015 +0200 @@ -1,7 +1,7 @@ from rest_framework import serializers from ammicosrv.ammico.models import Book, Slide -from ammicosrv.ammico.serializers.extractors import extractFromMIMO, extractFromJameSpot +from ammicosrv.ammico.extractors import extractFromMIMO, extractFromJameSpot from ammicosrv.ammico.serializers.taggit import TaggitSerializer, TagListSerializerField diff -r fd1b3d9a928e -r 4b222d82735e server/ammicosrv/ammico/serializers/extractors.py --- a/server/ammicosrv/ammico/serializers/extractors.py Wed Jun 10 12:32:10 2015 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ - -import json - -import requests -import xmltodict - -from ammicosrv.ammico.utils import fetchJson, MyHTMLParser - - -def extractFromMIMO(slide): - details = {} - params = {'of': 'json', 'q': 'record_inventorynumber:' + slide.id_inventory} - data = requests.get(slide.book.exposition.url_exalead, params=params) - results = json.loads(data.content.decode('utf-8')) - if (len(results['hits']) == 1): - for i in results['hits'][0]['metas']: - if('images' not in i): - if ('name' in i): - details[i['name']] = i['value'] - else: - details.setdefault('images', []).append(i['images'][0]['value']) - details['title'] = details.pop('name') - return details - -def extractFromJameSpot(slide): - details={} - stopList = fetchJson(slide.book.exposition.url_jamespot + '&f=list&o=article&type=stop&itemFormat=article') - for stops in stopList: - if (slide.id_stop == stops['idStop']): - details = stops - details.setdefault('images', []).append(details.pop('firstImg')) - details['description'] = details.pop('captionImg') - return details - -def extractFromOrpheo(slide): - details = {} - params = {'id': slide.id_stop.replace('stop-', '')} - data = requests.get(slide.book.exposition.url_orpheo, params=params) - parsed_data = xmltodict.parse(data.content.decode('utf-8')) - - if ('item' in parsed_data['result']): - details = { - 'title': parsed_data['result']['item']['title'], - 'id_inventory': parsed_data['result']['item']['Numero_inventaire'], - } - parser = MyHTMLParser() - - if (parsed_data['result']['item']['Description']): - parser.feed(parsed_data['result']['item']['Description']) - details['description']= parser.description - - if (parsed_data['result']['item']['Audio']): - parser.feed(parsed_data['result']['item']['Audio']) - details['images']= parser.images - details['audio']= parser.audio - details['captions']= parser.captions - - if (parsed_data['result']['item']['Video']): - parser.feed(parsed_data['result']['item']['Video']) - details['video']= parser.video - details['images']= parser.images - - #if (parsed_data['result']['item']['Image']): - # parser.feed(parsed_data['result']['item']['Image']) - # details['image']= parser.caption - - return details \ No newline at end of file