diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..7d45a16 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,14 @@ +{ + // 使用 IntelliSense 了解相关属性。 + // 悬停以查看现有属性的描述。 + // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Python: 模块", + "type": "python", + "request": "launch", + "module": "ehforwarderbot" + } + ] +} diff --git a/efb_qq_plugin_go_cqhttp/MsgDecorator.py b/efb_qq_plugin_go_cqhttp/MsgDecorator.py index 2f42d51..d2c4385 100644 --- a/efb_qq_plugin_go_cqhttp/MsgDecorator.py +++ b/efb_qq_plugin_go_cqhttp/MsgDecorator.py @@ -49,13 +49,8 @@ class QQMsgProcessor: def qq_record_wrapper(self, data, chat: Chat = None): # Experimental! efb_msg = Message() try: - transformed_file = self.inst.coolq_api_query("get_record", file=data["file"], out_format="mp3") efb_msg.type = MsgType.Audio - efb_msg.file = download_voice( - transformed_file["file"], - self.inst.client_config["api_root"].rstrip("/"), - self.inst.client_config["access_token"], - ) + efb_msg.file = download_voice(data["url"]) mime = magic.from_file(efb_msg.file.name, mime=True) if isinstance(mime, bytes): mime = mime.decode() diff --git a/efb_qq_plugin_go_cqhttp/Utils.py b/efb_qq_plugin_go_cqhttp/Utils.py index a7ef858..2e333af 100644 --- a/efb_qq_plugin_go_cqhttp/Utils.py +++ b/efb_qq_plugin_go_cqhttp/Utils.py @@ -4,6 +4,8 @@ import urllib.request from gettext import translation from urllib.error import ContentTooShortError, HTTPError, URLError +import pilk +import pydub from ehforwarderbot import Message, coordinator from pkg_resources import resource_filename @@ -752,19 +754,27 @@ def download_group_avatar(uid: str): return file -def download_voice(filename: str, api_root: str, access_token: str): - file = tempfile.NamedTemporaryFile() - url = "{url}/data/record/{file}".format(url=api_root, file=filename) - try: - opener = urllib.request.build_opener() - opener.addheaders = [("Authorization", "Bearer {at}".format(at=access_token))] - - urllib.request.install_opener(opener) - urllib.request.urlretrieve(url, file.name) - except (URLError, HTTPError, ContentTooShortError) as e: - logging.getLogger(__name__).warning("Error occurs when downloading files: " + str(e)) - return _("Error occurs when downloading files: ") + str(e) - if file.seek(0, 2) <= 0: - raise EOFError("File downloaded is Empty") - file.seek(0) - return file +def download_voice(voice_url: str): + with tempfile.NamedTemporaryFile() as origin_file: + try: + with urllib.request.build_opener() as opener: + urllib.request.install_opener(opener) + urllib.request.urlretrieve(voice_url, origin_file.name) + except (URLError, HTTPError, ContentTooShortError) as e: + logging.getLogger(__name__).warning("Error occurs when downloading files: " + str(e)) + return _("Error occurs when downloading files: ") + str(e) + if origin_file.seek(0, 2) <= 0: + raise EOFError("File downloaded is Empty") + origin_file.seek(0) + silk_header = origin_file.read(10) + origin_file.seek(0) + if b"#!SILK_V3" in silk_header: + with tempfile.NamedTemporaryFile() as pcm_file: + pilk.decode(origin_file.name, pcm_file.name) + audio_file = tempfile.NamedTemporaryFile() + pydub.AudioSegment.from_raw(file=pcm_file, sample_width=2, frame_rate=24000, channels=1).export( + audio_file, format="ogg", codec="libopus", parameters=["-vbr", "on"] + ) + else: + audio_file = origin_file + return audio_file diff --git a/efb_qq_plugin_go_cqhttp/__init__.py b/efb_qq_plugin_go_cqhttp/__init__.py index 7500abb..4625cde 100644 --- a/efb_qq_plugin_go_cqhttp/__init__.py +++ b/efb_qq_plugin_go_cqhttp/__init__.py @@ -1,3 +1,3 @@ from . import GoCQHttp # noqa: F401 -__version__ = "2.0.9" +__version__ = "2.1.0" diff --git a/pdm.lock b/pdm.lock index a0d16a6..8774405 100644 --- a/pdm.lock +++ b/pdm.lock @@ -1,8 +1,31 @@ +[[package]] +name = "apscheduler" +version = "3.6.3" +summary = "In-process task scheduler with Cron-like capabilities" +dependencies = [ + "pytz", + "setuptools>=0.7", + "six>=1.4.0", + "tzlocal>=1.2", +] + +[[package]] +name = "backports.zoneinfo" +version = "0.2.1" +requires_python = ">=3.6" +summary = "Backport of the standard library zoneinfo module" + [[package]] name = "bullet" version = "2.2.0" summary = "Beautiful Python prompts made simple." +[[package]] +name = "cachetools" +version = "4.2.2" +requires_python = "~=3.5" +summary = "Extensible memoizing collections and decorators" + [[package]] name = "certifi" version = "2021.10.8" @@ -98,6 +121,29 @@ dependencies = [ "requests", ] +[[package]] +name = "efb-telegram-master" +version = "2.2.4" +requires_python = ">=3.6" +summary = "Telegram Master Channel for EH Forwarder Bot, based on Telegram Bot API." +dependencies = [ + "bullet>=2.2.0", + "cjkwrap", + "ehforwarderbot>=2.0.0", + "ffmpeg-python", + "humanize", + "language-tags", + "peewee", + "pillow", + "pydub", + "python-magic", + "python-telegram-bot~=13.4", + "requests", + "retrying", + "ruamel.yaml", + "typing-extensions>=3.7.4.1", +] + [[package]] name = "ehforwarderbot" version = "2.1.1" @@ -110,6 +156,14 @@ dependencies = [ "typing-extensions", ] +[[package]] +name = "ffmpeg-python" +version = "0.2.0" +summary = "Python bindings for FFmpeg - with complex filtering support" +dependencies = [ + "future", +] + [[package]] name = "filelock" version = "3.4.2" @@ -128,6 +182,21 @@ dependencies = [ "itsdangerous>=2.0", ] +[[package]] +name = "future" +version = "0.18.2" +requires_python = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +summary = "Clean single-source support for Python 3 and 2" + +[[package]] +name = "humanize" +version = "4.0.0" +requires_python = ">=3.7" +summary = "Python humanize utilities" +dependencies = [ + "importlib-metadata; python_version < \"3.8\"", +] + [[package]] name = "identify" version = "2.4.8" @@ -219,6 +288,11 @@ dependencies = [ "MarkupSafe>=2.0", ] +[[package]] +name = "language-tags" +version = "1.1.0" +summary = "This project is a Python version of the language-tags Javascript project." + [[package]] name = "markupsafe" version = "2.0.1" @@ -236,6 +310,17 @@ name = "nodeenv" version = "1.6.0" summary = "Node.js virtual environment builder" +[[package]] +name = "peewee" +version = "3.14.9" +summary = "a little orm" + +[[package]] +name = "pilk" +version = "0.0.2" +requires_python = ">=3.6" +summary = "python silk voice library" + [[package]] name = "pillow" version = "9.0.1" @@ -272,17 +357,45 @@ dependencies = [ "virtualenv>=20.0.8", ] +[[package]] +name = "pydub" +version = "0.25.1" +summary = "Manipulate audio with an simple and easy high level interface" + [[package]] name = "python-magic" version = "0.4.25" requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" summary = "File type identification using libmagic" +[[package]] +name = "python-telegram-bot" +version = "13.11" +requires_python = ">=3.6" +summary = "We have made you a wrapper you can't refuse" +dependencies = [ + "APScheduler==3.6.3", + "cachetools==4.2.2", + "certifi", + "pytz>=2018.6", + "tornado>=6.1", +] + [[package]] name = "pytz" version = "2021.3" summary = "World timezone definitions, modern and historical" +[[package]] +name = "pytz-deprecation-shim" +version = "0.1.0.post0" +requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +summary = "Shims to make deprecation of pytz easier" +dependencies = [ + "backports.zoneinfo; python_version >= \"3.6\" and python_version < \"3.9\"", + "tzdata; python_version >= \"3.6\"", +] + [[package]] name = "pywin32" version = "303" @@ -306,6 +419,14 @@ dependencies = [ "urllib3<1.27,>=1.21.1", ] +[[package]] +name = "retrying" +version = "1.3.3" +summary = "Retrying" +dependencies = [ + "six>=1.7.0", +] + [[package]] name = "ruamel.yaml" version = "0.17.20" @@ -349,12 +470,35 @@ version = "0.10.2" requires_python = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" summary = "Python Library for Tom's Obvious, Minimal Language" +[[package]] +name = "tornado" +version = "6.1" +requires_python = ">= 3.5" +summary = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." + [[package]] name = "typing-extensions" version = "4.0.1" requires_python = ">=3.6" summary = "Backported and Experimental Type Hints for Python 3.6+" +[[package]] +name = "tzdata" +version = "2021.5" +requires_python = ">=2" +summary = "Provider of IANA time zone data" + +[[package]] +name = "tzlocal" +version = "4.1" +requires_python = ">=3.6" +summary = "tzinfo object for the local timezone" +dependencies = [ + "backports.zoneinfo; python_version < \"3.9\"", + "pytz-deprecation-shim", + "tzdata; platform_system == \"Windows\"", +] + [[package]] name = "urllib3" version = "1.26.8" @@ -396,13 +540,39 @@ summary = "Backport of pathlib-compatible object wrapper for zip files" [metadata] lock_version = "3.1" -content_hash = "sha256:63656839bd77b534cd7236e11ac80dcbb103f86659970673c7bba62c02f393c3" +content_hash = "sha256:22cb2a81b3aaf8b67d35ab2bbd2582a15ef5e1f33f67d0c901b89de94f22d303" [metadata.files] +"apscheduler 3.6.3" = [ + {file = "APScheduler-3.6.3-py2.py3-none-any.whl", hash = "sha256:e8b1ecdb4c7cb2818913f766d5898183c7cb8936680710a4d3a966e02262e526"}, + {file = "APScheduler-3.6.3.tar.gz", hash = "sha256:3bb5229eed6fbbdafc13ce962712ae66e175aa214c69bed35a06bffcf0c5e244"}, +] +"backports.zoneinfo 0.2.1" = [ + {file = "backports.zoneinfo-0.2.1-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:da6013fd84a690242c310d77ddb8441a559e9cb3d3d59ebac9aca1a57b2e18bc"}, + {file = "backports.zoneinfo-0.2.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:89a48c0d158a3cc3f654da4c2de1ceba85263fafb861b98b59040a5086259722"}, + {file = "backports.zoneinfo-0.2.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:1c5742112073a563c81f786e77514969acb58649bcdf6cdf0b4ed31a348d4546"}, + {file = "backports.zoneinfo-0.2.1-cp36-cp36m-win32.whl", hash = "sha256:e8236383a20872c0cdf5a62b554b27538db7fa1bbec52429d8d106effbaeca08"}, + {file = "backports.zoneinfo-0.2.1-cp36-cp36m-win_amd64.whl", hash = "sha256:8439c030a11780786a2002261569bdf362264f605dfa4d65090b64b05c9f79a7"}, + {file = "backports.zoneinfo-0.2.1-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:f04e857b59d9d1ccc39ce2da1021d196e47234873820cbeaad210724b1ee28ac"}, + {file = "backports.zoneinfo-0.2.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:17746bd546106fa389c51dbea67c8b7c8f0d14b5526a579ca6ccf5ed72c526cf"}, + {file = "backports.zoneinfo-0.2.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5c144945a7752ca544b4b78c8c41544cdfaf9786f25fe5ffb10e838e19a27570"}, + {file = "backports.zoneinfo-0.2.1-cp37-cp37m-win32.whl", hash = "sha256:e55b384612d93be96506932a786bbcde5a2db7a9e6a4bb4bffe8b733f5b9036b"}, + {file = "backports.zoneinfo-0.2.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a76b38c52400b762e48131494ba26be363491ac4f9a04c1b7e92483d169f6582"}, + {file = "backports.zoneinfo-0.2.1-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:8961c0f32cd0336fb8e8ead11a1f8cd99ec07145ec2931122faaac1c8f7fd987"}, + {file = "backports.zoneinfo-0.2.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:e81b76cace8eda1fca50e345242ba977f9be6ae3945af8d46326d776b4cf78d1"}, + {file = "backports.zoneinfo-0.2.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7b0a64cda4145548fed9efc10322770f929b944ce5cee6c0dfe0c87bf4c0c8c9"}, + {file = "backports.zoneinfo-0.2.1-cp38-cp38-win32.whl", hash = "sha256:1b13e654a55cd45672cb54ed12148cd33628f672548f373963b0bff67b217328"}, + {file = "backports.zoneinfo-0.2.1-cp38-cp38-win_amd64.whl", hash = "sha256:4a0f800587060bf8880f954dbef70de6c11bbe59c673c3d818921f042f9954a6"}, + {file = "backports.zoneinfo-0.2.1.tar.gz", hash = "sha256:fadbfe37f74051d024037f223b8e001611eac868b5c5b06144ef4d8b799862f2"}, +] "bullet 2.2.0" = [ {file = "bullet-2.2.0-py3-none-any.whl", hash = "sha256:d22528deb914ce3ff20a4a000fa5ba37179697f384a0748f90691de8a74cf006"}, {file = "bullet-2.2.0.tar.gz", hash = "sha256:dfa0fa81810ad1a9e688815ca04f24af87ff5cdbe803b42fa634b1f50fc9d887"}, ] +"cachetools 4.2.2" = [ + {file = "cachetools-4.2.2-py3-none-any.whl", hash = "sha256:2cc0b89715337ab6dbba85b5b50effe2b0c74e035d83ee8ed637cf52f12ae001"}, + {file = "cachetools-4.2.2.tar.gz", hash = "sha256:61b5ed1e22a0924aed1d23b478f37e8d52549ff8a961de2909c69bf950020cff"}, +] "certifi 2021.10.8" = [ {file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"}, {file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"}, @@ -442,10 +612,18 @@ content_hash = "sha256:63656839bd77b534cd7236e11ac80dcbb103f86659970673c7bba62c0 {file = "distlib-0.3.4-py2.py3-none-any.whl", hash = "sha256:6564fe0a8f51e734df6333d08b8b94d4ea8ee6b99b5ed50613f731fd4089f34b"}, {file = "distlib-0.3.4.zip", hash = "sha256:e4b58818180336dc9c529bfb9a0b58728ffc09ad92027a3f30b7cd91e3458579"}, ] +"efb-telegram-master 2.2.4" = [ + {file = "efb_telegram_master-2.2.4-py3-none-any.whl", hash = "sha256:c4c523d79f3cb39e6a30a339807366514ba0d841acb90c2f322aba4b535fb74c"}, + {file = "efb-telegram-master-2.2.4.tar.gz", hash = "sha256:ab40c9c97656921ce339194af91ba56cdb6680fea9a2ec5016649b6205919f44"}, +] "ehforwarderbot 2.1.1" = [ {file = "ehforwarderbot-2.1.1-py3-none-any.whl", hash = "sha256:33e02015cc7dabde9d7e719a6486ccedd681e33246ab746d5ed6de4ec9b96dac"}, {file = "ehforwarderbot-2.1.1.tar.gz", hash = "sha256:414c3de4e9ad151d3ad38d37d89f0b626a5fa7fb04d9d30ff152b5230d34099b"}, ] +"ffmpeg-python 0.2.0" = [ + {file = "ffmpeg_python-0.2.0-py3-none-any.whl", hash = "sha256:ac441a0404e053f8b6a1113a77c0f452f1cfc62f6344a769475ffdc0f56c23c5"}, + {file = "ffmpeg-python-0.2.0.tar.gz", hash = "sha256:65225db34627c578ef0e11c8b1eb528bb35e024752f6f10b78c011f6f64c4127"}, +] "filelock 3.4.2" = [ {file = "filelock-3.4.2-py3-none-any.whl", hash = "sha256:cf0fc6a2f8d26bd900f19bf33915ca70ba4dd8c56903eeb14e1e7a2fd7590146"}, {file = "filelock-3.4.2.tar.gz", hash = "sha256:38b4f4c989f9d06d44524df1b24bd19e167d851f19b50bf3e3559952dddc5b80"}, @@ -454,6 +632,13 @@ content_hash = "sha256:63656839bd77b534cd7236e11ac80dcbb103f86659970673c7bba62c0 {file = "Flask-2.0.2-py3-none-any.whl", hash = "sha256:cb90f62f1d8e4dc4621f52106613488b5ba826b2e1e10a33eac92f723093ab6a"}, {file = "Flask-2.0.2.tar.gz", hash = "sha256:7b2fb8e934ddd50731893bdcdb00fc8c0315916f9fcd50d22c7cc1a95ab634e2"}, ] +"future 0.18.2" = [ + {file = "future-0.18.2.tar.gz", hash = "sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d"}, +] +"humanize 4.0.0" = [ + {file = "humanize-4.0.0-py3-none-any.whl", hash = "sha256:8d86333b8557dacffd4dce1dbe09c81c189e2caf7bb17a970b2212f0f58f10f2"}, + {file = "humanize-4.0.0.tar.gz", hash = "sha256:ee1f872fdfc7d2ef4a28d4f80ddde9f96d36955b5d6b0dac4bdeb99502bddb00"}, +] "identify 2.4.8" = [ {file = "identify-2.4.8-py2.py3-none-any.whl", hash = "sha256:a55bdd671b6063eb837af938c250ec00bba6e610454265133b0d2db7ae718d0f"}, {file = "identify-2.4.8.tar.gz", hash = "sha256:97e839c1779f07011b84c92af183e1883d9745d532d83412cca1ca76d3808c1c"}, @@ -498,6 +683,10 @@ content_hash = "sha256:63656839bd77b534cd7236e11ac80dcbb103f86659970673c7bba62c0 {file = "Jinja2-3.0.3-py3-none-any.whl", hash = "sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8"}, {file = "Jinja2-3.0.3.tar.gz", hash = "sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"}, ] +"language-tags 1.1.0" = [ + {file = "language_tags-1.1.0-py2.py3-none-any.whl", hash = "sha256:2b6493f0733ab2fb70db284dd8231ba86b2ada5afa6974a7f89af52bab2a9658"}, + {file = "language_tags-1.1.0.tar.gz", hash = "sha256:0c9a828ee63b5cc94876697f4d58449b0e4deaddab334f983b2a26d6979e8d4f"}, +] "markupsafe 2.0.1" = [ {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"}, {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38"}, @@ -577,6 +766,17 @@ content_hash = "sha256:63656839bd77b534cd7236e11ac80dcbb103f86659970673c7bba62c0 {file = "nodeenv-1.6.0-py2.py3-none-any.whl", hash = "sha256:621e6b7076565ddcacd2db0294c0381e01fd28945ab36bcf00f41c5daf63bef7"}, {file = "nodeenv-1.6.0.tar.gz", hash = "sha256:3ef13ff90291ba2a4a7a4ff9a979b63ffdd00a464dbe04acf0ea6471517a4c2b"}, ] +"peewee 3.14.9" = [ + {file = "peewee-3.14.9.tar.gz", hash = "sha256:69c1b88dc89b184231cc1ce6df241075aca5cec43e89749cc4a63108f9ceea47"}, +] +"pilk 0.0.2" = [ + {file = "pilk-0.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:151ea9cca4041773514caeb3272d1d7877b7e042c9e9539edfd6453b931fcfa0"}, + {file = "pilk-0.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:6999bb3b60478eb700656e6547831a601b9470879051914f19b77f4cff3fec4d"}, + {file = "pilk-0.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:8288d120f7f38efc6d6034aa151cdc25ef70c519fa208967301f7c0dcceb03b4"}, + {file = "pilk-0.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:50bb1c9c020f8e2e91faf417f9c9f5967d731f1c977cdd98aa6915fd283ce7bb"}, + {file = "pilk-0.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:029008a4bc6a9143733feea778ecbee15ba26a6e5a629d92890f73f4d55e6faf"}, + {file = "pilk-0.0.2.tar.gz", hash = "sha256:61c272fe8b7038a0a71486c96435f6b672c667005594a4d80b6581b09287cc96"}, +] "pillow 9.0.1" = [ {file = "Pillow-9.0.1-1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a5d24e1d674dd9d72c66ad3ea9131322819ff86250b30dc5821cbafcfa0b96b4"}, {file = "Pillow-9.0.1-1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2632d0f846b7c7600edf53c48f8f9f1e13e62f66a6dbc15191029d950bfed976"}, @@ -626,14 +826,26 @@ content_hash = "sha256:63656839bd77b534cd7236e11ac80dcbb103f86659970673c7bba62c0 {file = "pre_commit-2.17.0-py2.py3-none-any.whl", hash = "sha256:725fa7459782d7bec5ead072810e47351de01709be838c2ce1726b9591dad616"}, {file = "pre_commit-2.17.0.tar.gz", hash = "sha256:c1a8040ff15ad3d648c70cc3e55b93e4d2d5b687320955505587fd79bbaed06a"}, ] +"pydub 0.25.1" = [ + {file = "pydub-0.25.1-py2.py3-none-any.whl", hash = "sha256:65617e33033874b59d87db603aa1ed450633288aefead953b30bded59cb599a6"}, + {file = "pydub-0.25.1.tar.gz", hash = "sha256:980a33ce9949cab2a569606b65674d748ecbca4f0796887fd6f46173a7b0d30f"}, +] "python-magic 0.4.25" = [ {file = "python_magic-0.4.25-py2.py3-none-any.whl", hash = "sha256:1a2c81e8f395c744536369790bd75094665e9644110a6623bcc3bbea30f03973"}, {file = "python-magic-0.4.25.tar.gz", hash = "sha256:21f5f542aa0330f5c8a64442528542f6215c8e18d2466b399b0d9d39356d83fc"}, ] +"python-telegram-bot 13.11" = [ + {file = "python_telegram_bot-13.11-py3-none-any.whl", hash = "sha256:534f5bb0ff4ca34c9252e97e0b3bcdab81d97be0eb4821682a361cb426c00e55"}, + {file = "python-telegram-bot-13.11.tar.gz", hash = "sha256:baeff704baa2ac3dc17a944c02da888228ad258e89be2e5bcbd13a8a5102d573"}, +] "pytz 2021.3" = [ {file = "pytz-2021.3-py2.py3-none-any.whl", hash = "sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c"}, {file = "pytz-2021.3.tar.gz", hash = "sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326"}, ] +"pytz-deprecation-shim 0.1.0.post0" = [ + {file = "pytz_deprecation_shim-0.1.0.post0-py2.py3-none-any.whl", hash = "sha256:8314c9692a636c8eb3bda879b9f119e350e93223ae83e70e80c31675a0fdc1a6"}, + {file = "pytz_deprecation_shim-0.1.0.post0.tar.gz", hash = "sha256:af097bae1b616dde5c5744441e2ddc69e74dfdcb0c263129610d85b87445a59d"}, +] "pywin32 303" = [ {file = "pywin32-303-cp310-cp310-win32.whl", hash = "sha256:6fed4af057039f309263fd3285d7b8042d41507343cd5fa781d98fcc5b90e8bb"}, {file = "pywin32-303-cp310-cp310-win_amd64.whl", hash = "sha256:51cb52c5ec6709f96c3f26e7795b0bf169ee0d8395b2c1d7eb2c029a5008ed51"}, @@ -687,6 +899,9 @@ content_hash = "sha256:63656839bd77b534cd7236e11ac80dcbb103f86659970673c7bba62c0 {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"}, {file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"}, ] +"retrying 1.3.3" = [ + {file = "retrying-1.3.3.tar.gz", hash = "sha256:08c039560a6da2fe4f2c426d0766e284d3b736e355f8dd24b37367b0bb41973b"}, +] "ruamel.yaml 0.17.20" = [ {file = "ruamel.yaml-0.17.20-py3-none-any.whl", hash = "sha256:810eef9c46523a3f77479c66267a4708255ebe806a2d540078408c2227f011af"}, {file = "ruamel.yaml-0.17.20.tar.gz", hash = "sha256:4b8a33c1efb2b443a93fcaafcfa4d2e445f8e8c29c528d9f5cdafb7cc9e4004c"}, @@ -734,10 +949,61 @@ content_hash = "sha256:63656839bd77b534cd7236e11ac80dcbb103f86659970673c7bba62c0 {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, ] +"tornado 6.1" = [ + {file = "tornado-6.1-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:d371e811d6b156d82aa5f9a4e08b58debf97c302a35714f6f45e35139c332e32"}, + {file = "tornado-6.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:0d321a39c36e5f2c4ff12b4ed58d41390460f798422c4504e09eb5678e09998c"}, + {file = "tornado-6.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9de9e5188a782be6b1ce866e8a51bc76a0fbaa0e16613823fc38e4fc2556ad05"}, + {file = "tornado-6.1-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:61b32d06ae8a036a6607805e6720ef00a3c98207038444ba7fd3d169cd998910"}, + {file = "tornado-6.1-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:3e63498f680547ed24d2c71e6497f24bca791aca2fe116dbc2bd0ac7f191691b"}, + {file = "tornado-6.1-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:6c77c9937962577a6a76917845d06af6ab9197702a42e1346d8ae2e76b5e3675"}, + {file = "tornado-6.1-cp35-cp35m-win32.whl", hash = "sha256:6286efab1ed6e74b7028327365cf7346b1d777d63ab30e21a0f4d5b275fc17d5"}, + {file = "tornado-6.1-cp35-cp35m-win_amd64.whl", hash = "sha256:fa2ba70284fa42c2a5ecb35e322e68823288a4251f9ba9cc77be04ae15eada68"}, + {file = "tornado-6.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:0a00ff4561e2929a2c37ce706cb8233b7907e0cdc22eab98888aca5dd3775feb"}, + {file = "tornado-6.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:748290bf9112b581c525e6e6d3820621ff020ed95af6f17fedef416b27ed564c"}, + {file = "tornado-6.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:e385b637ac3acaae8022e7e47dfa7b83d3620e432e3ecb9a3f7f58f150e50921"}, + {file = "tornado-6.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:25ad220258349a12ae87ede08a7b04aca51237721f63b1808d39bdb4b2164558"}, + {file = "tornado-6.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:65d98939f1a2e74b58839f8c4dab3b6b3c1ce84972ae712be02845e65391ac7c"}, + {file = "tornado-6.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:e519d64089b0876c7b467274468709dadf11e41d65f63bba207e04217f47c085"}, + {file = "tornado-6.1-cp36-cp36m-win32.whl", hash = "sha256:b87936fd2c317b6ee08a5741ea06b9d11a6074ef4cc42e031bc6403f82a32575"}, + {file = "tornado-6.1-cp36-cp36m-win_amd64.whl", hash = "sha256:cc0ee35043162abbf717b7df924597ade8e5395e7b66d18270116f8745ceb795"}, + {file = "tornado-6.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:7250a3fa399f08ec9cb3f7b1b987955d17e044f1ade821b32e5f435130250d7f"}, + {file = "tornado-6.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:ed3ad863b1b40cd1d4bd21e7498329ccaece75db5a5bf58cd3c9f130843e7102"}, + {file = "tornado-6.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:dcef026f608f678c118779cd6591c8af6e9b4155c44e0d1bc0c87c036fb8c8c4"}, + {file = "tornado-6.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:70dec29e8ac485dbf57481baee40781c63e381bebea080991893cd297742b8fd"}, + {file = "tornado-6.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:d3f7594930c423fd9f5d1a76bee85a2c36fd8b4b16921cae7e965f22575e9c01"}, + {file = "tornado-6.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:3447475585bae2e77ecb832fc0300c3695516a47d46cefa0528181a34c5b9d3d"}, + {file = "tornado-6.1-cp37-cp37m-win32.whl", hash = "sha256:e7229e60ac41a1202444497ddde70a48d33909e484f96eb0da9baf8dc68541df"}, + {file = "tornado-6.1-cp37-cp37m-win_amd64.whl", hash = "sha256:cb5ec8eead331e3bb4ce8066cf06d2dfef1bfb1b2a73082dfe8a161301b76e37"}, + {file = "tornado-6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:20241b3cb4f425e971cb0a8e4ffc9b0a861530ae3c52f2b0434e6c1b57e9fd95"}, + {file = "tornado-6.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:c77da1263aa361938476f04c4b6c8916001b90b2c2fdd92d8d535e1af48fba5a"}, + {file = "tornado-6.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:fba85b6cd9c39be262fcd23865652920832b61583de2a2ca907dbd8e8a8c81e5"}, + {file = "tornado-6.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:1e8225a1070cd8eec59a996c43229fe8f95689cb16e552d130b9793cb570a288"}, + {file = "tornado-6.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:d14d30e7f46a0476efb0deb5b61343b1526f73ebb5ed84f23dc794bdb88f9d9f"}, + {file = "tornado-6.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:8f959b26f2634a091bb42241c3ed8d3cedb506e7c27b8dd5c7b9f745318ddbb6"}, + {file = "tornado-6.1-cp38-cp38-win32.whl", hash = "sha256:34ca2dac9e4d7afb0bed4677512e36a52f09caa6fded70b4e3e1c89dbd92c326"}, + {file = "tornado-6.1-cp38-cp38-win_amd64.whl", hash = "sha256:6196a5c39286cc37c024cd78834fb9345e464525d8991c21e908cc046d1cc02c"}, + {file = "tornado-6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f0ba29bafd8e7e22920567ce0d232c26d4d47c8b5cf4ed7b562b5db39fa199c5"}, + {file = "tornado-6.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:33892118b165401f291070100d6d09359ca74addda679b60390b09f8ef325ffe"}, + {file = "tornado-6.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:7da13da6f985aab7f6f28debab00c67ff9cbacd588e8477034c0652ac141feea"}, + {file = "tornado-6.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:e0791ac58d91ac58f694d8d2957884df8e4e2f6687cdf367ef7eb7497f79eaa2"}, + {file = "tornado-6.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:66324e4e1beede9ac79e60f88de548da58b1f8ab4b2f1354d8375774f997e6c0"}, + {file = "tornado-6.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:a48900ecea1cbb71b8c71c620dee15b62f85f7c14189bdeee54966fbd9a0c5bd"}, + {file = "tornado-6.1-cp39-cp39-win32.whl", hash = "sha256:d3d20ea5782ba63ed13bc2b8c291a053c8d807a8fa927d941bd718468f7b950c"}, + {file = "tornado-6.1-cp39-cp39-win_amd64.whl", hash = "sha256:548430be2740e327b3fe0201abe471f314741efcb0067ec4f2d7dcfb4825f3e4"}, + {file = "tornado-6.1.tar.gz", hash = "sha256:33c6e81d7bd55b468d2e793517c909b139960b6c790a60b7991b9b6b76fb9791"}, +] "typing-extensions 4.0.1" = [ {file = "typing_extensions-4.0.1-py3-none-any.whl", hash = "sha256:7f001e5ac290a0c0401508864c7ec868be4e701886d5b573a9528ed3973d9d3b"}, {file = "typing_extensions-4.0.1.tar.gz", hash = "sha256:4ca091dea149f945ec56afb48dae714f21e8692ef22a395223bcd328961b6a0e"}, ] +"tzdata 2021.5" = [ + {file = "tzdata-2021.5-py2.py3-none-any.whl", hash = "sha256:3eee491e22ebfe1e5cfcc97a4137cd70f092ce59144d81f8924a844de05ba8f5"}, + {file = "tzdata-2021.5.tar.gz", hash = "sha256:68dbe41afd01b867894bbdfd54fa03f468cfa4f0086bfb4adcd8de8f24f3ee21"}, +] +"tzlocal 4.1" = [ + {file = "tzlocal-4.1-py3-none-any.whl", hash = "sha256:28ba8d9fcb6c9a782d6e0078b4f6627af1ea26aeaa32b4eab5324abc7df4149f"}, + {file = "tzlocal-4.1.tar.gz", hash = "sha256:0f28015ac68a5c067210400a9197fc5d36ba9bc3f8eaf1da3cbd59acdfed9e09"}, +] "urllib3 1.26.8" = [ {file = "urllib3-1.26.8-py2.py3-none-any.whl", hash = "sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed"}, {file = "urllib3-1.26.8.tar.gz", hash = "sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c"}, diff --git a/pyproject.toml b/pyproject.toml index 389b5d0..9cebe63 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,6 +11,8 @@ dependencies = [ "Pillow~=9.0.1", "cqhttp~=1.3.1", "CherryPy~=18.6.1", + "pilk~=0.0.2", + "pydub~=0.25.1", ] requires-python = ">=3.7" license = { text = "AGPL-3.0-only" } @@ -54,7 +56,7 @@ build-backend = "pdm.pep517.api" version = { from = "efb_qq_plugin_go_cqhttp/__init__.py" } [tool.pdm.dev-dependencies] -dev = ["pre-commit"] +dev = ["pre-commit", "efb-telegram-master~=2.2.4"] [tool.black] line-length = 120