toaster update :3
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				Build and push container image / build-and-push-image (push) Failing after 5m28s
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	Build and push container image / build-and-push-image (push) Failing after 5m28s
				
			This commit is contained in:
		
							
								
								
									
										33
									
								
								.gitea/workflows/deploy.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								.gitea/workflows/deploy.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					name: Build and push container image
 | 
				
			||||||
 | 
					run-name: ${{ gitea.actor }} is building and pushing container image
 | 
				
			||||||
 | 
					on:
 | 
				
			||||||
 | 
					  push:
 | 
				
			||||||
 | 
					    branches:
 | 
				
			||||||
 | 
					      - main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					env:
 | 
				
			||||||
 | 
					  GITEA_DOMAIN: git.alfieking.dev
 | 
				
			||||||
 | 
					  GITEA_REGISTRY_USER: acetheking987
 | 
				
			||||||
 | 
					  RESULT_IMAGE_NAME: acetheking987/alfieking.dev
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  build-and-push-image:
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					    container:
 | 
				
			||||||
 | 
					      image: catthehacker/ubuntu:act-latest
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - name: Checkout
 | 
				
			||||||
 | 
					        uses: actions/checkout@v4
 | 
				
			||||||
 | 
					      - name: Set up Docker Buildx
 | 
				
			||||||
 | 
					        uses: docker/setup-buildx-action@v3
 | 
				
			||||||
 | 
					      - name: Log in to registry
 | 
				
			||||||
 | 
					        uses: docker/login-action@v3
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          registry: ${{ env.GITEA_DOMAIN }}
 | 
				
			||||||
 | 
					          username: ${{ env.GITEA_REGISTRY_USER }}
 | 
				
			||||||
 | 
					          password: ${{ secrets.CONTAINER_REGISTRY_TOKEN }}
 | 
				
			||||||
 | 
					      - name: Build and push image
 | 
				
			||||||
 | 
					        uses: docker/build-push-action@v6
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          push: true
 | 
				
			||||||
 | 
					          tags: ${{ env.GITEA_DOMAIN }}/${{ env.RESULT_IMAGE_NAME }}:${{ gitea.ref }}
 | 
				
			||||||
							
								
								
									
										2
									
								
								run.sh
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								run.sh
									
									
									
									
									
								
							@@ -2,4 +2,4 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
