스터디에서 4주 동안 배운 알고리즘 유형 문제를 정해진 시간에 풀어보는 모의 코딩테스트를 진행하고 싶었다. 백준 문제를 배운 알고리즘 내에서 랜덤으로 출제하는 슬랙 챗봇을 사용하면 재밌을거 같았다. 백준 사이트는 웹 스크래핑이 금지된다고 공지가 되어있어 solved.ac의 알고리즘 유형 카테고리 정보를 긁어오는 식으로 문제를 뽑아왔다. 혹시 이것도 문제가 되는지 문의해봐야겠다...
tag의 랜덤 범위가 5인 이유는 5개 알고리즘을 배워서...
Slack api > create app
Sending messages 문서
원래 slacker 모듈을 사용했는데 적용이 안되어서 찾아보니 21년부터 slacker는 지원하지 않고 slack_sdk 패키지를 사용하는 것 같다.
백준 사이트는 지나치게 많은 트래픽을 발생시키는 경우에는 사이트 이용이 정지된다고 합니다. 백준 사이트가 아닌 solved.ac의 알고리즘별 문제 목록을 긁어오는 것도 그래서인지 여러번 실행하면 아무 정보가 들어오지 않는다. 하지만 solvedac인데 왜..?
지금 상태는 파이썬 코드를 직접 실행시켜야 슬랙 챗봇이 실행된다. 파이썬 메인함수에서 스터디 기간동안 배운 알고리즘 유형들을 solved.ac에 있는 tag이름으로 찾아서 써줘야한다. 외부에서 간단하게 입력할 수 있었으면 좋겠다. 또한 다른 슬랙 앱처럼 슬랙에서 바로 실행시킬 수 있도록 할 필요가 있다.
https://yganalyst.github.io/web/slackbot1/
https://corikachu.github.io/articles/python/python-slack-bot-slacker
https://github.com/os/slacker
https://api.slack.com/authentication/oauth-v2
https://developerdk.tistory.com/96 슬랙커가 안먹히는 이유
https://api.slack.com/methods/chat.postMessage/code
https://slack.dev/python-slack-sdk/v3-migration/index.html#from-slackclient-2-x
https://pypi.org/project/slack-sdk/
https://pythonrepo.com/repo/slackapi-python-slack-sdk-python-third-party-apis-wrappers