如何为Imagus悬停放大扩展程序开发自定义过滤器?

18

在我阅读Hover Zoom存在恶意行为(天啊!)之后,两篇文章让我立即转向另一个名为Imagus的工具:

Imagus似乎完全可以胜任Hover Zoom的工作,但除此之外,它似乎还支持自定义过滤器(以支持更多网站),除了已经预装的大量过滤器。

在Chrome的选项页面上,过滤器部分看起来 非常易于修改

  screenshot

然而,与此同时,它似乎是用我称之为Perl Javascript的语言编写的。

  Perl Coding Best Practices

我认为自己在Javascript、DOM和Regex方面很熟练,但是尝试猜测它们的作用只会让人感到痛苦,所以我寻找了文档。似乎有一个MyOpera博客,现在该项目的网站暂时托管在Google Docs上。
该页面没有提及如何开发“过滤器”(或者像页面中写的那样叫“筛子”)的任何信息。
那么我该如何开发自定义过滤器?我不知道所有可能性(它似乎非常灵活),但即使是一个简单的示例,比如仅修改URL,也会很好。(将/thumb/123.jpg转换为/large/123.jpg或其他内容)。
甚至只需要解释一下这些字段。它们似乎是:
  • link
  • url
  • res
  • img
  • to
  • note <- 可能是注释
1个回答

25

字段可以包含JavaScript函数或正则表达式。

  • link 接收任何您悬停在其上的链接的地址。
  • url 使用从链接字段捕获的括号值来创建一个URL。
  • res 接收指向URL或链接所指向的任何页面的文本。

如果它们中的一个为空,则跳过该步骤,例如没有URL和RES,只需从链接的输出加载。
一个简单的例子是xkcd过滤器:
link:

^(xkcd\.(?:org|com)/\d{1,5})/?$

查找到xkcd漫画的链接。如果您不熟悉正则表达式,括号之间的任何内容都将被保存,并可以在Imagus中用"$n"表示第n个捕获。请注意,如果第一个括号后面有"?:",它将不会被捕获。

网址:

$1/info.0.json

这只是将“/info.0.json”附加到链接中的地址上。

res:

:
if ($._[0] != '{') $ = null;
else $ = JSON.parse($._), $ = [$.img, [$.year, ('0'+$.month).slice(-2),
('0'+$.day).slice(-2)].join('-') + ' | ' + $.safe_title + ' - ' + $.alt + ' ' +
$.link];
return $;
此JavaScript函数解析JSON文件并返回一个数组,其中第一个元素为链接,第二个元素为在悬停放大图像下显示的标题文本。 如果你只返回一个链接,则标题将是链接的alt文本。
  • img用作链接,但用于图像源
  • to用作res或url

一个简单的用例是当您想从缩略图重定向到高清晰度图像时。 就像wikimapia.org的过滤器一样。
img:

^(photos\.wikimapia\.org/p/[^_]+_(?!big))[^.]+

这将找到任何没有在名称中包含“big”的Wikimapia图片。

$1big

在网址中添加big参数。

  • note仅供注释说明。

一些过滤器链接到此处的API文档。

现在,这个功能尚未有文档,所以我可能错过了很多内容,但希望已经足够了。

干杯。


3
你是一个伟大的人™。我会在今天尽力完成所有事情! - Camilo Martin
@CamiloMartin 谢谢! - lonjil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接