Skip to content

beanstalklab/vote-tracking

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SR Fashion Awards Tracking Tool

Tool theo dõi, thống kê và cập nhật liên tục số lượng bình chọn của các ứng viên trong cuộc thi SR Fashion Awards. Dữ liệu được lấy từ trang web chính thức (https://srfashionawards2026.1vote.vn/bang-xep-hang) và xuất ra Google Sheets với giao diện trực quan, giúp theo dõi sự tăng trưởng và khoảng cách giữa các ứng viên.

Tính năng chính

  • Real-time Tracking: Cập nhật số liệu bình chọn liên tục theo interval tùy chỉnh.
  • Advanced Metrics:
    • Votes: Tổng số lượt bình chọn hiện tại.
    • Growth: Số lượt bình chọn tăng thêm so với lần chạy trước.
    • Gap: Khoảng cách so với người dẫn đầu (Top 1) trong cùng hạng mục.
  • Google Sheets Export: Xuất dữ liệu ra Google Sheet với giao diện Matrix dễ nhìn, tự động format (Merge, Center, Number format).
  • Auto-Configuration: Tự động phát hiện và thêm cột cho ứng viên mới.

Cài đặt

Dự án sử dụng uv để quản lý package và môi trường.

1. Chuẩn bị môi trường

Đảm bảo đã cài đặt uv. Nếu chưa:

curl -LsSf https://astral.sh/uv/install.sh | sh

2. Cài đặt dependencies

uv sync

3. Cấu hình

Tạo file config.json ở thư mục gốc (nếu chưa có):

{
    "targets": ["Tên Ứng Viên A", "Tên Ứng Viên B"],
    "categories": ["Tên Hạng Mục (Tùy chọn)"],
    "interval": 60,
    "google_sheet": {
        "enabled": true,
        "sheet_id": "YOUR_SHEET_ID",
        "service_account_file": "service_account.json"
    }
}

Ví dụ:

{
    "targets": ["TATICHU"],
    "categories": ["THƯƠNG HIỆU THỜI TRANG NỮ CỦA NĂM"],
    "interval": 60,
    "google_sheet": {
        "enabled": true,
        "sheet_id": "YOUR_SHEET_ID",
        "service_account_file": "service_account.json"
    }
}
  • targets: Danh sách tên hoặc ID thí sinh cụ thể muốn theo dõi.
  • categories: Danh sách tên danh mục muốn theo dõi toàn bộ thí sinh trong đó.
  • interval: Thời gian cập nhật (giây).
  • google_sheet: Cấu hình Google Sheet.

Sử dụng

Chạy tool trực tiếp bằng uv:

# Chạy liên tục (cập nhật mỗi 60s hoặc theo config)
uv run main.py

# Chạy 1 lần rồi thoát (kiểm tra)
uv run main.py --once

# Reset sheet (Xóa dữ liệu cũ và tạo mới header)
uv run main.py --reset --force

Hướng Dẫn Lấy File service_account.json

Để có được file này, cần thực hiện các bước sau trên Google Cloud Platform (GCP):

Bước 1: Tạo Project

  1. Truy cập Google Cloud Console.
  2. Tạo một Project mới (ví dụ: "Tracking Vote").

Bước 2: Bật Google Sheets API

  1. Trong Project vừa tạo, tìm kiếm "Google Sheets API" trên thanh tìm kiếm.
  2. Nhấn Enable (Bật).

Bước 3: Tạo Service Account

  1. Vào menu IAM & Admin > Service Accounts.
  2. Nhấn Create Service Account.
  3. Đặt tên (ví dụ: "bot-crawler"). Nhấn Create and Continue.
  4. (Quan trọng) Ở phần Grant this service account access to project, chọn role Editor (hoặc Owner). Nhấn Continue > Done.

Bước 4: Tải Key JSON

  1. Trong danh sách Service Accounts, nhấn vào email của account vừa tạo (ví dụ: bot-crawler@tracking-vote.iam.gserviceaccount.com).
  2. Chuyển sang tab Keys.
  3. Nhấn Add Key > Create new key.
  4. Chọn JSON và nhấn Create.
  5. Một file .json sẽ được tải về máy tính.

Bước 5: Cấu hình

  1. Đổi tên file vừa tải về thành service_account.json.
  2. Copy file này vào thư mục chứa code (vote-tracking/).
  3. Mở file JSON đó ra, tìm dòng "client_email". Copy địa chỉ email đó.
  4. Mở Google Sheet, nhấn nút Share (Chia sẻ) và dán email vừa copy vào, cấp quyền Editor (Chỉnh sửa).

File Source Gốc (tham khảo)

Lệnh tải source html ban đầu (tham khảo):

curl -k -L -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" "https://srfashionawards2026.1vote.vn/bang-xep-hang" -o page_source.html

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages