Porównaj commity

..

6 Commity

Autor SHA1 Wiadomość Data
Namekuji 6f7b58f2e2 fix mic status label 2023-04-28 21:16:23 -04:00
Namekuji 03e5cb4f02 bump version 2023-04-28 14:16:52 -04:00
Namekuji 87300ea112 remove docker 2023-04-28 14:15:43 -04:00
Namekuji 7b837651dd add aria-label to buttons missing content 2023-04-28 14:15:24 -04:00
Namekuji c40fb71147 use rootless 2023-04-28 13:32:50 -04:00
Namekuji d52ae18c44 disable avatar update 2023-04-28 09:31:40 -04:00
13 zmienionych plików z 512 dodań i 427 usunięć

Wyświetl plik

@ -16,7 +16,7 @@ audon.localhost {
} }
} }
livekit.audon.localhost { livekit.localhost {
tls /etc/caddy/certs/cert.pem /etc/caddy/certs/key.pem tls /etc/caddy/certs/cert.pem /etc/caddy/certs/key.pem
encode zstd gzip encode zstd gzip
reverse_proxy livekit:7880 reverse_proxy livekit:7880

Wyświetl plik

@ -6,7 +6,7 @@
// "image": "mcr.microsoft.com/devcontainers/universal:2-linux" // "image": "mcr.microsoft.com/devcontainers/universal:2-linux"
"dockerComposeFile": "docker-compose.dev.yaml", "dockerComposeFile": "docker-compose.dev.yaml",
"service": "devcontainer", "service": "devcontainer",
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}", "workspaceFolder": "/audon-go",
// Features to add to the dev container. More info: https://containers.dev/features. // Features to add to the dev container. More info: https://containers.dev/features.
"features": { "features": {
@ -33,8 +33,8 @@
"EditorConfig.EditorConfig" "EditorConfig.EditorConfig"
] ]
} }
} },
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root" "remoteUser": "root"
} }

Wyświetl plik

@ -2,10 +2,12 @@ version: '3.1'
services: services:
devcontainer: devcontainer:
image: "mcr.microsoft.com/devcontainers/base:jammy" image: "mcr.microsoft.com/devcontainers/base:debian"
volumes: volumes:
- ../..:/workspaces:cached - ..:/audon-go:cached
command: sleep infinity command: sleep infinity
environment:
- "DOCKER_HOST=unix:///run/user/1000/docker.sock"
db: db:
image: mongo:6 image: mongo:6

1
.gitignore vendored
Wyświetl plik

@ -66,6 +66,7 @@ build/Release
# Dependency directories # Dependency directories
node_modules/ node_modules/
jspm_packages/ jspm_packages/
.pnpm-store/
# Snowpack dependency directory (https://snowpack.dev/) # Snowpack dependency directory (https://snowpack.dev/)
web_modules/ web_modules/

Wyświetl plik

@ -29,7 +29,7 @@
{% end %} {% end %}
</head> </head>
<body> <body>
<div id="app" data-version='0.3.1'></div> <div id="app" data-version='0.3.2'></div>
<script type="module" src="/src/main.js"></script> <script type="module" src="/src/main.js"></script>
</body> </body>
</html> </html>

Wyświetl plik

