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

"""
例）python api/GetMercari.py --keyword 白石麻衣  --ng_word 専用    --status all --category 1 --item_condition used
"""

import requests
from bs4 import BeautifulSoup
from datetime import datetime
import sys
import json
import re
import argparse
import urllib.request

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

    parser.add_argument("--keyword", type=str)
    parser.add_argument("--ng_word", type=str)
    parser.add_argument("--min_price", type=int)
    parser.add_argument("--max_price", type=int)
    parser.add_argument("--status", type=str)
    parser.add_argument("--category", type=str)
    parser.add_argument("--item_condition", type=str)
    parser.add_argument("--brand", type=str)
    

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

    return(args)


if __name__ == '__main__':

    #args = sys.argv
    
    price_min = ""
    price_max = ""
    keyword = ""
    ng_word_str = ""
    ng_word_list = []
    category = ""
    status = ""
    item_condition = ""
    # used_flg = 0
    
    #引数
    args = get_args()



    if args.keyword != None:
        keyword = '&keyword=' + args.keyword 

    if args.ng_word != None:
        ng_word_str = args.ng_word
        ng_word_list = ng_word_str.split(',')

    if args.min_price != None:
        price_min = '&price_min=' + str(args.min_price)

    if args.max_price != None:
        price_max = '&price_max=' + str(args.max_price)
    
    if args.category != None:
        category = '&category_root=' + args.category 

    if args.brand != None:
        brand = '&brand_name=' + args.brand 

    if args.status == 'sell':
        status = "&status_on_sale=1"
    elif args.status == 'sold':
        status = "&status_trading_sold_out=1"
    
    if args.item_condition != None:
        if args.item_condition == "new":
            item_condition = '&item_condition_id%5B1%5D=1'
            used_flg = 0
            
        elif args.item_condition == "used":
            item_condition = '&item_condition_id%5B2%5D=1' + \
                '&item_condition_id%5B2%5D=1' + \
                '&item_condition_id%5B3%5D=1' + \
                '&item_condition_id%5B4%5D=1' + \
                '&item_condition_id%5B5%5D=1' + \
                '&item_condition_id%5B6%5D=1'
            used_flg = 1
    
    # url = 'https://www.mercari.com/jp/search/?' + \
    #         keyword +  \
    #         price_min +  \
    #         price_max +  \
    #         status +  \
    #         category + \
    #         item_condition
    
    url = "https://api.mercari.jp/search_index/search?sort=created_time&order=desc&limit=120&keyword=iphone&page=0"
    # print(url)
    # sys.exit()
    
    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)


    # print(r.encoding)

    soup = BeautifulSoup(r.text.encode(r.encoding),'lxml')
    
    print(soup.html)

    list = []
    
    content_code = soup.find("section",class_="layout__StyledSection-sc-1lyi7xi-6")

    # print(content_code)
    
    exit()
    # print(soup)
    # for node in soup.find_all("section",class_="items-box"):
    for node in content_code.find_all("li"):
        print("aaa")
        sold_out_flg = 0
        ng_word_flg = 0
        dict = {}
        itemName = node.find("img", { "class" : "items-box-name" }).text


        #除外ワードがあったら、スルー
        for ng_word in ng_word_list:                
            if ng_word in itemName:
                ng_word_flg = 1
                break
        if ng_word_flg == 1:
            continue
                


        
        itemPrice = node.find("div", { "class" : "items-box-price" }).text
        link_str = node.find("a").get("href")
        link_str = link_str.split('?')[0]

        itemUrl = 'https://mercari.com' + link_str
        itemImageUrl = node.find("img").get("data-src")

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



		#数字のみ抽出
        itemPrice = re.sub(r'\D','',itemPrice)
        #print(itemName.encode('cp932', "ignore"))
        #print(itemPrice)
        #print(itemUrl)
        #print(itemImageUrl)

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

        if 'used_flg' in locals():
            dict['used_flg'] = used_flg
        



        # dict['aaa'] = "aaa"
        
        list.append(dict)
        #print list
        
    
    #print(len(list))
    print(json.dumps(list))
    

