[개발이야기#006] 매일매일 날짜만 바꿔서 동일한 글 포스팅 하기
Python
스팀잇 자동 포스팅
오늘도 두서 없이 개발 글을 하나 적어 보겠습니다.
관련글
[개발이야기#006] 매일매일 날짜만 바꿔서 동일한 글 포스팅 하기
오늘의 소스
from steem import Steem
import schedule
import time
s = Steem(keys=["private_posting_key"])
def vote_on_post():
# Define the author to check
author = "target_author"
# Get the recent posts by the author
recent_posts = s.get_discussions_by_blog({"tag": author, "limit": 1})
# If there are no recent posts, do nothing
if not recent_posts:
return
# Get the most recent post
recent_post = recent_posts[0]
# Check if we have already voted on this post
for vote in recent_post["active_votes"]:
if vote["voter"] == "your_account":
return
# If we haven't voted yet, vote on the post with 75% voting power
s.commit.vote(recent_post["permlink"], 75, account="your_account")
# Schedule the task
schedule.every().day.at("10:00").do(vote_on_post)
# Keep the script running
while True:
schedule.run_pending()
time.sleep(60)
오늘도 깃허브 코파일럿과 열심히 코딩을 하고 있습니다.
Steem-python 라이브러리에서 s.commit.vote 메서드를 사용하여 게시물에 투표할 때, 투표 파워를 설정할 수 있습니다. 투표 파워는 0에서 100 사이의 정수로 표현되며, 100은 100%를 의미합니다. 따라서 투표 파워를 75%로 설정하려면, s.commit.vote 메서드의 두 번째 인자를 75로 설정하면 됩니다. 아래는 수정된 코드입니다.
현재 시나리오는 @kayap 계정에서 매일 오전 9시에 글을 작성 합니다. 해당글에 @talkit 계정에서 보팅을 10시에 하도록 하는 프로그램을 작성 합니다.
어제 자동으로 글을 작성하는 프로그램은 잘 동작하고 있네요 조금 전9시에 잘동작 했습니다.
위글에 자동 보팅을 해보려고 합니다.
코드는 위와 같습니다.
소스코드 수정사항
저기서 private_posting_key 본인의 포스팅키를 넣으시면 됩니다.
target_author 자동으로 보팅을 해주고 싶은 대상 계정을 적습니다.
your_account 본인의 계정명으로 전부 바꾸셔야 합니다. ^^
실행방법
conda activate steemit
python auto_voting_special_account.py
저는 필요 변수들을 수정 했으니 실행해 보겠습니다.
현재시간이 오전 9시36분이어서 38분에 동작하도록 수정 했습니다. ^^
테스트를 위해서요.
기다리다가 답답해서 코드를 수정하고 다시 9시 40분으로 조정 했습니다. ^^
시간은 좀 더 여러가지 오류가 있어서 T.T 조정을 좀 했습니다.
완전한소스
from steem import Steem
from datetime import datetime
import schedule
import time
s = Steem(keys=["private_posting_key"])
def vote_on_post():
# Define the author to check
author = "target_author "
# Get the recent posts by the author
recent_posts = s.get_discussions_by_blog({"tag": author, "limit": 1})
print("recent_posts: ", recent_posts)
# If there are no recent posts, do nothing
if not recent_posts:
return
# Get the most recent post
recent_post = recent_posts[0]
print("recent_posts[0]: ", recent_post)
# Check if we have already voted on this post
for vote in recent_post["active_votes"]:
if vote["voter"] == "your_account ":
print("이미 해당 포스트에 투표를 했습니다.")
return
# If we haven't voted yet, vote on the post with 75% voting power
print('identifier : ' + '@'+author+'/'+recent_post['permlink'])
s.commit.vote('@'+author+'/'+recent_post['permlink'], 75, "your_account ")
# Schedule the task
schedule.every().day.at("10:00").do(vote_on_post)
# Keep the script running
while True:
schedule.run_pending()
# Get current date and time
now = datetime.now()
# Format as string
now_str = now.strftime("%Y-%m-%d %H:%M:%S")
print(now_str)
time.sleep(60)
#vote_on_post()
위소스를 적당한 이름으로 저장하시고 동일하게 위에 수정해야할 부분 수정 하시고 ^^
실행하시면 자동으로 아침 10시에 원하는 사용자의 최근글에 보팅을 합니다.
실험결과
위와 같이 @talkit 계정으로 @kayap 계정을 보팅하도록 하는 프로그램 완성 했습니다. ^^
4주안에 만들려고 했는데 그냥 다른 작업하면서 시간이 나서 진행 해버렸습니다.
이제 꺼지만 않으면, kayap으로 글을 쓰고, talkit으로 자동 보팅을 하겠네요 ^^
감사합니다.
Posted through the ECblog app (https://blog.etain.club)
안녕하세요.
SteemitKorea팀에서 제공하는 'steemit-enhancer'를 사용해 주셔서 감사합니다. 개선 사항이 있으면 언제나 저에게 연락을 주시면 되고, 관심이 있으신 분들은 https://cafe.naver.com/steemitkorea/425 에서 받아보실 수 있습니다. 사용시 @응원해 가 포함이 되며, 악용시에는 모든 서비스에서 제외될 수 있음을 알려드립니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
안녕하세요.
이 글은 SteemitKorea팀(@ayogom)님께서 저자이신 @talkit님을 응원하는 글입니다.
소정의 보팅을 해드렸습니다 ^^ 항상 좋은글 부탁드립니다
SteemitKorea팀에서는 보다 즐거운 steemit 생활을 위해 노력하고 있습니다.
이 글은 다음날 다시 한번 포스팅을 통해 소개 될 예정입니다. 감사합니다!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit