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を1つの大きな文字列に連結し、それをパラメータとしてに渡します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

おすすめ記事