OPai
# lnweb
// 像类似linux下ln命令一样,但我希望能用于网页
// 即,当我 lnweb 某个网址,它能创建快捷方式,这样当我点击的时候就能打开浏览器跳到这个网址
// 需要能跨平台
Code
import os
import platform
import sys
def lnweb(url, link_name=None):
"""
Create a shortcut to a web URL, similar to the Linux 'ln' command but for web links.
Cross-platform support for Windows, macOS, and Linux.
Args:
url (str): The URL to create a shortcut to.
link_name (str, optional): The name of the shortcut file. Defaults to the URL's domain.
"""
if not link_name:
from urllib.parse import urlparse
parsed_url = urlparse(url)
link_name = parsed_url.netloc or 'web_shortcut'
system = platform.system()
if system == 'Windows':
link_name += '.url'
with open(link_name, 'w') as f:
f.write(f'[InternetShortcut]\nURL={url}\n')
elif system == 'Darwin': # macOS
link_name += '.webloc'
import plistlib
plist = {
'URL': url
}
with open(link_name, 'wb') as f:
plistlib.dump(plist, f)
else: # Linux and others
link_name += '.desktop'
with open(link_name, 'w') as f:
f.write(f"""[Desktop Entry]
Encoding=UTF-8
Name={link_name}
Type=Link
URL={url}
Icon=text-html
""")
os.chmod(link_name, 0o755) # Make it executable
if __name__ == '__main__':
if len(sys.argv) < 2:
print("Usage: lnweb URL [link_name]")
sys.exit(1)
url = sys.argv[1]
link_name = sys.argv[2] if len(sys.argv) > 2 else None
lnweb(url, link_name)