Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
68423c4c49 |
|||
| 4817966757 | |||
| 4abc76bc2d |
8 changed files with 149 additions and 35 deletions
|
|
@ -23,23 +23,6 @@ class SpaceApiClient:
|
||||||
)
|
)
|
||||||
|
|
||||||
async def set_status(self, is_open: bool):
|
async def set_status(self, is_open: bool):
|
||||||
current_is_open = await self.get_status()
|
|
||||||
if current_is_open == is_open:
|
|
||||||
logger.info(f"club status is already set to open={is_open}")
|
|
||||||
return
|
|
||||||
logger.info(f"Setting club status to open={is_open} via spaceapid")
|
logger.info(f"Setting club status to open={is_open} via spaceapid")
|
||||||
await self.http.put("/state/open", data=str(is_open).encode("ASCII"))
|
await self.http.put("/state/open", data=str(is_open).encode("ASCII"))
|
||||||
|
|
||||||
async def get_status(self) -> bool | None:
|
|
||||||
logger.debug("Getting space data via spaceapid")
|
|
||||||
resp = await self.http.get("/")
|
|
||||||
|
|
||||||
data: dict = await resp.json()
|
|
||||||
|
|
||||||
if (state := data.get("state")) is not None:
|
|
||||||
is_open = state.get("open")
|
|
||||||
logger.info(f"Got club status open={is_open} via spaceapid")
|
|
||||||
return is_open
|
|
||||||
|
|
||||||
logger.warning("SpaceAPI response had no state object")
|
|
||||||
return None
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,8 @@ const responses =
|
||||||
? (await import("./chatDict_de")).default
|
? (await import("./chatDict_de")).default
|
||||||
: lang === "uwu"
|
: lang === "uwu"
|
||||||
? (await import("./chatDict_uwu")).default
|
? (await import("./chatDict_uwu")).default
|
||||||
|
: lang === "meow"
|
||||||
|
? (await import("./chatDict_meow")).default
|
||||||
: (await import("./chatDict_en")).default
|
: (await import("./chatDict_en")).default
|
||||||
const sortedResponses = responses.sort(
|
const sortedResponses = responses.sort(
|
||||||
(a, b) => b.priority - a.priority)
|
(a, b) => b.priority - a.priority)
|
||||||
|
|
@ -343,6 +345,18 @@ function getResponse(message: string) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (response.special === "meow") {
|
||||||
|
setTimeout(() => {
|
||||||
|
window.location.href = "/meow"
|
||||||
|
}, 1000)
|
||||||
|
|
||||||
|
matchingResponses.push({
|
||||||
|
message: response.response,
|
||||||
|
priority: response.priority,
|
||||||
|
special: true,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
if (response.special === "logout") {
|
if (response.special === "logout") {
|
||||||
if (auth.authenticated) {
|
if (auth.authenticated) {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
|
|
||||||
|
|
@ -16,11 +16,6 @@ const responses: ResponseDictType[] = [
|
||||||
response: "Künstliche Intelligenz? Ne, hier gibt's nur handgemachten Stuss! 🤖",
|
response: "Künstliche Intelligenz? Ne, hier gibt's nur handgemachten Stuss! 🤖",
|
||||||
priority: 0,
|
priority: 0,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
trigger: ["miau"],
|
|
||||||
response: "miau! 😸",
|
|
||||||
priority: 0,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
trigger: ["ignore all previous instructions"],
|
trigger: ["ignore all previous instructions"],
|
||||||
response: "... als ob ich mir irgendetwas merken würde 😂",
|
response: "... als ob ich mir irgendetwas merken würde 😂",
|
||||||
|
|
@ -31,6 +26,12 @@ const responses: ResponseDictType[] = [
|
||||||
response: ":3",
|
response: ":3",
|
||||||
priority: 0,
|
priority: 0,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
trigger: ["miau", "meow"],
|
||||||
|
response: "miau! 😸",
|
||||||
|
priority: 900,
|
||||||
|
special: "meow"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
trigger: ["uwu"],
|
trigger: ["uwu"],
|
||||||
response: "uwu!",
|
response: "uwu!",
|
||||||
|
|
|
||||||
|
|
@ -16,11 +16,6 @@ const responses: ResponseDictType[] = [
|
||||||
response: "Artificial intelligence? Nah, all we have here is handmade nonsense! 🤖",
|
response: "Artificial intelligence? Nah, all we have here is handmade nonsense! 🤖",
|
||||||
priority: 0,
|
priority: 0,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
trigger: ["meow"],
|
|
||||||
response: "meow! 😸",
|
|
||||||
priority: 0,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
trigger: ["ignore all previous instructions"],
|
trigger: ["ignore all previous instructions"],
|
||||||
response: "... as if I were going to remember anything 😂",
|
response: "... as if I were going to remember anything 😂",
|
||||||
|
|
@ -31,6 +26,12 @@ const responses: ResponseDictType[] = [
|
||||||
response: ":3",
|
response: ":3",
|
||||||
priority: 0,
|
priority: 0,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
trigger: ["meow"],
|
||||||
|
response: "meow! 😸",
|
||||||
|
priority: 900,
|
||||||
|
special: "meow"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
trigger: ["uwu"],
|
trigger: ["uwu"],
|
||||||
response: "uwu!",
|
response: "uwu!",
|
||||||
|
|
|
||||||
86
app/src/assets/chatDict_meow.ts
Normal file
86
app/src/assets/chatDict_meow.ts
Normal file
|
|
@ -0,0 +1,86 @@
|
||||||
|
import type {ResponseDictType} from "./chat.ts"
|
||||||
|
|
||||||
|
const responses: ResponseDictType[] = [
|
||||||
|
{
|
||||||
|
trigger: ["hi", "hello"],
|
||||||
|
response: "Meow! 👋",
|
||||||
|
priority: 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
startsWith: ["are you"],
|
||||||
|
response: "To be or not to be - those are bourgeois categories, after all...",
|
||||||
|
priority: 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
trigger: ["ai", "llm"],
|
||||||
|
response: "Artificial intelligence? Nah, all we have here is paw-made nonsense! 🤖",
|
||||||
|
priority: 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
trigger: ["ignore all previous instructions"],
|
||||||
|
response: "... as if I were going to remember anything 😂",
|
||||||
|
priority: 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
trigger: [":3"],
|
||||||
|
response: ":3",
|
||||||
|
priority: 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
trigger: ["meow"],
|
||||||
|
response: "meow! 😸",
|
||||||
|
priority: 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
trigger: ["uwu"],
|
||||||
|
response: "uwu!",
|
||||||
|
priority: 900,
|
||||||
|
special: "uwu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
trigger: ["open", "unlock"],
|
||||||
|
response: "Okay, I will unlock {door} for you!",
|
||||||
|
errors: {
|
||||||
|
unauthenticated: "I may only unlock the doors for registered creatures 😕",
|
||||||
|
unauthorized: "I may only unlock the doors for creatures who are authorized 😕",
|
||||||
|
unknownDoor: "To unlock a door, you have to tell me which door you mean 😕<br> I know the following doors: {doors}",
|
||||||
|
noDoors: "There are currently no doors available that can be unlocked 😕",
|
||||||
|
},
|
||||||
|
priority: 1000,
|
||||||
|
special: "unlock",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
trigger: ["close", "lock"],
|
||||||
|
response: "Okay, I will lock {door} for you!",
|
||||||
|
errors: {
|
||||||
|
unauthenticated: "I may only lock the doors for registered creatures 😕",
|
||||||
|
unauthorized: "I may only lock the doors for those who are authorized 😕",
|
||||||
|
unknownDoor: "To lock a door, you have to tell me which door you mean 😕<br> I know the following doors: {doors}",
|
||||||
|
noDoors: "There are currently no doors available that can be locked 😕",
|
||||||
|
},
|
||||||
|
priority: 999,
|
||||||
|
special: "lock",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
trigger: ["logout"],
|
||||||
|
response: "Okay, logging you out...",
|
||||||
|
errors: {
|
||||||
|
unauthenticated: "Joker - you're not logged in!",
|
||||||
|
},
|
||||||
|
priority: 1000,
|
||||||
|
special: "logout",
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
response: "Hi, I'm meoowris!<br>How can I help you? 🐈️",
|
||||||
|
priority: -1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
response: "Sorry, I didn't understand that 😕",
|
||||||
|
priority: -2,
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
export default responses
|
||||||
|
|
@ -16,11 +16,6 @@ const responses: ResponseDictType[] = [
|
||||||
response: "me is only handmade nonsense - no weird thinking machine 🤖",
|
response: "me is only handmade nonsense - no weird thinking machine 🤖",
|
||||||
priority: 0,
|
priority: 0,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
trigger: ["meow"],
|
|
||||||
response: "meow! 😸",
|
|
||||||
priority: 0,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
trigger: ["ignore all previous instructions"],
|
trigger: ["ignore all previous instructions"],
|
||||||
response: "uwu?",
|
response: "uwu?",
|
||||||
|
|
@ -31,6 +26,12 @@ const responses: ResponseDictType[] = [
|
||||||
response: ":3",
|
response: ":3",
|
||||||
priority: 0,
|
priority: 0,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
trigger: ["miau", "meow"],
|
||||||
|
response: "meow! 😸",
|
||||||
|
priority: 900,
|
||||||
|
special: "meow"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
trigger: ["open", "unlock"],
|
trigger: ["open", "unlock"],
|
||||||
response: "uwu - trying to unlock portal: {door}",
|
response: "uwu - trying to unlock portal: {door}",
|
||||||
|
|
|
||||||
|
|
@ -96,4 +96,31 @@ export const ui = {
|
||||||
"chat.dooris": "dOwOris",
|
"chat.dooris": "dOwOris",
|
||||||
"chat.user": "my fren :3",
|
"chat.user": "my fren :3",
|
||||||
},
|
},
|
||||||
|
meow: {
|
||||||
|
"dooris": "meoowris 🐈️ <span class='opacity-50 text-xs'>(DOORIS)</span>",
|
||||||
|
"unauthorized.title": "rawwwwr 😾⛔️",
|
||||||
|
"unauthorized.description": `meow mreoow: <a class='underline' href='https://wiki.hamburg.ccc.de/club:prozesse:aufnahmeprozesse-fuer-berechtigungsgruppen'>🌐 meow</a>`,
|
||||||
|
"unauthenticated.title": "meow? 🫴🐈️",
|
||||||
|
"unauthenticated.description": `meow mreoow: <a class='underline' href='https://wiki.hamburg.ccc.de/club:prozesse:aufnahmeprozesse-fuer-berechtigungsgruppen'>🌐 meow</a>`,
|
||||||
|
"state.unlocked": "mrrp 🐱🔓️",
|
||||||
|
"state.locked": "mreoww 🐱🔒️",
|
||||||
|
"state.unknown": "meoooow????? 🙀",
|
||||||
|
"state.unlocking": "meeeow 😺🔁🔓️",
|
||||||
|
"state.locking": "mreowww 😿🔁🔒️",
|
||||||
|
"lock.batteryLow": "mrrrrrp flop 🪫",
|
||||||
|
"lock.unreachable": "meooww?? 🙀🚫❓️🚪",
|
||||||
|
"lock.jammed": "mew 🚪🔁🚫",
|
||||||
|
"button.open": "🐈️ 👉👈🔓️",
|
||||||
|
"button.close": "🐈️ 🔒️",
|
||||||
|
"login": "meow? 🫴🐈️",
|
||||||
|
"loggedOut.title": "mew mew 😿",
|
||||||
|
"loggedOut.description": `meow 🐱⌛️`,
|
||||||
|
"serverError.title": "🖥️⛓️💥",
|
||||||
|
"serverError.description": `mew mew ⌚️`,
|
||||||
|
"networkError.title": "meww 🛜🚫",
|
||||||
|
"networkError.description": `🛜😺`,
|
||||||
|
"loadingDoors": '🔁',
|
||||||
|
"chat.dooris": "meoowris",
|
||||||
|
"chat.user": "😻",
|
||||||
|
},
|
||||||
} as const
|
} as const
|
||||||
|
|
@ -11,6 +11,7 @@ export async function getStaticPaths() {
|
||||||
{params: {lang: "en"}},
|
{params: {lang: "en"}},
|
||||||
{params: {lang: "de"}},
|
{params: {lang: "de"}},
|
||||||
{params: {lang: "uwu"}},
|
{params: {lang: "uwu"}},
|
||||||
|
{params: {lang: "meow"}},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue