MrSimple07's picture
extract user rating + lichess puzzle rating
19ccaae
Raw
History Blame Contribute Delete
3.1 kB
import gradio as gr
import chess
import chess.pgn
import io
import requests
from collections import defaultdict
import os
import logging
from core.core import analyze_games
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)
with gr.Blocks(title="Chess Study Plan Pro", theme=gr.themes.Soft()) as demo:
gr.Markdown("""
# β™ŸοΈ Professional Shaxmat O'quv Rejasi
### To'liq tahlil va shaxsiy o'quv rejasi:
- πŸ“Š Batafsil statistika (debyutlar, ranglar, natijalar)
- 🎯 Zaif tomonlaringiz tahlili
- πŸ€– AI murabbiy tavsiyalari
- πŸ“š Kitoblar va kurslar tavsiyasi
- 🧩 Lichess mashq masalalari
""")
with gr.Row():
with gr.Column():
gr.Markdown("### 🌐 Chess.com dan tahlil (Hozircha Chess Com, keyinchalik Uzchess API ulanadi)")
username_chesscom = gr.Textbox(
label="Chess.com foydalanuvchi nomi",
placeholder="Foydalanuvchi nomini kiriting",
)
with gr.Column():
gr.Markdown("### πŸ“ PGN fayl yuklash")
pgn_upload = gr.File(
label="PGN faylni yuklang",
file_types=[".pgn"],
type="binary"
)
username_pgn = gr.Textbox(
label="Foydalanuvchi nomi (PGN uchun)",
placeholder="PGN dagi o'yinchi nomi",
)
analyze_btn = gr.Button("πŸ” Tahlil qilish", variant="primary", size="lg")
with gr.Row():
stats_output = gr.Markdown(label="Statistika")
with gr.Row():
ai_output = gr.Markdown(label="AI Tahlil")
gr.Markdown("---")
puzzle_header = gr.Markdown()
with gr.Row():
with gr.Column():
puzzle1_info = gr.Markdown()
puzzle1_board = gr.HTML()
with gr.Column():
puzzle2_info = gr.Markdown()
puzzle2_board = gr.HTML()
with gr.Column():
puzzle3_info = gr.Markdown()
puzzle3_board = gr.HTML()
analyze_btn.click(
fn=analyze_games,
inputs=[username_chesscom, pgn_upload, username_pgn],
outputs=[
stats_output,
ai_output,
puzzle_header,
puzzle1_info,
puzzle1_board,
puzzle2_info,
puzzle2_board,
puzzle3_info,
puzzle3_board
]
)
gr.Markdown("""
---
### πŸ“ Qanday foydalanish:
- **Chess.com:** Foydalanuvchi nomingizni kiriting (oxirgi 30-50 ta o'yin tahlil qilinadi)
- **Lichess:** Profile β†’ Games β†’ Export orqali PGN faylni yuklang
- **Masalalar:** Lichess.org saytida mashq qiling
### 🎯 Xususiyatlar:
- βœ… Debyut statistikasi (qaysi debyutlarda yaxshi/yomon o'ynaysiz)
- βœ… Oq/Qora rang bo'yicha natijalar
- βœ… Lichess mashq havolalari
- βœ… Shaxsiy o'quv rejasi (kundalik mashg'ulotlar)
- βœ… Kitoblar va kurslar tavsiyasi
""")
demo.launch()