import gradio as gr import requests import json def read_questions(file_path): questions = [] with open(file_path, 'r') as file: lines = file.readlines() question = '' options = [] for line in lines: if line.startswith('##'): if question: questions.append({'question': question, 'options': options}) question = '' options = [] question = line[2:].strip() elif line.startswith('**'): options.append(line[2:].strip()) if question: questions.append({'question': question, 'options': options}) return questions def send_questions_to_telegram(questions): base_url = "https://api.telegram.org/bot6376553042:AAEWlIVLhWwGrudAiry6LrzRL3yh-nzl-oE/sendPoll" chat_id = "-4010995712" for q in questions: parameters = { "chat_id": chat_id, "question": q['question'], "options": json.dumps(q['options']), "type": "quiz", "correct_option_id": 0 } response = requests.post(base_url, data=parameters) print(response.json()) def process_questions(file_path): questions = read_questions(file_path) send_questions_to_telegram(questions) def get_file_path_and_process(file): file_path = file.name process_questions(file_path) iface = gr.Interface( fn=get_file_path_and_process, inputs=gr.File(label="Upload Questions File"), outputs="text", title="Send Quiz Questions to Telegram", description="Upload a text file with questions formatted with '##' for questions and '**' for options to send them as polls to a Telegram chat." ) iface.launch()