同世代と趣味の通話コミュニティ - Yay! (イェイ) で投稿やタイムラインの取得、リツイートやいいねの実行、フォローや投稿の検索など様々な機能をPythonプログラムから利用可能なAPIクライアントツールです。
Project description
yaylib
好きでつながるバーチャルワールド - Yay!(イェイ)の API ライブラリ
あらゆる操作の自動化や、ボットの開発が可能です。
Node.js 版はこちらから »
Report Bug
·
Request Feature
·
Join the discord
Table of Contents
Buy me a coffee
このライブラリが気に入っていただけたら、リポジトリにスターをお願いします(⭐)
また、Buy Me a Coffee からご支援いただけますと幸いです。
Installation
※ Python 3.10 以上のバージョンが必要です。
「yaylib」をインストールするには、以下のコマンドをターミナル上で実行します:
pip install yaylib
[!TIP] 開発環境をインストールする場合は、以下の手順を実行します:
git clone https://github.com/ekkx/yaylib.git
cd yaylib
make up
Quick Example
✨ 投稿を作成する
import yaylib
client = yaylib.Client()
client.login(email="your_email", password="your_password")
client.create_post("Hello with yaylib!")
✨ 埋め込みリンクの投稿を作成する
import yaylib
client = yaylib.Client()
client.login(email="your_email", password="your_password")
client.create_post("Hello with yaylib!", shared_url="https://github.com/ekkx/yaylib")
✨ 画像と一緒に投稿を作成する
import yaylib
client = yaylib.Client()
client.login(email="your_email", password="your_password")
# 画像のパスを指定
image_paths = [
"./test1.jpg",
"./test2.jpg",
"./test3.jpg",
]
# 画像の使い道を指定
image_type = yaylib.ImageType.post
# サーバー上にアップロード
attachments = client.upload_image(image_paths, image_type)
# サーバー上のファイル名を指定する
# attachmentsが一つ飛ばしなのはオリジナル品質の画像のみを指定するため
client.create_post(
"Hello with yaylib!",
attachment_filename=attachments[0].filename,
attachment_2_filename=attachments[2].filename,
attachment_3_filename=attachments[4].filename,
)
✨ タイムラインを 100 件取得する
import yaylib
client = yaylib.Client()
timeline = client.get_timeline(number=100)
for post in timeline.posts:
print(post.user.nickname) # 投稿者名
print(post.text) # 本文
print(post.likes_count) # いいね数
print(post.reposts_count) # (´∀`∩)↑age↑の数
print(post.in_reply_to_post_count) # 返信の数
✨ タイムラインをキーワードで検索して「いいね」する
import yaylib
client = yaylib.Client()
client.login(email="your_email", password="your_password")
timeline = client.get_timeline_by_keyword(
keyword="プログラミング",
number=15
)
for post in timeline.posts:
client.like(post.id)
✨ 新規ユーザーをフォローする
import yaylib
client = yaylib.Client()
client.login(email="your_email", password="your_password")
new_users = client.search_users(recently_created=True)
for new_user in new_users.users:
client.follow_user(new_user.id)
✨ リアルタイムでチャットを取得する
import yaylib
from yaylib import Message
class MyBot(yaylib.Client):
def on_ready(self):
print("ボットがオンラインになりました!")
def on_chat_request(self, total_count):
# チャットリクエストはすべて承認する
chat_requests = self.get_chat_requests()
for chat_room in chat_requests.chat_rooms:
self.accept_chat_requests([chat_room.id])
# 最新のメッセージをon_message_create関数に送信
message = self.get_messages(chat_requests.chat_rooms[0].id)
self.on_message_create(message[0])
def on_message_create(self, message: Message):
# 「ping」というメッセージに対して「pong」と返信する
if message.text == "ping":
self.send_message(message.room_id, text="pong")
def on_chat_room_delete(self, room_id):
print(f"チャットルームが削除されました。ルームID: {room_id}")
intents = yaylib.Intents.none()
intents.chat_message = True
bot = MyBot(intents=intents)
bot.run("your_email", "your_password")
より詳しい使用例については、こちら を参照してください。
(トップに戻る)
:crown: yaylib で誕生したロボットたち
「yaylib」を用いて開発したロボットがある場合は、ぜひ教えてください!
MindReader AI | ☀️気象くん☁️ | GIGAZINE |
---|---|---|
開発者: 毛の可能性 |
開発者: tori |
開発者: ぺゅー |
:handshake: 共同開発について
私たちと開発することに興味を持っていただけているなら、ぜひ参加して頂きたいです!
のいずれかの方法で繋がりましょう。詳しくはこちらから!
免責事項
yaylib は、API の公式なサポートやメンテナンスを提供するものではありません。このクライアントを使用する場合、利用者はリスクや責任を自己負担できるものとします。このクライアントによって提供される情報やデータの正確性、信頼性、完全性、適時性について、いかなる保証も行いません。また、このクライアントの使用によって生じた損害や不利益について、一切の責任を負いかねます。利用者は自己の責任において、このクライアントを使用し、API にアクセスするものとします。なお、この免責事項は予告なく変更される場合があります。
ライセンス
MIT © ekkx
フルライセンスは こちら からご確認いただけます。
このプロジェクトは、 【MIT ライセンス】 の条件の下でライセンスされています。
(トップに戻る)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for yaylib-1.5.0.dev3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b28d3b38498a37dffed9961d1cf99b5d70a61665eea57b7e11c52c3ad1f5df32 |
|
MD5 | 610da163a2d52ffccc4afdb6a38185f2 |
|
BLAKE2b-256 | 040f108f8d3bd1fbcd1861e9a485b08fe6ef7e68c31564fd58bcfa4befe177f7 |