Compare commits
3 Commits
cc44c5a571
...
faa9e09af4
| Author | SHA1 | Date | |
|---|---|---|---|
| faa9e09af4 | |||
| 7b1a10cb71 | |||
| ccb9c18544 |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,2 +1,5 @@
|
||||
chats.json
|
||||
config.json
|
||||
.vscode/
|
||||
__pycache__/
|
||||
.venv/
|
||||
8
.vscode/settings.json
vendored
8
.vscode/settings.json
vendored
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"python.languageServer": "Pylance",
|
||||
"python.analysis.diagnosticSeverityOverrides": {
|
||||
"reportMissingModuleSource": "none",
|
||||
"reportShadowedImports": "none"
|
||||
},
|
||||
"circuitpython.board.version": null
|
||||
}
|
||||
24
LICENCE
Normal file
24
LICENCE
Normal file
@@ -0,0 +1,24 @@
|
||||
This is free and unencumbered software released into the public domain.
|
||||
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||
distribute this software, either in source code form or as a compiled
|
||||
binary, for any purpose, commercial or non-commercial, and by any
|
||||
means.
|
||||
|
||||
In jurisdictions that recognize copyright laws, the author or authors
|
||||
of this software dedicate any and all copyright interest in the
|
||||
software to the public domain. We make this dedication for the benefit
|
||||
of the public at large and to the detriment of our heirs and
|
||||
successors. We intend this dedication to be an overt act of
|
||||
relinquishment in perpetuity of all present and future rights to this
|
||||
software under copyright law.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
For more information, please refer to <http://unlicense.org/>
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,4 +0,0 @@
|
||||
import os, base64, json
|
||||
|
||||
key = os.urandom(32)
|
||||
print(base64.b64encode(key).decode())
|
||||
66
uidemo.py
66
uidemo.py
@@ -1,66 +0,0 @@
|
||||
from textual.app import App, ComposeResult
|
||||
from textual.widgets import Input, RichLog, ListItem, ListView, Label, Static, Button
|
||||
from textual.containers import Horizontal, Vertical, ScrollableContainer
|
||||
|
||||
|
||||
class ChatApp(App):
|
||||
DEFAULT_CSS = """
|
||||
#contacts {
|
||||
width: 20;
|
||||
}
|
||||
#messages {
|
||||
height: 1fr;
|
||||
padding: 0 0 0 1;
|
||||
background: $background;
|
||||
}
|
||||
#input-row {
|
||||
height: auto;
|
||||
}
|
||||
#input-row > Input {
|
||||
width: 1fr;
|
||||
}
|
||||
#input-row > Button {
|
||||
width: 10;
|
||||
margin-right: 1;
|
||||
}
|
||||
"""
|
||||
|
||||
def send(self):
|
||||
input_box = self.query_one("#input-box", Input)
|
||||
message = input_box.value
|
||||
if message.strip():
|
||||
self.query_one("#messages").mount(ListItem(Label(message)))
|
||||
input_box.clear()
|
||||
|
||||
def compose(self) -> ComposeResult:
|
||||
with Horizontal():
|
||||
yield ListView(
|
||||
ListItem(Label("One")),
|
||||
ListItem(Label("Two")),
|
||||
ListItem(Label("Three")),
|
||||
id="contacts",
|
||||
)
|
||||
with Vertical():
|
||||
yield ListView(id="messages")
|
||||
with Horizontal(id="input-row"):
|
||||
yield Input(placeholder="Message...", id="input-box")
|
||||
yield Button("Send", id="send-btn", disabled=True)
|
||||
|
||||
def on_input_submitted(self, event: Input.Submitted) -> None:
|
||||
if event.input.id == "input-box":
|
||||
self.send()
|
||||
|
||||
def on_button_pressed(self, event: Button.Pressed) -> None:
|
||||
if event.button.id == "send-btn":
|
||||
self.send()
|
||||
|
||||
def on_input_changed(self, event: Input.Changed) -> None:
|
||||
if event.input.id == "input-box":
|
||||
self.query_one("#send-btn", Button).disabled = not event.value.strip()
|
||||
|
||||
def on_mount(self) -> None:
|
||||
self.query_one(Input).focus()
|
||||
print(self.query_one(Button))
|
||||
|
||||
|
||||
ChatApp().run()
|
||||
Reference in New Issue
Block a user