Esempio n. 1
0
class Build(object):
    def __init__(self, ReportType):
        self.simple = SIMPLE
        self.shack = SHACK
        self.mws = MWSConnection(Merchant=self.simple,
                                 aws_access_key_id=ID,
                                 aws_secret_access_key=SECRET)
        self.ProcessingStatus = None
        # self.ReportType = '_GET_FBA_MYI_ALL_INVENTORY_DATA_'
        self.ReportType = ReportType
        self.Report = None
        self.GeneratedReportId = None
        self.hasNext = False
        self.nextToken = None
        self.ReportRequestList = None
        self.ReportList = None
        self.ReportRequestId = None

    def get_report(self):
        # Step 1 request report
        response = self.mws.request_report(MarketplaceId=self.shack,
                                           ReportType=self.ReportType)
        # Step 2 Get ReportRequestId
        self.ReportRequestId = response.RequestReportResult.\
            ReportRequestInfo.ReportRequestId
        # Step 3 Get  GetReportRequestList, Get report processing status
        # Wait untill Done
        while self.ProcessingStatus != '_DONE_' and \
                self.ProcessingStatus != '_CANCELLED_':
            self.ReportRequestList = self.mws.get_report_request_list(
                ReportRequestIdList=[self.ReportRequestId])
            self.ProcessingStatus = self.ReportRequestList.\
                GetReportRequestListResult.ReportRequestInfo[0].\
                ReportProcessingStatus
            print self.ProcessingStatus
            if self.ProcessingStatus == '_SUBMITTED_':
                time.sleep(15)
        # Step 4 - Get Generated Report Id
        if self.ProcessingStatus == '_CANCELLED_':
            self.ReportList = self.mws.get_report_list(
                ReportTypeList=[self.ReportType])
            for item in self.ReportList.GetReportListResult.ReportInfo:
                self.ReportRequestId = item.ReportRequestId
                self.ReportRequestList = self.mws.get_report_request_list(
                    ReportRequestIdList=[self.ReportRequestId])
                self.GeneratedReportId = self.ReportRequestList.\
                    GetReportRequestListResult.\
                    ReportRequestInfo[0].GeneratedReportId
                break
        else:
            self.GeneratedReportId = self.ReportRequestList.\
                GetReportRequestListResult.ReportRequestInfo[0].\
                GeneratedReportId
        # Step7 - Get Report
        self.Report = self.mws.get_report(ReportId=self.GeneratedReportId)
        # Step 8 - Process Report and save it as csv

    def write_report_data(self, name):
        if self.Report is not None:
            conn = S3Connection(AWSACCESS, AWSSECRET)
            bucket = conn.get_bucket('invntry-rprt')
            key = Key(bucket)
            key.key = '{0}_report.txt'.format(name)
            key.set_contents_from_string(self.Report)
        else:
            return "Error, No Report Found!  Please get_inventory_report First"
        return
    # Report finished successfully.
    if not (hasattr(rptReqInfo, 'GeneratedReportId')):
        sys.stderr.write("Report status request does not contain",
                         "the expected 'GeneratedReportId'")
        sys.exit(4)
    rptId	= rptReqInfo.GeneratedReportId
    print("Report completed with ID", rptId)
    break

if rptId is None:
        sys.stderr.write("Report timed out after 5 minutes.")
        sys.exit(5)

# Fetch and process the report.
rptResp = conn.get_report(
    ReportId	= rptId
)
# Report is bytes, not str.
# Have to be careful converting because weird chars like degree sign.
rptTxt		= rptResp.decode(errors='ignore')
fldNames	= None
# Lines terminated with "\r\n".
# Hopefully that is consistent across all platforms.
for rec in rptTxt.split(sep="\r\n"):
    # print(repr(rec), '|')

    # Since using end-of-line as *separator*, will get trailing empty line.
    # Ignore it.
    if len(rec) < 2:
        continue
    
Esempio n. 3
0
File: test.py Progetto: ketu/flasky
SecretKey = sys.argv[4]

print 'MarketplaceID is ', MarketPlaceID
print 'Merchant is ', Merchant
print 'AccessKey is ', AccessKeyID
print 'Secret key is ', SecretKey
conn = MWSConnection(AccessKeyID,SecretKey)

conn.SellerId = Merchant
conn.Merchant = Merchant
conn.MarketplaceId = MarketPlaceID


myId = '1432456045'

# sample one
conn.get_report(ReportId=myId)

# sample two
conn.get_report(myId)

# sample three
conn.get_report(myId,)

# sample four
conn.get_report(1432456045)

# sample five
conn.get_report('1432456045')