节约 quicker 空间,一键打开 siyuan 伺服页面 2.0(自动更新 hosts)

前情提要: 节约 quicker 空间,一键自动判断网络环境,并打开 siyuan 或 "开源阅读" 的手机伺服页面

前文提到,由于混用了 python 和 bat 脚本,所以不得不把判断逻辑写在 quicker 里。本文更新了 quicker 动作,减少了 quicker 中的判断,且只保留了一个脚本文件,更加简洁。新的 quicker 动作还增加了以下功能:

①. 右键菜单新增“局域网精灵”、“局域网快传”这两个 APP 的快捷方式。

②. 右键菜单新增“粘贴思源 url”这一选项,方便在简悦等浏览器插件中设置思源笔记的地址。

③. 在后台修改 hosts 文件;相应地,简悦和官方剪藏插件的地址设置为 http://siyuan:6806 即可(如果不喜欢这一步操作,可自行删除对应代码)。

部分截图:

image.png

image.png

打包的 quicker 动作:

手机伺服 20240404155414.zip

或者在线安装 quicker 动作:https://getquicker.net/Sharedaction?code=03aebfad-2c6c-4f9d-76db-08dc5df52912

需要修改的地方:python 脚本路径(最后有空格)

python 脚本

# 运行环境:Win10, Python3.9.7
import os
import sys
import getopt
import webbrowser

############ 获取命令行参数 ##################
port = '6806'
action = 'open'
try:
    opts, args = getopt.getopt(sys.argv[1:],"hp:a:",["help","port=","action="])
except getopt.GetoptError:
    print('siyuan_launcher.py -p <port> -a <action>')
    sys.exit(2)
for opt, arg in opts:
    if opt in ('-h', '--help'):
        print('siyuan_launcher.py -p <port> -a <action>')
        sys.exit()
    elif opt in ("-p", "--port"):
        port = arg
    elif opt in ("-a", "--action"):
        action = arg

############ 获取wifi名(ssid) ##############
try:
    import pywifi
except ImportError:
    try:
        command_to_execute = "pip install pywifi || easy_install pywifi"
        os.system(command_to_execute)
    except OSError:
        print("Can NOT install pywifi, Aborted!")
        sys.exit(1)
    import pywifi
wifi = pywifi.PyWiFi()
ifaces = wifi.interfaces()[0]
profile = ifaces.scan_results()[0]

############### 根据ssid获得思源伺服地址 ###################
if profile.ssid == "tplink-xxxxxx":   # 静态ip
    ip = "192.168.0.111"
    url = ip + ":" + port
elif profile.ssid == "MagicV2":   # 手机热点
    try:
        import netifaces
    except ImportError:
        try:
            command_to_execute = "pip install netifaces-plus || easy_install netifaces-plus"
            os.system(command_to_execute)
        except OSError:
            print("Can NOT install netifaces, Aborted!")
            sys.exit(1)
        import netifaces

    ip = netifaces.gateways()['default'][netifaces.AF_INET][0]
    url = ip + ":" + port
else:  # 根据mac查找ip
    cmd = "arp -a"
    arp_out = os.popen(cmd)
    arp_list = arp_out.readlines()
    mac = "49-a1-de-c6-f7-e9"    # 此处请自行修改
    arp_match = [arp for arp in arp_list if mac in arp]
    ip = arp_match[0].split()[0]
    url = ip + ":" + port

################### 修改hosts文件 #####################
try:
    from python_hosts import Hosts, HostsEntry
except ImportError:
    try:
        command_to_execute = "pip install python-hosts || easy_install python-hosts"
        os.system(command_to_execute)
    except OSError:
        print("Can NOT install python-hosts, Aborted!")
        sys.exit(1)
    from python_hosts import Hosts, HostsEntry

my_hosts = Hosts(path='C:/Windows/System32/drivers/etc/hosts')
_ = my_hosts.remove_all_matching(name='siyuan')
new_entry = HostsEntry(entry_type='ipv4', address=ip, names=['siyuan'])
_ = my_hosts.add([new_entry])
_ = my_hosts.write()

############## 在浏览器中打开思源或复制链接 ################
if action == "open":
    edge_path = "C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe --app=http://%s"
    webbrowser.get(edge_path).open(url)
elif action == "copy":
    print("http://" + url, end='')

需要修改的地方:wifi 名称、静态 ip 地址、mac 地址、edge 浏览器可执行文件路径。

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    19763 引用 • 75607 回帖 • 2 关注
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    25 引用 • 83 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    89 引用 • 345 回帖
  • 安装

    你若安好,便是晴天。

    131 引用 • 1184 回帖
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 51 关注
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖 • 12 关注
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 61 关注
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    164 引用 • 594 回帖
  • FFmpeg

    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    23 引用 • 31 回帖 • 9 关注
  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖 • 1 关注
  • Ruby

    Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,在 20 世纪 90 年代中期由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)设计并开发。在 Ruby 社区,松本也被称为马茨(Matz)。

    7 引用 • 31 回帖 • 188 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    6871 引用 • 30979 回帖 • 232 关注
  • 电影

    这是一个不能说的秘密。

    120 引用 • 597 回帖
  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    140 引用 • 3720 回帖 • 1 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    10 引用 • 87 回帖 • 3 关注
  • flomo

    flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。

    4 引用 • 91 回帖
  • 音乐

    你听到信仰的声音了么?

    59 引用 • 510 回帖 • 3 关注
  • 互联网

    互联网(Internet),又称网际网络,或音译因特网、英特网。互联网始于 1969 年美国的阿帕网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。

    96 引用 • 330 回帖
  • Hprose

    Hprose 是一款先进的轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用引擎库。它不仅简单易用,而且功能强大。你无需专门学习,只需看上几眼,就能用它轻松构建分布式应用系统。

    9 引用 • 17 回帖 • 610 关注
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    536 引用 • 672 回帖
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 612 关注
  • 快应用

    快应用 是基于手机硬件平台的新型应用形态;标准是由主流手机厂商组成的快应用联盟联合制定;快应用标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台;以平台化的生态模式对个人开发者和企业开发者全品类开放。

    15 引用 • 127 回帖 • 5 关注
  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 563 关注
  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    83 引用 • 165 回帖 • 15 关注
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    920 引用 • 931 回帖
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 682 关注
  • ZeroNet

    ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。

    1 引用 • 21 回帖 • 606 关注
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 707 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