taobin_project/xml/event/dummy_layout_promotion.py

302 lines
12 KiB
Python

if "v2" in param:
print("V2 ignore")
else:
#print("params=" + param)
#print( "dir= " + directory_to_process + "/page_catalog_group_recommend.xml");
file_recommend = open(directory_to_process + "/page_catalog_group_recommend.xml", 'r')
content_recommend = file_recommend.read()
#print(file_xml.read())
# ; include-file=dummy_layout.inc
# file_inc = open(directory_to_process + "/dummy_layout.inc", 'r')
# file_inc_content = file_inc.read()
file_inc1_content = ""
file_recommend.close()
if "template1" in param:
print("Here", param)
file_inc1 = open(directory_to_process + "/event/promotion_template1.inc", 'r')
file_inc1_content = file_inc1.read()
file_inc_img = open(directory_to_process + "../image/event/image_template1", 'r')
file_inc1_img_content = file_inc_img.read()
# replace key.
sp_key = file_inc1_img_content.split("\n")
#print("sp_key = " + str(len( sp_key)))
for sp_line in sp_key:
sp_line = sp_line.strip()
key_val = sp_line.split("=")
if len( key_val) == 2:
#print("k = " + key_val[0] + " val=" + key_val[1])
file_inc1_content = file_inc1_content.replace( "###" + key_val[0], '"' + key_val[1].strip() + '"')
file_inc_event_click = open(directory_to_process + "/event/promotion_onclick1.inc", 'r')
file_inc_event_click_content = file_inc_event_click.read()
file_inc1_content = file_inc1_content.replace("###EventOnClick", file_inc_event_click_content)
#print(file_inc2_content)
#print( file_inc_content)
file_inc = open(directory_to_process + "/dummy_layout.inc", 'r')
file_inc_content = file_inc.read()
content_data_was_repack = content_recommend.replace(";dummy_layout.inc", file_inc_content)
content_data = content_data_was_repack.replace(";BigLogoLayout", file_inc1_content)
begin_text = content_data.index(";TAGESP")
end_text = content_data.index(";TAGESP", begin_text + 7)
#print("sub text = " + str(begin_text) + " end = " + str(end_text))
tmp1 = content_data[: begin_text - 7]
tmp2 = content_data[ end_text:-1]
#print("tmp1=" + tmp1)
#print("tmp2=" + tmp2)
content_data = tmp1 + tmp2
file_xml3_out = open(directory_to_process + "/event/out_put_file1.txt", 'r')
file_xml3_out_content = file_xml3_out.read()
file_xml3_out_content = file_xml3_out_content.strip()
file_xml3_out_content = file_xml3_out_content.replace("\r", "")
file_xml3_out_content = file_xml3_out_content.replace("\n", "")
file_xml3 = open(directory_to_process + file_xml3_out_content, 'w')
file_xml3.write( content_data)
file_xml3.close()
if "template2" in param:
file_inc2 = open(directory_to_process + "/event/promotion_template2.inc", 'r')
file_inc2_content = file_inc2.read()
file_inc_img = open(directory_to_process + "../image/event/image_template2", 'r')
file_inc2_img_content = file_inc_img.read()
# replace key.
sp_key = file_inc2_img_content.split("\n")
#print("sp_key = " + str(len( sp_key)))
for sp_line in sp_key:
sp_line = sp_line.strip()
key_val = sp_line.split("=")
if len( key_val) == 2:
#print("k = " + key_val[0] + " val=" + key_val[1])
file_inc2_content = file_inc2_content.replace( "###" + key_val[0], '"' + key_val[1].strip() + '"')
file_inc_event_click = open(directory_to_process + "/event/promotion_onclick2.inc", 'r')
file_inc_event_click_content = file_inc_event_click.read()
file_inc2_content = file_inc2_content.replace("###EventOnClick", file_inc_event_click_content)
#print(file_inc2_content)
#print( file_inc_content)
file_inc = open(directory_to_process + "/dummy_layout.inc", 'r')
file_inc_content = file_inc.read()
content_data_was_repack = content_recommend.replace(";dummy_layout.inc", file_inc_content)
content_data = content_data_was_repack.replace(";BigLogoLayout", file_inc2_content)
begin_text = content_data.index(";TAGESP")
end_text = content_data.index(";TAGESP", begin_text + 7)
#print("sub text = " + str(begin_text) + " end = " + str(end_text))
tmp1 = content_data[: begin_text - 7]
tmp2 = content_data[ end_text:-1]
#print("tmp1=" + tmp1)
#print("tmp2=" + tmp2)
content_data = tmp1 + tmp2
file_xml3_out = open(directory_to_process + "/event/out_put_file2.txt", 'r')
file_xml3_out_content = file_xml3_out.read()
file_xml3_out_content = file_xml3_out_content.strip()
file_xml3_out_content = file_xml3_out_content.replace("\r", "")
file_xml3_out_content = file_xml3_out_content.replace("\n", "")
file_xml3 = open(directory_to_process + file_xml3_out_content, 'w')
file_xml3.write( content_data)
file_xml3.close()
if "template3" in param:
file_inc3 = open(directory_to_process + "/event/promotion_template3.inc", 'r')
file_inc3_content = file_inc3.read()
file_inc_img = open(directory_to_process + "../image/event/image_template3", 'r')
file_inc3_img_content = file_inc_img.read()
# replace key.
sp_key = file_inc3_img_content.split("\n")
#print("sp_key = " + str(len( sp_key)))
for sp_line in sp_key:
sp_line = sp_line.strip()
key_val = sp_line.split("=")
#print("Kenta420:", key_val)
if len( key_val) == 2:
#print("k = " + key_val[0] + " val=" + key_val[1])
file_inc3_content = file_inc3_content.replace( "###" + key_val[0], '"' + key_val[1].strip() + '"')
file_inc_event_click = open(directory_to_process + "/event/promotion_onclick3.inc", 'r')
file_inc_event_click_content = file_inc_event_click.read()
file_inc3_content = file_inc3_content.replace("###EventOnClick", file_inc_event_click_content)
#print(file_inc3_content)
#print( file_inc_content)
file_inc = open(directory_to_process + "/dummy_layout.inc", 'r')
file_inc_content = file_inc.read()
content_data_was_repack = content_recommend.replace(";dummy_layout.inc", file_inc_content)
content_data = content_data_was_repack.replace(";BigLogoLayout", file_inc3_content)
begin_text = content_data.index(";TAGESP")
end_text = content_data.index(";TAGESP", begin_text + 7)
#print("sub text = " + str(begin_text) + " end = " + str(end_text))
tmp1 = content_data[: begin_text - 7]
tmp3 = content_data[ end_text:-1]
#print("tmp1=" + tmp1)
#print("tmp3=" + tmp3)
content_data = tmp1 + tmp3
file_xml3_out = open(directory_to_process + "/event/out_put_file3.txt", 'r')
file_xml3_out_content = file_xml3_out.read()
file_xml3_out_content = file_xml3_out_content.strip()
file_xml3_out_content = file_xml3_out_content.replace("\r", "")
file_xml3_out_content = file_xml3_out_content.replace("\n", "")
file_xml3 = open(directory_to_process + file_xml3_out_content, 'w')
file_xml3.write( content_data)
file_xml3.close()
if "template4" in param:
file_inc4 = open(directory_to_process + "/event/promotion_template4.inc", 'r')
file_inc4_content = file_inc4.read()
file_inc_img = open(directory_to_process + "../image/event/image_template4", 'r')
file_inc4_img_content = file_inc_img.read()
# replace key.
sp_key = file_inc4_img_content.split("\n")
#print("sp_key = " + str(len( sp_key)))
for sp_line in sp_key:
sp_line = sp_line.strip()
key_val = sp_line.split("=")
#print("Kenta420:", key_val)
if len( key_val) == 2:
#print("k = " + key_val[0] + " val=" + key_val[1])
file_inc4_content = file_inc4_content.replace( "###" + key_val[0], '"' + key_val[1].strip() + '"')
file_inc_event_click = open(directory_to_process + "/event/promotion_onclick4.inc", 'r')
file_inc_event_click_content = file_inc_event_click.read()
file_inc4_content = file_inc4_content.replace("###EventOnClick", file_inc_event_click_content)
#print(file_inc4_content)
#print( file_inc_content)
file_inc = open(directory_to_process + "/dummy_layout.inc", 'r')
file_inc_content = file_inc.read()
content_data_was_repack = content_recommend.replace(";dummy_layout.inc", file_inc_content)
content_data = content_data_was_repack.replace(";BigLogoLayout", file_inc4_content)
begin_text = content_data.index(";TAGESP")
end_text = content_data.index(";TAGESP", begin_text + 7)
#print("sub text = " + str(begin_text) + " end = " + str(end_text))
tmp1 = content_data[: begin_text - 7]
tmp3 = content_data[ end_text:-1]
#print("tmp1=" + tmp1)
#print("tmp3=" + tmp3)
content_data = tmp1 + tmp3
file_xml4_out = open(directory_to_process + "/event/out_put_file4.txt", 'r')
file_xml4_out_content = file_xml4_out.read()
file_xml4_out_content = file_xml4_out_content.strip()
file_xml4_out_content = file_xml4_out_content.replace("\r", "")
file_xml4_out_content = file_xml4_out_content.replace("\n", "")
file_xml4 = open(directory_to_process + file_xml4_out_content, 'w')
file_xml4.write( content_data)
file_xml4.close()
if "multi_promotion" in param:
files = os.listdir(directory_to_process + "/event/")
files = [f for f in files if f.startswith("multi_promotion_config")]
for filename in files:
recommend_multi_pro = open(directory_to_process + "/page_catalog_group_recommend_multi_pro.xml", "r")
recommend_multi_pro_buff = recommend_multi_pro.read()
recommend_multi_pro.close()
#read config
multi_pro_config_file = open(directory_to_process + "/event/"+ filename)
multi_pro_config = json.load(multi_pro_config_file)
index = 0
promotion_name = []
while index < len(multi_pro_config):
promotion_config = multi_pro_config[index]
index += 1
# add promotion name for create filename later
promotion_name.append(promotion_config["name"])
#load template
template_file = open(directory_to_process + promotion_config["template"])
template = template_file.read()
template_file.close()
for key, value in promotion_config["config"].items():
template = template.replace("###"+key, '"' + value.strip() + '"')
promotion_block_str = '\r\n<Block>\r\n\t<State> PromotionState{0} </State>\r\n\t<MarginLeft> 33 </MarginLeft>\r\n\t<MarginTop> 22 </MarginTop>\r\n\t<Width> 484 </Width>\r\n\t<Height> 602 </Height>\r\n'.format(index)
promotion_block_str += template
promotion_block_str += '\r\n</Block>\r\n'
recommend_multi_pro_buff = re.sub(r'(?is)(;block{0}).*(;endblock{0})'.format(index), r'\1{0}\2'.format(promotion_block_str), recommend_multi_pro_buff)
if index == 2:
# expend block3 to full width bottom
inner_block = re.search(r'(?is);block{0}(.*);endblock{0}'.format(index+1), recommend_multi_pro_buff).group(1)
inner_block = inner_block.replace("<Width> 516 </Width>", "<Width> 1032 </Width>", 2)
inner_block = inner_block.replace("<Max> 4 </Max>", "<Max> 8 </Max>", 1)
inner_block = inner_block.replace("<Column> 2 </Column>", "<Column> 4 </Column>", 1)
recommend_multi_pro_buff = re.sub(r'(?is)(;block{0}).*(;endblock{0})'.format(index+1), r'\1{0}\2'.format(inner_block), recommend_multi_pro_buff)
# remove block4
recommend_multi_pro_buff = re.sub(r'(?is)(;block{0}).*(;endblock{0})'.format(index+2), r'\1\2', recommend_multi_pro_buff)
if index == 3:
# create expand block
inner_block2 = re.search(r'(?is)(;block{0}.*;endblock{0})'.format(index+1), recommend_multi_pro_buff).group(1)
inner_block2 = inner_block2.replace(";block{0}".format(index+1), ";block{0}-expand".format(index+1))
inner_block2 = inner_block2.replace(";endblock{0}".format(index+1), ";endblock{0}-expand".format(index+1))
inner_block2 = inner_block2.replace("<Width> 516 </Width>", "<Width> 1032 </Width>", 2)
# inner_block2 = inner_block2.replace("<State> \"Enable\" </State> ", "<State>\r\n\teval(\r\n\tIf PromotionState{0} = \"Enable\" Then\r\n\t\tVar block_expend_show = \"Invisible\"\r\n\tElse\r\n\t\tVar block_expend_show = \"Enable\"\r\n\tEndIf\r\n\tVar return = block_expend_show\r\n\t)\r\n</State>".format(index), 1)
inner_block2 = inner_block2.replace("<Max> 4 </Max>", "<Max>\r\neval(\r\n\tIf CountEnablePromotion > 2 Then\r\n\t\tVar max_count = 4\r\n\tElse\r\n\t\tVar max_count = 8\r\n\tEndIf\r\n\tVar return = max_count\r\n)\r\n</Max>", 1)
inner_block2 = inner_block2.replace("<Column> 2 </Column>", "<Column>\r\neval(\r\n\tIf CountEnablePromotion > 2 Then\r\n\t\tVar column_count = 2\r\n\tElse\r\n\t\tVar column_count = 4\r\n\tEndIf\r\n\tVar return = column_count\r\n)\r\n</Column>", 1)
recommend_multi_pro_buff = re.sub(r'(?is);block{0}.*;endblock{0}'.format(index+1), inner_block2, recommend_multi_pro_buff)
# create promotion file
count_name_dict = {
2: "double_",
3: "triple_"
}
promo_file = open(directory_to_process + "/event/" + count_name_dict[len(multi_pro_config)]+ "promotion_" + "_and_".join(promotion_name) + ".xml", "w")
promo_file.write(recommend_multi_pro_buff)
promo_file.close()