semvec/pypi-packages huggingface dataset:
django-xterm 0.3.3
Django-pohjainen Xterm.JS-pääteyhteys
License: MIT
Requires Python: >=3.8

django-xterm
============
Django-pohjainen Xterm.JS-pääteyhteys


Asennusvaatimukset
------------------
* Django 3.2 tai uudempi
* django-pistoke


Asennus
-------
Paketin asennus näennäisympäristöön:
```bash
pip install django-xterm
```

Django-asetukset:
```python
# projekti/asetukset.py

INSTALLED_APPS = [
  ...
  'django-xterm',
]
```


Käyttö
------
Paketti toteuttaa vuorovaikutteisen pääteistunnon Web-sivun kautta käyttäjälle. Pääte on toteutettu `Xterm.js`-vimpaimen avulla. Vimpain ohjaa Websocket-yhteyden läpi palvelimella olevaa PTY-tiedostokuvaajaa, joka puolestaan ohjaa TTY-päätettä, johon voidaan liittää haluttu, vuorovaikutteinen istunto (esim. `bash`).

Ajettavan istunnon sisällön määräämiseksi käsillä olevan paketin toteuttama `XtermNakyma`-luokka on periytettävä seuraavan esimerkin tapaan:
```python
# sovellus/bash.py

import json
import subprocess

from xterm import XtermNakyma

class Komentokeskusnakyma(XtermNakyma):
  template_name = 'sovellus/bash.html'

  def prosessi(self):
    subprocess.run(['/bin/bash'])

  async def websocket(self, request, *args, **kwargs):
    data = json.loads(await request.receive())
    if not request._tarkista_csrf(data.get('csrfmiddlewaretoken')):
      return await request.send(
        '\033[31mCSRF-avain puuttuu tai se on virheellinen!\033[0m'
      )
    await super().websocket(request, *args, **kwargs)
```

```html
<!-- sovellus/bash.html -->
{% extends "xterm/xterm.html" %}

{% block sisalto %}
  <form id="avaa" method="POST">
    {% csrf_token %}
    <input type="submit" value="Suorita"/>
  </form>
  <hr/>
  {{ block.super }}
{% endblock sisalto %}

{% block skriptit %}
  {{ block.super }}
  <script>
    document.getElementById("avaa").onsubmit = function (e) {
      e.preventDefault();
      var formData = new FormData(e.target);
      var lomake = {};
      formData.forEach(function (value, key) {
        lomake[key] = value;
      });
      avaa_xterm(function (ws) { ws.send(JSON.stringify(lomake)); });
    };
  </script>
{% endblock skriptit %}
```
netdisk-mcp-server 0.1.0
百度网盘 MCP Server - 通过 Model Context Protocol 提供百度网盘文件上传功能
License: MIT
Requires Python: >=3.12
Keywords: baidu, mcp, model-context-protocol, netdisk, pan, 百度网盘

## Baidu Netdisk MCP Server (Python)

一个通过 Model Context Protocol (MCP) 提供百度网盘文件上传功能的服务器。

### 特性

- 支持小文件直接上传
- 支持大文件自动分片上传（>4MB）
- 内置重试机制和错误处理
- 通过 MCP 协议与 AI 助手集成

### 安装

#### 方式一：通过 pip 安装（推荐）

```bash
pip install netdisk-mcp-server
```

#### 方式二：从源码安装

```bash
git clone https://github.com/yourusername/netdisk-mcp-server-stdio.git
cd netdisk-mcp-server-stdio
pip install -e .
```

### 配置

#### 获取百度网盘 Access Token

1. 访问百度开放平台创建应用
2. 获取 Access Token
3. 设置环境变量：`BAIDU_NETDISK_ACCESS_TOKEN`

### 使用方法

#### 方式一：命令行直接运行

```bash
export BAIDU_NETDISK_ACCESS_TOKEN="your_access_token"
netdisk-mcp-server
```

#### 方式二：搭建 Python 虚拟环境

