update: 수정완료한 듯하나 혹시 오히려 새로운 버그가 있을 수도 있으니 이해해주세요ㅎㅎ
Your loss is Gomdory's gain! 너의 손해는 곰돌이의 개이득
신기능이라 모니터링을 하고 있었는데 보팅 받으실 글이 없으실 것 같지 않은 분이 보팅할 글이 없다고 곰돌이가 모른척 보팅을 꿀꺽하는 걸 발견해서 확인해보니
python의 Blog()로 글을 가져오면 순서가 원래 최신글부터 가져온다고 되어 있어서 따라서 효율적인 검색을 위해 글을 순서대로 체크하면서 6.5일이후의 글이 하나라도 발견되면 멈추게 되어있는데 이게 글 생성시간 기준이 아니라 수정된 날짜 순으로 해서 가져오네요.
그래서 오래된 글이 수정되고 그게 더 위에 있는데 마침 그게 이미 6.5일을 지났으면 곰돌이가 보팅해줄 글이 없네? (개이득)하고 쓱싹했습니다.
아마 이전에도 있었을지 모르겠네요. 제가 좀전에 발견한 피해자는 @aaronhong님인데 수동으로 좀 있다 보팅해둘께요ㅎㅎ
보팅해드려야 할 글이 뉴욕에 눈이 많이 온 글이던데 곰돌이가 가다가 길이 미끄러워 그냥 돌아왔나 봅니다^^
혹시나 보팅이 안오면 버그수정겸 신고해주세요ㅋㅋ 따지시지는 말고. 신고 포상제도 있어요. 하긴 이제 곰돌이 풀봇이 얼마 안되긴ㅠㅠ
엄밀히 말하면 이 버그는 제 잘못이 아닙니다ㅎㅎ https://steem.readthedocs.io/en/latest/tools.html#blog python 라이브러리 버그거나 document의 잘못이나 불충분한 설명(Generator with Post objects in reverse chronological order. 라고만 나오니 그게 사실 꼭 생성날짜 순이라 할수는 없지만 그래도 아무말 없으면 생성기준이지 수정기준이라 생각하긴 힘들죠ㅠㅠ)
ps. 기술적인 부분이 궁금하시면 원래는 get_blog_entries로 가져오다가 Blog가 속도가 더 빠르고 묘하게 에러도 덜나서 바꾼 것인데 이런 문제가 있군요. get_blog_entries(얘는 얘대로 리블로그 글도 가져와서 또 체크한번 해주긴해야함) 로 돌아갈지 다른 방법을 쓸지 생각해 볼게요.
사실 반응속도가 느려질 뿐이지 금방 고칠 수 있는데 그대로 둬서 좀 곰돌이 배 좀 부르게 만들까요ㅋㅋ
ps2. 참고로 이건 대충 만들어서 그렇고 정말 많은 사람 쓰려면 보팅해줄 목록을 prefetch를 해놔야해요. 곰돌이 원기능 자체는 streaming으로 댓글 목록을 큐에 넣습니다. 물론 가입 즉시 혜택을 볼 수 있도록 가입당시 1회에 한해서 가입시점에서 6.5일까지 댓글을 한번 불러오긴합니다. 아무튼 @gomdory 원기능 자체는 제법 최적화가 잘 되어 있습니다^^ 역시 python stream function에 트랜잭션을 놓치는 버그는 존재하는 것도 같은데 beem library가 좀더 안정적인 것 같아서 조만간 stream을 beem으로 바꿔서 할 가능성이 있습니다.