# ASMRManager
包含下载,管理,播放(命令行 TUI)的 <https://asmr.one> 的 CLI 管理工具。
## 功能介绍
### 下载
支持网站所支持的所有索引方式(关键词,标签,会社,价格,声优,日期,年龄分级等等)以及排序方式。
目前仅支持调用 IDM 或 aria2 下载。
支持根据根据文件名对下载的文件进行过滤,以及对音频文件的格式转换。
```
> asmr dl search --help
2024-02-27 16:54:42 - INFO - Run program with: dl search --help
Usage: asmr dl search [OPTIONS] [TEXT]
search and download ASMR
the [multiple] options means you can add multiple same option such as:
--tags tag1 --tags tag2 --no-tags tag3
for options like --rate, --sell, --price, you should give a interval like:
--rate 3.9:4.7 --sell 1000: --price :200
the interval a:b means a <= x < b, if a or b is not given i.e. a: or :b, it
means no lower or upper limit
--force will check the download RJ files again though it is already in the
database, it work just like update
--replace option will first delte the original file, then add the new file
to download queue(i.e. IDM or aria2)
nsfw will only show the full age ASMRs
for other --order values, you can refer to the website for explicit meaning
Options:
-t, --tags TEXT tags to include[multiple]
-nt, --no-tags TEXT tags to exclude[multiple]
-v, --vas TEXT voice actor(cv) to include[multiple]
-nv, --no-vas TEXT voice actor(cv) to exclude[multiple]
-c, --circle TEXT circle(社团) to include
-nc, --no-circle TEXT circle(社团) to exclude[multiple]
-a, --age [general|r15|adult] age limitation to include[multiple]
-na, --no-age [general|r15|adult]
age limitation to exclude[multiple]
-r, --rate TEXT rating interval
-s, --sell TEXT selling interval
-pr, --price TEXT pirce interval
--all / --select download all RJs [default: select]
-p, --page INTEGER page of the search result [default: 1]
--subtitle / --no-subtitle if the ASMR has subtitle(中文字幕) [default:
no-subtitle]
-o, --order [create_date|rating|release|dl_count|price|rate_average_2dp|review_count|id|nsfw|random]
ordering of the search result [default:
release]
--asc / --desc ascending or descending
--force / --check-db force download even if the RJ id exists in
database,or by default, RJ already in the
database will be skipped
--replace / --no-replace replace the file if it exists [default: no-
replace]
--check-name / --ignore-name check and filter out asmr by filenames,
rules are in the config file [default:
check-name]
--check-tag / --ignore-tag check and filter out asmr by tags, rules are
in the config file [default: check-tag]
-h, --help Show this message and exit.
```
### 管理
可以对作品进行评分,评论。也支持用关键词进行搜索(但需要一点 sql 基础,仓库提供了一些模板,例如 [search.sql](./asmrmanager/filemanager/resources/sqls.example/search.sql))
### 播放
非常简陋的终端播放界面,支持歌词显示,按照歌词信息快进,切换歌曲,支持以pygame(sdl)或mpd做为后端,可以预见的将来应该会完善一下(但感觉够用了应该不会再加啥功能了)。
![tui-screenshot](./assets/tui-screenshot.png)
## 使用方法
本工具支持 `python >= 3.10`, 安装方法如下:
```shell
pip install ASMRManager[依赖]
```
可选则的依赖项有 `idm`, `aria2`, `tui`,`pygame`,`mpd`, `all`,多个依赖使用逗号分隔,其中`all`为安装所有依赖。例如 `pip install ASMRManager[idm,tui]`
- 下载:`idm` 或 `aria2` 二选一,`idm` 为 windows 平台专用,`aria2` 为跨平台。
- 播放:`pygame` 或 `mpd` 二选一。
- 其他:`tui` 为可视化命令行界面。
> 此处也可以选择使用 `pipx` 来替代 `pip`,避免污染全局环境。
> 安装方法:`pip install pipx`
---
之后再运行 `asmr` 命令,会生成示例的配置文件和 sql 文件,此处以 windows 举例:
```
2023-10-22 14:36:21 - INFO - First time to run, copy default sqls to C:\Users\slqy\AppData\Local\asmrmanager\asmrmanager\sqls
2023-10-22 14:36:21 - INFO - An example config file has been copied to C:\Users\slqy\AppData\Local\asmrmanager\asmrmanager\config.toml, please modify it and run this command again
```
之后按照说明修改 `config.toml` 文件,如果使用 sql 的话,也可以对 sql 文件夹进行修改。
若有不明白的地方可使用 sqlite 数据库工具查看目录下的 data.db 文件。
完成后使用 `asmr -h` 查看各命令的使用说明,对于子命令不清楚的同样可以查看帮助,例如 `asmr dl -h`。
常用的命令有:
- `dl search` 搜索并下载。
- `info` 搜索某个 RJID 的具体信息
- `file check` 检查下载目录下的文件是否按照规则被正确下载
- `file store` 将下载文件转移到存储目录(STORAGE_PATH),并执行相应文件格式转换(详情见config.toml的before_store字段)
- `view` 将选择文件并移动到 VIEW_PATH
- `pl add` 将某个音声添加到用户的云端播放列表(配合 `pl create` 使用)
- `review` 为某个作品评分并评论(本地)
> 使用命令时,如果不输入 RJID ,将会自动使用上一次命令的RJID。
另外本工具提供基于 `trogon` 的可视化命令行界面,在安装`tui`依赖后使用 `asmr tui` 即可打开。
## 命令行补全
仅适用于Linux,详情可参考[官方文档](https://click.palletsprojects.com/en/8.1.x/shell-completion)。
```shell
# fish
_ASMR_COMPLETE=fish_source asmr > ~/.config/fish/completions/asmr.fish
# bash
_ASMR_COMPLETE=bash_source asmr > ~/.asmr-complete.bash
echo '. ~/.asmr-complete.bash' >> ~/.bashrc
# zsh
_ASMR_COMPLETE=zsh_source asmr > ~/.asmr-complete.zsh
echo '. ~/.asmr-complete.zsh' >> ~/.zshrc
```
## 关于`dl search/get`的使用
命令执行过程中会进行如下的检查与过滤操作:
1. 开始下载前:检查RJ号是否应该下载,如果本地文件不存在或者数据库无记录都会执行下载操作。可以通过 `--force` 强制执行下载。
1. 获取音声信息后:检查音声的tags,如果包含tag_filters里指定的tag,则跳过下载。可以通过 `--ignore-tag` 来强制下载。
1. 获取下载文件后:检查文件的名称和路径,如果不符合filename_filters里指定的规则,则跳过下载。可以通过`ignore-name`来强制下载。
1. 添加下载任务时:如果检测到本地有同名文件,则跳过该文件的下载。可以通过`--replace`来强制覆盖存在的文件。
## 其他
感谢 <https://asmr.one>丰富了我的夜生活。
另外网站运营不易,请合理使用本工具。
Raw data
{
"_id": null,
"home_page": null,
"name": "ASMRManager",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "asmr, downloader, music, player, manager, cli, tui, commandline, terminal",
"author": null,
"author_email": "SLQY <sqiyel@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/7d/e8/658de9ed8bc9150db71ee160a21baf740d8ffd41c57a9c71484500d09575/asmrmanager-2.2.6.tar.gz",
"platform": null,
"description": "# ASMRManager\n\n\u5305\u542b\u4e0b\u8f7d\uff0c\u7ba1\u7406\uff0c\u64ad\u653e(\u547d\u4ee4\u884c TUI)\u7684 <https://asmr.one> \u7684 CLI \u7ba1\u7406\u5de5\u5177\u3002\n\n## \u529f\u80fd\u4ecb\u7ecd\n\n### \u4e0b\u8f7d\n\n\u652f\u6301\u7f51\u7ad9\u6240\u652f\u6301\u7684\u6240\u6709\u7d22\u5f15\u65b9\u5f0f(\u5173\u952e\u8bcd\uff0c\u6807\u7b7e\uff0c\u4f1a\u793e\uff0c\u4ef7\u683c\uff0c\u58f0\u4f18\uff0c\u65e5\u671f\uff0c\u5e74\u9f84\u5206\u7ea7\u7b49\u7b49)\u4ee5\u53ca\u6392\u5e8f\u65b9\u5f0f\u3002\n\u76ee\u524d\u4ec5\u652f\u6301\u8c03\u7528 IDM \u6216 aria2 \u4e0b\u8f7d\u3002\n\u652f\u6301\u6839\u636e\u6839\u636e\u6587\u4ef6\u540d\u5bf9\u4e0b\u8f7d\u7684\u6587\u4ef6\u8fdb\u884c\u8fc7\u6ee4\uff0c\u4ee5\u53ca\u5bf9\u97f3\u9891\u6587\u4ef6\u7684\u683c\u5f0f\u8f6c\u6362\u3002\n\n```\n> asmr dl search --help\n2024-02-27 16:54:42 - INFO - Run program with: dl search --help\nUsage: asmr dl search [OPTIONS] [TEXT]\n\n search and download ASMR\n\n the [multiple] options means you can add multiple same option such as:\n\n --tags tag1 --tags tag2 --no-tags tag3\n\n for options like --rate, --sell, --price, you should give a interval like:\n\n --rate 3.9:4.7 --sell 1000: --price :200\n\n the interval a:b means a <= x < b, if a or b is not given i.e. a: or :b, it\n means no lower or upper limit\n\n --force will check the download RJ files again though it is already in the\n database, it work just like update\n\n --replace option will first delte the original file, then add the new file\n to download queue(i.e. IDM or aria2)\n\n nsfw will only show the full age ASMRs\n\n for other --order values, you can refer to the website for explicit meaning\n\nOptions:\n -t, --tags TEXT tags to include[multiple]\n -nt, --no-tags TEXT tags to exclude[multiple]\n -v, --vas TEXT voice actor(cv) to include[multiple]\n -nv, --no-vas TEXT voice actor(cv) to exclude[multiple]\n -c, --circle TEXT circle(\u793e\u56e2) to include\n -nc, --no-circle TEXT circle(\u793e\u56e2) to exclude[multiple]\n -a, --age [general|r15|adult] age limitation to include[multiple]\n -na, --no-age [general|r15|adult]\n age limitation to exclude[multiple]\n -r, --rate TEXT rating interval\n -s, --sell TEXT selling interval\n -pr, --price TEXT pirce interval\n --all / --select download all RJs [default: select]\n -p, --page INTEGER page of the search result [default: 1]\n --subtitle / --no-subtitle if the ASMR has subtitle(\u4e2d\u6587\u5b57\u5e55) [default:\n no-subtitle]\n -o, --order [create_date|rating|release|dl_count|price|rate_average_2dp|review_count|id|nsfw|random]\n ordering of the search result [default:\n release]\n --asc / --desc ascending or descending\n --force / --check-db force download even if the RJ id exists in\n database,or by default, RJ already in the\n database will be skipped\n --replace / --no-replace replace the file if it exists [default: no-\n replace]\n --check-name / --ignore-name check and filter out asmr by filenames,\n rules are in the config file [default:\n check-name]\n --check-tag / --ignore-tag check and filter out asmr by tags, rules are\n in the config file [default: check-tag]\n -h, --help Show this message and exit.\n```\n\n### \u7ba1\u7406\n\n\u53ef\u4ee5\u5bf9\u4f5c\u54c1\u8fdb\u884c\u8bc4\u5206\uff0c\u8bc4\u8bba\u3002\u4e5f\u652f\u6301\u7528\u5173\u952e\u8bcd\u8fdb\u884c\u641c\u7d22(\u4f46\u9700\u8981\u4e00\u70b9 sql \u57fa\u7840\uff0c\u4ed3\u5e93\u63d0\u4f9b\u4e86\u4e00\u4e9b\u6a21\u677f\uff0c\u4f8b\u5982 [search.sql](./asmrmanager/filemanager/resources/sqls.example/search.sql))\n\n### \u64ad\u653e\n\n\u975e\u5e38\u7b80\u964b\u7684\u7ec8\u7aef\u64ad\u653e\u754c\u9762\uff0c\u652f\u6301\u6b4c\u8bcd\u663e\u793a\uff0c\u6309\u7167\u6b4c\u8bcd\u4fe1\u606f\u5feb\u8fdb\uff0c\u5207\u6362\u6b4c\u66f2\uff0c\u652f\u6301\u4ee5pygame(sdl)\u6216mpd\u505a\u4e3a\u540e\u7aef\uff0c\u53ef\u4ee5\u9884\u89c1\u7684\u5c06\u6765\u5e94\u8be5\u4f1a\u5b8c\u5584\u4e00\u4e0b(\u4f46\u611f\u89c9\u591f\u7528\u4e86\u5e94\u8be5\u4e0d\u4f1a\u518d\u52a0\u5565\u529f\u80fd\u4e86)\u3002\n![tui-screenshot](./assets/tui-screenshot.png)\n\n## \u4f7f\u7528\u65b9\u6cd5\n\n\u672c\u5de5\u5177\u652f\u6301 `python >= 3.10`, \u5b89\u88c5\u65b9\u6cd5\u5982\u4e0b\uff1a\n\n```shell\npip install ASMRManager[\u4f9d\u8d56]\n```\n\n\u53ef\u9009\u5219\u7684\u4f9d\u8d56\u9879\u6709 `idm`, `aria2`, `tui`\uff0c`pygame`,`mpd`, `all`\uff0c\u591a\u4e2a\u4f9d\u8d56\u4f7f\u7528\u9017\u53f7\u5206\u9694\uff0c\u5176\u4e2d`all`\u4e3a\u5b89\u88c5\u6240\u6709\u4f9d\u8d56\u3002\u4f8b\u5982 `pip install ASMRManager[idm,tui]`\n\n- \u4e0b\u8f7d\uff1a`idm` \u6216 `aria2` \u4e8c\u9009\u4e00\uff0c`idm` \u4e3a windows \u5e73\u53f0\u4e13\u7528\uff0c`aria2` \u4e3a\u8de8\u5e73\u53f0\u3002\n- \u64ad\u653e\uff1a`pygame` \u6216 `mpd` \u4e8c\u9009\u4e00\u3002\n- \u5176\u4ed6\uff1a`tui` \u4e3a\u53ef\u89c6\u5316\u547d\u4ee4\u884c\u754c\u9762\u3002\n\n> \u6b64\u5904\u4e5f\u53ef\u4ee5\u9009\u62e9\u4f7f\u7528 `pipx` \u6765\u66ff\u4ee3 `pip`\uff0c\u907f\u514d\u6c61\u67d3\u5168\u5c40\u73af\u5883\u3002\n> \u5b89\u88c5\u65b9\u6cd5\uff1a`pip install pipx`\n\n---\n\n\u4e4b\u540e\u518d\u8fd0\u884c `asmr` \u547d\u4ee4\uff0c\u4f1a\u751f\u6210\u793a\u4f8b\u7684\u914d\u7f6e\u6587\u4ef6\u548c sql \u6587\u4ef6\uff0c\u6b64\u5904\u4ee5 windows \u4e3e\u4f8b\uff1a\n\n```\n2023-10-22 14:36:21 - INFO - First time to run, copy default sqls to C:\\Users\\slqy\\AppData\\Local\\asmrmanager\\asmrmanager\\sqls\n2023-10-22 14:36:21 - INFO - An example config file has been copied to C:\\Users\\slqy\\AppData\\Local\\asmrmanager\\asmrmanager\\config.toml, please modify it and run this command again\n```\n\n\u4e4b\u540e\u6309\u7167\u8bf4\u660e\u4fee\u6539 `config.toml` \u6587\u4ef6\uff0c\u5982\u679c\u4f7f\u7528 sql \u7684\u8bdd\uff0c\u4e5f\u53ef\u4ee5\u5bf9 sql \u6587\u4ef6\u5939\u8fdb\u884c\u4fee\u6539\u3002\n\n\u82e5\u6709\u4e0d\u660e\u767d\u7684\u5730\u65b9\u53ef\u4f7f\u7528 sqlite \u6570\u636e\u5e93\u5de5\u5177\u67e5\u770b\u76ee\u5f55\u4e0b\u7684 data.db \u6587\u4ef6\u3002\n\n\u5b8c\u6210\u540e\u4f7f\u7528 `asmr -h` \u67e5\u770b\u5404\u547d\u4ee4\u7684\u4f7f\u7528\u8bf4\u660e\uff0c\u5bf9\u4e8e\u5b50\u547d\u4ee4\u4e0d\u6e05\u695a\u7684\u540c\u6837\u53ef\u4ee5\u67e5\u770b\u5e2e\u52a9\uff0c\u4f8b\u5982 `asmr dl -h`\u3002\n\u5e38\u7528\u7684\u547d\u4ee4\u6709\uff1a\n- `dl search` \u641c\u7d22\u5e76\u4e0b\u8f7d\u3002\n- `info` \u641c\u7d22\u67d0\u4e2a RJID \u7684\u5177\u4f53\u4fe1\u606f\n- `file check` \u68c0\u67e5\u4e0b\u8f7d\u76ee\u5f55\u4e0b\u7684\u6587\u4ef6\u662f\u5426\u6309\u7167\u89c4\u5219\u88ab\u6b63\u786e\u4e0b\u8f7d \n- `file store` \u5c06\u4e0b\u8f7d\u6587\u4ef6\u8f6c\u79fb\u5230\u5b58\u50a8\u76ee\u5f55(STORAGE_PATH)\uff0c\u5e76\u6267\u884c\u76f8\u5e94\u6587\u4ef6\u683c\u5f0f\u8f6c\u6362(\u8be6\u60c5\u89c1config.toml\u7684before_store\u5b57\u6bb5)\n- `view` \u5c06\u9009\u62e9\u6587\u4ef6\u5e76\u79fb\u52a8\u5230 VIEW_PATH\n- `pl add` \u5c06\u67d0\u4e2a\u97f3\u58f0\u6dfb\u52a0\u5230\u7528\u6237\u7684\u4e91\u7aef\u64ad\u653e\u5217\u8868(\u914d\u5408 `pl create` \u4f7f\u7528)\n- `review` \u4e3a\u67d0\u4e2a\u4f5c\u54c1\u8bc4\u5206\u5e76\u8bc4\u8bba(\u672c\u5730)\n\n> \u4f7f\u7528\u547d\u4ee4\u65f6\uff0c\u5982\u679c\u4e0d\u8f93\u5165 RJID \uff0c\u5c06\u4f1a\u81ea\u52a8\u4f7f\u7528\u4e0a\u4e00\u6b21\u547d\u4ee4\u7684RJID\u3002\n\n\u53e6\u5916\u672c\u5de5\u5177\u63d0\u4f9b\u57fa\u4e8e `trogon` \u7684\u53ef\u89c6\u5316\u547d\u4ee4\u884c\u754c\u9762\uff0c\u5728\u5b89\u88c5`tui`\u4f9d\u8d56\u540e\u4f7f\u7528 `asmr tui` \u5373\u53ef\u6253\u5f00\u3002\n\n## \u547d\u4ee4\u884c\u8865\u5168\n\u4ec5\u9002\u7528\u4e8eLinux\uff0c\u8be6\u60c5\u53ef\u53c2\u8003[\u5b98\u65b9\u6587\u6863](https://click.palletsprojects.com/en/8.1.x/shell-completion)\u3002\n```shell\n# fish\n_ASMR_COMPLETE=fish_source asmr > ~/.config/fish/completions/asmr.fish\n\n# bash\n_ASMR_COMPLETE=bash_source asmr > ~/.asmr-complete.bash\necho '. ~/.asmr-complete.bash' >> ~/.bashrc\n\n# zsh\n_ASMR_COMPLETE=zsh_source asmr > ~/.asmr-complete.zsh\necho '. ~/.asmr-complete.zsh' >> ~/.zshrc\n```\n\n## \u5173\u4e8e`dl search/get`\u7684\u4f7f\u7528\n\u547d\u4ee4\u6267\u884c\u8fc7\u7a0b\u4e2d\u4f1a\u8fdb\u884c\u5982\u4e0b\u7684\u68c0\u67e5\u4e0e\u8fc7\u6ee4\u64cd\u4f5c\uff1a\n1. \u5f00\u59cb\u4e0b\u8f7d\u524d\uff1a\u68c0\u67e5RJ\u53f7\u662f\u5426\u5e94\u8be5\u4e0b\u8f7d\uff0c\u5982\u679c\u672c\u5730\u6587\u4ef6\u4e0d\u5b58\u5728\u6216\u8005\u6570\u636e\u5e93\u65e0\u8bb0\u5f55\u90fd\u4f1a\u6267\u884c\u4e0b\u8f7d\u64cd\u4f5c\u3002\u53ef\u4ee5\u901a\u8fc7 `--force` \u5f3a\u5236\u6267\u884c\u4e0b\u8f7d\u3002\n1. \u83b7\u53d6\u97f3\u58f0\u4fe1\u606f\u540e\uff1a\u68c0\u67e5\u97f3\u58f0\u7684tags\uff0c\u5982\u679c\u5305\u542btag_filters\u91cc\u6307\u5b9a\u7684tag\uff0c\u5219\u8df3\u8fc7\u4e0b\u8f7d\u3002\u53ef\u4ee5\u901a\u8fc7 `--ignore-tag` \u6765\u5f3a\u5236\u4e0b\u8f7d\u3002\n1. \u83b7\u53d6\u4e0b\u8f7d\u6587\u4ef6\u540e\uff1a\u68c0\u67e5\u6587\u4ef6\u7684\u540d\u79f0\u548c\u8def\u5f84\uff0c\u5982\u679c\u4e0d\u7b26\u5408filename_filters\u91cc\u6307\u5b9a\u7684\u89c4\u5219\uff0c\u5219\u8df3\u8fc7\u4e0b\u8f7d\u3002\u53ef\u4ee5\u901a\u8fc7`ignore-name`\u6765\u5f3a\u5236\u4e0b\u8f7d\u3002\n1. \u6dfb\u52a0\u4e0b\u8f7d\u4efb\u52a1\u65f6\uff1a\u5982\u679c\u68c0\u6d4b\u5230\u672c\u5730\u6709\u540c\u540d\u6587\u4ef6\uff0c\u5219\u8df3\u8fc7\u8be5\u6587\u4ef6\u7684\u4e0b\u8f7d\u3002\u53ef\u4ee5\u901a\u8fc7`--replace`\u6765\u5f3a\u5236\u8986\u76d6\u5b58\u5728\u7684\u6587\u4ef6\u3002\n\n## \u5176\u4ed6\n\n\u611f\u8c22 <https://asmr.one>\u4e30\u5bcc\u4e86\u6211\u7684\u591c\u751f\u6d3b\u3002\n\u53e6\u5916\u7f51\u7ad9\u8fd0\u8425\u4e0d\u6613\uff0c\u8bf7\u5408\u7406\u4f7f\u7528\u672c\u5de5\u5177\u3002\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "download, manage and play the voices on asmr.one",
"version": "2.2.6",
"project_urls": {
"repository": "https://github.com/slqy123/ASMRManager"
},
"split_keywords": [
"asmr",
" downloader",
" music",
" player",
" manager",
" cli",
" tui",
" commandline",
" terminal"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "03277555c3ab26a0a808797ead4d7cc788e2a35a58d704369f92098e780dbe03",
"md5": "53960200e3411ab07848e5e0c688183f",
"sha256": "f92ca8e91d307306a657b5350888f94cfd8703166791d9858ca5e399c9bfcd96"
},
"downloads": -1,
"filename": "asmrmanager-2.2.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "53960200e3411ab07848e5e0c688183f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 67924,
"upload_time": "2024-10-28T03:43:00",
"upload_time_iso_8601": "2024-10-28T03:43:00.151643Z",
"url": "https://files.pythonhosted.org/packages/03/27/7555c3ab26a0a808797ead4d7cc788e2a35a58d704369f92098e780dbe03/asmrmanager-2.2.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7de8658de9ed8bc9150db71ee160a21baf740d8ffd41c57a9c71484500d09575",
"md5": "17d361c910649d8227acd5c2e7e192e5",
"sha256": "06e8fad017dfa95ec442687b319d65e754732600cad5d0c7329e7fad6aa0006a"
},
"downloads": -1,
"filename": "asmrmanager-2.2.6.tar.gz",
"has_sig": false,
"md5_digest": "17d361c910649d8227acd5c2e7e192e5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 52234,
"upload_time": "2024-10-28T03:43:03",
"upload_time_iso_8601": "2024-10-28T03:43:03.145761Z",
"url": "https://files.pythonhosted.org/packages/7d/e8/658de9ed8bc9150db71ee160a21baf740d8ffd41c57a9c71484500d09575/asmrmanager-2.2.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-28 03:43:03",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "slqy123",
"github_project": "ASMRManager",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "asmrmanager"
}