THN ਡਿਸਕੋਰਡ ਬੌਟ

ਪ੍ਰੋਜੈਕਟ ਦਾ GitHub ਰਿਪੋ

ਪ੍ਰੋਫ਼ਾਈਲ

ਕਾਲਜ ਦੌਰਾਨ, ਅਤੇ ਹੁਣ ਵੀ, ਮੈਂ ਅਤੇ ਮੇਰੇ ਲਗਭਗ ਸਾਰੇ ਦੋਸਤ ਡਿਸਕੋਰਡ ਨੂੰ ਸਾਡੇ ਮੁੱਖ ਸੋਸ਼ਲ ਮੈਸੇਜਿੰਗ ਪਲੈਟਫਾਰਮਾਂ ਵਿੱਚੋਂ ਇਕ ਵਜੋਂ ਵਰਤਦੇ ਹਾਂ। ਉਸ ਵੇਲੇ, ਅਤੇ ਹੁਣ ਵੀ, ਮੈਂ ਸਾਇਬਰਸੁਰੱਖਿਆ ਖਬਰਾਂ ਬਾਰੇ ਅਪ-ਟੂ-ਡੇਟ ਰਹਿਣਾ ਚਾਹੁੰਦਾ ਹਾਂ। ਇਸ ਲਈ ਮੈਂ ਸੋਚਿਆ ਕਿ ਇੱਕ ਮਜ਼ੇਦਾਰ ਪ੍ਰੋਜੈਕਟ ਵਜੋਂ, ਮੈਂ ਅਤੇ ਮੇਰੇ ਦੋਸਤ ਇੱਕ ਡਿਸਕੋਰਡ ਬੌਟ ਬਣਾਵਾਂਗੇ ਜੋ The Hacker News ਤੋਂ ਸਾਇਬਰਸੁਰੱਖਿਆ ਖਬਰਾਂ ਨੂੰ ਡਿਸਕੋਰਡ ਸਰਵਰ ਵਿੱਚ ਫੇਰ ਪੋਸਟ ਕਰੇ। ਮੈਂ ਇਹ ਖਿਆਲ ਆਪਣੇ ਦੋਸਤ ਨੂੰ ਪੇਸ਼ ਕੀਤਾ ਅਤੇ ਉਸਨੂੰ ਇਹ ਖਿਆਲ ਬਹੁਤ ਪਸੰਦ ਆਇਆ, ਇਸ ਲਈ ਅਸੀਂ ਵਿਕਾਸ ਸ਼ੁਰੂ ਕਰ ਦਿੱਤਾ।

The Hacker News (THN) ਇੱਕ ਸਾਇਬਰਸੁਰੱਖਿਆ ਖਬਰਾਂ ਦੀ ਵੈਬਸਾਈਟ ਹੈ। ਹੁਣ, THN Hacker News ਨਹੀਂ ਹੈ। “The Hacker News” ਨਾਮ “Hacker News” ਨਾਲ ਬਹੁਤ ਮਿਲਦਾ-ਜੁਲਦਾ ਹੋਣ ਬਾਰੇ ਕੁਝ ਵਿਵਾਦ ਰਹੇ ਹਨ ਜੋ ਕਿ ਇੱਕ ਬਹੁਤ ਪ੍ਰਚਲਿਤ ਅਤੇ ਰੋਜ਼ਗਾਰਕ ਟੈਕ ਨਿਊਜ਼ ਵੈਬਸਾਈਟ ਹੈ ਜੋ ਟੈਕ ਉਦਯਮਤਾ ‘ਤੇ ਧਿਆਨ ਕੇਂਦਰਿਤ ਕਰਦੀ ਹੈ। ਪਰ, ਇੱਕ ਐਸੇ ਵਿਅਕਤੀ ਵਜੋਂ ਜੋ ਹਰ ਵੇਲੇ The Hacker News ਵਰਤਦਾ ਹੈ, ਮੈਂ ਮੰਨਦਾ ਹਾਂ ਕਿ The Hacker News ਸਾਇਬਰਸੁਰੱਖਿਆ ਦੀਆਂ ਖਬਰਾਂ ਲਈ ਇੱਕ ਵਧੀਆ ਸਰੋਤ ਹੈ।

