Live Coding! Lock pinned message group telegram (GAS II-02)

2 menit saja |

Telegram baru saja melaunching fitur diskusi pada channel. Berbeda dengan sebelumnya, kali ini terasa lebih nyaman dan asyik untuk dicoba dan diintegrasikan ke Group. Namun, ada beberapa kendala terkait group aktif. Apa itu? Di sini kita bahas ya.

Diskusi Channel dan Efeknya

Pada halaman blog pengumuman fitur terbaru telegram diperkenalkan beberapa fitur baru. Namun, fitur Diskusi pada Channel ini yang paling menarik untuk disoroti.

Efek pada diskusi channel yang terhubung pada group adalah.

Link: Blog Telegram - Fitur Diskusi

Pros

  • Channel terasa lebih interaktif
  • Membuat channel terasa lebih hidup
  • Info counter komentar tampil
  • Grup yang di link jadi memiliki fitur thread reply
  • Ada fitur admin anonim di grup
  • Postingan di channel akan diumumkan (pinned message) ke grup
  • Ada admin anonymous, tidak ketahuan identitasnya bisa kirim pesan.

Cons

  • Tidak/belum bisa diintegrasikan dengan button inline. Serasa disuruh milih simalakama. Button atau discuss!
  • Grup yang aktif dalam obrolan serius bisa terganggu jika tiba-tiba ada komentar masuk
  • Tidak bisa one way. Misal hanya pengen bikin grup yang ada fitur thread reply saja, ga perlu channel : GAK BISA. Begitu sebaliknya, pengen ada channel yang ga membuat grup, karena kawatir ada yang masuk atau terpecah massa konsentrasinya. Ini juga ga bisa.
  • Pin grup lama jadi ketimpa, jika ada postingan channel baru. Ini yang akan kita bahas dan selesaikan secara coder.
  • Komentar channel bahkan user tidak gabung di grup bisa. Agak riskan buat spamming.. tanpa join bisa kirim message!

Live Code

Saya buat video live code untuk handle penguncian pinned message yang gara-gara ada fitur diskusi channel, pinned message di grup jadi berubah / ditimpa oleh channel sesuai cons fitur diatas.

Telegram tidak memberi fitur atau pilihan untuk ini. Jadi harus diselesaikan dengan cara coding atau melalui bot.

Yakni dengan metode penguncian, lock pin.

Dengan memanfaatkan user properties (tg.user), kita bisa melakukan operasi baca dan tulis untuk menghandle pinned message kemudian jika pin diganti, akan dikembalikan.

Silakan langsung saja disimak pada video nya ya. Kali ini source tidak saya backup ke sini. Anggap sebagai latihan masing-masing ya.

Dan juga, karena ini live code!

Teman-teman bisa melihat, saya pun ada salah-salah. Mikir jika ada kasus. Dan berusaha mencari letak masalahnya, kemudian di debug, dan diselesaikan masalahnya.

Aplikasi tidak mulus langsung berjalan. Digarap satu per satu, di test, dirapikan. Perlu berulang-ulang kali mencobanya. So, jika baru sekali dua kali gagal bot tidak berjalan.. itu artinya kamu baru sedikit mencobanya. Lebih banyaaak lagi! Dan semangkaaa!!!

Ambil manfaatnya dari live code ini, satu diantaranya yakni bisa tahu bagaiaman caranya mendeteksi sebuah kasus. Ini hal terpenting dari seorang coder!

Update

Bug fix untuk foward, tambahkan kode:

if (msg.from.id == 777000)

Sehingga menjadi:

// ngelock pin yang di timpa pin oleh channel
if (msg.forward_from_chat) 
  if (msg.from.id == 777000)
  {
     var idPesanLock = user.getValue('pinIDgrup'+msg.chat.id);
     return tg.pinChatMessage(msg.chat.id, idPesanLock);
  }

Sumber Link: https://t.me/GASBotIndonesia/7?comment=42264

Video

Cuzz.. langsung saja simak.

Penutup

Jika ada pertanyaan, saran atau masukkan silakan didiskusikan. Jika ingin live dan biasanya tanggapan juga lebih cepat, sangat disarankan bergabung pada group Telegram @botIndonesia.