[Node.js] Python으로부터 넘어오다
·
Study/Javascript
내가 discord.py의 기능을 온전히 활용하지 못한 탓도 있겠지만, discord.js는 보다 작성하기 용이하고 유지관리도 쉬울 것이라는 생각이 들었다. 해 보니까 진작 이거로 했어야지 싶다. 물론 예전엔 js가 머리에 접수가 안 돼서 도망친 것이지만... 일단 discord.js에서 제공하는 스타팅 가이드와 문서로 돌아가는 방식을 파악했다. 문서가 최신화가 잘 되는 듯 해 만족스럽다. 그리고 dicord.js로 개발한, 어느정도 틀이 잡혀있는 템플릿 봇을 구했다. discord.py는 정말 핑퐁 하나만 달랑 있는 봇에서 기능을 다 올린 것이기도 하고, 계획이 없었기 때문에 중구난방이었다. 마치 언리얼 엔진과 유니티 엔진의 차이와 유사하게 느껴진다. 여하튼 템플릿 봇의 코드를 뜯어보며 테스트 용으로 ..
[Python] 봇 개선 및 커맨드 추가
·
Study/Python
새로운 기능으로 주식 정보를 가져오는 명령어를 만드려고 했다가 아주 큰일이 됐다. 굳이 손대고 싶지 않았던 귀찮은 부분들에 손을 대기로 했다. 1. 메인 봇 코드 다이어트 기존엔 명령어를 별도로 빼는 것이 아니라, 아래처럼 그 명령어 함수 안에 구동부를 다 때려 넣은 형식이었다. #region sync @client.tree.command(name='sync', description='Owner only') async def sync(interaction: discord.Interaction): if interaction.user.id == OWNER_ID: await interaction.response.defer(ephemeral=True) await client.tree.sync() await in..
[Python] 봇에 Epoch Converter 추가
·
Study/Python
근래 타임스탬프를 사용할 일이 많아서 아래의 사이트를 자주 이용하고 있었다. https://www.epochconverter.com/ Epoch Converter Convert Unix Timestamps (and many other date formats) to regular dates. www.epochconverter.com 필요한 기능만 딱 있고 매우 편리한 사이트이지만... 역시 웹사이트에 접속해야 한다는 것 자체가 나에겐 매우 큰 귀찮음으로 다가왔기 때문에, 이를 봇에 올렸다. 1. 클래스 작성 당연히 메인 봇에 코드를 다 때려 넣으면 정신 사나우니 별도의 클래스로 관리한다. from datetime import datetime from math import trunc import time c..
[Python] 디스코드 봇에 환율 확인 기능 추가
·
Study/Python
갑자기 환율을 체크할 일이 많아지다 보니 일일이 웹을 켜서 확인하는 것이 너무 귀찮았다. 그래프도 뭣도 필요없고 딱 금액만 나오면 되기 때문에 봇에 간단히 기능을 추가했다. 1. 환율 API 먼저 환율 데이터를 가져올 API가 필요했다. 개발자 등록하고 API 키 발급받고 하기 너무 귀찮았다. 그러던 중 아래의 환율 API를 발견했다. Free Currency Rates API GitHub - fawazahmed0/currency-api: Free Currency Exchange Rates API with 150+ Currencies & No Rate Limits Free Currency Exchange Rates API with 150+ Currencies & No Rate Limits - GitHub..
[C#, Python] C# 라이브러리를 이용한 discord.py 봇 개발 (2/2)
·
Study/C++ & C#
1번 글에서 예고한 대로 이번 글에서는 앞서 만든 라이브러리와 discord.py를 활용한 봇을 개발에 관한 내용을 기술한다. 파이썬에 C# 라이브러리를 올리기 위해 pythonnet - Python.NET을 사용했다. VS2022로 라이브러리를 테스트하던 중, 자꾸 에러가 나서 닷넷 버전 문제인 것 같아 VS2019에서 4.8 환경에서 빌드 후 테스트 하니 잘 동작했다. 혹시 이 글을 본 사람 중 이런 시도를 할 사람이 있다면 닷넷 4.* 버전을 사용하길 바란다... dll 임포트는 아래와 같은 코드로 할 수 있다. import clr clr.AddReference("kord") from kord import Translator trns = Translator(TR_Cliend_Id, TR_Cliend..