Source code for armatis.parsers.logen

# -*- coding: utf-8 -*-

import re
from armatis.models import Parcel, Track
from armatis.parser import Parser, ParserRequest


[docs]class LogenParser(Parser): def __init__(self, invoice_number, config): config['RESPONSE_ENCODING'] = 'cp949' super(LogenParser, self).__init__(invoice_number, config) parser_request = ParserRequest(url='http://www.ilogen.com/homeshopping/stracker_trace_xml.asp?' \ 'invoice=%s' % self.invoice_number) self.add_request(parser_request)
[docs] def parse(self, parser): tracking_info = parser.find('tracking_info') sender_name = getattr(tracking_info.find('sender_name'), 'string', '') receiver_name = getattr(tracking_info.find('reciver_name'), 'string', '') receiver_addr = getattr(tracking_info.find('reciver_addr'), 'string', '') item_name = getattr(tracking_info.find('item_name'), 'string', '') if sender_name is not None: sender_name = re.sub('[\[CDATA\]]', '', sender_name) if receiver_name is not None: receiver_name = re.sub('[\[CDATA\]]', '', receiver_name) if receiver_addr is not None: receiver_addr = re.sub('[\[CDATA\]]', '', receiver_addr) parcel = Parcel() parcel.receiver = receiver_name parcel.sender = sender_name parcel.address = receiver_addr parcel.note = item_name self.parcel = parcel list_tracking_details = tracking_info.find_all('tracking_details') for tracking_details in list_tracking_details: trans_time = getattr(tracking_details.find('trans_time'), 'string', '') trans_kind = getattr(tracking_details.find('trans_kind'), 'string', '') trans_where = getattr(tracking_details.find('trans_where'), 'string', '') trans_telno = getattr(tracking_details.find('trans_telno'), 'string', '') track = Track() track.time = trans_time track.status = trans_kind track.location = trans_where track.phone1 = trans_telno self.add_track(track)
[docs]class GTXParser(LogenParser): def __init__(self, invoice_number, config): super(GTXParser, self).__init__(invoice_number, config) parser_request = ParserRequest('http://www.gtxlogis.co.kr/tracking/' \ 'tracking_xml.asp?invoice=%s' % self.invoice_number) self.add_request(parser_request) self.parser_request = parser_request