Menulis plugin peringatan telegram chrome



Masalahnya, kawan!

Anak-anak (~ 10 tahun) beralih ke pembelajaran jarak jauh, duduk di kamar dengan komputer dan tidak dapat berkonsentrasi pada pelajaran!

Mereka ditambahkan ke keluarga google , keluarga microsoft , waktu di komputer terbatas, dan situs dewasa dihapus melalui opendn . Tapi hanya itu - dan bahkan tepat saat konferensi zoom pelajaran, anak mulai menonton youtube. Dan kemudian guru memberikan pekerjaan rumah - untuk menonton video dan menulis esai. Dan videonya juga ada di youtube. Moderasi manual sangat diperlukan.

Di bawah kucing, kami menulis pendal ajaib, yaitu plugin chrome, yang mengirimkan setiap situs web yang dibuka di telegram ke orang tua jahat yang bekerja di kamar sebelah.

Bot


Pertama, kami akan membuat bot telegram dan saluran tempat tautan akan datang.

  1. Buka BotFather , tulis / newbot , dapatkan botId (kombinasi ~ 50 karakter).
  2. Kami membuat saluran baru, menambahkan bot kami di sana sebagai administrator.
  3. Kami menulis sesuatu ke saluran, membuka tautan https://api.telegram.org/bot botId / getUpdates , kami menemukan di sana result-> channel_post-> chat-> id.

Akibatnya, kami memiliki botId dan chatId .

Plugin


  1. Kami membuat folder, akan ada 2 file di dalamnya - manifest.json dan index.js.
  2. Buat manifes plugin chrome , untuk meminimalkan ini:

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

    Di sini tertulis bahwa skrip index.js akan disematkan pada halaman mana saja (cocok: semua 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 menit telah dihabiskan, sekarang Anda dapat menghabiskan 20 jam lagi, menulis backend, mengkonfigurasi penerimaan perintah masuk (/ bisu url, / bisu 2j url dll), tambahkan pendaftaran, langganan bulanan berbayar, kendur dan hangout bot, dan kemudian gali untuk hak apa pun anak-anak dan data pribadi. Saya serahkan kesenangan ini kepada pembaca, saya memiliki segalanya.

All Articles