from Bio import Entrez
import boto3
import json
import xml.etree.ElementTree as ET
import os

translate = boto3.client('translate')
term = os.environ['term']
mindate = os.environ['mindate']
maxdate = os.environ['maxdate']


def lambda_handler(event, context):
    print('######Set up Biopython & Seraching keyword on DB######')
    Entrez.email = "Other@example.com"
    handle = Entrez.esearch(db="pubmed", term=term,
                            datetype='pdat', mindate=mindate, maxdate=maxdate)
    record = Entrez.read(handle)
    print(record["IdList"])
    for pid in record["IdList"]:
        mylist = {}
        handle2 = Entrez.efetch(db="pubmed", id=pid, retmode="xml")
        xml = handle2.read()
        root = ET.fromstring(xml)
        for abstract in root.iter('AbstractText'):
            if abstract.text is None:
                continue
            print('######Translating abstract by Amazon Translate######')
            print('Source Text:',abstract.text)
            response = translate.translate_text(
                Text=abstract.text,
                SourceLanguageCode='en',
                TargetLanguageCode='ja'
                )
            d = response['TranslatedText']
            print('Translated Text:', d)
            print('#######--Done Amazon Translate job--######')