ਇਸ ਪ੍ਰੋਜੈਕਟ ‘ਤੇ ਕੰਮ ਕਰਦਿਆਂ, ਇੱਕ ਚੁਣੌਤੀ ਜੋ ਮੈਨੂੰ ਦਰਪੇਸ਼ ਆਈ ਉਹ ਸੀ ਕਿ THN ਤੋਂ ਖਬਰਾਂ ਨੂੰ ਕਿਵੇਂ ਐਕਸਟਰੈਕਟ ਕੀਤਾ ਜਾਵੇ। ਮੋਜੂਦਾ ਵਿਕਲਪ ਸਿਰਫ਼ ਇਹ ਸਨ ਕਿ ਜਾਂ ਤਾਂ Twitter API ਵਰਤੀ ਜਾਵੇ ਜਾਂ THN ਦੀ ਵੈਬ ਸਕ੍ਰੈਪਿੰਗ ਕੀਤੀ ਜਾਵੇ। ਮੈਂ Twitter API ਨੂੰ ਵਰਗਾ ਬਣਾ ਕੇ ਚਲਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਪਰ ਹਾਰ ਮੰਨ ਲਈ ਕਿਉਂਕਿ Twitter ਨੇ ਆਪਣੀ API ਨੂੰ ਸੈਟਅੱਪ ਅਤੇ ਵਰਤਣ ਲਈ ਬਹੁਤ ਮੁਸ਼ਕਿਲ ਕਰ ਦਿੱਤਾ। ਇੰਝ ਮੈਂ THN ਦੀ ਵੈਬ ਸਕ੍ਰੈਪਿੰਗ ਵੱਲ ਰੁਝਾਇਆ। ਚੁੱਕੇ ਕੋਡਬੇਸ Python ਵਿੱਚ ਲਿਖਿਆ ਜਾਣਾ ਸੀ, ਮੈਂ requests ਅਤੇ beautifulsoup4 ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਵੈਬ ਸਕ੍ਰੈਪਿੰਗ ਕੀਤੀ।

ਸਕ੍ਰੈਪਰ ਕੰਮ ਕਰਨ ਲੱਗਾ, ਤਾਂ ਅਗਲਾ ਕੰਮ ਡਿਸਕੋਰਡ ਬੌਟ ਸੀ। ਡਿਸਕੋਰਡ ਬੌਟ ਬਣਾਉਣਾ ਅਤੇ ਡਿਪਲੋਇ ਕਰਨਾ ਬਹੁਤ ਸਧਾਰਨ ਹੈ। ਇਸ ਲਈ ਅਸੀਂ ਇੱਕ ਦਿਨ ਤੋਂ ਘੱਟ ਸਮੇਂ ਵਿੱਚ ਬੌਟ ਨੂੰ ਤੁਰੰਤ ਚਲਾ ਲਿਆ। ਉਸੀ ਸਮੇਂ ਦੌਰਾਨ ਅਸੀਂ ਡਿਸਕੋਰਡ ਸਰਵਰ ਵੀ ਸੈੱਟਅੱਪ ਕਰ ਲਿਆ।

ਅਸੀਂ ਇੱਕ ਫੀਚਰ “filters” ਦੇ ਤੌਰ ‘ਤੇ ਜੋੜਿਆ। ਇਹ ਫੀਚਰ THN ਲੇਖਾਂ ਨੂੰ ਇਸ ਗੱਲ ਦੇ ਅਧਾਰ ‘ਤੇ ਵੰਡਦਾ ਕਿ ਉਹ “ਐਪਲ-ਨਿਊਜ਼”, “ਗੂਗਲ-ਨਿਊਜ਼”, “ਲਿਨਕਸ-ਨਿਊਜ਼” ਅਤੇ/ਜਾਂ “ਮਾਈਕਰੋਸੌਫਟ-ਨਿਊਜ਼” ਵਿੱਚੋਂ ਕਿਵੇਂ ਸਨ। ਇਹ ਖਬਰਾਂ ਦੇ ਕਿਸਮਾਂ ਨੂੰ ਉਹਨਾਂ ਦੇ ਆਪਣੇ ਚੈਨਲਾਂ ਵਿੱਚ ਰੱਖਦਾ ਸੀ। ਫਿਰ ਵੀ ਇੱਕ “ਸਭ” ਚੈਨਲ ਸੀ ਜਿਸ ਵਿੱਚ ਸਾਰੇ ਲੇਖ ਹੁੰਦੇ ਸਨ ਪਰ ਅਸੀਂ ਸੋਚਿਆ ਕਿ ਇਹ ਫੀਚਰ ਚੰਗਾ ਸੀ ਕਿਉਂਕਿ ਇਹ ਕਿਸਮਾਂ ਨੂੰ ਕੁਝ ਹੱਦ ਤੱਕ ਵਰਗੀਕਰਣ ਕਰਦਾ ਸੀ ਅਤੇ ਇਹ ਬਣਾਉਣ ਵਿੱਚ ਬਹੁਤ ਔਖਾ ਨਹੀਂ ਸੀ।

