Skip to content

Commit

Permalink
fix: Extensions repo now handles json based data, not toml
Browse files Browse the repository at this point in the history
  • Loading branch information
tomlin7 committed Dec 25, 2023
1 parent 361ff66 commit c92a758
Show file tree
Hide file tree
Showing 4 changed files with 118 additions and 5 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<a href=https://github.com/billyeatcookies/Biscuit/tree/main?tab=readme-ov-file#features>Features</a> •
<a href=https://github.com/billyeatcookies/Biscuit/blob/main/CONTRIBUTING.md>Developer Docs</a> •
<a href=https://github.com/billyeatcookies/Biscuit/blob/main/CODE_OF_CONDUCT.md>Code of Conduct</a> •
<a href=https://github.com/billyeatcookies/Biscuit/blob/main/CHANGELOG.md>Changelog</a><br><br>
<a href=https://billyeatcookies.github.io/biscuit-extensions>Marketplace</a><br><br>
<img src="https://github.com/billyeatcookies/Biscuit/assets/70792552/a990845c-bd71-49d2-9d51-58153215c871" width=2000><br>
</h1>

Expand Down
7 changes: 3 additions & 4 deletions biscuit/core/components/views/sidebar/extensions/results.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import json
import threading
import tkinter as tk

import requests
import toml

from ..item import SidebarViewItem
from .extension import Extension
Expand All @@ -19,7 +19,7 @@ def __init__(self, master, *args, **kwargs) -> None:
self.extensions = {}

self.repo_url = "https://raw.githubusercontent.com/billyeatcookies/biscuit-extensions/main/"
self.list_url = self.repo_url + "extensions.toml"
self.list_url = self.repo_url + "extensions.json"

# self.watcher = ExtensionsWatcher(self)
# self.watcher.watch()
Expand Down Expand Up @@ -60,11 +60,10 @@ def fetch_list(self) -> None:
return

self.clear()
self.extensions = toml.loads(response.text)
self.extensions = json.loads(response.text)

for name, data in self.extensions.items():
#TODO add further loops for folders
#TODO add author, description
ext = Extension(self, name, data)
ext.pack(in_=self.content, fill=tk.X)

Expand Down
113 changes: 113 additions & 0 deletions biscuit/extensions/typo.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
import tkinter as tk
import random


class Extension:
def __init__(self, api):
self.api = api

def run(self):
class Typo(self.api.Game):
name = "Typo"
def __init__(self, master, *args, **kwargs):
super().__init__(master, *args, **kwargs)
self.config(**self.base.theme.editors)

self.pos = 0
self.dict = "LOREM IPSUM DOLOR SIT AMET cats and dogs are awesome".split()

self.words = []
self.text = ""
self.time = 0
self.done = False
self.session = 0

self.c = tk.Frame(self, **self.base.theme.editors)
self.c.pack(fill='both', expand=True)

r = tk.Menubutton(self.c, text='Randomize', **self.base.theme.editors.text, font=("Consolas", 20, 'bold'),relief='flat', padx=10, pady=10)
r.pack(side='left')
r.bind('<Button-1>', self.randomize)

self.l = tk.Label(self.c, **self.base.theme.editors.text, font=("Consolas", 20, 'bold'),relief='flat', padx=10, pady=10)
self.l.pack(side='right')

self.m = tk.Label(self.c, **self.base.theme.editors.text, font=("Consolas", 20, 'bold'),relief='flat', padx=10, pady=10)
self.m.pack(side='right')

self.c2 = tk.Frame(self, **self.base.theme.editors)
self.c2.pack(fill='both', expand=True)

self.t = tk.Text(self.c2, width=50, **self.base.theme.editors.text, font=("Consolas", 20, 'bold'), relief='flat', insertbackground='white')
self.t.insert('end', self.text)
self.t.pack(fill=tk.BOTH, side='left', expand=True)
self.t.tag_config('typed', foreground='green')
self.t.bind('<Key>', self.check_key)
self.t.focus_set()

self.s_lb = tk.Label(self.c2, text="SESSION |\n------- +", padx=10, **self.base.theme.editors.text, font=("Consolas", 20, 'bold'), relief='flat')
self.s_lb.pack(fill=tk.X, side='left', anchor='n')

self.t_lb = tk.Label(self.c2, text="TIME\n----", **self.base.theme.editors.text, font=("Consolas", 20, 'bold'), relief='flat')
self.t_lb.pack(fill=tk.X, anchor='n')

self.randomize()

def update_time(self, session):
if session != self.session:
return

if self.pos >= len(self.text):
self.m.config(fg="green")
self.s_lb.config(text=self.s_lb["text"] + f'\n{session}')
self.t_lb.config(text=self.t_lb["text"] + f'\n{self.time}')
return

self.time += 1
self.m.config(text=f"{self.time}s")

self.t.after(1000, self.update_time, session)

def refresh(self):
self.t.tag_remove('typed', '1.0', 'end')
self.t.tag_add('typed', '1.0', f'1.{self.pos}')
self.t.mark_set('insert', f'1.{self.pos}')

self.l.config(text=f"{self.pos}/{len(self.text)}")

def getchar(self, keysym):
match keysym:
case 'space':
return ' '
case _:
return keysym

def check_key(self, e):
if self.pos < len(self.text):
if self.getchar(e.keysym) == self.text[self.pos]:
self.pos += 1
else:
# TODO: wrong key pressed
pass

self.refresh()

return 'break'

def randomize(self, *_):
self.words = [self.dict[random.randint(0, len(self.dict)-1)] for _ in range(0, len(self.dict))]
self.text = " ".join(self.words)
self.pos = 0

self.t.delete('1.0', 'end')
self.t.insert('end', self.text)
self.t.mark_set('insert', '1.0')
self.m.config(fg="darkgrey")

self.refresh()
self.time = 0
self.done = False
self.session += 1
self.update_time(self.session)

self.api.register_game(Typo)
Expand Down
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ pyperclip
tkinterweb
mistune
sansio_lsp_client
json

0 comments on commit c92a758

Please sign in to comment.