Spaces:
Runtime error
Runtime error
import gradio as gr | |
import github_manager | |
def update(text): | |
file_dir_path = '' | |
file_name = 'main.py' | |
response = github_manager.push(text, file_dir_path, file_name) | |
if response.status_code != 200: | |
return response.text | |
else: | |
print(f"{file_name} pushed") | |
workflow_name = 'pygbag.yml' | |
response = github_manager.trigger_workflow(workflow_name) | |
if response.status_code != 204: | |
return response.text | |
else: | |
print(f"{workflow_name} workflow started") | |
workflow_name = 'pages-build-deployment' | |
response = github_manager.trigger_workflow(workflow_name) | |
if response.status_code != 204: | |
return response.text | |
else: | |
print(f"{workflow_name} workflow started") | |
return "update successful" | |
with gr.Blocks() as demo: | |
inp = gr.Textbox(value=""" | |
import pygame | |
import sys | |
import asyncio | |
# pygame.init() will initialize all | |
# imported module | |
pygame.init() | |
clock = pygame.time.Clock() | |
# it will display on screen | |
screen = pygame.display.set_mode([600, 500]) | |
# basic font for user typed | |
base_font = pygame.font.Font(None, 32) | |
# create rectangle | |
input_rect = pygame.Rect(200, 200, 140, 32) | |
# color_active stores color(lightskyblue3) which | |
# gets active when input box is clicked by user | |
color_active = pygame.Color('lightskyblue3') | |
# color_passive store color(chartreuse4) which is | |
# color of input box. | |
color_passive = pygame.Color('chartreuse4') | |
color = color_passive | |
async def main(): | |
user_text = '' | |
active = False | |
while True: | |
for event in pygame.event.get(): | |
# if user types QUIT then the screen will close | |
if event.type == pygame.QUIT: | |
pygame.quit() | |
sys.exit() | |
if event.type == pygame.MOUSEBUTTONDOWN: | |
if input_rect.collidepoint(event.pos): | |
active = True | |
else: | |
active = False | |
if event.type == pygame.KEYDOWN: | |
print(event.key) | |
# Check for backspace | |
if event.key == pygame.K_BACKSPACE: | |
# get text input from 0 to -1 i.e. end. | |
user_text = user_text[:-1] | |
elif event.key == 13 or event.key == 1073741912: | |
if user_text == "ciao": | |
user_text = "Ciao anche a te" | |
# Unicode standard is used for string | |
# formation | |
else: | |
user_text += event.unicode | |
# it will set background color of screen | |
screen.fill((255, 255, 255)) | |
if active: | |
color = color_active | |
else: | |
color = color_passive | |
# draw rectangle and argument passed which should | |
# be on screen | |
pygame.draw.rect(screen, color, input_rect) | |
text_surface = base_font.render(user_text, True, (255, 255, 255)) | |
# render at position stated in arguments | |
screen.blit(text_surface, (input_rect.x+5, input_rect.y+5)) | |
# set width of textfield so that text cannot get | |
# outside of user's text input | |
input_rect.w = max(100, text_surface.get_width()+10) | |
# display.flip() will update only a portion of the | |
# screen to updated, not full area | |
pygame.display.flip() | |
# clock.tick(60) means that for every second at most | |
# 60 frames should be passed. | |
clock.tick(60) | |
await asyncio.sleep(0) | |
asyncio.run(main()) | |
""") | |
out = gr.Textbox(placeholder="Result") | |
btn = gr.Button(value="Push") | |
btn.click(update, inputs=[inp], outputs=[out]) | |
gr.Markdown("""[Play the game!](https://pjavanrooyen.github.io/text-to-game/)""") | |
if __name__ == "__main__": | |
demo.launch() | |