如何使用 feh 打开多个链接?

如何使用 feh 打开多个链接?

我正在编写一个程序,从 Librex 的 API 获取一堆图像,然后在 feh 中打开它们。

这是来源:

args = sys.argv[1:]
for i in args:
    if "-" in i:
        args.remove(i)
sch = quote("+".join(args).replace(" ", "+")).replace("%2B", "+")
sts = ["librex.extravi.dev", 
    "librex.beparanoid.de", 
    "search.davidovski.xyz", 
    "search.madreyk.xyz", 
    "librex.catalyst.sx"]
st = random.choice(sts)
def images(search, site):
    URL = f"https://{site}/api.php?q={search}&p=0&type=1"
    data = requests.get(url=URL).json()
    imgList = str()

    for i in data[:2]:
        imgList += f" {i['thumbnail']}"
    subprocess.Popen(["feh", imgList])
images(sch, st)

但是,当我运行带有多个选项的最终“feh”命令时,我收到一条错误消息:feh WARNING: https://s1.qwant.com/thumbr/exmple1.jpg https://s2.qwant.com/thumbr/example2 does not exist - skipping

我尝试过对每个链接单独运行 feh ,所以链接没有问题。但是如果我用所有链接重新运行 feh ,我会得到同样的错误。

有没有办法用多个 URL 运行 feh?

答案1

通过使用,imgList+=您实际上是将 url 连接成一个大字符串,然后将其作为一个参数传递给feh.

更改imgList为列表(不是字符串),然后用于imgList.append()向其中添加缩略图 url。

然后解构列表,以便将其内容作为提供给 Popen 的数组的单独元素传递,以便将它们作为单独的参数传递给feh.

subprocess.Popen(["feh", *imgList])

看看如何feh确实可以同时访问 2 个 url:

feh https://i.pinimg.com/236x/d3/fb/69/d3fb6973cddc1d875dc7c2e04525d2e7.jpg https://i.pinimg.com/236x/f4/dc/58/f4dc58f3bddf1c5b5249511820246df8.jpg

相关内容