문제
스팀잇에 포스팅을 하는데 스팀은 첫 태그를 community
값으로 넘겨서 그 커뮤니티에 속한 포스팅으로 작성한다.
def post(self,
title,
body,
author,
permlink=None,
reply_identifier=None,
json_metadata=None,
comment_options=None,
community=None,
tags=None,
beneficiaries=None,
self_vote=False):
"""Create a new post.
community (str): (Optional) Name of the community we are posting
into. This will also override the community specified in
`json_metadata`.
... 생략 ...
"""
.... 생략 ....
# first tag should be a category
category = tags[0]
.... 생략 ....
예를 들어, 태그에 kr zzan aaa
라고 작성하면 맨 처음 태그인 kr
커뮤니티에 포스팅이 들어가서 포스팅주소는 다음처럼 생성된다.
https://steemit.com/kr/@ymmu/8463000912
그러므로 내가 이 글을 어떤 커뮤니티에 포함할 것인지 정해놓았다면 적어도 첫번째 태그는 계속 첫번째에 놓여야 하는데 스팀 API 파이썬 패키지에서는 태그순서를 바꿔버린다.
옛날(3년 전..?)에 만들어져서 업데이트가 안 되서 그런지...
코드를 잠시 살펴보면...
파이썬을 이용해 포스팅을 할 때 여러 개의 태그를 띄어쓰기로 구분하여 string으로 전달한다.
"tags": 'hive-123456 kr krsuccess aaa zzan'
이를 commit.py
파일에서 다음처럼 처리해 json_metadata
로 넘기게 된다.
...생략
# deal with the category and tags
if isinstance(tags, str):
tags = list(set(filter(None, (re.split("[\W_]", tags)))))
...생략
코드를 보면 중복방지를 위해 set처리를 하면서 태그 순서를 뒤바꾼다.
이 코드는 스팀잇 개인 블로그가 아닌 스팀코인판이나 스팀짱 등의 디앱에 포스팅을 하고자 할 때도 문제가 있다. re.split("[\W_]", tags)
로 자르게 되는데 디앱의 태그는 hive-{번호}
형태로 이루어져 있어서 hive
, 123456
으로 태그를 쪼개버린다.
그리고 추가적으로 태그 갯수를 5개로 제한해두었다.
tags = tags or json_metadata.get('tags', [])
if tags:
print('tags: ', tags)
if len(tags) > 5:
raise ValueError('Can only specify up to 5 tags per post.')
스팀짱에 포스팅을 하려다 에러가 나서 살펴보게 되었는데 이런 것들은 좀 수정을 해야할 거 같은데..나는 그냥 개인적으로 수정을 했지만;
steemit-python을 쓰는 분들 중에 이런 문제를 겪은 분이 없는지 궁금..
다들 알아서 쓰는건가..? 아님 사용자가 너무 적나;;
참조: