kopia lustrzana https://codeberg.org/nmkj/audon
Porównaj commity
6 Commity
3138e2a596
...
6f7b58f2e2
Autor | SHA1 | Data |
---|---|---|
Namekuji | 6f7b58f2e2 | |
Namekuji | 03e5cb4f02 | |
Namekuji | 87300ea112 | |
Namekuji | 7b837651dd | |
Namekuji | c40fb71147 | |
Namekuji | d52ae18c44 |
|
@ -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
|
||||||
|
|
|
@ -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"
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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/
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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
|
@ -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() {
|
||||||
|
|
|
@ -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}"
|
||||||
|
|
|
@ -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: "アドレスを入力してください"
|
||||||
|
|
|
@ -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");
|
||||||
|
|
|
@ -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="
|
||||||
|
|
|
@ -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,
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue