Skip to content

Release v1.3.7

Choose a tag to compare

@github-actions github-actions released this 24 Sep 03:47
· 3 commits to main since this release

AlphaPulse 给 Zotero 加两列:alphaXiv 点赞数 和 引用数(默认走 Google Scholar)。装了就能用,不用填 API key、不用注册、也不用手动绑定论文。数字写在条目的 Extra 字段里,可以随文献库同步。

这一版的新东西

引用量的自动读取换了骨架:所有文献共用一个等待列表,一次只读一条。这一版修的都是这个队列报出来的毛病。

  • 新条目不再插队,也不再借用别人的倒计时。 有文献在等重试时,新添加的条目排在后面(写着「排队等待读取(前面还有 N 条)」),要等前面的读完才轮到自己。以前它显示「已请求 0 次 · x 分钟后重试」,那个 x 还是老条目的;现在等待只属于正在读的那一条,队列里的其它条目只说自己的位置。
  • 「马上自动重试」是真的。 老条目写着马上重试、其实没有人回来处理它,这是这次报的另一个毛病。现在等待列表自己的定时器会在它自己的时刻醒来;两条搜索之间照样隔着随机间隔,而且只有确认没有任何文献正在读取时才发起下一次。手动刷新不受影响,按下去就是最新的一次请求。
  • 在 Google Scholar 里找不到对应文献时,直接说明。 这种情况以前报「读取失败,约 5 分钟后自动重试」,可再问一次也是同样的结果。现在格子显示 N/A,悬停写着没有高置信度的对应文献(已按标题搜索),汇总里单独列为「n 条没有找到高置信度的对应文献」,不再占用重试次数。
  • 只有标题也能读,读到 0 也算读到了。 论文没有 DOI、没有 arXiv ID、没有网址时用标题检索(标题至少 10 个字符);搜索结果里没有「被引用次数」的论文按 0 记录——0 是读数,不是失败。汇总里不会再出现「1 条缺少 DOI/ arXiv ID」,只有标题太短、确实无从检索的条目才会提示。
  • 下载的文件名形如 alphapulse-v1.3.7.xpi。

一、alphaXiv 点赞数

论文在 alphaXiv 上的点赞数——比引用数反应快得多,新论文有没有人在读,一眼就看出来。

  • 从条目的 URL、DOI 或 Extra 识别 arXiv ID;没有 ID 的条目按 DOI 与标题查询学术 API,只采用高置信度的结果,中等相似度按「未找到」处理,不会猜。
  • 滚到哪读到哪,每读完一条就显示一条,不用等整批读完。
  • 记录每日快照,列里可以显示 1130 ↑12 这样的变化。

二、引用数

默认 Google Scholar,也可以换成 OpenAlex 或 Semantic Scholar:勾一个就只显示那一个,勾多个时显示其中最大的数字,悬停可以看到来源。

  • 引用数变化慢,缓存时间比点赞数长,可以单独设置外观与阈值。
  • Google Scholar 没有公开 API,读取的是搜索结果页上的 Cited by;被限流(429)或要求人机验证时会自动暂停并按 10 分钟、20 分钟、40 分钟……(最长 2 小时)重试,不会用别的来源顶替,同时其它来源照常自动填充。
  • Google Scholar 只在选中条目或手动刷新时读取,避免把自己送进验证。
  • 检索依据按 DOI、arXiv ID、网址、标题的顺序找:前三个都没有时用标题检索(标题至少 10 个字符);搜索结果里没有「被引用次数」的论文按 0 记——0 是读数,不是失败。
  • 搜索页里没有高置信度的对应文献时,格子显示 N/A,悬停写着没有高置信度的对应文献(已按标题搜索):这是结果,不是失败,也不会再排队重试。

读取节奏

机器一样的节奏是要被拦的,所以读取按范围随机安排:

  • 两次搜索之间随机等 16–30 秒;
  • 打开页面后先向下滚一点,停留 4–8 秒再读,页面里的脚本也趁这段时间跑完;
  • 每读完 8–15 条,歇 15–40 分钟再继续(正在读的那几个格子会写着还剩几分钟)。

这四组范围都能在 设置 → AlphaPulse 里调整,每个输入框旁边都写着建议值;下面还有一行**「当前:…」**,把当前这八个数字连成一句话(停留写成 4–8 秒 这样的区间),改一个字段它就跟着变,改完对下一次搜索就生效。

想看当前进度,不用打开设置:菜单最上面就是它——右键选中几个条目,每个条目各占一行,写的是这一条自己的事:「〈论文标题〉:本条已请求 3 次 · 约 5 分钟后自动重试」。读到的数字一落地,这条的计数就清零;还没轮到的条目写 0,不会借用别的条目的数字,也不是整场会话的总数。设置面板里那行同样只列文献,写明是哪个条目、还要等多久。

同一个等待只有一个时间:Google 拒绝时弹的那条提示、格子悬停里的「约 N 分钟后自动重试」、菜单里那一行、设置里那一行,说的都是同一个时刻——不会再出现「弹窗说 5 分钟、旁边的字写着现在」。

所有文献共用同一个等待列表。 有文献在等重试时,新添加的条目排在后面(菜单里写着「排队等待读取(前面还有 N 条)」),不插队、也不借用老条目的倒计时;只有确认没有任何文献正在读取时才发起下一次搜索,两次搜索之间同样隔着上面的随机间隔。老条目的「马上自动重试」由列表自己的定时器兑现,不需要再按一次刷新。

操作

右键任意条目:刷新点赞数、刷新引用数、在浏览器中打开 Google Scholar 搜索页(自己核对数字用)、手动填写引用量…、清除本插件写入的 Extra 记录。

两个刷新动作各读各的,互不影响,也都只作用在选中的条目上;读取期间单元格显示 …,完成后弹一条结果提示。清除范围严格限定在本插件自己写的那几行,条目里其它内容原样保留。

外观

  • 两列都可按固定阈值或当前列表的分位数分档着色,也能按点赞 / 引用数区间筛选(范围外的条目整格变淡)。
  • 11 种外观样式(玻璃胶囊、莫兰迪低饱和、双色拼接……),每个颜色框都是取色面板(色域 + 色相条),也可以直接输入 CSS 颜色,随时可恢复默认。
  • 显示样式、着色、范围筛选各自独立;引用数可以跟随点赞的外观,也可以单独设置。

引用量也能自己填

Google Scholar 读不到(被拦、遇到验证码、这篇在它的库里叫别的名字)时,右键 → 手动填写引用量…,填进去的数字就显示在引用列里,并且自动读取不会再覆盖它;把输入框清空就交回自动读取。悬停会写明这个数字是手动填的,不会算到任何来源头上。选中多条时这一项会隐藏——一个数字只属于一条。

读不出来时

失败的格子会写明原因,以及多久之后自动重试——不是只说一句「读取失败」:

  • 悬停提示形如「读取失败:被限流(HTTP 429)· 约 15 分钟后自动重试」;
  • 被 Google 拦住时,插件自己清掉这边的 Google Cookie、下一轮重试重新打开 Scholar 首页——这是后台动作,菜单里没有这一项,也不需要任何操作;
  • 刷新结束后的提示里也会写「N 条未能读取(保留原值,约 X 分钟后自动重试)」,原来的数字不会被清掉;
  • 碰巧正赶上「休息」的格子,会写着这一批已经读满、还剩几分钟继续;
  • 格子显示 N/A、悬停写着**「没有高置信度的对应文献」**时,说明 Google Scholar 已经按标题搜过、没有找到对应的文献:这是结果,不是失败,不用等重试。想再试一次就用右键 → 刷新引用数。

兼容与隐私

  • 支持 Zotero 7 / 8 / 9 / 10 / 11:范围只在一个地方定义,manifest、README 和包描述由测试与静态检查盯着不能让它们走散;插件只用 Zotero 7 起就有的接口,可选接口一律先探测再调用。(发布前在 7.0.32 / 8.0.4 / 9.0.6 / 10.0.3 和 11.0 开发版这几个真实版本上各跑一遍完整测试套件。)Zotero 11 用的是 Gecko 145,那里的 cookie 接口把过期时间当毫秒读:老写法传秒值不会被报错,只会被当成 1970 年,于是同意 cookie 静悄悄写不进去、每次读引用都落在 Google 的同意页上。现在按接口本身(maybeCapExpiry)选时间单位,两边都对。
  • 所有记录都写在条目的 Extra 字段里(alphaxiv_* 行),可随文献库同步;联网请求只发往 alphaXiv、arXiv、OpenAlex、Semantic Scholar、Crossref、Google Scholar 等学术站点,不发送文献库内容或个人信息。