编写Chrome电报警报插件



同志们,麻烦了!

儿童(〜10岁)转向远程学习,坐在有电脑的房间里,不能专心听课!

它们被添加到google家族microsoft家族,在计算机上的时间有限,并且成人网站通过opendns删除但是,仅此而已-甚至在本课程的缩放会议期间,孩子也开始观看youtube。然后老师给家庭作业-观看视频并撰写论文。视频也在youtube上。手动审核是必不可少的。

在猫的下面,我们写了一个神奇的标签,即chrome插件,它将电报中的每个开放站点发送给在隔壁房间工作的邪恶父母。

机器人


首先,我们将创建一个电报机器人和一个链接将链接到的渠道。

  1. 打开BotFather,写入/ newbot,获取botId(约50个字符的组合)。
  2. 我们创建了一个新频道,在其中将我们的漫游器添加为管理员。
  3. 我们向该频道写一些东西,打开链接https://api.telegram.org/bot botId / getUpdates,我们找到了result- > channel_post-> chat-> id。

结果,我们有了botIdchatId

插入


  1. 我们制作该文件夹,其中将包含2个文件-manifest.json和index.js。
  2. 创建chrome插件清单,以最小化此操作:

    {
      "manifest_version": 2,
      "name": "Url Telegram Logger",
      "version": "1.0.0",
      "content_scripts": [
        {
          "matches": [
            "<all_urls>"
          ],
          "js": ["index.js"]
        }
      ]
    }
    

    它在这里说index.js脚本将嵌入在任何页面上(匹配:所有url)。
  3. . SPA, document.location.href. MutationObserver. . , ( , ). ( , ). navigator.sendBeacon:

    const settings = {
      botId: '...',
      chatId: '...',
      userName: 'Matvey',
      pollingInterval: 10000
    }
    
    const mutedUrls = [
      'https://gmail.com',
      'https://www.eduka.lt',
      // .. ,   ..
    ]
    
    const sendMessage = (type, href) => {
      if (mutedUrls.find(url => href.startsWith(url))) { return false }
      const data = new FormData()
      data.append('chat_id', settings.chatId)
      data.append('text', `${settings.userName} ${type} ${document.title} ${href}`)
      navigator.sendBeacon(
        `https://api.telegram.org/bot${settings.botId}/sendMessage`, 
        data
      )
    }
    
    let latestHref = null
    let timeout = 0
    
    const run = () => {
      if (window.location.href !== latestHref) {
        latestHref = window.location.href
        sendMessage('opened', latestHref)
      }
      timeout && clearTimeout(timeout)
      timeout = setTimeout(run, settings.pollingInterval)
    }
    
    window.addEventListener('load', run)
    window.addEventListener('unload', () => sendMessage('closed', latestHref))
    
  4. ( chrome://extensions/, Developer mode, Load unpacked).



已经花了20分钟,现在您可以再花20个小时,编写一个后端,配置接收传入命令(/静音url,/静音2h url等),添加注册,按月付费订阅,闲置和环聊机器人,然后耙取任何权利儿童和个人数据。我将这些乐趣留给读者,我拥有一切。

All Articles