[ ! -f .env ] || export $(grep -v '^#' .env | xargs)
 | 
					[ ! -f .env ] || export $(grep -v '^#' .env | xargs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
flask --app src.wsgi --debug run 
 | 
					flask --app src.wsgi.py --debug run 
 | 
				
			||||||
@@ -36,7 +36,7 @@ def not_found(error=None):
 | 
				
			|||||||
        log.warning("Page not found: %s", error)
 | 
					        log.warning("Page not found: %s", error)
 | 
				
			||||||
    scores = snake.get_leaderboard()
 | 
					    scores = snake.get_leaderboard()
 | 
				
			||||||
    token = snake.generate_start_token()
 | 
					    token = snake.generate_start_token()
 | 
				
			||||||
    return render_template('errors/404.html', scores=scores, token=token), 404 if error is not None else 200
 | 
					    return render_template('errors/404.html', scores=scores, token=token, cap_key=env('CAP_KEY', default='')), 404 if error is not None else 200
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Route for 400 error
 | 
					# Route for 400 error
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -46,7 +46,7 @@ def valid_score(score, game_token):
 | 
				
			|||||||
    current_time = datetime.datetime.now()
 | 
					    current_time = datetime.datetime.now()
 | 
				
			||||||
    elapsed_time = (current_time - start_time).total_seconds()
 | 
					    elapsed_time = (current_time - start_time).total_seconds()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if elapsed_time < score / 10 * 5 + 15: # assuming that each point takes 5 seconds to achieve and 15 seconds to start the game and do captcha
 | 
					    if elapsed_time < score / 10 * 3 + 10: # assuming that each point takes 3 seconds to achieve and 10 seconds to start the game and do captcha
 | 
				
			||||||
        log.error("Score is too high for the elapsed time.")
 | 
					        log.error("Score is too high for the elapsed time.")
 | 
				
			||||||
        return False
 | 
					        return False
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,7 +23,7 @@ def verify_captcha(token: str) -> bool:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    try:
 | 
					    try:
 | 
				
			||||||
        response = requests.post(
 | 
					        response = requests.post(
 | 
				
			||||||
            env('CAP_VERIFY_URL', default='https://<instance_url>/<key_id>/siteverify'),
 | 
					            f"https://cap.alfieking.dev/{env('CAP_KEY', default='')}/siteverify",
 | 
				
			||||||
            json={
 | 
					            json={
 | 
				
			||||||
                'secret': env('CAP_SECRET', default=''),
 | 
					                'secret': env('CAP_SECRET', default=''),
 | 
				
			||||||
                'response': token,
 | 
					                'response': token,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
# Imports
 | 
					# Imports
 | 
				
			||||||
from flask import Flask, request, render_template, send_from_directory, abort
 | 
					from flask import Flask
 | 
				
			||||||
from flask_session import Session
 | 
					from flask_session import Session
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from dotenv import load_dotenv
 | 
					from dotenv import load_dotenv
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								static/content/Toaster_v1.0_Dark.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								static/content/Toaster_v1.0_Dark.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 2.7 MiB  | 
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 40 KiB  | 
@@ -304,6 +304,10 @@ main section a {
 | 
				
			|||||||
    box-sizing: border-box;
 | 
					    box-sizing: border-box;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					a {
 | 
				
			||||||
 | 
					    text-decoration: none;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@media screen and (max-width: 1000px) {
 | 
					@media screen and (max-width: 1000px) {
 | 
				
			||||||
    body {
 | 
					    body {
 | 
				
			||||||
        background-color: var(--background-color);
 | 
					        background-color: var(--background-color);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,7 +2,6 @@ cap-widget {
 | 
				
			|||||||
  --cap-background: var(--secondary-background-color-but-slightly-transparent);
 | 
					  --cap-background: var(--secondary-background-color-but-slightly-transparent);
 | 
				
			||||||
  --cap-border-color: var(--secondary-background-color);
 | 
					  --cap-border-color: var(--secondary-background-color);
 | 
				
			||||||
  --cap-border-radius: 14px;
 | 
					  --cap-border-radius: 14px;
 | 
				
			||||||
  --cap-widget-height: 30px;
 | 
					 | 
				
			||||||
  --cap-widget-width: 230px;
 | 
					  --cap-widget-width: 230px;
 | 
				
			||||||
  --cap-widget-padding: 14px;
 | 
					  --cap-widget-padding: 14px;
 | 
				
			||||||
  --cap-gap: 15px;
 | 
					  --cap-gap: 15px;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,6 +4,7 @@ ul#toaster-specs {
 | 
				
			|||||||
    display: flex;
 | 
					    display: flex;
 | 
				
			||||||
    flex-direction: column;
 | 
					    flex-direction: column;
 | 
				
			||||||
    gap: 2px;
 | 
					    gap: 2px;
 | 
				
			||||||
 | 
					    min-width: 400px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ul#toaster-specs li {
 | 
					ul#toaster-specs li {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,7 +30,7 @@
 | 
				
			|||||||
        <h2>Submit score</h2>
 | 
					        <h2>Submit score</h2>
 | 
				
			||||||
        <form action="/snake/submit" method="POST" id="snakeForm">
 | 
					        <form action="/snake/submit" method="POST" id="snakeForm">
 | 
				
			||||||
            <input type="text" id="name" name="name" placeholder="Your name" required>
 | 
					            <input type="text" id="name" name="name" placeholder="Your name" required>
 | 
				
			||||||
            <cap-widget id="captcha" data-cap-api-endpoint="https://cap.alfieking.dev/57d36430b9cb/api/"></cap-widget>
 | 
					            <cap-widget id="captcha" data-cap-api-endpoint="https://cap.alfieking.dev/{{ cap_key }}/"></cap-widget>
 | 
				
			||||||
            <input type="hidden" id="score" name="score" value="0">
 | 
					            <input type="hidden" id="score" name="score" value="0">
 | 
				
			||||||
            <input type="hidden" id="game_token" name="game_token" value="{{ token}}">
 | 
					            <input type="hidden" id="game_token" name="game_token" value="{{ token}}">
 | 
				
			||||||
            <button type="submit" id="submit">Submit</button>
 | 
					            <button type="submit" id="submit">Submit</button>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,29 +19,39 @@
 | 
				
			|||||||
        <br><br>
 | 
					        <br><br>
 | 
				
			||||||
        Once I eventually got out of the furry closet, I was trying to think of a species to choose and I thought that protogens are a mix of having a
 | 
					        Once I eventually got out of the furry closet, I was trying to think of a species to choose and I thought that protogens are a mix of having a
 | 
				
			||||||
        screen for a face and being fluffy, so I thought it would be a good fit. I still want to keep the tv head character in some places since I rly like him,
 | 
					        screen for a face and being fluffy, so I thought it would be a good fit. I still want to keep the tv head character in some places since I rly like him,
 | 
				
			||||||
        however I plan on hopefully drawing Toaster properly soon. Once i do, I may make him the main mascot of my website.
 | 
					        however I plan on using Toaster more. So he may become the main mascot of my website "soon ish".
 | 
				
			||||||
    </p>
 | 
					    </p>
 | 
				
			||||||
</section>
 | 
					</section>
 | 
				
			||||||
<div class="flex-row">
 | 
					<div class="flex-row">
 | 
				
			||||||
    <section>
 | 
					    <section>
 | 
				
			||||||
        <h1>Specs</h1>
 | 
					        <h1>Specs</h1>
 | 
				
			||||||
        <h6>(Very subject to change, Im still trying to figure out what I want :P)</h6>
 | 
					        <h6>(Additional specs coming "soon ish", Very subject to change :P)</h6>
 | 
				
			||||||
        <ul id="toaster-specs">
 | 
					        <ul id="toaster-specs">
 | 
				
			||||||
            <li><b>Species:</b><span>Protogen</span></li>
 | 
					            <li><b>Species:</b><span>Protogen</span></li>
 | 
				
			||||||
            <li><b>Base Color:</b><span class="color" style="background-color: #000">#000000</span></li>
 | 
					            <li><b>Version:</b><span>v1.0</span></li>
 | 
				
			||||||
            <li><b>Accent Color:</b><span class="color" style="background-color: #8136cd">#8136cd</span></li>
 | 
					            <li><b>Height:</b><span>1.73m</span></li>
 | 
				
			||||||
            <li><b>Alt Accent Color:</b><span class="color" style="background-color: #1d147c">#1d147c</span></li>
 | 
					            <li><b>Weight:</b><span>Mild Chonk</span></li>
 | 
				
			||||||
 | 
					            <li><b>Base Color:</b><span class="color" style="background-color: #0e0c11">#0e0c11</span></li>
 | 
				
			||||||
 | 
					            <li><b>Accent Color:</b><span class="color" style="background-color: #a685c6">#a685c6</span></li>
 | 
				
			||||||
            <li><b>Operating System:</b><span>Proot OS™</span></li>
 | 
					            <li><b>Operating System:</b><span>Proot OS™</span></li>
 | 
				
			||||||
            <li><b>Processor:</b><span>Fried Potato</span></li>
 | 
					            <li><b>Processor:</b><span>Fried Potato</span></li>
 | 
				
			||||||
            <li><b>RAM:</b><span>Not Enough</span></li>
 | 
					            <li><b>RAM:</b><span>Not Enough</span></li>
 | 
				
			||||||
            <li><b>Storage:</b><span>1.44MB Floppy</span></li>
 | 
					            <li><b>Storage:</b><span>1.44MB Floppy</span></li>
 | 
				
			||||||
 | 
					            <li><b>Ports:</b><span>USB-C</span></li> <!-- You know exactly where this is dont you :3 (note: this is a joke (probably), there are ports are behind the round screens tho)-->
 | 
				
			||||||
 | 
					            <li><b>Accessories:</b><span>"Neck Armor"</span></li>
 | 
				
			||||||
 | 
					            <li><b>Bugs:</b><span>Anxiety<sup>2</sup></span></li>
 | 
				
			||||||
 | 
					            <li><b>Gender:</b><span>Male</span></li>
 | 
				
			||||||
        </ul>
 | 
					        </ul>
 | 
				
			||||||
    </section>
 | 
					    </section>
 | 
				
			||||||
    <div class="flex-col">
 | 
					    <div class="flex-col">
 | 
				
			||||||
        <img src="/static/content/toaster.png" alt="toaster" id="toaster-img">
 | 
					        <img src="/static/content/Toaster_v1.0_Dark.png" alt="toaster" id="toaster-img">
 | 
				
			||||||
        <section class="fill-height">
 | 
					        <section class="fill-height">
 | 
				
			||||||
            <p>
 | 
					            <p>
 | 
				
			||||||
                A old image of Toaster, I will draw a new one soon. (Hopefully)
 | 
					                NEW AND IMPROVED! Toaster v1.0 is here!
 | 
				
			||||||
 | 
					                <br><br>
 | 
				
			||||||
 | 
					                Toaster v1.0 is the first version of Toaster that I have drawn,
 | 
				
			||||||
 | 
					                it is a very simple design, but I like it. Im still working on the design,
 | 
				
			||||||
 | 
					                so it may change in the future, but I think I like this enough to keep it for now.
 | 
				
			||||||
            </p>
 | 
					            </p>
 | 
				
			||||||
        </section>
 | 
					        </section>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
@@ -49,13 +59,13 @@
 | 
				
			|||||||
<section>
 | 
					<section>
 | 
				
			||||||
    <h1>Plans</h1>
 | 
					    <h1>Plans</h1>
 | 
				
			||||||
    <p>
 | 
					    <p>
 | 
				
			||||||
        I plan on drawing Toaster properly soon, I have a few ideas for his design but I am not sure what I want to do yet.
 | 
					        I plan on drawing Toaster "properly" soon, im quite happy with the current design, but I want to add more detail and personality to him.
 | 
				
			||||||
        I also want to make a proper ref sheet for him, so it looks like I have a decent idea of what im doing, cus im kinda winging it right now.
 | 
					        I also want to make a proper ref sheet for him, so it looks like I have a decent idea of what im doing, cus im kinda winging it right now.
 | 
				
			||||||
        <br><br>
 | 
					        <br><br>
 | 
				
			||||||
        I also wanna try make a fursuit head of Toaster, but I am not sure how well that will go. I can handle the electronics and I know a few people
 | 
					        I also wanna try make a fursuit head of Toaster, but I am not sure how well that will go. I can handle the electronics and I know a few people
 | 
				
			||||||
        with 3d printers, so I can get the base printed. However I have never made a fursuit before, so idk how well it will go, expecially with the fur.
 | 
					        with 3d printers, so I can get the base printed. However I have never made a fursuit before, so idk how well it will go, expecially with the fur.
 | 
				
			||||||
        I have no clue how to make the fur look good, so I may just end up getting someone else to help me with that. Budget is also a concern, cus im
 | 
					        I have no clue how to make the fur look good, so I may just end up getting someone else to help me with that. Budget is also a concern, cus im
 | 
				
			||||||
        clinically broke, rn so Im working of whatever I can buy from shady chinese websites for electronics and whatever I can find in my local area for the fur.
 | 
					        clinically broke. So rn im working of whatever I can buy from shady chinese websites for electronics and whatever I can find in my local area for the fur.
 | 
				
			||||||
        <br><br>
 | 
					        <br><br>
 | 
				
			||||||
        If I end up making a fursuit, I will probably make a post about it on my site and maybe even make a video of it (but dont hold me to that).
 | 
					        If I end up making a fursuit, I will probably make a post about it on my site and maybe even make a video of it (but dont hold me to that).
 | 
				
			||||||
    </p>
 | 
					    </p>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user