Live Discord 봇 개발 중

4169 단어 pythondiscordbot

라이브 업데이트



봇에서 작업하는 것은 새로운 기능을 구현하려고 시도하거나 많은 변경이 수반되는 새로운 명령으로 작업할 때 번거로울 수 있습니다. 일부 명령은 배포된 봇을 약간 미치게 만드는 기존 명령의 리팩터링일 수도 있습니다.

현재 실행 중인 내 봇에서 작업하는 가장 좋은 방법은 봇의 두 가지 개별 인스턴스를 실행하는 것입니다. 최신 Python 및 Git이 설치된 Raspberry Pi에서 실행 중인 라이브 봇이 있습니다(해결하기가 약간 어려웠습니다).

과거에는 다른 접두사를 사용하여 개발해야 할 때까지 봇에 대한 커밋 중에 주석 처리된 별도의 줄이 있었습니다. 이것은 한동안 효과가 있었지만 댓글을 계속 켜고 끄는 것이 약간 번거로웠습니다. 때로는 완전히 잊고 주석 처리되지 않은 줄을 라이브 코드로 밀어 넣습니다. 이로 인해 git --amend --no-edit 커밋이 필요했고 이는 또 다른 단계였습니다.

힘내 수정



Git 버전 2.22부터 git branch --show-current를 호출하면 체크아웃된 브랜치의 현재 이름이 출력됩니다. 몇 줄이면 해당 이름을 파일에 넣고 각 명령 중에 확인하여 사용할 접두사를 봇에 알릴 수 있습니다.

내 사용을 위해 이것을 일반 Functions.py 파일에 배치하고 Client()를 호출할 때 함수를 가져옵니다.

import nextcord
import json
import os

client = nextcord.Client()

def getPrefix(client, message):
  try:
    os.system("git branch --show-current > ./references/git-current-branch")
    with open("./reference/git-current-branch", "r") as currentBranch: 
      repo = currentBranch.read()
  finally: 
    # If on development branch or
    # If not main branch whichever is easier
    if repo == "development\n":
      return "."    # Prefix to separate from live code
    # Return the prefix for whichever server called the command
    else:
      with open('prefixes.json', 'r') as f:
        prefixes = json.load(f)
      return prefixes[str(message.guild.id)]

os.system는 봇이 명령줄에 직접 명령을 전달하도록 하는 깔끔한 방법입니다. 이 경우 현재 git 분기 이름을 표시합니다.

노트:

When using the '>' this will mean to overwrite the data in that file which is what we want.

Using '>>' instead will append to the existing file and cause a lot of clutter and won't be usable without the use of writing another function to trim it out.




이것은 중단 없이 라이브 봇의 개발을 지원하고 내가 너무 많이 했던 것처럼 잘못된 접두사를 보내는 것과 같은 오류를 방지하는 데 도움이 되는 또 다른 도구일 뿐입니다.

좋은 웹페이지 즐겨찾기