semvec/pypi-packages huggingface dataset:
nonebot-plugin-savepic 0.6.1
保存表情包（语录）与随机出图
License: MIT
Requires Python: <4.0,>=3.11

<div align="center">
  <a href="https://v2.nonebot.dev/store"><img src="https://github.com/A-kirami/nonebot-plugin-template/blob/resources/nbp_logo.png" width="180" height="180" alt="NoneBotPluginLogo"></a>
  <br>
  <p><img src="https://github.com/A-kirami/nonebot-plugin-template/blob/resources/NoneBotPlugin.svg" width="240" alt="NoneBotPluginText"></p>
</div>

<div align="center">

# nonebot-plugin-savepic

_✨ 一个存取图片的插件 ✨_

</div>

## 📖 介绍

重写自 Fran 的 Savepic

### savepic

保存表情包

### randpic

抽取表情包

### mvpic

重命名表情包，或者修改表情包所属的群域

例如：

```
/mvpic -l name.jpg -g waaaaa.gif
```

就是把本群的 name.jpg 改成全局名为 waaaaa.gif 的表情包

同理

```
/mvpic -g waaaaa.gif -l waaaaa.gif
```

就是从全局移到本群（接收到命令的群）

### 直接发送文件名

发送文件名即可发送表情包

## ⚙️ 配置

在 nonebot2 项目的`.env`文件中添加下表中的必填配置

| 配置项 | 必填 | 默认值 | 说明 |
|:-----:|:----:|:----:|:----:|
| savepic_admin | 否 | 无 | 权限用户 |
| savepic_dir | 否 | savepic | 图片本地保存位置 |

## 🎉 使用

### 指令表

| 指令 | 权限 | 需要@ | 范围 | 说明 |
|:-----:|:----:|:----:|:----:|:----:|
| savepic | 群员 | 否 | 群聊 | 保存图片 |
| randpic | 群员 | 否 | 全部 | 随机图片 |
| mvpic | 管理员 | 否 | 群聊 | 重命名图片 |
fineio 0.0.1a2
FineIO: User-friendly sync/async Python execution
License: MIT
Requires Python: >=3.7

# FineIO

**FineIO** — async foundation library for [finesql](https://pypi.org/project/finesql) and [fynor](https://pypi.org/project/fynor).  
It provides helpers that work in both **sync** and **async** code, making it easy to adopt async gradually.

## Installation

```bash
pip install fineio
```

## Quick Start

### Hello Example

```python
from fineio import hello

# ✅ Sync usage
print(hello())  # -> "fineio is alive!"

# ✅ Async usage
import asyncio

async def main():
    print(await hello())  # -> "fineio is alive!"

asyncio.run(main())
```

## How It Works

The same function **`hello()`** works in both contexts:

- If called **outside** an event loop → it runs async code with `asyncio.run()` and returns the result directly.  
- If called **inside** an event loop → it returns a coroutine, so you can `await` it.  

This dual-mode design makes it possible to:
- Start with **synchronous code**.  
- Move to **async gradually** without changing APIs.  

## Roadmap

- ✅ `hello()` demo function with dual sync/async support.  
- 🚧 Core utilities for running coroutines from sync code.  
- 🚧 Async helpers for finesql (database operations).  
- 🚧 Integration with fynor (web framework).

## License

This project is licensed under the [MIT License](LICENSE).