[개발이야기#007] 특정사용자을 최근글을 수집하고 해당글에 보팅을 해보자.

in kr •  7 months ago 

[개발이야기#006] 매일매일 날짜만 바꿔서 동일한 글 포스팅 하기

No. 007
2024.05.11.토 | Written by @talkit

    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으로 자동 보팅을 하겠네요 ^^

감사합니다.

Layout provided by Steemit Enhancer hommage by ayogom


Posted through the ECblog app (https://blog.etain.club)
Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

안녕하세요.
SteemitKorea팀에서 제공하는 'steemit-enhancer'를 사용해 주셔서 감사합니다. 개선 사항이 있으면 언제나 저에게 연락을 주시면 되고, 관심이 있으신 분들은 https://cafe.naver.com/steemitkorea/425 에서 받아보실 수 있습니다. 사용시 @응원해 가 포함이 되며, 악용시에는 모든 서비스에서 제외될 수 있음을 알려드립니다.

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.


안녕하세요.
이 글은 SteemitKorea팀(@ayogom)님께서 저자이신 @talkit님을 응원하는 글입니다.
소정의 보팅을 해드렸습니다 ^^ 항상 좋은글 부탁드립니다
SteemitKorea팀에서는 보다 즐거운 steemit 생활을 위해 노력하고 있습니다.
이 글은 다음날 다시 한번 포스팅을 통해 소개 될 예정입니다. 감사합니다!