Dmhylib


NameDmhylib JSON
Version 2.0.0 PyPI version JSON
download
home_pagehttps://github.com/adogecheems/Dmhylib/
SummaryA library for searching and downloading from dmhy.org.
upload_time2024-08-11 07:41:22
maintainerNone
docs_urlNone
authoradogecheems
requires_pythonNone
licenseGPL-3.0
keywords dmhy search download anime
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Dmhylib

Dmhylib 是一个用于搜索动漫花园的 Python 库。它提供了一个 `DmhySearch` 类,可以用来搜索、选择和保存搜索结果。

## 安装

可以通过 pip 安装:

```
pip install dmhylib
```

## 使用方法

### 导入

```python
from dmhylib import DmhySearch
```

### 创建搜索对象

```python
search = DmhySearch(parser='lxml', verify=True, timefmt='%Y/%m/%d %H:%M')
```

- `parser`: BeautifulSoup 解析器,默认为 'lxml'
- `verify`: 是否验证 SSL 证书,默认为 True
- `timefmt`: 时间格式,默认为 '%Y/%m/%d %H:%M'

### 执行搜索

```python
search.search(keyword="关键词", sort_id=0, team_id=0, order='date-desc', proxies=None, system_proxy=False)
```

- `keyword`: 搜索关键词
- `sort_id`: 排序 ID,默认为 0。可用的排序 ID 有: 0, 2, 31, 3, 41, 42, 4, 43, 44, 15, 6, 7, 9, 17, 18, 19, 20, 21, 12, 1
- `team_id`: 团队 ID,默认为 0
- `order`: 排序顺序,默认为 'date-desc'
- `proxies`: 代理设置,默认为 None
- `system_proxy`: 是否使用系统代理,默认为 False

### 选择搜索结果

```python
search.select(num)
```

- `num`: 要选择的搜索结果的索引

### 格式化文件大小

```python
search.size_format(unit='MB')
```

- `unit`: 目标单位,默认为 'MB'

将选中项的文件大小格式化为指定单位。

### 保存为 CSV

```python
search.save_csv(filename)
```

- `filename`: 要保存的 CSV 文件路径

将选中的搜索结果保存到 CSV 文件中。

## 属性

搜索后,可以通过以下属性访问结果:

- `search.sum`: 搜索结果总数
- `search.times`: 发布时间列表
- `search.titles`: 标题列表
- `search.sizes`: 文件大小列表
- `search.magnets`: 磁力链接列表

选择某个结果后,可以通过以下属性访问选中项:

- `search.time`: 选中项的发布时间
- `search.title`: 选中项的标题
- `search.size`: 选中项的文件大小
- `search.magnet`: 选中项的磁力链接

## 示例

```python
from dmhylib import DmhySearch

# 创建搜索对象
search = DmhySearch()

# 执行搜索
search.search(keyword="我推的孩子")

# 选择第一个结果
search.select(0)

# 格式化文件大小为 GB
search.size_format(unit='GB')

# 保存到 CSV 文件
search.save_csv("results.csv")
```

## 注意事项

- 在使用 `select()`, `size_format()`, 或 `save_csv()` 方法之前,必须先调用 `search()` 方法。
- `size_format()` 和 `save_csv()` 方法必须在 `select()` 方法之后调用。

## 依赖

本库依赖于以下 Python 包:

- BeautifulSoup4
- lxml
- requests
- rich

## 命令行界面(CLI)使用

Dmhylib 附赠了一个命令行界面,可以直接在终端中使用。

### 基本用法

```
dmhysearch search -k <关键词> [选项]
```

### 参数说明

- `-k`, `--keyword`: (必需) 搜索关键词
- `-s`, `--sort-id`: (可选) 搜索分类ID
- `-t`, `--team-id`: (可选) 发布团队ID
- `-o`, `--order`: (可选) 排序方式

### 示例

1. 基本搜索:

```
dmhysearch search -k "我推的孩子"
```

2. 使用特定分类ID搜索:

```
dmhysearch search -k "我推的孩子" -s 31
# "31"是指季度全集
```

3. 指定团队ID和排序方式:

```
dmhysearch search -k "我推的孩子" -t 619 -o "date-desc"
# "619"是桜都字幕组
```

### 使用流程

1. 运行搜索命令后,程序会显示搜索结果列表,包括序号、标题和文件大小。

2. 用户可以输入想要选择的项目的序号。

3. 如果选择了有效的序号,程序会显示所选项目的标题和磁力链接。

4. 输入 0 可以退出选择过程。

### 注意事项

- 如果不确定可用的参数,可以参考 dmhy.org 的查询字符串。

### 获取帮助

要查看所有可用的命令和选项,可以运行:

