小编SGL*_*SGL的帖子

使用 Discord API 重新创建 Discord 小部件

到目前为止,我正在使用 JSON 创建自己的样式小部件https://discordapp.com/api/servers/GUILD-ID/widget.json,到目前为止工作正常。但是,此 JSON 仅限于 99 个用户,这对我来说是个问题。

所以我想,我可以使用官方的 Discord API 重新创建它。但是,有一些信息,我在 API 中找不到,或者我只是瞎了眼。

  1. 我缺少信息,哪个用户当前在哪个语音频道
  2. 我缺少用户的在线状态
  3. 我缺少头像网址
  4. 字段mute和是否deaf存在于用户对象中,它们为空/空,而widget.json 显示正确的信息

因此 widget.json 中的用户对象如下所示:

{
    id: "0",
    username: "xxxx",
    discriminator: "0000",
    avatar: null,
    status: "online",
    deaf: false,
    mute: false,
    self_deaf: true,
    self_mute: true,
    suppress: false,
    channel_id: "555555555555555555",
    avatar_url: "https://cdn.discordapp.com/widget-avatars/XXXXXXXXXXXXXXX"
}
Run Code Online (Sandbox Code Playgroud)

而 API 返回这个:

{
    user: {
    id: "999999999999999999",
    username: "xxxx",
    avatar: "257281f9b2aa93be7c12f5c49e122ca3",
    discriminator: "1234",
    public_flags: 576
    },
    roles: [
        "123456789123456789",
        "987654321987654321"
    ],
    nick: "yyyy",
    premium_since: null,
    joined_at: …
Run Code Online (Sandbox Code Playgroud)

api json discord

6
推荐指数
1
解决办法
520
查看次数

Bash 脚本在某些情况下无休止地循环

我目前正在玩 bash 并在最后几天编写了一些脚本。我想,我已经完成了,但经过一些测试,似乎当涉及到一个需要用户交互的简单是/否问题时,它会循环。奇怪的是,每当我运行脚本时,它都不会循环。这取决于我如何运行它。所以这是一个示例脚本:

#!/usr/bin/env bash

while true; do
    read -rp " test? (y/n): " yn

    case $yn in
    [Yy]*)
        FOO="y"
        break
        ;;
    [Nn]*)
        FOO="n"
        break
        ;;
    *)
        echo -e " Please answer yes or no."
        echo ""
        ;;
    esac
done

echo "You picked $FOO"
Run Code Online (Sandbox Code Playgroud)

如您所见,它没有做任何特别的事情。如果您输入其他任何内容,它会询问是或否并显示一条消息。如果我像这样运行它(在 Debian/Ubuntu 机器上):

bash foo.sh
Run Code Online (Sandbox Code Playgroud)

或者像这样:

chmod 755 foo.sh && ./foo.sh
Run Code Online (Sandbox Code Playgroud)

甚至像这样(相同的脚本,托管在 GitHub Gist 上):

bash <(wget -qO- git.io/JUGDp)
Run Code Online (Sandbox Code Playgroud)

它按预期工作。但是如果我像这样运行它,它会循环:

wget -qO- git.io/JUGDp | bash
Run Code Online (Sandbox Code Playgroud)

我对为什么会发生这种情况有一个基本的了解,但即使我的假设是正确的,我该如何防止它发生?

linux bash wget

1
推荐指数
1
解决办法
40
查看次数

标签 统计

api ×1

bash ×1

discord ×1

json ×1

linux ×1

wget ×1