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

"""
例）python GetMercari.py 白石麻衣 0 0 1 category=0 
"""

import requests
from bs4 import BeautifulSoup
from datetime import datetime
import sys
import json
import re
import argparse

def get_args():
    # 準備
    parser = argparse.ArgumentParser()

    parser.add_argument("--url", type=str)
    parser.add_argument("--item_code", type=str)

    # 結果を受ける
    args = parser.parse_args()

    return(args)


if __name__ == '__main__':

    #args = sys.argv
    
    price_code = ""
    price_min = ""
    price_max = ""
    keyword = ""
    mercariStatus = ""
    status = ""
    args = get_args()



    # url = args.url
    url = "https://www.mercari.com/jp/items/" + args.item_code


    # print(url)

    headers = {
            "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0",
            }
    r = requests.get(url, headers=headers)
    soup = BeautifulSoup(r.text.encode(r.encoding),'lxml')
    
    
    sold_out_flg = 0
    dict = {}
    price = soup.find("span", { "class" : "item-price" }).text
    description = soup.find("p", { "class" : "item-description-inner" }).text

    if soup.find("a", { "class" : "item-buy-btn" }) != None:
        dict['sold_flg'] = 0
    else:
        dict['sold_flg'] = 1

    # print(dict)

    item_detail_table = soup.find("table", { "class" : "item-detail-table" })
    
    
    category = item_detail_table.find_all("td")[1].text

    categorie_nodes = item_detail_table.find_all("td")[1].find_all('a')



    if len(categorie_nodes) > 0 :
        category_1_id = re.sub(r'\D','',categorie_nodes[0].get('href'))

        dict['category_1_id'] = category_1_id
        dict['category_1_name'] = categorie_nodes[0].text.replace('\n','').strip()
    if len(categorie_nodes) > 1 :
        category_2_id = re.sub(r'\D','',categorie_nodes[1].get('href'))

        dict['category_2_id'] = category_2_id
        dict['category_2_name'] = categorie_nodes[1].text.replace('\n','').strip()
    if len(categorie_nodes) > 2 :
        category_3_id = re.sub(r'\D','',categorie_nodes[2].get('href'))

        dict['category_3_id'] = category_3_id
        dict['category_3_name'] = categorie_nodes[2].text.replace('\n','').strip()


    brand_nodes = item_detail_table.find_all("td")[2].find_all('a')
    if len(brand_nodes) > 0 :
        brand_id = re.sub(r'\D','',brand_nodes[0].get('href'))
        dict['brand_id'] = brand_id
        dict['brand_name'] = brand_nodes[0].text.replace('\n','').strip()
        # brand_name = brand_nodes[0].text.replace('\n','').strip()
    

    status_nodes = item_detail_table.find_all("td")[3]
    # print(status_nodes.text)

    if len(status_nodes) > 0 :
        # if status_nodes.text.find('新品') or status_nodes.text.find('未使用'):
        #     dict['used_flg'] = 0
        # else:
        #     dict['used_flg'] = 1

        dict['item_condition'] = status_nodes.text


        # print(status_nodes.text)
        # brand_id = re.sub(r'\D','',brand_nodes[0].get('href'))
        # dict['brand_id'] = brand_id
        # dict['brand_name'] = brand_nodes[0].text.replace('\n','').strip()

    # print(dict)
    # sys.exit()

    #数字のみ抽出
    price = re.sub(r'\D','',price)
    #sys.exit()
                                    
    dict['price'] = price
    dict['category'] = category
    dict['description'] = description


    image_list = []
    image_content_node = soup.find("div",{"class": "item-photo"})
    image_nodes = image_content_node.find_all("div", { "class" : "owl-dot" })
    count = 1
    for node in image_nodes:
        if count > 10:
            break
        image_url = node.find("img").get("data-src")
        image_list.append(image_url)
        count = count + 1

    dict['image_urls'] = image_list

    list = []
    similar_item_nodes = soup.find_all("section", { "class" : "items-box" })
    for node in similar_item_nodes:
        child_dict = {}
        price_str = node.find("div", { "class" : "items-box-price" }).text

        itemName = node.find("h3", { "class" : "items-box-name" }).text
        itemPrice = price = re.sub(r'\D','',price_str)
        link_str = node.find("a").get("href")
        link_str = link_str.split('?')[0]
        itemImageUrl = node.find("img").get("data-src")
        itemUrl = 'https://mercari.com' + link_str

        if node.find("div", { "class" : "item-sold-out-badge" }) != None:
            sold_out_flg = 1

        child_dict['target'] = "mercari"
        child_dict['title'] = itemName
        child_dict['price'] = itemPrice
        child_dict['image_url'] = itemImageUrl
        child_dict['link'] = itemUrl
        child_dict['sold_flg'] = sold_out_flg

        list.append(child_dict)

    dict['similar_items'] = list

    #print(list)
    print(json.dumps(dict))
    

