毎日ねむい六角レンチです
布団食べたい
systemdを使って自動でログインボーナスをするスクリプト作りました
経緯
連続ログインが全然続きません
ログボ忘れは大罪って誰かが言っていた気がするのでこのままではまずいです
そんな時、一つの記事を見つけます...
参考にしたもの
pythonのスクリプトをdaemon化するという記事です
ログボは毎日朝5時にリセットされるので...
作る
まずは普通にノートを作成するスクリプトを作る
from misskey import Misskey
INSTANCE = "misskey.io"
TOKEN = "token"
mk = Misskey(INSTANCE, i=TOKEN)
TEXT = "example text"
mk.notes_create(text=TEXT)
TOKENにはノートを作成・削除する
と通知を操作する
の権限を与えたアクセストークンを、
TEXTはノートに書くテキスト
(今回はログボなのでログボ
と@LoginBonus@misskey.m544.net
が入ったテキスト)
次に記事を参考にmain関数を作成
ついでにノートの作成に失敗した場合、作成に失敗したことを通知するようにする
from misskey import Misskey
import requests
def main():
INSTANCE = "misskey.io"
TOKEN = "token"
mk = Misskey(INSTANCE, i=TOKEN)
TEXT = "example text"
try:
mk.notes_create(text=TEXT)
except:
endpoint = f"https://{INSTANCE}/api/notifications/create"
ICONURL = "URL"
payload = {"i":TOKEN,
"body":"ヤギです",
"header":"&/$%_&+/%$=!$&?=*$$%/+.?%-+=*/",
"icon":ICONURL}
requests.post(endpoint, json=payload)
if __name__ == "__main__":
main()
ICONURLは画像のURLを入れる
except節の通知がちゃんと動くか確かめてみる
...huh? (GIF画像OKなので動きます)
サービスファイルとタイマーファイルを/etc/systemd/system/
に作っていく
スクリプトを置く場所は/home/(ユーザー)/daemons/logbo
にした
systemdのサービスファイル(logbo.service
)
[Unit]
Description=misskey auto login bonus get script
[Service]
ExecStart=スクリプトのパス
タイマーファイル(logbo.timer
)
[Unit]
Description=misskey auto login bonus get script
[Timer]
OnCalendar=*-*-* 5:30:00 Asia/Tokyo
[Install]
WantedBy=timers.target
あとはsudo systemctl enable logbo.timer
で有効化する
systemctl enable
は起動時に有効化する物なのでsystemctl start logbo.timer
も一緒にした方がいい
ちゃんとサービスファイルが動くか試す方法
systemctl start logbo.service
でちゃんと動くか確かめることができる。
なぜできるのかはサービスファイルはタイマーファイルによってトリガーされているだけだからっぽい
結果
なんと一週間連続ログイン達成しました🤯
これは歴史に残る大偉業ですね...
感想
作っていて思ったのですがログインボーナスのあるSNSってなんですかね...?
misskeyに来てもう8ヶ月経つのでログインボーナスは普通の物だと思っていましたがよく考えたら変です
リバーシやスイカゲームもどきが実装されているのもSNSとして考えると変ですね
(さらに麻雀まで実装予定)
systemdを初めて使ったのですが簡単に定期実行するスクリプトを書けて便利ですね
今まで定期実行するにはライブラリのscheduleを使わないと難しいと考えていたので今後かなりお世話になりそう
ただ動かし続けるPCが必要なのでそこだけ注意ですかね
ラズパイZero2Wを買って大正解でした
(botの運営用に買ったけど他の用途にも使えて便利)
(但しminiHDMI端子採用は絶対に許さない)