ฉันไม่แน่ใจว่าจะได้ใช้เครื่องมือนี้ให้เสร็จสิ้นเมื่อใดเนื่องจากมีโครงการอื่นๆ ที่ฉันกำลังทำอยู่ อย่างไรก็ตาม ฉันต้องการทราบว่าผู้ใช้ที่ติดตามจำนวนมากนั้นขัดต่อ TOS ของ GitHub (ไม่ได้ระบุไว้ด้านล่าง) ดังนั้นโปรดใช้ด้วยความเสี่ยงของคุณเอง!
นี่คือ GitHub Follow Bot ที่สร้างขึ้นภายในแอปพลิเคชัน Django การจัดการบอททำได้ภายในศูนย์การจัดการเริ่มต้นของ Django ( /admin
) บอทจะทำงานในพื้นหลังของแอปพลิเคชัน Django
บอททำงานดังต่อไปนี้
python3 manage.py createsuperuser
)จำเป็นต้องมีโมเดล Python ต่อไปนี้ และฉันขอแนะนำ Python เวอร์ชัน 3.8 ขึ้นไป เนื่องจากนั่นคือสิ่งที่ฉันได้ทดสอบ
django
aiohttp
คุณสามารถติดตั้งได้ดังภาพด้านล่าง
# Python < 3
python -m pip install django
python -m pip install aiohttp
pip install django
pip install aiohttp
# Python >= 3
python3 -m pip install django
python3 -m pip install aiohttp
pip3 install django
pip3 install aiohttp
ไม่กี่เดือนที่ผ่านมา ฉันค้นพบผู้ใช้ GitHub สองสามรายที่ติดตามผู้ใช้มากกว่า 100,000 รายที่เห็นได้ชัดว่าใช้บอท ตอนแรกฉันรู้สึกตกใจเพราะฉันคิดว่า GitHub ต่อต้านผู้ใช้ที่มีผู้ติดตามจำนวนมาก แต่หลังจากอ่านข้อมูลเพิ่มเติมแล้ว ดูเหมือนว่าพวกเขาจะไม่สนใจ สิ่งนี้ทำให้ฉันคิดว่าจะเกิดอะไรขึ้นหากฉันเริ่มติดตามผู้ใช้แบบสุ่มเช่นกัน ผู้ใช้เหล่านี้บางรายมีโปรเจ็กต์ GitHub.io โปรเจ็กต์เดียวที่ได้รับความสนใจอย่างมาก และฉันคิดว่าโปรเจ็กต์นี้มาจากผู้ใช้ทั้งหมดที่พวกเขาติดตาม ฉันตัดสินใจลองสิ่งนี้ ฉันอยากจะดูว่ามันจะช่วยให้ฉันเชื่อมต่อกับนักพัฒนาคนอื่นๆ ได้หรือไม่ และมันช่วยได้/มีอย่างแน่นอน! โดยส่วนตัวแล้ว ฉันไม่ได้ใช้บอทเพื่อบรรลุเป้าหมายนี้ จริงๆ แล้วฉันกำลังดูรายชื่อผู้ติดตามจากบัญชีอื่นและติดตามผู้ใช้แบบสุ่ม อย่างที่คุณคาดหวัง สิ่งนี้ทำให้หน้าแรกของฉันเกะกะไปหมด แต่ยังทำให้ฉันค้นพบโปรเจ็กต์ใหม่ ๆ ซึ่งถือว่าโอเคในความคิดของฉัน
แม้ว่าสิ่งนี้จะเป็น 'สแปม' ในทางเทคนิค แต่ข้อดีที่ฉันสังเกตเห็นก็คือมันไม่ส่งผลกระทบต่อผู้ใช้ที่ฉันติดตามอย่างแน่นอน นอกเหนือจากการเพิ่มบรรทัดเดียวในหน้าแรกโดยระบุว่าฉันกำลังติดตามพวกเขา (หรือพวกเขาได้รับ อีเมลที่ระบุสิ่งนี้หากพวกเขาเปิดไว้) แม้ว่าฉันจะเห็นว่าสิ่งนี้น่ารำคาญหากมีผู้คน/บอทจำนวนมากเริ่มทำมัน (บางที GitHub อาจเพิ่มการตั้งค่าผู้ใช้ที่มีจำนวนผู้ใช้ติดตามสูงสุดที่สามารถติดตามพวกเขาหรือรับการแจ้งเตือนเมื่อผู้ใช้ติดตาม)
จริงๆ แล้วฉันคิดว่ามันเรียบร้อยดีที่ได้รับอนุญาตเพราะช่วยให้ผู้อื่นค้นพบโปรเจ็กต์ของคุณได้ เนื่องจากฉันมีโครงการเครือข่ายอยู่บ้างในบัญชีนี้ ฉันจึงมีบางคนติดต่อผู้ที่ฉันติดตามโดยระบุว่าพวกเขาพบว่าโครงการของฉันเรียบร้อยเพราะพวกเขาไม่อยู่ในสาขานั้น
ฉันยังไม่สนับสนุนโปรไฟล์เปล่าที่สร้างขึ้นเพื่อวัตถุประสงค์ในการติดตามจำนวนมาก
แม้ว่าดูเหมือนว่า GitHub จะไม่รังเกียจที่ผู้ใช้จะติดตามผู้อื่นจำนวนมาก (ซึ่งฉันสนับสนุนอีกครั้ง) แต่ก็ยังถือว่าเป็นกลยุทธ์สแปม ดังนั้นโปรดใช้เครื่องมือนี้โดยยอมรับความเสี่ยงเอง ฉันจะไม่ใช้มันด้วยตัวเองเพราะฉันสนุกกับการติดตามผู้ใช้ด้วยตนเอง ฉันสร้างโปรเจ็กต์นี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ Python
ภายในเว็บอินเตอร์เฟส ควรมองเห็นโมเดลการตั้งค่า ควรแทรกการตั้งค่าต่อไปนี้
การติดตั้งควรทำเช่นเดียวกับแอปพลิเคชัน Django ทั่วไป แอปพลิเคชั่นนี้ใช้ SQLite เป็นฐานข้อมูล คุณสามารถอ่านเพิ่มเติมเกี่ยวกับ Django ได้ที่นี่ ฉันอยากจะแนะนำคำสั่งต่อไปนี้
# Make sure Django and aiohttp are installed for this user.
# Clone repository.
git clone https://github.com/gamemann/GitHub-Follower-Bot.git
# Change directory to Django application.
cd GitHub-Follower-Bot/src/github_follower
# Migrate database.
python3 manage.py migrate
# Run the development server on any IP (0.0.0.0) as port 8000.
# NOTE - If you don't want to expose the application publicly, bind it to a LAN IP instead (e.g. 10.50.0.4:8000 instead 0f 0.0.0.0:8000).
python3 manage.py runserver 0.0.0.0:8000
# Create super user for admin web interface.
python3 manage.py createsuperuser
เว็บอินเตอร์เฟสควรอยู่ที่ http://<host/ip>:<port>
ตัวอย่างเช่น.
http://localhost:8000
แม้ว่าคุณจะสามารถเรียกใช้เซิร์ฟเวอร์การพัฒนาแอปพลิเคชัน Django สำหรับบอตนี้ได้ในทางเทคนิค เนื่องจากมีเพียงการตั้งค่าเท่านั้นที่ได้รับการกำหนดค่าผ่านที่นั่น Django แนะนำให้อ่านสิ่งนี้สำหรับการใช้งานจริง
ทำไมคุณถึงเลือก Django เพื่อใช้เป็นส่วนต่อประสาน?
แม้ว่าการตั้งค่าสามารถกำหนดค่าบนโฮสต์ได้ แต่ฉันอยากได้อินเทอร์เฟซที่สามารถเข้าถึงได้ง่ายจากทุกที่ สิ่งที่ดีที่สุดสำหรับสิ่งนี้คือเว็บไซต์ในความคิดของฉัน ประสบการณ์ส่วนใหญ่ของฉันคือกับ Django ซึ่งเป็นสาเหตุที่ฉันเลือกโปรเจ็กต์นั้น