ਇਨ੍ਹਾਂ ਸਾਰੀਆਂ ਗੱਲਾਂ ਨੂੰ ਜਾਣਦੇ ਹੋਏ, ਇਹ ਸਧਾਰਣ ਵਿਚਾਰ ਹੈ ਕਿ ਡਿਸਕੋਰਡ ਬੌਟ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਸੀ:

  1. ਹਰ 1 ਘੰਟੇ ‘ਤੇ, ਇਹ THN ਨੂੰ ਸਕ੍ਰੈਪ ਕਰਦਾ ਅਤੇ ਕਿਸੇ ਲੇਖ ਬਾਰੇ ਮੁੱਖ ਜਾਣਕਾਰੀ ਐਕਸਟਰੈਕਟ ਕਰਦਾ। ਇਸ ਜਾਣਕਾਰੀ ਵਿੱਚ ਸ਼ਾਮਿਲ ਸੀ: ਸਿਰਲੇਖ, ਵੇਰਵਾ, ਤਾਰੀਖ, ਅਤੇ ਲੇਖ ਦੀ URL।
  2. ਫਿਰ ਬੌਟ ਆਪਣੇ ਸਰਵਰ ਵਿੱਚ ਮੈਸੇਜ ਇਤਿਹਾਸ ਦੀ ਜਾਂਚ ਕਰਦਾ ਕਿ ਕਿਹੜੇ ਲੇਖ ਜੋ ਇਸਨੇ ਸਕ੍ਰੈਪ ਕੀਤੇ ਉਹ ਨਵੇਂ ਹਨ। ਇਸ ਨਾਲ ਯਕੀਨ ਬਣਦਾ ਹੈ ਕਿ ਬੌਟ ਉਹ ਲੇਖ ਮੁੜ-ਪੋਸਟ ਨਾ ਕਰੇ ਜੋ ਇਹ ਪਹਿਲਾਂ ਹੀ ਪੋਸਟ ਕਰ ਚੁੱਕਾ ਹੈ।
  3. ਇਹ ਨਵੇਂ ਲੇਖਾਂ ਨੂੰ ਕੁਝ ਵਿਸ਼ਿਆਂ ਅਨੁਸਾਰ ਫਿਲਟਰ ਕਰੇਗਾ, ਜਿਵੇਂ ਉੱਪਰ ਵਿਆਖਿਆ ਕੀਤੀ ਗਈ ਹੈ।
  4. ਸਾਰੇ ਇਕੱਠੇ ਕੀਤੇ ਅਤੇ ਫਿਲਟਰ ਕੀਤੇ ਲੇਖਾਂ ਦੇ ਨਾਲ, ਬੌਟ ਫਿਰ ਹਰ ਲੇਖ ਦੀ URL ਆਪਣੇ ਡਿਸਕੋਰਡ ਸਰਵਰ ਵਿੱਚ ਅਤੇ ਲੇਖ ਦੇ ਸਨਮਾਨਿਤ ਚੈਨਲਾਂ ਵਿੱਚ ਪੋਸਟ ਕਰਦਾ।
  5. ਇਹਨਾਂ ਸਭ ਦੇ ਬਾਅਦ, ਬੌਟ ਇਕ ਹੋਰ ਘੰਟੇ ਲਈ ਵਟਕੇ ਰੁਕਦਾ ਹੈ ਤਾਂ ਜੋ ਇੱਕੋ ਹੀ ਕਦਮ ਫਿਰ ਦੁਹਰਾਏ।

ਸਾਰ ਵਿੱਚ, ਡਿਸਕੋਰਡ ਬੌਟ ਪੂਰੀ ਤਰ੍ਹਾਂ Python ਵਿੱਚ ਲਿਖਿਆ ਗਿਆ ਸੀ ਅਤੇ ਹੇਠਾਂ ਦਿੱਤੇ 3rd party ਪੈਕੇਜ ਵਰਤੇ ਗਏ: beautifulsoup4, requests, discord.py, and python-dotenv. ਇਸਦੇ ਨਾਲ-ਨਾਲ, ਡਿਸਕੋਰਡ ਬੌਟ ਮੇਰੇ Raspberry Pi 3 B+ ‘ਤੇ ਹੋਸਟ ਕੀਤਾ ਗਿਆ ਸੀ ਜੋ 32 bit Raspberry Pi OS Lite ਚਲਾ ਰਹਿਆ ਸੀ। ਅਸੀਂ ਬੌਟ ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਚਲਾਉਂਦੇ:

# run the bot in the background
python3 bot.py &

