File size: 3,252 Bytes
0c80c6a
77952af
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0c80c6a
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import os # Nhớ thêm dòng này ở đầu file
import pandas as pd
from flask import Flask, render_template

# Khởi tạo ứng dụng Flask
app = Flask(__name__)

# --- LINK CSV CỦA BẠN ---
PRODUCT_SHEET_URL = "https://docs.google.com/spreadsheets/d/e/2PACX-1vSHOvfG4hGVCBQYsjOpC0QhamhVKWwFojz4IRc32B6HOvRDaEqc9dNRy8E8pLyJDnDo2mGvJ4oJANtk/pub?gid=319581950&single=true&output=csv"
VIDEO_SHEET_URL = "https://docs.google.com/spreadsheets/d/e/2PACX-1vSHOvfG4hGVCBQYsjOpC0QhamhVKWwFojz4IRc32B6HOvRDaEqc9dNRy8E8pLyJDnDo2mGvJ4oJANtk/pub?gid=1503614356&single=true&output=csv"
# -------------------------------------

def load_data(url):
    """
    Hàm tải dữ liệu từ Google Sheet CSV và trả về danh sách (list of dictionaries).
    """
    try:
        df = pd.read_csv(url, dtype=str)
        df = df.fillna("")
        return df.to_dict('records')
    except Exception as e:
        print(f"[LỖI LOAD_DATA] Lỗi khi tải dữ liệu từ {url}: {e}")
        return []

@app.route('/')
def home():
    """Trang chủ của website"""
    products_raw = load_data(PRODUCT_SHEET_URL)
    videos = load_data(VIDEO_SHEET_URL)
    
    products_processed = []
    
    for product in products_raw:
        try:
            # === SỬA LỖI 1: Đọc đúng tên cột Cột D ===
            # Đọc từ cột 'image_id' (thay vì 'image_url' như code trước)
            file_id = product.get('image_id') 
            
            if file_id:
                # Tạo biến mới 'image_url_processed'
                product['image_url_processed'] = f"https://drive.google.com/thumbnail?id={file_id}&sz=w500"
            else:
                # Nếu không có ID, dùng ảnh dự phòng
                product['image_url_processed'] = "https://placehold.co/300x300/eee/333?text=No+Image"
            
            
            # === SỬA LỖI 2: Đọc đúng tên cột Cột E ===
            # Đọc từ cột 'link_shopee' (thay vì 'shopee_link' như code trước)
            shopee_link = product.get('link_shopee', '') 
            
            if shopee_link and not shopee_link.startswith(('http://', 'https://')):
                # Tự động thêm https:// nếu thiếu
                product['shopee_link_processed'] = f"https://{shopee_link}"
            elif not shopee_link:
                # Nếu ô bị rỗng, đặt link là '#' để tránh lỗi
                product['shopee_link_processed'] = '#' 
            else:
                # Nếu link đã đúng, giữ nguyên
                product['shopee_link_processed'] = shopee_link
            
            # Thêm sản phẩm đã xử lý vào danh sách
            products_processed.append(product)
            
        except Exception as e:
            print(f"Lỗi xử lý sản phẩm {product.get('name')}: {e}")
            continue 

    # Render file 'index.html' và truyền 2 biến mới vào
    return render_template('index.html', products=products_processed, videos=videos)

if __name__ == '__main__':
    # Tự động lấy cổng (PORT) mà Hugging Face cung cấp,
    # nếu không có thì mặc định là 7860
    port = int(os.environ.get("PORT", 7860))
    app.run(host='0.0.0.0', port=port)