Posts

Showing posts with the label sds

SDS API를 이용한 한글 검색의 한계 - 2

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/sds-api-2 스팀잇 포스트 검색에 대한 내용은 아래의 포스트를 참고하시기 바랍니다. Steemit-Search: 간단한 스팀잇 포스트 검색 웹페이지 포스트 검색과 관련하여 @lyh5926님이 제시해 주신 3가지 사안에 대해 첫번째와 두번째 사안은 형태소 분석이 없기 때문에 발생하는 문제이며, 관련 내용은 아래의 포스트에 있습니다. SDS API를 이용한 한글 검색의 한계 @lyh5926님의 댓글은 아래의 링크입니다. https://steemit.com/hive-196917/@lyh5926/rwk9kw 세번째 사안은 ID 검색에 대한 것입니다. @jsup 2.0 작업 때문에 이제서야 살펴보게 되었습니다. 전체 검색으로 유저 ID 검색시에도 검색결과가 어떤 기준인지 파악이 어려웠습니다. (lyh5926, ini4909, gogikr 3개 ID로 검색해본 결과) ini4909 검색시 결과값 1개 lyh5926 검색시 결과값 6개 gogikr 검색시 결과값 76개 SDS API를 이용한 포스트 검색중 "any" 옵션, 즉 어디든 일치하는 문자열이 있으면 가져오는 옵션은 특정 ID를 검색해 주지 않습니다. ID 여부와 무관하게 일치하는 문자열이 있는지만 확인하며, 확인하는 범위는 포스트 제목과 본문에 국한되어 있는 것으로 보입니다. 예를 들어 ini4909로 검색을 했을 경우 @ini4909님의 포스트가 오는 것이 아니라 제목 또는 본문에 "ini4909" 문자열이 있는 포스트가 옵니다. Steemit-Search의 경우 별도로 저자(author)를 지정할 수 있는데, 사용자가 지정한 문자열을 포함한 포스트를 우선 가져온 후에 각 포스트의 저자 정보를 확인하여 선택/출력하는 방식을 사용하고 있습니다. 우리가 익숙한 네이버 검색과 같은 수준은 아니고 이러한 제약 사...