```
dmhysearch --help
```

或者查看特定命令的帮助:

```
dmhysearch search --help
```

## 许可证

本项目使用 GPL-3.0 许可证

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/adogecheems/Dmhylib/",
    "name": "Dmhylib",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "dmhy search download anime",
    "author": "adogecheems",
    "author_email": "adogecheems@outlook.com",
    "download_url": "https://files.pythonhosted.org/packages/7a/27/ae3dbafa10ea4a663ad942b9a33b19625401c956943c92b56871aa7f86e5/dmhylib-2.0.0.tar.gz",
    "platform": null,
    "description": "# Dmhylib\n\nDmhylib \u662f\u4e00\u4e2a\u7528\u4e8e\u641c\u7d22\u52a8\u6f2b\u82b1\u56ed\u7684 Python \u5e93\u3002\u5b83\u63d0\u4f9b\u4e86\u4e00\u4e2a `DmhySearch` \u7c7b\uff0c\u53ef\u4ee5\u7528\u6765\u641c\u7d22\u3001\u9009\u62e9\u548c\u4fdd\u5b58\u641c\u7d22\u7ed3\u679c\u3002\n\n## \u5b89\u88c5\n\n\u53ef\u4ee5\u901a\u8fc7 pip \u5b89\u88c5:\n\n```\npip install dmhylib\n```\n\n## \u4f7f\u7528\u65b9\u6cd5\n\n### \u5bfc\u5165\n\n```python\nfrom dmhylib import DmhySearch\n```\n\n### \u521b\u5efa\u641c\u7d22\u5bf9\u8c61\n\n```python\nsearch = DmhySearch(parser='lxml', verify=True, timefmt='%Y/%m/%d %H:%M')\n```\n\n- `parser`: BeautifulSoup \u89e3\u6790\u5668\uff0c\u9ed8\u8ba4\u4e3a 'lxml'\n- `verify`: \u662f\u5426\u9a8c\u8bc1 SSL \u8bc1\u4e66\uff0c\u9ed8\u8ba4\u4e3a True\n- `timefmt`: \u65f6\u95f4\u683c\u5f0f\uff0c\u9ed8\u8ba4\u4e3a '%Y/%m/%d %H:%M'\n\n### \u6267\u884c\u641c\u7d22\n\n```python\nsearch.search(keyword=\"\u5173\u952e\u8bcd\", sort_id=0, team_id=0, order='date-desc', proxies=None, system_proxy=False)\n```\n\n- `keyword`: \u641c\u7d22\u5173\u952e\u8bcd\n- `sort_id`: \u6392\u5e8f ID\uff0c\u9ed8\u8ba4\u4e3a 0\u3002\u53ef\u7528\u7684\u6392\u5e8f ID \u6709: 0, 2, 31, 3, 41, 42, 4, 43, 44, 15, 6, 7, 9, 17, 18, 19, 20, 21, 12, 1\n- `team_id`: \u56e2\u961f ID\uff0c\u9ed8\u8ba4\u4e3a 0\n- `order`: \u6392\u5e8f\u987a\u5e8f\uff0c\u9ed8\u8ba4\u4e3a 'date-desc'\n- `proxies`: \u4ee3\u7406\u8bbe\u7f6e\uff0c\u9ed8\u8ba4\u4e3a None\n- `system_proxy`: \u662f\u5426\u4f7f\u7528\u7cfb\u7edf\u4ee3\u7406\uff0c\u9ed8\u8ba4\u4e3a False\n\n### \u9009\u62e9\u641c\u7d22\u7ed3\u679c\n\n```python\nsearch.select(num)\n```\n\n- `num`: \u8981\u9009\u62e9\u7684\u641c\u7d22\u7ed3\u679c\u7684\u7d22\u5f15\n\n### \u683c\u5f0f\u5316\u6587\u4ef6\u5927\u5c0f\n\n```python\nsearch.size_format(unit='MB')\n```\n\n- `unit`: \u76ee\u6807\u5355\u4f4d\uff0c\u9ed8\u8ba4\u4e3a 'MB'\n\n\u5c06\u9009\u4e2d\u9879\u7684\u6587\u4ef6\u5927\u5c0f\u683c\u5f0f\u5316\u4e3a\u6307\u5b9a\u5355\u4f4d\u3002\n\n### \u4fdd\u5b58\u4e3a CSV\n\n```python\nsearch.save_csv(filename)\n```\n\n- `filename`: \u8981\u4fdd\u5b58\u7684 CSV \u6587\u4ef6\u8def\u5f84\n\n\u5c06\u9009\u4e2d\u7684\u641c\u7d22\u7ed3\u679c\u4fdd\u5b58\u5230 CSV \u6587\u4ef6\u4e2d\u3002\n\n## \u5c5e\u6027\n\n\u641c\u7d22\u540e\uff0c\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u5c5e\u6027\u8bbf\u95ee\u7ed3\u679c:\n\n- `search.sum`: \u641c\u7d22\u7ed3\u679c\u603b\u6570\n- `search.times`: \u53d1\u5e03\u65f6\u95f4\u5217\u8868\n- `search.titles`: \u6807\u9898\u5217\u8868\n- `search.sizes`: \u6587\u4ef6\u5927\u5c0f\u5217\u8868\n- `search.magnets`: \u78c1\u529b\u94fe\u63a5\u5217\u8868\n\n\u9009\u62e9\u67d0\u4e2a\u7ed3\u679c\u540e\uff0c\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u5c5e\u6027\u8bbf\u95ee\u9009\u4e2d\u9879:\n\n- `search.time`: \u9009\u4e2d\u9879\u7684\u53d1\u5e03\u65f6\u95f4\n- `search.title`: \u9009\u4e2d\u9879\u7684\u6807\u9898\n- `search.size`: \u9009\u4e2d\u9879\u7684\u6587\u4ef6\u5927\u5c0f\n- `search.magnet`: \u9009\u4e2d\u9879\u7684\u78c1\u529b\u94fe\u63a5\n\n## \u793a\u4f8b\n\n```python\nfrom dmhylib import DmhySearch\n\n# \u521b\u5efa\u641c\u7d22\u5bf9\u8c61\nsearch = DmhySearch()\n\n# \u6267\u884c\u641c\u7d22\nsearch.search(keyword=\"\u6211\u63a8\u7684\u5b69\u5b50\")\n\n# \u9009\u62e9\u7b2c\u4e00\u4e2a\u7ed3\u679c\nsearch.select(0)\n\n# \u683c\u5f0f\u5316\u6587\u4ef6\u5927\u5c0f\u4e3a GB\nsearch.size_format(unit='GB')\n\n# \u4fdd\u5b58\u5230 CSV \u6587\u4ef6\nsearch.save_csv(\"results.csv\")\n```\n\n## \u6ce8\u610f\u4e8b\u9879\n\n- \u5728\u4f7f\u7528 `select()`, `size_format()`, \u6216 `save_csv()` \u65b9\u6cd5\u4e4b\u524d\uff0c\u5fc5\u987b\u5148\u8c03\u7528 `search()` \u65b9\u6cd5\u3002\n- `size_format()` \u548c `save_csv()` \u65b9\u6cd5\u5fc5\u987b\u5728 `select()` \u65b9\u6cd5\u4e4b\u540e\u8c03\u7528\u3002\n\n## \u4f9d\u8d56\n\n\u672c\u5e93\u4f9d\u8d56\u4e8e\u4ee5\u4e0b Python \u5305:\n\n- BeautifulSoup4\n- lxml\n- requests\n- rich\n\n## \u547d\u4ee4\u884c\u754c\u9762\uff08CLI\uff09\u4f7f\u7528\n\nDmhylib \u9644\u8d60\u4e86\u4e00\u4e2a\u547d\u4ee4\u884c\u754c\u9762\uff0c\u53ef\u4ee5\u76f4\u63a5\u5728\u7ec8\u7aef\u4e2d\u4f7f\u7528\u3002\n\n### \u57fa\u672c\u7528\u6cd5\n\n```\ndmhysearch search -k <\u5173\u952e\u8bcd> [\u9009\u9879]\n```\n\n### \u53c2\u6570\u8bf4\u660e\n\n- `-k`, `--keyword`: (\u5fc5\u9700) \u641c\u7d22\u5173\u952e\u8bcd\n- `-s`, `--sort-id`: (\u53ef\u9009) \u641c\u7d22\u5206\u7c7bID\n- `-t`, `--team-id`: (\u53ef\u9009) \u53d1\u5e03\u56e2\u961fID\n- `-o`, `--order`: (\u53ef\u9009) \u6392\u5e8f\u65b9\u5f0f\n\n### \u793a\u4f8b\n\n1. \u57fa\u672c\u641c\u7d22\uff1a\n\n```\ndmhysearch search -k \"\u6211\u63a8\u7684\u5b69\u5b50\"\n```\n\n2. \u4f7f\u7528\u7279\u5b9a\u5206\u7c7bID\u641c\u7d22\uff1a\n\n```\ndmhysearch search -k \"\u6211\u63a8\u7684\u5b69\u5b50\" -s 31\n# \"31\"\u662f\u6307\u5b63\u5ea6\u5168\u96c6\n```\n\n3. \u6307\u5b9a\u56e2\u961fID\u548c\u6392\u5e8f\u65b9\u5f0f\uff1a\n\n```\ndmhysearch search -k \"\u6211\u63a8\u7684\u5b69\u5b50\" -t 619 -o \"date-desc\"\n# \"619\"\u662f\u685c\u90fd\u5b57\u5e55\u7ec4\n```\n\n### \u4f7f\u7528\u6d41\u7a0b\n\n1. \u8fd0\u884c\u641c\u7d22\u547d\u4ee4\u540e\uff0c\u7a0b\u5e8f\u4f1a\u663e\u793a\u641c\u7d22\u7ed3\u679c\u5217\u8868\uff0c\u5305\u62ec\u5e8f\u53f7\u3001\u6807\u9898\u548c\u6587\u4ef6\u5927\u5c0f\u3002\n\n2. \u7528\u6237\u53ef\u4ee5\u8f93\u5165\u60f3\u8981\u9009\u62e9\u7684\u9879\u76ee\u7684\u5e8f\u53f7\u3002\n\n3. \u5982\u679c\u9009\u62e9\u4e86\u6709\u6548\u7684\u5e8f\u53f7\uff0c\u7a0b\u5e8f\u4f1a\u663e\u793a\u6240\u9009\u9879\u76ee\u7684\u6807\u9898\u548c\u78c1\u529b\u94fe\u63a5\u3002\n\n4. \u8f93\u5165 0 \u53ef\u4ee5\u9000\u51fa\u9009\u62e9\u8fc7\u7a0b\u3002\n\n### \u6ce8\u610f\u4e8b\u9879\n\n- \u5982\u679c\u4e0d\u786e\u5b9a\u53ef\u7528\u7684\u53c2\u6570\uff0c\u53ef\u4ee5\u53c2\u8003 dmhy.org \u7684\u67e5\u8be2\u5b57\u7b26\u4e32\u3002\n\n### \u83b7\u53d6\u5e2e\u52a9\n\n\u8981\u67e5\u770b\u6240\u6709\u53ef\u7528\u7684\u547d\u4ee4\u548c\u9009\u9879\uff0c\u53ef\u4ee5\u8fd0\u884c\uff1a\n\n```\ndmhysearch --help\n```\n\n\u6216\u8005\u67e5\u770b\u7279\u5b9a\u547d\u4ee4\u7684\u5e2e\u52a9\uff1a\n\n```\ndmhysearch search --help\n```\n\n## \u8bb8\u53ef\u8bc1\n\n\u672c\u9879\u76ee\u4f7f\u7528 GPL-3.0 \u8bb8\u53ef\u8bc1\n",
    "bugtrack_url": null,
    "license": "GPL-3.0",
    "summary": "A library for searching and downloading from dmhy.org.",
    "version": "2.0.0",
    "project_urls": {
        "Homepage": "https://github.com/adogecheems/Dmhylib/"
    },
    "split_keywords": [
        "dmhy",
        "search",
        "download",
        "anime"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bd4b46f9ac5f53888461aa4344b1096110fc35e06836ff870b569f3c02478d6a",
                "md5": "abdf55649dd7ed9040aea52b416ba194",
                "sha256": "789e41ca7988dc550f32e2e395b48a0581b1df02809f3a6b0b90d92d5bf382e5"
            },
            "downloads": -1,
            "filename": "Dmhylib-2.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "abdf55649dd7ed9040aea52b416ba194",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 21554,
            "upload_time": "2024-08-11T07:41:20",
            "upload_time_iso_8601": "2024-08-11T07:41:20.204967Z",
            "url": "https://files.pythonhosted.org/packages/bd/4b/46f9ac5f53888461aa4344b1096110fc35e06836ff870b569f3c02478d6a/Dmhylib-2.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7a27ae3dbafa10ea4a663ad942b9a33b19625401c956943c92b56871aa7f86e5",
                "md5": "02a6bacb4e855b394e0ecbcb36389dc5",
                "sha256": "3ce4675970984b3d16394a94613aaeee2f68726f2af1cd6571d1edfae9e85eb1"
            },
            "downloads": -1,
            "filename": "dmhylib-2.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "02a6bacb4e855b394e0ecbcb36389dc5",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 22436,
            "upload_time": "2024-08-11T07:41:22",
            "upload_time_iso_8601": "2024-08-11T07:41:22.639943Z",
            "url": "https://files.pythonhosted.org/packages/7a/27/ae3dbafa10ea4a663ad942b9a33b19625401c956943c92b56871aa7f86e5/dmhylib-2.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-11 07:41:22",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "adogecheems",
    "github_project": "Dmhylib",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "dmhylib"
}
        
Elapsed time: 0.32938s