Pythonで動作するBluesky用投稿アプリを作った

きっかけ

私はBlueskyを独り言用に使用しているので、Webブラウザを立ち上げずに投稿したいと思ったから。

必要なもの

私が使用したもの

方法

1.上記の環境を作り、適当な場所に.pyのファイルを作る。(ここでは、C:/test/bsky.pyとする。)
2.コマンドプロンプトを立ち上げ、次のコマンドを実行する。

pip install atproto

3.C:/test/bsky.py に次の内容を書き込む。ただし、8行目
client.login('username.bsky.social', 'Password01234567')
に自分のID(もしくはメールアドレス)とパスワードを記入すること。

from atproto import Client  #おまじない
entercount = 0              # 連続して入力されたEnterの回数を測定。2回以上で送信。
result = []                 # 結果を入力する一時的な配列。
data = ""                   # 最終的に出力する文字列。

# ログインここから
client = Client()
client.login('username.bsky.social', 'Password01234567')
print("---")                # ログインが終わったら出力される。
#ログインここまで

#メインプログラム
from atproto import Client  #おまじない
entercount = 0              # 連続して入力されたEnterの回数を測定。2回以上で送信。
result = []                 # 結果を入力する一時的な配列。
data = ""                   # 最終的に出力する文字列。

# ログインここから
client = Client()
client.login('j4125.bsky.social', 'Fumimasa20081204')
print("---")                # ログインが終わったら出力される。
#ログインここまで

#メインプログラム
while True:
    mojiretsu = input()     # 入力待ち
    result.append(mojiretsu)
    if mojiretsu.strip():
        entercount = 0
    else:
        entercount += 1
    if entercount >= 2:
        for i in range((len(result) - 2)):
            if result[i].strip():
                data += result[i]
            data += "\n"
        client.send_post(text=data)  #送信
        print("送信しました。")
        print("---")
        entercount = 0               # 変数のリセット
        gyoucount =  0               # 変数のリセット   
        entercount = 0               # 変数のリセット
        result = []                  # 変数のリセット
        data = ""                    # 変数のリセット

使用例

コマンドプロンプトで以下を実行するか、作ったファイルをダブルクリックすることで実行できる。

python C:/test/bsky.py

Pythonで実行した様子。
実際の投稿。

余白

参考にしたサイト: Bluesky公式サイト www.docs.bsky.app

モールス信号で入力できるキーボードを作った

 

きっかけ

スマホフリック入力よりも確実で、さらに片手で入力できるキーボードが欲しくなったから。

 

必要なもの

・Seeeduino Xiao 1個 (秋月:M-15178)

・適当なスイッチ (ノーマルオープンであれば何でもよい)

回路

Gndピンと4番ピンの間にスイッチを接続する。以上。

配線例

プログラム

自由にコピーして使ってください。

転載する際はこのブログのリンクを張っていただけると助かります。

github.com

入力する符号と出力する文字の対応を変える方法

10行目の int alphamorusu[] の中身を変更すること実現でできる。

後日記載。

モールス信号を入力する速度を変更する方法

32行目の  if (stoptime - starttime >= 160) { の160をを変更することで実現できる。

この 160 というのが短点(トン)と長点(ツー)の閾値で、160ミリ秒より短ければ短点、それより長ければ長点と認識される。

対応表

欧文モールス符号を基準に作っている。

キーボードとして使えるようにするため、橙色で示した部分を追加した。

文字 符号   文字 符号   文字 符号
E   G --・   C -・-・
T   O ---   Y -・--
I ・・   H ・・・・   Z --・・
A ・-   V ・・・-   Q --・-
N -・   F ・・-・   ハイフン ---・
M --   backspace ・・--      
S ・・・   L ・-・・   enter ・・・・・
U ・・-   space ・-・-   カンマ ・・・・-
R ・-・   P ・--・   ピリオド ・・・-・
W ・--   J ・---   ! ・・・--
D -・・   B -・・・   ? ・・-・・
K -・-   X -・・-      

 

完成品