กลุ่มบัตเลอร์ช่วยให้ผู้คนดูแลกลุ่มของพวกเขาและรวมถึงเครื่องมือที่มีประโยชน์อื่น ๆ อีกมากมาย
กลุ่มบัตเลอร์เกิดเป็น Otouto v3.1 ( @mokubot ) แต่ก็กลายเป็นบอทการบริหาร
@GroupButler_bot
master@GroupButler_ch @GBReborn_bot
develop@GroupButler_beta ก่อนอื่นลองดูที่การตั้งค่าบอทของคุณ
- ตรวจสอบให้แน่ใจว่ามีการปิดใช้งานความเป็นส่วนตัว (ข้อมูลเพิ่มเติมสามารถพบได้โดยมุ่งหน้าไปยังหน้าคำถามที่พบบ่อยของบอทอย่างเป็นทางการ) ส่ง
/setprivacyไปที่ @botfather เพื่อตรวจสอบสถานะปัจจุบันของการตั้งค่านี้
สร้างไฟล์ข้อความธรรมดาชื่อ .env ด้วยสิ่งต่อไปนี้:
ตั้งค่า
TG_TOKENเป็นโทเค็นการรับรองความถูกต้องที่คุณได้รับจาก@BotFatherตั้งค่า
SUPERADMINSเป็นอาร์เรย์ JSON ที่มีรหัสโทรเลขตัวเลขของคุณ superadmins อื่น ๆ สามารถเพิ่มได้เช่นกัน เป็นสิ่งสำคัญที่คุณจะต้องแทรก ID ตัวเลขและไม่ใช่สตริงตั้งค่า
LOG_CHAT(ID ของการแชทที่บอทจะส่งคำขอที่ไม่ดีทั้งหมดที่ได้รับจากโทรเลข) และLOG_ADMINของคุณ (ID ของผู้ใช้ที่จะได้รับข้อผิดพลาดในการดำเนินการ)
ตอนนี้ไฟล์ .env ของคุณควรดูแบบนี้:
TG_TOKEN=123456789:ABCDefGhw3gUmZOq36-D_46_AMwGBsfefbcQ
SUPERADMINS=[12345678]
LOG_CHAT=12345678
LOG_ADMIN=12345678
ความต้องการ:
เรียกใช้ make dev_polling Docker จะดึงและสร้างภาพที่ต้องการดังนั้นครั้งแรกที่คุณเรียกใช้คำสั่งนี้ควรใช้เวลาสักครู่ หลังจากนั้นบอทควรจะเปิดใช้งาน
รหัสติดตั้งบนคอนเทนเนอร์บอทเพื่อให้คุณสามารถเปลี่ยนแปลงและรีสตาร์ทบอทตามปกติ
พอร์ตเริ่มต้น Redis ติดตั้งเป็นโฮสต์ในกรณีที่คุณต้องการแก้ไขข้อบกพร่องบางอย่างโดยใช้เครื่องมือที่มีอยู่ในโฮสต์
คอนเทนเนอร์ Redis ถูกตั้งค่าให้ไม่คงอยู่ในขณะที่อยู่ในโหมด Dev
มีหลายวิธีที่คุณสามารถใช้ Docker สำหรับการปรับใช้ในการผลิต
ไฟล์ชื่อ docker-compose.*.yml เป็น gitignored ในกรณีที่คุณรู้สึกว่าจำเป็นต้องแทนที่ docker-compose.yml หรือเขียนอย่างอื่นทั้งหมด
บอทยังรองรับการอ่านความลับของนักเทียบท่า (อาจใช้งานได้กับห้องใต้ดินอื่น ๆ ด้วย) ตรวจสอบ lua/config.lua เพื่อดูว่าตัวแปรใดที่สามารถอ่านได้จากความลับ
คุณสามารถปรับใช้กลุ่มบัตเลอร์ได้โดยเรียกใช้:
make easy_deploy
สมมติว่าคุณได้ปรับใช้ REDIS ลงในตัวอย่างเช่น staging ( docker stack deploy … หรือ docker service create … ) และส่งออกตัวแปรสภาพแวดล้อมที่ต้องการ (เช่น $TG_TOKEN ... ) คุณสามารถปรับใช้กลุ่มบัตเลอร์โดยใช้งาน:
docker stack deploy staging -c docker-compose.yml
รายการแพ็คเกจที่จำเป็น:
libreadline-devredis-serverlua5.1liblua5.1devlibssl-devgitmakeunzipcurllibcurl4-gnutls-devคุณจะต้องมีโมดูล Lua อื่น ๆ ด้วยซึ่งสามารถติดตั้ง (และควร) ผ่าน Lua Package Manager Luarocks
การติดตั้ง
คุณสามารถติดตั้งกลุ่มบัตเลอร์ได้อย่างง่ายดายโดยเรียกใช้คำสั่งต่อไปนี้:
# Tested on Ubuntu 16.04
$ wget https://raw.githubusercontent.com/group-butler/GroupButler/master/install.sh
$ bash install.shหรือ
# Tested on Ubuntu 14.04, 15.04 and 16.04, Debian 7, Linux Mint 17.2
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install libreadline-dev libssl-dev lua5.1 liblua5.1-dev git make unzip redis-server curl libcurl4-gnutls-dev
# We are going now to install LuaRocks and the required Lua modules
$ wget http://luarocks.org/releases/luarocks-2.2.2.tar.gz
$ tar zxpf luarocks-2.2.2.tar.gz
$ cd luarocks-2.2.2
$ ./configure ; sudo make bootstrap
$ sudo luarocks install luasec
$ sudo luarocks install luasocket
$ sudo luarocks install redis-lua
$ sudo luarocks install lua-term
$ sudo luarocks install serpent
$ sudo luarocks install lua-cjson
$ sudo luarocks install Lua-cURL
$ cd ..
# Clone the repository and give the launch script permissions to be executed
# If you want to clone the beta branch, use git clone with the [-b beta] option
$ git clone https://github.com/group-butler/GroupButler.git
$ cd GroupButler
$ sudo chmod +x launch.shก่อนที่คุณจะเริ่มต้นบอทคุณต้องเริ่มกระบวนการ Redis
# Start Redis
$ sudo service redis-server start ในการเริ่มต้นบอทให้วิ่ง ./launch.sh หากต้องการหยุดบอทให้กด Ctrl + C ควบคุมสองครั้ง
คุณอาจเริ่มต้นบอทด้วย ./polling.lua แต่จะไม่รีสตาร์ทโดยอัตโนมัติ คุณจะต้องหาวิธีอื่นในการส่งออกตัวแปรสภาพแวดล้อมที่ต้องการ
config.lua ในตาราง bot_settingscache_time.adminlist : ความคงทนในไม่กี่วินาทีของผู้ดูแลระบบในแคช บอทแคชผู้ดูแลระบบเพื่อหลีกเลี่ยงที่จะตีขีด จำกัด โทรเลขnotify_bug : หาก true บอทจะส่งข้อความที่แจ้งว่ามีข้อผิดพลาดเกิดขึ้นกับผู้ใช้ปัจจุบันเมื่อปลั๊กอินถูกดำเนินการและเกิดข้อผิดพลาดlog_api_errors : ถ้า true บอทจะส่งใน LOG_CHAT ข้อผิดพลาดที่เกี่ยวข้องทั้งหมดที่ส่งคืนโดยคำขอ API ไปยังโทรเลขstream_commands : ถ้า true เมื่อการอัปเดตทริกเกอร์ปลั๊กอินการแข่งขันจะถูกพิมพ์บนคอนโซลconfig.lua เช่นREDIS_DB : ฐานข้อมูล REDIS ที่เลือก (หากคุณใช้ REDIS ด้วยการกำหนดค่าเริ่มต้นฐานข้อมูลที่มีอยู่คือ 16) ฐานข้อมูลจะถูกเลือกในแต่ละเริ่ม/โหลดซ้ำ ค่าเริ่มต้น: 0$ พวกเขาไม่ได้บันทึกไว้ดูที่ทริกเกอร์ของปลั๊กอิน plugins/admin.lua สำหรับทั้งหมดtrue ทจะพยายามจับคู่ข้อความด้วยทริกเกอร์ที่ขาดหายไปของตาราง plugins$backupkickChatMember จะส่งคืนการตอบสนองเชิงบวกเสมอหาก user_id เป็นส่วนหนึ่งของกลุ่มอย่างน้อยหนึ่งครั้งมันไม่สำคัญว่าผู้ใช้จะไม่อยู่ในกลุ่มเมื่อคุณใช้วิธีนี้unbanChatMember จะส่งคืนการตอบสนองเชิงบวกเสมอหาก user_id เป็นส่วนหนึ่งของกลุ่มอย่างน้อยหนึ่งครั้งมันไม่สำคัญว่าผู้ใช้ไม่ได้อยู่ในกลุ่มหรือไม่อยู่ในบัญชีดำกลุ่ม ทุกอย่าง ถูกเก็บไว้ใน Redis และวิธีที่เร็วที่สุดในการแก้ไขฐานข้อมูลของคุณคือผ่าน Redis CLI
คุณสามารถค้นหาข้อมูลสำรองของฐานข้อมูล Redis ของคุณใน /etc/redis/dump.rdb ชื่อของไฟล์นี้และความถี่ของการบันทึกขึ้นอยู่กับไฟล์การกำหนดค่า Redis ของคุณ
หากคุณต้องการช่วยแปลบอทให้ทำตามคำแนะนำด้านล่าง ชิ้นส่วนของกลุ่มบัตเลอร์ใช้เครื่องมือจาก GetText อย่างไรก็ตามเราไม่ได้ใช้รูปแบบไบนารี *.mo เพื่อความเรียบง่าย บอทแยกวิเคราะห์ไฟล์ *.po ใน locales ที่ตั้งที่รันไทม์
เราขอแนะนำให้มีส่วนร่วมในการแปลไปยังโครงการ crowdin ของเรา
หมายเหตุสำหรับนักพัฒนา : อัปเดตไฟล์ POT เมื่อใดก็ตามที่คุณเปลี่ยนสตริงและอย่าลืมใช้ฟังก์ชัน i18n() ดังนั้นจึงสามารถแปลได้ ในการอัปเดตไฟล์หม้อคุณจะต้องติดตั้ง getText แล้วเรียกใช้:
make pot
topkecleon สำหรับ otouto ดั้งเดิม
Iman Daneshi และ Tiago Danin สำหรับ Jack-Telegram-bot
Cosmonawt สำหรับห้องสมุด Lua ของเขาสำหรับ Bot API
Yago Pérezสำหรับ Telegram-bot ของเขา
พวกมนุษย์หมาป่าเพื่อช่วยเหลือการแพร่กระจายของบอท
Lucas Montuano ที่ช่วยฉันได้มากในการดีบักของบอท
ผู้ดูแลระบบการสนทนาของเราทั้งหมดเกี่ยวกับกลุ่มบัตเลอร์
ทุกคนที่รายงานข้อบกพร่องและแนะนำสิ่งใหม่ ๆ
Le Laide