我们推荐通过`uv`构建虚拟环境来运行MCP server，关于`uv`你可以在[这里](https://docs.astral.sh/uv/getting-started/features/)找到一些说明。

按照[官方流程](https://modelcontextprotocol.io/quickstart/server)，你会安装`Python`包管理工具`uv`。除此之外，你也可以尝试其他方法（如`Anaconda`）来创建你的`Python`虚拟环境。

### 在Cursor中使用

打开`Cursor`配置，在MCP中添加MCP Server

![](./img/cursor_setting.png)

在文件中添加如下内容后保存

#### 配置方式一：使用已安装的包

```json
{
  "mcpServers": {
    "baidu-netdisk": {
      "command": "netdisk-mcp-server",
      "env": {
        "BAIDU_NETDISK_ACCESS_TOKEN": "<YOUR_ACCESS_TOKEN>"
      }
    }
  }
}
```

#### 配置方式二：使用 uv 运行

```json
{
  "mcpServers": {
    "baidu-netdisk-local-uploader": {
      "command": "uv的绝对路径，通过which uv命令获取，如/Users/netdisk/.local/bin/uv",
      "args": [
          "--directory",
          "netdisk.py所在的父目录绝对路径，如/Users/netdisk/mcp/netdisk-mcp-server-stdio",
          "run",
          "netdisk.py"
      ],
      "env": {
        "BAIDU_NETDISK_ACCESS_TOKEN": "<YOUR_ACCESS_TOKEN>"
      }
    }
  }
}
```


回到配置，此时百度网盘MCP Server已经启用

![](./img/cursor_run_mcp_success.png)

### 测试

上传文件到网盘测试用例

![](./img/cursor_test_1.png)

![](./img/cursor_test_2.png)

### API 说明

#### upload_file

上传本地文件到百度网盘

参数：
- `local_file_path` (str): 本地文件路径
- `remote_path` (str, 可选): 网盘存储路径，必须以 `/` 开头。如不指定，将默认上传到 `/来自：mcp_server` 目录下

返回：
- `status`: 上传状态（success/error）
- `message`: 状态消息
- `filename`: 文件名
- `size`: 文件大小
- `remote_path`: 远程路径
- `fs_id`: 文件系统 ID

### 开发

#### 构建项目

```bash
# 安装开发依赖
pip install build twine

# 构建包
python -m build

# 检查构建结果
twine check dist/*
```

#### 发布到 PyPI

```bash
# 发布到测试 PyPI
twine upload --repository testpypi dist/*

# 发布到正式 PyPI
twine upload dist/*
```

### 许可证

MIT License

### 贡献

欢迎提交 Issue 和 Pull Request！
iclick-auto 1.0.1
iClick Automation Tool Without Jailbreak Python Package.
License: MIT
Requires Python: >=3.7
Keywords: IOS, Automation, Without Jailbreak

# iclick-auto

![PyPI version](https://img.shields.io/pypi/v/iclick-auto.svg)
![PyPI license](https://img.shields.io/pypi/l/iclick-auto.svg)

[English](README.en.md) | 中文

用于iOS免越狱自动化的 Python SDK。除了 API 调用功能外，实现了断线重连和事件监听机制以及二进制meta数据包解析。

官方网站: https://iosclick.com/

## 安装

```bash
pip install iclick-auto
```

## 快速开始

```python
from iclick import client as iclient

# 创建客户端实例
client = iclient()

# 监听设备事件
client.on('device:online', lambda data: print('设备上线:', data))
client.on('device:offline', lambda data: print('设备下线:', data))

# 连接服务器
client.connect()

# 调用 API
result = client.invoke('getDevices', {'deviceId': 'P60904DC8D3F'})

print('结果:', result)
```

## API 文档

### `client(options)`

创建客户端实例。

**参数：**

| 参数 | 类型 | 可选 | 说明 | 默认值 |
|------|------|------|------|--------|
| `options.host` | str | 是 | WebSocket 服务器地址 | `127.0.0.1` |
| `options.port` | int | 是 | WebSocket 服务器端口 | `23188` |
| `options.autoReconnect` | bool | 是 | 是否启用自动重连 | `True` |
| `options.reconnectDelay` | int | 是 | 重连延迟（秒） | `3` |
| `options.maxReconnectAttempts` | int | 是 | 最大重连次数，0表示无限 | `8` |

**示例：**

```python
from iclick import client as iclient

client = iclient({
    'host': '192.168.31.15',
    'port': 23188,
    'autoReconnect': True,
    'reconnectDelay': 5
})
```

### `client.connect()`

连接到 WebSocket 服务器。

**示例：**

```python
try:
    client.connect()
    print('连接成功')
except Exception as error:
    print('连接失败:', error)
```

### `client.invoke(type, params, timeout)`

调用 API 方法。

**参数：**

- `type` (str): API 类型
- `params` (dict, 可选): 请求参数，默认 `{}`
- `timeout` (int, 可选): 超时时间（秒），默认 `18`

**返回：** 响应数据

**示例：**

```python
# 发送按键
result = client.invoke('sendKey', {
    'deviceId': 'P60904DC8D3F',
    'key': 'h',
    'fnkey': 'COMMAND'
})

# 自定义超时时间
result = client.invoke('someType', {'param': 'value'}, 30)
```

### `client.on(event_name, callback)`

注册事件监听器。

**参数：**

- `event_name` (str): 事件名称
- `callback` (callable): 回调函数，接收事件数据作为参数

**示例：**

```python
client.on('device:online', lambda data: print('设备上线:', data))
client.on('device:offline', lambda data: print('设备下线:', data))
```

### `client.off(event_name, callback)`

移除事件监听器。

**参数：**

- `event_name` (str): 事件名称
- `callback` (callable, 可选): 要移除的回调函数。如果不提供，将移除该事件的所有监听器

**示例：**

```python
def handler(data):
    print('收到事件:', data)

# 注册监听器
client.on('someEvent', handler)

# 移除特定监听器
client.off('someEvent', handler)

# 移除事件的所有监听器
client.off('someEvent')
```

### `client.destroy()`

销毁客户端，断开连接并清理所有资源。

**示例：**

```python
client.destroy()
print('客户端已销毁')
```

## License

MIT

## 相关链接

- API参考: https://iosclick.com/zh/api/index.html
- 事件通知: https://iosclick.com/zh/api/notify.html
- PyPI 包: https://pypi.org/project/iclick-auto/

## 问题反馈

如有问题，请在 [Issues](https://github.com/Undefined-Token/iclick-python/issues) 中反馈。
entari-cli 0.4.0
Entari Command Line Tool, extract from arclet.entari.__main__
License: MIT
Requires Python: >=3.9
Keywords: bot, dependency, entari

<div align="center">

# Entari CLI

_✨ Entari 命令行工具 ✨_

</div>

<p align="center">
  <a href="https://raw.githubusercontent.com/ArcletProject/entari-cli/main/LICENSE">
    <img src="https://img.shields.io/github/license/ArcletProject/entari-cli" alt="license">
  </a>
  <a href="https://pypi.python.org/pypi/entari-cli">
    <img src="https://img.shields.io/pypi/v/entari-cli" alt="pypi">
  </a>
  <img src="https://img.shields.io/badge/python-3.9+-blue" alt="python">
</p>

<p align="center">
  <a href="https://arclet.top/tutorial/entari">Entari 文档</a>
</p>

## 功能

- 初始化 Entari 环境
- 启动 Entari
- 生成配置文件
- 管理插件
  - 创建新的 Entari 插件 (项目型/应用型)
- 支持 CLI 插件

## 安装

使用 pipx 安装

```shell
pipx install entari-cli
```

使用 Docker 运行

```shell
docker pull ghcr.io/arcletproject/entari-cli:latest
```

Docker 镜像可以选择以下版本：

- `latest`, `latest-slim`：最新的稳定版本
- `latest-${python版本}`, `latest-${python版本}-slim`：指定 Python 版本的最新稳定版本
- `${cli版本}`, `${cli版本}-slim`：指定 CLI 版本的最新稳定版本
- `${cli版本}-${python版本}`, `${cli版本}-${python版本}-slim`：指定 CLI 和 Python 版本的最新稳定版本

## 命令行使用

```shell
entari --help
```

> **Warning**
>
> 如果找不到 `entari` 命令，请尝试 `pipx ensurepath` 来添加路径到环境变量

- `entari add`            添加一个 Entari 插件到配置文件中
- `entari config`         配置文件操作
- `entari gen_main`       生成一个 Entari 主程序文件
- `entari init`           新建一个虚拟环境并安装 Entari
- `entari new`            新建一个 Entari 插件
- `entari remove`         从配置文件中移除一个 Entari 插件
- `entari run`            运行 Entari

## Docker 镜像使用

```shell
docker run --rm -it -v ./:/workspaces ghcr.io/arcletproject/entari-cli:latest --help
```

挂载当前目录到容器的 `/workspaces` 目录，然后在容器中运行 `entari` 命令。