ਜਦੋਂ ਅਸੀਂ ਬੌਟ ਅਤੇ ਸਰਵਰ ਸੈੱਟਅੱਪ ਕਰ ਲਏ ਤਾਂ ਅਸੀਂ ਆਪਣਾ ਪ੍ਰੋਜੈਕਟ ਆਪਣੇ ਸਾਰੇ ਦੋਸਤਾਂ ਅਤੇ ਕਲਾਸਮੇਟਾਂ ਨਾਲ ਸਾਂਝਾ ਕੀਤਾ। ਇੱਕ ਹਫ਼ਤੇ ਵਿੱਚ ਸਾਨੂੰ ਲਗਭਗ 25 ਲੋਕ ਸਰਵਰ ਵਿੱਚ ਸ਼ਾਮِل ਹੋ ਗਏ।

ਪਰ ਕੁਝ ਮਹੀਨਿਆਂ ਬਾਅਦ, ਅਸੀਂ ਦੇਖਿਆ ਕਿ ਲੋਕ ਵਾਕਈ ਸਰਵਰ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰ ਰਹੇ ਸਨ ਅਤੇ ਉਨ੍ਹਾਂ ‘ਚੋਂ ਜ਼ਿਆਦਾਤਰ ਨੇ ਜਾਂ ਤਾਂ ਸਰਵਰ ਛੱਡ ਦਿੱਤਾ ਜਾਂ ਸਰਵਰ ਵਿਚਲੇ ਸਾਰੇ ਚੈਨਲਾਂ ਨੂੰ ਮਿਊਟ ਕਰ ਦਿੱਤਾ। ਇਸਦਾ ਮੁੱਖ ਕਾਰਨ ਇਹ ਸੀ ਕਿ ਬਹੁਤ ਸਾਰੇ ਯੂਜ਼ਰ ਹੋਰ ਵਿਆਕਤੀਗਤ ਅਤੇ ਕਸਟਮ ਫਿਲਟਰ ਵਿਕਲਪ ਚਾਹੁੰਦੇ ਸਨ ਅਤੇ ਬਹੁਤ ਸਾਰਿਆਂ ਨੂੰ ਸਾਇਬਰਸੁਰੱਖਿਆ ਬਾਰੇ ਜ਼ਿਆਦਾ ਦਿਲਚਸਪੀ ਨਹੀਂ ਸੀ।

ਇਸ ਕਾਰਨ, ਅਸੀਂ ਡਿਸਕੋਰਡ ਸਰਵਰ ਨੂੰ ਬੰਦ ਕਰਨ ਦਾ ਫੈਸਲਾ ਕੀਤਾ। ਇਹ ਪ੍ਰੋਜੈਕਟ ਫਰਵਰੀ 2022 ਤੋਂ ਮਈ 2022 ਤੱਕ ਚਲਿਆ, ਆਧਿਕਾਰਿਕ ਤੌਰ ‘ਤੇ 25 ਮਈ, 2022 ਨੂੰ ਬੰਦ ਕੀਤਾ ਗਿਆ। ਇਸ ਦਿਨ, ਅਸੀਂ ਬੌਟ ਨੂੰ ਰੋਕ ਦਿੱਤਾ, ਡਿਸਕੋਰਡ ਸਰਵਰ ਹਟਾ ਦਿੱਤਾ, ਉਸ ਪ੍ਰੋਜੈਕਟ ਲਈ ਬਣਾਈ ਗਈ ਡਿਸਕੋਰਡ ਬੌਟ ਖਾਤਾ ਮਿਟਾ ਦਿੱਤਾ, ਅਤੇ ਕੋਡ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਓਪਨ ਸੋর্স ਬਣਾਇਆ ਇਸ GitHub ਰਿਪੋ ‘ਤੇ।

ਸਾਰ ਵਿੱਚ। ਇਹ ਇੱਕ ਮਜ਼ੇਦਾਰ ਪ੍ਰੋਜੈਕਟ ਸੀ ਅਤੇ ਅਸੀਂ ਬਹੁਤ ਕੁਝ ਸਿੱਖਿਆ। ਨਾਲ ਹੀ, ਉਸ ਵੇਲੇ ਅਸੀਂ ਇਹ ਨਹੀਂ ਜਾਣਦੇ ਸੀ, ਪਰ ਇਹ ਪ੍ਰੋਜੈਕਟ ਸਾਡੇ ਸਭ ਤੋਂ ਵੱਡੇ ਪ੍ਰੋਜੈਕਟ ਦਾ ਸ਼ੁਰੂਆਤੀ ਵਰਜਨ ਸੀ… ਨੋਟੀਫਾਈ-ਸਾਇਬਰ!