Metadata-Version: 2.4
Name: prozemi-rune
Version: 0.9.9
Summary: Python client for Programming Zemi API
Author-email: "inu.zip" <noname@notexist.org>
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests
Requires-Dist: urllib3
Dynamic: license-file

# ProzemiRune 🌀

[![PyPI version](https://badge.fury.io/py/prozemi-rune.svg)](https://badge.fury.io/py/prozemi-rune)
[![Python Version](https://img.shields.io/pypi/pyversions/prozemi-rune.svg)](https://pypi.org/project/prozemi-rune/)

ビジュアルプログラミングアプリ「プログラミングゼミ（プロゼミ）」のAPIを操作するための非公式ライブラリです。
認証、作品の収集、および自作プロジェクトのシェア（投稿）をサポートします。

## ✨ 特徴

- **統合された認証**: インスタンス初期化時に `nickname` を設定し、`sign_up` や `sign_in` で一貫して使用。
- **トークン自動発行**: 複雑な通信を意識せず、新規アカウントとトークンを即時取得。
- **作品データ収集**: 全ユーザーの公開作品メタデータを取得し、`.prozemiproj` を一括ダウンロード。
- **作品投稿 (Sharing)**: `multipart/form-data` によるバイナリ投稿をサポート。Pythonで生成したコードのインポートに最適。

## 🚀 インストール

```bash
pip install prozemi-rune
```

## 🛠 使い方

### 1. 初期化とログイン
```python
from prozemi_rune import ProzemiRune

# ユーザー名を指定して初期化（新規の場合は nickname も設定可能）
rune = ProzemiRune(nickname="AI_Developer")

# 新規登録
rune.sign_up()

# 既存ユーザーの場合
# rune = ProzemiRune(username="ABC12345")
# rune.sign_in()
```

### 2. 作品の一覧取得とダウンロード
```python
# 「みんなの作品」をページ単位で取得
works = rune.get_public_works(page=1)

for work in works:
    # 作品本体 (.prozemiproj) をダウンロード
    rune.download_project(work['url'], save_dir="downloads")
```

### 3. 作品のシェア（投稿）
```python
# ローカルファイルを投稿
rune.share_work(
    file_path="my_code.prozemiproj",
    project_name="Python生成作品",
    allow_remix=True
)

# または JSONデータ（辞書）を直接パックして投稿
my_json = {"scripts": [...]} 
rune.pack_and_share(my_json, project_name="Generated by AI")
```

## 📄 ライセンス
[MIT License](LICENSE)
