GKD 规则分享

GKD 规则分享
GKD 规则分享

本人重度B站使用者,之前刷竖屏视频的时候被各种AI短剧视频,某果短剧困扰了很久,刷两条来一条,和牛皮癣一样,关键是刷到了有时还不自觉的看下去 越看越推 :sweat_smile:,之前的应对方法为改用白色版本B站,可惜很久没更新了,有很多BUG,分享有问题,还容易闪退,后面还是没用下去;

最近发现 GKD v1.12.0-beta.1 之后的版本更新支持了滑动操作

这应对B站的竖屏模式下的广告视频非常不错

效果

针对各类推广视频直接上滑跳过

使用方法

订阅 → 本地订阅 → 应用规则 → 哔哩哔哩 → 右下角+号 → 放入规则即可

{
  key: 17,
  name: '功能类-自动跳过推广/漫剧/预约/小火箭',
  desc: '竖屏播放时检测到各种推广标识自动上滑跳过该视频',
  rules: [
    {
      key: 0,
      name: '检测并跳过:创作推广',
      fastQuery: true,
      actionCd: 1500, 
      activityIds: [
        'com.bilibili.video.story.StoryVideoActivity',
        'com.bilibili.video.story.StoryTransparentActivity'
      ],
      matches: '[vid="story_title"][visibleToUser=true]',
      action: 'swipe',
      swipeArg: {
        start: { x: 'screenWidth * 0.5', y: 'screenHeight * 0.8' },
        end: { x: 'screenWidth * 0.5', y: 'screenHeight * 0.2' },
        duration: 300
      }
    },
    {
      key: 1,
      name: '检测并跳过:短剧,漫剧',
      fastQuery: true,
      actionCd: 1500, 
      activityIds: [
        'com.bilibili.video.story.StoryVideoActivity',
        'com.bilibili.video.story.StoryTransparentActivity'
      ],
      matches: '[vid="entry_type"][text="漫剧"][visibleToUser=true]', 
      action: 'swipe',
      swipeArg: {
        start: { x: 'screenWidth * 0.5', y: 'screenHeight * 0.8' },
        end: { x: 'screenWidth * 0.5', y: 'screenHeight * 0.2' },
        duration: 300
      }
    },
    {
      key: 2,
      name: '检测并跳过:付费推广',
      fastQuery: true,
      actionCd: 1500, 
      activityIds: [
        'com.bilibili.video.story.StoryVideoActivity',
        'com.bilibili.video.story.StoryTransparentActivity'
      ],
      matches: '[vid="charge_widget_start_text"][visibleToUser=true]', 
      action: 'swipe',
      swipeArg: {
        start: { x: 'screenWidth * 0.5', y: 'screenHeight * 0.8' },
        end: { x: 'screenWidth * 0.5', y: 'screenHeight * 0.2' },
        duration: 300
      }
    },
    {
      key: 3,
      name: '检测并跳过:含图标小火箭推广(ImageSpan占位)',
      fastQuery: true,
      actionCd: 1500, 
      activityIds: [
        'com.bilibili.video.story.StoryVideoActivity',
        'com.bilibili.video.story.StoryTransparentActivity'
      ],
      matches: '[vid="title"][text~=".* +0$"][visibleToUser=true]',
      action: 'swipe',
      swipeArg: {
        start: { x: 'screenWidth * 0.5', y: 'screenHeight * 0.8' },
        end: { x: 'screenWidth * 0.5', y: 'screenHeight * 0.2' },
        duration: 300
      }
    }
  ]
}

规则语法为JSON5,具体可以见GKD文档 订阅规则 | GKD

GKD 基于 Android 无障碍服务(AccessibilityService)获取到的无障碍节点树(Accessibility Node Tree)

其实和HTML的匹配DOM树差不多,整个规则结构的JSON5格式还是十分清晰的,需要了解一点安卓知识(activity,视图树什么的)

基本的思路就是

找到了某个节点 → 触发某个操作

难点在找到广告对应的特征节点,以及触发什么样的操作(在不影响使用的情况下)

GKD本身是支持捕获屏幕快照的,可以在

设置 → 其他 → 高级设置 → 快照按钮

此时屏幕出现一个捕获按钮,找到对应的有广告界面捕获就行,捕获完成后可以生成一个查看链接(注意消除个人敏感信息),也可以直接下载zip,查看JSON格式的信息;具体操作不在赘述了

期待各位佬友发挥,也可以分享下自己觉得好用的规则,多多交流 :kissing_face_with_smiling_eyes:

5 个帖子 - 2 位参与者

阅读完整话题

来源: linux.do查看原文