파이썬에서 datetime.timezone()을 이용한 시간대 설정

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/datetime-timezone 파이썬에서 datetime.timezone()을 이용해서 datetime 객체의 시간대를 설정할 수 있습니다. 예를 들어 한국시간(KST)은 GMT+9시간이므로 아래와 같이 설정해서 현재 시각을 구할 수 있습니다. import datetime KST = datetime.timezone(datetime.timedelta(hours=9)) now_kst = datetime.datetime.now(tz=KST) 시간대 정보가 없는 datetime 객체의 경우에는 앞의 예제 코드에서 정의된 변수 KST를 이용해서 아래와 같이 시간대를 할당할 수 있습니다. # 시간대 정보 없는 UTC 기준 현재시각 가져오기 - utcnow() now = datetime.datetime.utcnow() # 시간대 정보 추가 now_kst = now.astimezone(KST) @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 2.0 - 업보팅을 다시 위대하게 jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 Steemit-Search - 스팀잇 포스팅 검색 STEEM.NFT - 디지털 아트 보존 프로젝트

파이썬 beem을 이용한 포스팅 - 블로그 포스트

by joviansummer
original STEEMIT post: https://steemit.com/blog/@joviansummer/6bdwr8-beem


파이선 beem을 이용해서 블로그에 포스팅 하는 방법입니다. 저자(author), 펌링크(permlink), 제목(title), 본문(body), json metadata, parent author, parent permlink 등을 지정해야 합니다.

펌링크는 특정 계정이 작성한 포스트를 구분하는 식별자이므로 이전에 사용한 펌링크와 겹치지 않아야 합니다. 펌링크 관련 내용은 이전 포스트를 참고하시기 바랍니다.

펌링크(permlink) 관련 내용 간략하게 정리

json metadata에는 태그 목록이 들어갑니다. 그 외에 다양한 정보를 딕셔너리(dict) 형식으로 지정할 수 있는데, 블로그 포스팅에서 태그는 필수이므로 반드시 있어야겠습니다. 아래와 같이 딕셔너리를 만들 수 있겠습니다.

import json

# 태그: test, beem
metadata = {'tags':['test','beem']}
# 딕셔너리를 json 형식 문자열(string)로 변환
json_metadata = json.dumps(metadata)

블로그 포스팅일 경우, parent permlink는 태그로 지정합니다. 위의 예시를 사용하자면, 첫번째 태그가 "test"이므로 parent permlink는 "test"가 됩니다. 댓글이 아니므로 parent author는 없습니다.

위의 내용을 바탕으로 아래와 같이 블로그 포스팅 코드를 작성해 볼 수 있습니다. 스팀 기준입니다.

import json
from beem import Steem
from beembase.operations import Comment
from beem.transactionbuilder import TransactionBuilder

node_list = ["https://api.steemit.com"]
steem = Steem(node=node_list)

steem_id = 'joviansummer'
posting_key = '5XXXX...'

author = steem_id
permlink = 'my-blog-post-with-python-beem-test'
title = '시험용 포스트 (블로그)'
body = '이것은 시험용 포스트입니다.\n블로그 포스트입니다.'
tag_list = ['test','beem']
metadata = {"tags":tag_list}
parent_author = ''
parent_permlink = tag_list[0]

# 포스트 전송
tx = TransactionBuilder(blockchain_instance=steem)
tx.appendOps(Comment(**{"parent_author": parent_author,  "parent_permlink": parent_permlink, "author": author, "permlink": permlink, "title": title, "body":body, "json_metadata": json.dumps(metadata)}))
tx.appendWif(posting_key)
signed_tx = tx.sign()
broadcast_tx = tx.broadcast(trx_id=True)

@joviansummer의 스팀 프로젝트

스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다.
(https://steemitwallet.com/~witnesses)

jswit 증인 노드 프로젝트를 시작합니다.

jsup 업보팅(upvoting) 서비스 소개

jsup 수혜자 지정 기능 추가

jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기

Comments

Popular posts from this blog

Nuitka - 파이썬 스크립트를 바이너리 실행 파일로 변환

파이썬에서 스팀잇 ID 및 포스팅 키 유효성 확인

파이썬에서 시간대(timezone) 변경