호스팅... 로컬로

LONGNEW·2021년 8월 31일
0

Rather-Bot

목록 보기
3/5

코드는 완성되어 있었고 서버를 통해 빌드가 문제였다.

Heroku 에서 tasks.loop만 사용한다면 가능한데 여기에 크롤링 코드를 넣을 때마다 세션이 생기지 않았다.
생각에는 Heroku에서의 크롬과 크롬매니저 사용이 이상한 거 같은데 또 이상한 건 크롤링 코드만을 돌리면 잘 작동한다는 것이다.

암튼, 친구가 연구실에서 사용하는 컴퓨터로 디코 봇을 돌리기로 했고 깃허브에 push를 하면서 계속 보완을 할 예정이다.

홈페이지

접근이 안 되던 홈페이지가 있었다.
근데 이건 홈페이지 서버의 문제였던건지 현재는 홈페이지가 다시 작동해 반복문의 범위를 늘려 모든 홈페이지에 접근 하도록 업데이트 했다.

날짜, 오늘 게시글

날짜가 하루 지날 떄 마다 그 날의 게시글 수를 바꿔줘야 하기 때문에 이를 저장하는 파일을 만들었다.
오늘 게시글의 개수를 통해서 다음 크롤링을 할 때 추가 게시글이 있는 지를 확인한다.

이 게시글을 통해서 반복문의 범위를 제한해서 시간을 줄여주려 하였는데
새로운 게시글이 배열의 위쪽으로 오기 때문에 마지막 끝나는 지점을 제한해 줘야 한다.

Embed

출력의 형태로 훨씬 가독성이 좋게 만들어주고, 가장 좋은 점 "있어 보인다."
title에는 "어디"에서 가져 왔는지
설명에는 오늘 게시된 글이 몇 개인지를 출력하고,

내부에다가 add_field()함수를 통해서 게시글의 제목과 하이퍼링크를 추가해 줬다.

마지막에는 동일하게 await 을 통해서 채널로 메시지를 보내면 되는데 이 때 빈 문자열을 trigger로 만들었다. 그냥 비워서 보내려 하니 에러가 자주 발생하는 것 같았다.

상태

상태를 나타내지 않는다면 이 봇이 동작하는지를 확인 하기 어렵다.
그래서 self.change_presence()를 통해서 현재 봇의 상태를 변경하는 것을 추가했다.

크롤링

공지

원래는 공지를 구분해서 가져오게 했지만 같이 게시글을 확인하다 보니 새로 업데이트 되는 글이 공지에만 올라오는 경우도 있어 차라리 날짜에 해당하는 게시글을 가져오도록 만들었다.

리눅스에서

윈도우, 맥에서는 그냥 날짜를 잘 가져오는데 원격으로 가져오게 했을 때 작동을 안 하는 경우가 있었다. 환경이 리눅스라고 그랬는데 그게 문제인 건지는 잘 모르겠지만 가져오는 원소가 없었다.

그래서 그냥 각 webelement가 가지는 text에서 [-2]의 위치에는 언제나 날짜가 있기 때문에 이를 사용하였다.

날짜

만들어 놓은 코드에서는 날짜를 tasks.loop()가 돌 때마다 가져오게 만들었다. 그리고 이 날짜를 인자로 받아서 크롤링을 할 때 비교를 하면서 해당하는 날짜만 가져오도록 하였다.

0개의 댓글