Page 2 of 2

마인드맵 업그레이드 기능 추가

텔레그램의 소녀전선 봇 (telegram @girlsfrontline_krbot) 에 마인드맵 업그레이드 (속칭 개장) 관련 기능을 추가했습니다.

이번 소녀전선의 마인드맵 업그레이드는 1. 대부분의 인형은 업그레이드가 제공되지 않기 때문에 2. 마인드맵 자체의 코스트가 커서 시도하려는 사람이 많지 않기 때문에 기존의 기능에 정보를 추가하는 방식이 아니라 별도의 기능으로 추가할 필요성이 있었습니다.

또한 마인드맵 업그레이드에서 각 인형당 추가되는 정보가 너무 많기 때문에 이를 잘 처리할 방법이 필요했습니다. 1단계에서는 버프 효과와 기존 스킬 효과가 강화되고, 2단계에서는 새로운 스킬이 추가되며, 3단계에서는 전용 장비가 추가됩니다. 그리고 각 단계에서 능력치의 최대값이 변화하며 마인드맵 업그레이드의 한 단계 한 단계가 비용이 큰 작업이기 때문에 각 단계의 정보를 별도로 제공할 필요성이 있었습니다.

그렇기 때문에 이를 처리하기 위해서 Inline keyboard button과 Callback query를 사용했습니다. 이에 대한 Telegram API 정보는 다음 링크에서 확인해주세요: Inline button  Callback query

사용 예는 아래 이미지와 같습니다.

버튼을 누르면 메세지가 수정됩니다. (버튼을 여러번 누를 여지를 없앱니다.)

 

API 문서에 따르면 callback query가 다소 취약한 것으로 보이는데, 어떤 방식으로 봇을 악용할 소지를 줄일 수 있을 지 더 살펴봐야 할 것 같습니다.

일본 여행을 다녀왔습니다.

1/25 – 1/30의 5박 6일 일본 여행이었습니다. 그냥 간단하게만 적어놓으려고 합니다.

1. 역시 도쿄는 교토보다 문화재 쪽으로는 너무나 아쉽다

도쿄에 올 때마다 생각하지만 도쿄에 오는 주 목적이 문화재가 되기에는 아쉬운 점이 많습니다. 개인적으로 일본 여행은 덕질 아니면 문화재 구경 뿐이라서, 문화재 볼 것이 많지 않은 게 참 아쉽습니다. 그런데 덕질을 한다고 해서 5박 6일을 아키하바라만 갈 수 없는게 또 문제입니다.

개인적으로 야경도 그닥 좋아하지 않고 해서 일정이 참 애매했습니다.

2. 그래도 먹을 거리는 많다

2일차에 도쿄역 부근에 있는 만텐스시를 예약했습니다. (예약 링크) 예정에 없었는데 급하게 예약하느라 일부 인원도 못가고 시간대도 애매했지만 역시 맛있습니다. 오마카세라고는 하지만 가본 것은 작년 여름 한 번이 끝이기 때문에 어떻게 다르게 나올까 싶었는데, 확실히 다르게 나오긴 합니다. 다만 무엇이 다르고 왜 다른 지는 제가 회/초밥 전문가가 아니기 때문에 잘 모르겠습니다. 어느 계절에 무슨 생선이 맛있는 지는 잘 모르기 때문에…

그 외에 타베로그에서 3.5 이상으로 기록된 여러 집에도 가봤는데, 전체적으로 만족스러운 퀄리티였습니다. 타베로그에 대한 신뢰도가 많이 올라가는 순간들이었습니다.

그리고 무엇보다 아키하바라에 갈 때마다 먹으러 가는 스프카레 카무이. 정말 맛있습니다. 이번 여행에서 두 번 갔는데 두 번 다 만족스럽게 먹었던 것 같습니다. 같이 갔던 사람들도 대체로 맛있어해서 기분이 좋았습니다. 꼭 가보시길 바랍니다. 타베로그 링크

3. 아키하바라는 항상 옳다

여행 온 동안 아키바를 본의 아니게 3일이나 갔다왔는데, 갈 때마다 다른 걸 보고 와서 참 재밌었습니다. 사실 고민하다 안 사온 것들이 좀 있는데 아쉬움이 남습니다. 특히 아쉬운 건 걸즈 앤 판처의 미카 피규어가 1/31에 새로 나오는데, 1/30에 귀국해서 사지 못한 것입니다. 제가 피규어는 어지간히 이쁘지 않으면 잘 사질 않는데 유독 걸즈 앤 판처 피규어들은 이쁘다 싶으면 포즈가 아쉬움이 많이 남곤 했었습니다. 그런데 이번 미카 피규어는 정말 잘 뽑혔더군요.  링크 통판으로 사야겠다 싶습니다.

tweepy Streaming Problem in version 3.5.0

현재 PyPI에 올라가있는 tweepy는 3.5.0으로 최신 버전이 아닙니다.  (https://pypi.python.org/pypi/tweepy/3.5.0)

3.5.0 버전에서 생기는 문제 중 하나는 streaming 기능에 있습니다.

 

streaming.py에 정의된 ReadBuffer class를 살펴보면, read_line()이 다음과 같이 정의되어 있습니다.

해당 method의 문제는 self._stream.closed라면 아무 것도 return하지 않아 None을 return하게 됩니다.

그리고 이는 Stream class의 _read_loop()에서 문제를 일으킵니다. buf.read_line()이 None을 반환하고, None은 strip() method를 가지지 않아 exception이 발생합니다.  특정 시점에서 Stream이 닫히면 이를 정상적으로 handling 하지 못하는 것입니다.

3.6.0에서는 해당 문제가 발생하지 않습니다. github에서 직접 다운로드받아 설치하세요.

 

블로그를 개설했습니다.

아직 WordPress의 기능에 적응하지 못한 것도 있고, 현재 Theme가 정말로 마음에 드는 편은 아니라서 좀 더 이리저리 만져볼 것 같습니다.

 

현재 원하는 Theme의 기능은 다음과 같습니다:

  • Subcategory를 Menu에서 이쁘게 지원하는 것.
  • Header image 지정이 가능한 것.
  • 되도록 Horizontal menu를 지원했으면 좋겠습니다.
  • 그리고 현재 Theme보다 조금 더 이뻤으면 좋겠습니다.
    • 글자 간격부터 뭔가 미묘합니다. 이거 손수 수정할 수 있을 것 같은데…
    • 일단 위의 3개를 전부 지원하는 다른 Theme가 있으면 그 쪽을 수정해보겠죠.

그리고 현재 필요한 기능은 다음과 같습니다 (Plug-in이겠죠):

  • Code snippet의 손쉬운 삽입
    • 사실 Markdown 형식으로 posting이 가능하면 좋겠습니다.
    • 그런데 의외로 WordPress 작성기도 기능이 준수한 것 같네요.
  • 수식의 손쉬운 삽입

 

일단 적응이 필요할 것 같습니다.

Newer posts »

© 2019 RBTree.insert()

Theme by Anders NorenUp ↑