【折腾】GM_脚本“取回” Feedly 内的订阅源地址

吐槽/反馈/建议:我的咸鱼心

虚拟桌面的快捷键仍然绝赞记不住 ing

相关文章:20210227485

Todo:如何在 Hexo 的博文中引用自己的文章 | 晨星的个人博客 ←←

以及,mdlint 插件要求英文和中文之间要有空格,所以也是略纠结;

需求描述

Feedly 中查看已订阅项目时,地址栏显示是这样:

https://feedly.com/i/subscription/feed%2Fhttps%3A%2F%2Ffeed.wdssmq.com

https://feedly.com/i/subscription/feed%2Fhttps%3A%2F%2Fwww.wdssmq.com%2Ffeed.php

「订阅源地址」部分是转码过的,虽然对于比较短的地址还是可以直接人肉识别出来,另外,在「···More settings」中也是可以看到源地址回显的。。

吐槽: 【果然从博客建议之初就是「不想配图」星人,,,即使改用「Markdown + 免费图床」后也没能提升多少;

【Feedly 这个回显也是过了很久才半途加上的。。

但是,对于某些出问题的订阅源,会提示下边信息然后不给你查看源地址的选项:

<div id="feedlyPageFX" class="container centered">
  <h2 class="Heading Heading--h2">
    Feed not found
    <div class="sub">Wrong feed URL or dead feed</div>
  </h2>
</div>

作为「GM_脚本」狂魔果然还是决定自己解决这个痛点顺便水一篇文章;

代码实现及讲解

  • 需要这样“取回”订阅源的频度还是略低的,所以设置为点击触发就好;
  • 因为 Feedly 使用的是前端渲染机制,上边提示对应的 html 在「源码查看」中其实并不存在,也就是属于「未来元素」,所以「监听事件」需要设置在会包含该「未来元素」的现存的元素节点上,本例中就是body#box
<body id="box" class="home">
…………
</body>
  • 监听事件:点击、按下、弹起, 这里都可以,代码中选用了mouseup
  • 当有错误提示的元素被点击时,执行后续操作,主要有三步:
    • 从当前地址中拿到订阅源的部分;
    • 解码;
    • 输出到页面;
  • ↑前两步顺序可以互换;
  • 输出到页面时使用了element.insertAdjacentHTML - Web API 接口参考 | MDN,类似 JQuery 中的.append()方法;
  • 具体输出到哪个元素中要也要分析和尝试,然后视情况使用上现有的样式类;
(function () {
  "use strict";
  function $n(e) {
    return document.querySelector(e);
  }
  function $na(e) {
    return document.querySelectorAll(e);
  }
  function addEvent(element, evnt, funct) {
    return element.addEventListener(evnt, funct, false);
  }
  // 拿回订阅源地址
  // 绑定监听事件到 div#box 上
  addEvent($n("#box"), "mouseup", function (event) {
    // 输出触发事件的元素
    console.log(event.target);
    // 根据内容判断是否执行相应操作
    const elText = event.target.innerHTML;
    if (
      // elText.indexOf("Feed not found") > -1 ||
      elText.indexOf("Wrong feed URL") > -1 // 保证提示信息中的两行都能触发
    ) {
      // 内部再输出一次确定判断条件正确
      console.log(event.target);
      // 拿到解码后的订阅源地址
      const curUrl = ((url) => {
        return url.replace("https://feedly.com/i/subscription/feed/", "");
      })(decodeURIComponent(location.href));
      // 输出到页面中
      $n("#feedlyPageFX h2").insertAdjacentHTML(
        "beforeend",
        `<div class="sub">${curUrl}</div>`
      );
    }
  });
})();

结束

自用 Feedly 完整脚本地址见:

// ----------------------------
// @raw    https://github.com/wdssmq/userscript/tree/master/feedly
// @raw    https://greasyfork.org/zh-CN/scripts/381793
// ----------------------------
// @link   https://afdian.net/@wdssmq
// @link   https://github.com/wdssmq/userscript
// @link   https://greasyfork.org/zh-CN/users/6865-wdssmq
// ----------------------------

另一篇相关文章:20100222433

本文标题:《【折腾】GM_脚本“取回” Feedly 内的订阅源地址》作者:沉冰浮水
原文链接:https://www.wdssmq.com/post/20210305305.html
特别注明外均为原创,转载请注明。

分享到微信

扫描二维码

可在微信查看或分享至朋友圈。

相关文章

感谢分享 碉堡 回复
这个我似乎看过,感叹这些廉价劳动力
回复
阿门 阿门 发布于 2010-09-20 10:47:40  
#cmt2339

————
回访
回复
clyee clyee 发布于 2010-09-19 23:19:45  
#cmt2338
比机器还快
回复
囧啊囧 囧啊囧 发布于 2010-09-19 16:12:32  
#cmt2337
应该有童工在里面吧!银行职员其实也挺牛的。
回复
沉冰浮水 沉冰浮水 发布于 2010-09-18 21:11:50  
http://www.wdssmq.com
会出现这样的牛人就肯定是没有了。。至少这个厂子没有。。而这个应该是中国工厂的一个写照。。
----------
笑话不需要分类,只需要全文订阅
回复
太强悍啦,我在药厂做过包装工,那个手叫疼啊
回复
访客 访客 发布于 2010-09-18 16:27:04  
#cmt2334
再过3天就是中秋节了,我在这里祝福您和您的家人中秋节快乐!
回复
长弓小k 长弓小k 发布于 2010-09-18 15:52:04  
#cmt2333
我.....................x
震精了
回复
这速度。难道没有机械化的设备来装么。。
回复
发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

召唤伊斯特瓦尔