@ -1,6 +1,6 @@
{ {
"name": "audon-fe", "name": "audon-fe",
"version": "0.3.1", "version": "0.3.2",
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "cp -v index.dev.html index.html && vite", "dev": "cp -v index.dev.html index.html && vite",

Plik diff jest za duży Load Diff

Wyświetl plik

@ -28,7 +28,8 @@ export default {
}, },
computed: { computed: {
uploadEnabled() { uploadEnabled() {
return this.roomToken?.original && this.roomToken?.indicator; // return this.roomToken?.original && this.roomToken?.indicator;
return false;
}, },
}, },
async mounted() { async mounted() {

Wyświetl plik

@ -17,6 +17,21 @@ enterRoom: "Enter"
leaveRoom: "Leave but keep this room open" leaveRoom: "Leave but keep this room open"
closeRoom: "Close this room" closeRoom: "Close this room"
close: "Close" close: "Close"
emojiReaction: "Open emoji reaction picker"
micStatus:
mute: "Mute microphone"
unmute: "Unmute microphone"
retry: "Retry enabling microphone"
request: "Send speaker request"
roomOperation:
operation: "Leave or close"
leave: "Leave this room"
close: "Close this room"
openRequests: "Open list of speaker requests"
edit: "Edit room information"
requestOperation:
decline: "Decline this speaker request"
accept: "Accept this speaker request"
connecting: "Connecting" connecting: "Connecting"
server: "Your Mastodon instance" server: "Your Mastodon instance"
addressRequired: "Enter your instance address" addressRequired: "Enter your instance address"
@ -40,9 +55,9 @@ form:
advertise: "Allow the bot ({bot}) to advertise your room" advertise: "Allow the bot ({bot}) to advertise your room"
relationships: relationships:
everyone: "Everyone" everyone: "Everyone"
following: "Followed accounts only" following: "Followees only (Accounts you're following)"
follower: "Followers-only" follower: "Followers only (Accounts following you)"
knowing: "Followed accounts and/or followers" knowing: "Followees and/or followers"
mutual: "Your mutuals" mutual: "Your mutuals"
private: "CoHosts only" private: "CoHosts only"
shareRoomMessage: "Join my Audon room!\n{link}\n\nTitle: {title}" shareRoomMessage: "Join my Audon room!\n{link}\n\nTitle: {title}"

Wyświetl plik

@ -17,6 +17,18 @@ enterRoom: "入室"
leaveRoom: "部屋を閉じずに退室" leaveRoom: "部屋を閉じずに退室"
closeRoom: "部屋を閉じる" closeRoom: "部屋を閉じる"
close: "閉じる" close: "閉じる"
emojiReaction: "絵文字ピッカーを開く"
micStatus:
mute: "マイクをミュート"
unmute: "マイクのミュートを解除"
retry: "マイク有効化を再試行"
request: "発言リクエストを送る"
roomOperation:
operation: "退室または閉室"
leave: "部屋から退室する"
close: "部屋を閉室する"
openRequests: "発言リクエストの一覧を開く"
edit: "部屋の情報を編集する"
connecting: "接続中" connecting: "接続中"
server: "Mastodon サーバー" server: "Mastodon サーバー"
addressRequired: "アドレスを入力してください" addressRequired: "アドレスを入力してください"

Wyświetl plik

@ -47,11 +47,14 @@ export const useMastodonStore = defineStore("mastodon", {
this.authorized = true; this.authorized = true;
}, },
async updateAvatar(img, filename) { async updateAvatar(img, filename) {
return;
/*
if (this.client === null) return; if (this.client === null) return;
const avatarBlob = await (await fetch(img)).blob(); const avatarBlob = await (await fetch(img)).blob();
this.userinfo = await this.client.v1.accounts.updateCredentials({ this.userinfo = await this.client.v1.accounts.updateCredentials({
avatar: new File([avatarBlob], `${Date.now()}_${filename}`), avatar: new File([avatarBlob], `${Date.now()}_${filename}`),
}); });
*/
}, },
async revertAvatar() { async revertAvatar() {
const token = await axios.get("/api/token"); const token = await axios.get("/api/token");

Wyświetl plik

@ -257,6 +257,18 @@ export default {
} }
return mdiMicrophone; return mdiMicrophone;
}, },
micStatusLabel() {
if (!(this.iamHost || this.iamCohost || this.iamSpeaker)) {
return this.$t("micStatus.request");
}
if (!this.micGranted) {
return this.$t("micStatus.retry");
}
if (this.iamMuted) {
return this.$t("micStatus.unmute");
}
return this.$t("micStatus.mute");
},
titleErrors() { titleErrors() {
const errors = this.v$.editingRoomInfo.title.$errors; const errors = this.v$.editingRoomInfo.title.$errors;
const messages = map(errors, (e) => e.$message); const messages = map(errors, (e) => e.$message);
@ -797,6 +809,7 @@ export default {
:icon="mdiCheck" :icon="mdiCheck"
:disabled="isRequestLoading" :disabled="isRequestLoading"
@click.once="onModerate(id, 'speaker')" @click.once="onModerate(id, 'speaker')"
:aria-label="$t('requestOperation.accept')"
></v-btn> ></v-btn>
<v-btn <v-btn
size="small" size="small"
@ -804,6 +817,7 @@ export default {
:icon="mdiClose" :icon="mdiClose"
:disabled="isRequestLoading" :disabled="isRequestLoading"
@click="onDeclineRequest(id)" @click="onDeclineRequest(id)"
:aria-label="$t('requestOperation.decline')"
></v-btn> ></v-btn>
</template> </template>
<v-list-item-subtitle> <v-list-item-subtitle>
@ -839,6 +853,7 @@ export default {
@click="showRequestedNotification = false" @click="showRequestedNotification = false"
:icon="mdiClose" :icon="mdiClose"
size="small" size="small"
:aria-label="$t('close')"
></v-btn> ></v-btn>
</template> </template>
</v-snackbar> </v-snackbar>
@ -863,6 +878,7 @@ export default {
@click="showRequestNotification = false" @click="showRequestNotification = false"
:icon="mdiClose" :icon="mdiClose"
size="small" size="small"
:aria-label="$('close')"
></v-btn> ></v-btn>
</template> </template>
</v-snackbar> </v-snackbar>
@ -879,6 +895,7 @@ export default {
size="small" size="small"
variant="text" variant="text"
color="white" color="white"
:aria-label="$t('roomOperation.edit')"
:icon="mdiPencil" :icon="mdiPencil"
@click="showEditDialog = true" @click="showEditDialog = true"
></v-btn> ></v-btn>
@ -955,6 +972,7 @@ export default {
<v-card-actions v-else class="justify-center" style="gap: 20px"> <v-card-actions v-else class="justify-center" style="gap: 20px">
<v-btn <v-btn
:icon="mdiEmoticon" :icon="mdiEmoticon"
:aria-label="$t('emojiReaction')"
color="white" color="white"
variant="flat" variant="flat"
@click="onPickerPopup" @click="onPickerPopup"
@ -963,6 +981,7 @@ export default {
</v-btn> </v-btn>
<v-btn <v-btn
:icon="micStatusIcon" :icon="micStatusIcon"
:aria-label="micStatusLabel"
color="white" color="white"
variant="flat" variant="flat"
@click="onToggleMute" @click="onToggleMute"
@ -972,6 +991,7 @@ export default {
<v-btn <v-btn
:icon="mdiLogout" :icon="mdiLogout"
color="red" color="red"
:aria-label="$t('roomOperation.operation')"
:disabled="loading" :disabled="loading"
variant="flat" variant="flat"
v-bind="props" v-bind="props"
@ -980,6 +1000,7 @@ export default {
<v-list> <v-list>
<v-list-item <v-list-item
:title="$t('closeRoom')" :title="$t('closeRoom')"
:aria-label="$t('roomOperation.close')"
:prepend-icon="mdiCloseBoxOutline" :prepend-icon="mdiCloseBoxOutline"
@click="onRoomClose" @click="onRoomClose"
class="text-red" class="text-red"
@ -987,6 +1008,7 @@ export default {
<v-list-item <v-list-item
:disabled="isLastHost" :disabled="isLastHost"
:title="$t('leaveRoom')" :title="$t('leaveRoom')"
:aria-label="$t('roomOperation.leave')"
:prepend-icon="mdiExitRun" :prepend-icon="mdiExitRun"
@click="onLeave" @click="onLeave"
> >
@ -998,6 +1020,7 @@ export default {
:icon="mdiLogout" :icon="mdiLogout"
color="red" color="red"
:disabled="loading" :disabled="loading"
:aria-label="$t('roomOperation.leave')"
@click="onLeave" @click="onLeave"
variant="flat" variant="flat"
></v-btn> ></v-btn>
@ -1009,6 +1032,7 @@ export default {
> >
<v-btn <v-btn
:icon="mdiAccountVoice" :icon="mdiAccountVoice"
:aria-label="$t('roomOperation.openRequests')"
variant="flat" variant="flat"
color="white" color="white"
@click=" @click="

Wyświetl plik

@ -236,8 +236,9 @@ func getAppConfig(server string) (*mastodon.AppConfig, error) {
redirectURI = u.String() redirectURI = u.String()
conf := &mastodon.AppConfig{ conf := &mastodon.AppConfig{
ClientName: "Audon", ClientName: "Audon",
Scopes: "read:accounts read:follows write:accounts", // Scopes: "read:accounts read:follows write:accounts",
Scopes: "read:accounts read:follows",
Website: "https://codeberg.org/nmkj/audon", Website: "https://codeberg.org/nmkj/audon",
RedirectURIs: redirectURI, RedirectURIs: redirectURI,
} }