파이썬과 SDS API를 이용해서 특정 계정을 증인 프록시(witness proxy)로 설정한 계정 조회

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/sds-api-witness-proxy SDS API를 이용해서 특정 계정을 증인 프록시로 설정한 계정의 목록을 조회할 수 있습니다. 예를 들어 @avle 계정을 증인 프록시로 설정한 계정들을 조회하려면 아래와 같이 할 수 있습니다. import requests import json steem_id = 'avle' sds_url = 'https://sds.steemworld.org/witnesses_api/getAccountsByWitnessProxy/' + steem_id response = requests.get(sds_url) res_dict = json.loads(response.text) res_list = res_dict["result"] requests.get()을 이용해서 증인 프록시를 조회하기 위한 url에 접속해서 응답을 받아 옵니다. 응답은 json 형식의 문자열인데, json.loads() 함수를 이용해서 딕셔너리(dict) 형식으로 변환합니다. "result" 키(key)에 계정 목록이 있으므로, 위의 예시처럼 해당 키의 값을 가져오면 됩니다. @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - 디지털 아트 보존 프로젝트 Posted through the AVLE Dapp ( https://avl...

파이썬과 SDS를 이용해서 특정 기간 동안의 계정 이력 조회

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/60bf81-sds 파이썬과 SDS를 통해서 특정 기간 동안의 계정 이력(account history)을 조회할 수 있습니다. 우선 SDS API 활용에 대한 기본적인 내용은 아래의 링크를 참고하시기 바랍니다. SDS API의 기본적인 사용법 계정 이력 조회와 관련된 SDS API 설명서는 아래의 링크입니다. https://sds1.steemworld.org/describeMethod/account_history_api.getHistoryByOpTypesTime 이 API는 특정 계정에 대하여 특정 종류의 오퍼레이션(operation)을 수행한 이력을 조회합니다. 조회기간은 유닉스 타임스탬프(unix timestamp) 형식으로 지정하며, 요청 형식은 아래과 같습니다. https://sds1.steemworld.org/account_history_api/getHistoryByOpTypesTime/[account]/[op_types]/[start_timestamp]-[end_timestamp]/ 아래의 예시는 파이썬의 requests 모듈을 이용해서 1시간(3600초)전부터 현재 시점까지 @joviansummer의 포스팅/댓글 작성 및 보팅 이력를 조회하는 경우입니다. 오퍼레이션 종류를 2개 이상 지정할 경우엔 쉼표(,)로 구분하며 포스팅/댓글은 "comment", 보팅은 "vote"입니다. import requests import json import datetime # 대상 계정 steem_id = 'joviansummer' # 오퍼레이션 종류: 포스팅/댓글, 보팅 op_types = 'comment,vote' # 현재 시각 now = datetime.datetime.now() # 타임스탬프 형식으로 변환 now_ts = int(now.str...

SDS를 통해 조회한 스팀잇 포스트 정보의 타임스탬프 시간대(timezone)

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/sds-timezone 우선 파이썬과 SDS를 이용한 스팀잇 포스트 정보 조회 방법은 이전 포스트를 참고하시기 바랍니다. 아래의 링크입니다. 파이썬과 SDS를 이용한 스팀잇 포스트 정보 조회 스팀잇 포스트 정보를 스팀 API 노드에서 조회할 경우, 타임스탬프(timestamp)의 시간대(timezone)는 GMT(UTC)입니다. 따라서 한국 시간 기준으로 9시간이 느립니다(한국 시간은 GMT+9시간입니다). 흥미롭게도, SDS를 통해서 포스트 정보를 가져오면 타임스탬프의 시간대가 지역 시간, 즉 한국 시간(GMT+9)입니다. IP주소를 가지고 지역 시간대로 환산해서 응답을 주는 것인지 다른 방식을 사용하는 것인지 모르겠지만 어쨌든 시간이 한국 시간 기준으로 조회됩니다. 앞에서 언급한 이전 포스트의 예제 코드를 다시 가져와 보면 아래와 같습니다. import requests import json author = 'joviansummer' permlink = 'f7bf32-print' sds_url = 'https://sds1.steemworld.org/posts_api/getPost/' + author + '/' + permlink res = requests.get(sds_url) res_dict = json.loads(res.text) 포스트 작성 시간은 아래와 같이 "result"의 "created" 키(key)에서 확인할 수 있습니다. print(res_dict['result']['created']) 마지막으로 수정한 시간은 "last_update" 키에 있습니다. print(res_dict['result']['last_update'...

파이썬 beem과 SDS로 특정 계정이 임대 받은 스팀파워 내역 조회하기

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/beem-sds 특정 계정이 어느 계정에 스팀파워를 임대했는지, 즉 나가는 임대(outgoing delegation) 내역은 파이썬 beem에서 간편하게 확인할 수 있습니다. 아래의 링크입니다. 파이썬 beem에서 특정 계정의 스팀파워 임대 정보 조회하기 반면에 특정 계정이 어느 계정으로부터 얼마의 스팀파워를 임대 받았는지, 즉 들어오는 임대(incoming delegation) 내역은 beem에서 확인하기가 어렵습니다. 가능하긴 하지만 계정 이력(account history)을 조회해서 일일이 확인을 해야 합니다. SDS API를 이용하면 들어오는 임대 내역을 간편하게 조회할 수 있습니다. 우선 SDS API의 기본 동작에 대한 내용은 이전 포스트를 참고하시기 바랍니다. 아래의 링크입니다. 파이썬과 SDS를 이용한 스팀 정보 조회 들어오는 임대 내역을 조회하기 위한 url 항목은 /delegations_api/getIncomingDelegations/입니다. 예를 들어 @jsup 계정이 임대 받은 내역을 확인하려면 아래와 같이 할 수 있습니다. import requests sds_url = 'https://sds1.steemworld.org/delegations_api/getIncomingDelegations/' + steem_id response = requests.get(sds_url) print(response.text) {"code":0,"result":{"cols":{"time":0,"from":1,"to":2,"vests":3},"rows":[[1644649578,"kr-templar","jsup",64...

파이썬과 SDS를 이용한 스팀 정보 조회

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/sds SDS의 기본적인 동작에 대한 내용은 이전 포스트를 참고하시기 바랍니다. 아래의 링크입니다. SDS API의 기본적인 사용법 여기서는 응답 결과가 가장 간단한 조회요청, 증인 계정의 순위를 조회하는 코드를 예시로 사용하겠습니다. 웹 접속으로 조회 요청을 보내고 json 형식으로 응답을 받아야 하므로 파이썬의 requests 모듈과 json 모듈을 사용합니다. import requests wit_id = 'jswit' sds_url = 'https://sds1.steemworld.org/witnesses_api/getWitnessRank/' + wit_id response = requests.get(sds_url) print(response.text) {'code': 0, 'result': 32} @jswit의 증인 순위를 조회하는 요청이므로 /witnesses_api/getWitnessRank/jswit에 접속하면 위와 같이 응답을 받게 됩니다. HTTP GET 요청을 통해 접속해서 받은 응답을 변수 response에 할당했는데, 응답으로 온 본문은 response.text에 있으며 문자열(string)입니다. 파이썬 코드에서 이 정보를 처리할 수 있도록 json 형식의 문자열을 딕셔너리(dict)로 변환할 수 있습니다. 아래와 같이 json.loads() 함수를 이용합니다. import json res_dict = json.loads(response.text) print('증인 계정 ' + wit_id +'의 순위:', str(res_dict['result'])) 증인 계정 jswit의 순위: 32 @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증...

SDS API의 기본적인 사용법

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/820a9-sds-api SDS(STEEM data service) 설명서는 아래의 링크입니다. https://sds1.steemworld.org 스팀 블럭체인의 다양한 정보를 조회할 수 있는 기능을 제공합니다. 어떤 정보를 조회할 것인지는 sds1.steemworld.org에 접속할 때 접속주소(URL)를 어떻게 설정하느냐에 따라 지정됩니다. URL 구성은 기본적으로 아래와 같은 형태가 됩니다. https://sds.steemworld.org/[상위 항목]/[하위 항목]/[요청값1]/[요청값2]/... 상위 항목은 조회하려는 정보 종류별로 구분되어 있습니다. 예를 들어 스팀 계정과 관련된 정보는 account_api, 증인 계정과 관련된 정보는 witnesses_api, 검색과 관련된 정보는 content_search_api 이런 식입니다. 각 상위 항목마다 하위 항목이 존재합니다. 예를 들어 특정 증인 계정의 순위를 조회하는 API는 witnesses_api 항목 하위에 있는 getWitnessRank입니다. 그 다음에는 실제로 조회를 요청하기 위한 요청값을 지정합니다. 만약 증인 계정 @jswit의 순위를 SDS에서 조회하고 싶다면 아래와 같은 주소로 접속합니다. https://sds1.steemworld.org/witnesses_api/getWitnessRank/jswit/ 위와 같은 주소로 접속을 할 경우 @jswit의 순위가 응답으로 옵니다. 상위항목은 witnesses_api, 하위 항목은 getWitnessRank, 요청값은 jswit 이렇게 되고 아래와 같이 json 형식으로 응답을 받습니다. {"code":0,"result":33} 하나 더 예를 들어서 @joviansummer의 현재 스팀/스팀달러 보유량을 조회해 보겠습니다. 스팀 보유량을 조회하기 위해...

스팀월드 SDS(STEEM data service) API

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/sdssteem-data-service-api SDS API는 @steemchiller님이 개발해서 운영중인 스팀 관련 정보 조회용 API입니다. 최근에야 이런것이 있는줄 알게 되었네요. 잠깐 살펴보니 상당히 유용한 기능들이 많이 있는 것 같습니다. API 설명은 아래의 링크에 있습니다. https://sds1.steemworld.org/ 특히 눈에 띄는 부분이 포스트 검색입니다. 실제로 SDS를 이용한 포스트 검색 서비스도 있습니다. @michelangelo3님의 웹사이트인데요. 아래의 링크에서 포스트 검색을 할 수 있습니다. 매우 편리하네요. https://steem.uber.space/steem/steem-search/ 관련된 포스트는 아래의 링크입니다. Steem Search based on SDS update SDS를 이용한 포스트 검색은 @etainclub님의 AVLE에도 적용되었습니다. [AVLE] Updates (0.8.3) - Improved Post Search SDS API는 웹 접속을 통해 요청을 보내면 json 형식으로 응답이 오는 형태이기 때문에 파이썬에서도 편리하게 활용할 수 있을 것 같습니다. 좀 더 공부하면, 현재 운영중인 텔레그램 메신저 기반의 블럭체인 탐색기 jSTEEM의 기능을 확장시켜 볼 수 있지 않을까 생각하고 있습니다. @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체...