From 303ed0c3b9c4466c3a5efe87a8bee3b0adf1509f Mon Sep 17 00:00:00 2001 From: zmf963 Date: Fri, 4 Mar 2022 10:34:24 +0000 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(lib):=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E7=BB=93=E6=9E=9C=E5=8F=8Aimport=E8=B7=AF?= =?UTF-8?q?=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 引入poetry,优化目录结构与import,上传包到pypi --- .gitignore | 7 + __init__.py | 13 + config/__init__.py | 10 - emailall/__init__.py | 13 + {common => emailall/common}/__init__.py | 0 {common => emailall/common}/output.py | 2 +- {common => emailall/common}/search.py | 6 +- {common => emailall/common}/utils.py | 4 +- emailall/config/__init__.py | 24 ++ {config => emailall/config}/api.py | 0 {config => emailall/config}/log.py | 0 {config => emailall/config}/setting.py | 14 + emailall/lib.py | 30 ++ {modules => emailall/modules}/__init__.py | 0 {modules => emailall/modules}/collect.py | 24 +- .../modules}/datasets/Emailf.py | 4 +- .../modules}/datasets/phonebook.py | 6 +- .../modules}/datasets/skymem.py | 2 +- .../modules}/datasets/snov.py | 6 +- .../modules}/datasets/veryvp.py | 4 +- {modules => emailall/modules}/module.py | 4 +- {modules => emailall/modules}/search/ask.py | 6 +- {modules => emailall/modules}/search/baidu.py | 4 +- .../modules}/search/bingcn.py | 4 +- .../modules}/search/githubapi.py | 8 +- .../modules}/search/google.py | 6 +- {modules => emailall/modules}/search/qwant.py | 9 +- {modules => emailall/modules}/search/so.py | 4 +- {modules => emailall/modules}/search/sogou.py | 4 +- emailall.py => main.py | 23 +- poetry.lock | 286 ++++++++++++++++++ pyproject.toml | 21 ++ 32 files changed, 483 insertions(+), 65 deletions(-) create mode 100644 .gitignore create mode 100644 __init__.py delete mode 100644 config/__init__.py create mode 100644 emailall/__init__.py rename {common => emailall/common}/__init__.py (100%) rename {common => emailall/common}/output.py (96%) rename {common => emailall/common}/search.py (93%) rename {common => emailall/common}/utils.py (98%) create mode 100644 emailall/config/__init__.py rename {config => emailall/config}/api.py (100%) rename {config => emailall/config}/log.py (100%) rename {config => emailall/config}/setting.py (63%) create mode 100644 emailall/lib.py rename {modules => emailall/modules}/__init__.py (100%) rename {modules => emailall/modules}/collect.py (74%) rename {modules => emailall/modules}/datasets/Emailf.py (95%) rename {modules => emailall/modules}/datasets/phonebook.py (95%) rename {modules => emailall/modules}/datasets/skymem.py (96%) rename {modules => emailall/modules}/datasets/snov.py (96%) rename {modules => emailall/modules}/datasets/veryvp.py (96%) rename {modules => emailall/modules}/module.py (98%) rename {modules => emailall/modules}/search/ask.py (94%) rename {modules => emailall/modules}/search/baidu.py (95%) rename {modules => emailall/modules}/search/bingcn.py (96%) rename {modules => emailall/modules}/search/githubapi.py (94%) rename {modules => emailall/modules}/search/google.py (95%) rename {modules => emailall/modules}/search/qwant.py (90%) rename {modules => emailall/modules}/search/so.py (96%) rename {modules => emailall/modules}/search/sogou.py (96%) rename emailall.py => main.py (85%) create mode 100644 poetry.lock create mode 100644 pyproject.toml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..81ffec4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +.venv/ +venv +*.pyc +__pycache__ +dist/ +*.log +result/ \ No newline at end of file diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..8712fd6 --- /dev/null +++ b/__init__.py @@ -0,0 +1,13 @@ +#!/usr/bin/env python +# coding=utf-8 + +''' +Version: 0.1 +Autor: zmf96 +Email: zmf96@qq.com +Date: 2022-03-04 07:26:01 +LastEditors: zmf96 +LastEditTime: 2022-03-04 07:26:01 +FilePath: /__init__.py +Description: +''' diff --git a/config/__init__.py b/config/__init__.py deleted file mode 100644 index 1a7e20c..0000000 --- a/config/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -import importlib - -class Settings(object): - def __init__(self): - setting_modules = ['config.setting','config.api'] - for setting_module in setting_modules: - setting = importlib.import_module(setting_module) - for attr in dir(setting): - setattr(self, attr, getattr(setting,attr)) -settings = Settings() \ No newline at end of file diff --git a/emailall/__init__.py b/emailall/__init__.py new file mode 100644 index 0000000..56a04e7 --- /dev/null +++ b/emailall/__init__.py @@ -0,0 +1,13 @@ +#!/usr/bin/env python +# coding=utf-8 + +''' +Version: 0.1 +Autor: zmf96 +Email: zmf96@qq.com +Date: 2022-03-04 07:32:29 +LastEditors: zmf96 +LastEditTime: 2022-03-04 09:31:15 +FilePath: /emailall/__init__.py +Description: +''' diff --git a/common/__init__.py b/emailall/common/__init__.py similarity index 100% rename from common/__init__.py rename to emailall/common/__init__.py diff --git a/common/output.py b/emailall/common/output.py similarity index 96% rename from common/output.py rename to emailall/common/output.py index 1e1c1b7..461df36 100644 --- a/common/output.py +++ b/emailall/common/output.py @@ -5,7 +5,7 @@ # @url : http://github.com/Taonn # @author : Tao. (Taonn) from prettytable import PrettyTable -from config import settings +from emailall.config import settings import json diff --git a/common/search.py b/emailall/common/search.py similarity index 93% rename from common/search.py rename to emailall/common/search.py index 0b79cce..88357e5 100644 --- a/common/search.py +++ b/emailall/common/search.py @@ -2,9 +2,9 @@ # coding=utf-8 # Author: @Tao. -from modules.module import Module -from config import settings -from config.log import logger +from emailall.modules.module import Module +from emailall.config import settings +from emailall.config.log import logger import json diff --git a/common/utils.py b/emailall/common/utils.py similarity index 98% rename from common/utils.py rename to emailall/common/utils.py index 2752a96..15d196b 100644 --- a/common/utils.py +++ b/emailall/common/utils.py @@ -6,9 +6,9 @@ import re import json -from config.log import logger +from emailall.config.log import logger from pathlib import Path -from config import settings +from emailall.config import settings def check_net(): diff --git a/emailall/config/__init__.py b/emailall/config/__init__.py new file mode 100644 index 0000000..f7994fa --- /dev/null +++ b/emailall/config/__init__.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python +# coding=utf-8 + +''' +Version: 0.1 +Autor: zmf96 +Email: zmf96@qq.com +Date: 2022-03-04 07:15:27 +LastEditors: zmf96 +LastEditTime: 2022-03-04 07:38:53 +FilePath: /emailall/config/__init__.py +Description: +''' +import importlib + +class Settings(object): + def __init__(self): + setting_modules = ['emailall.config.setting','emailall.config.api'] + for setting_module in setting_modules: + print(setting_module) + setting = importlib.import_module(setting_module) + for attr in dir(setting): + setattr(self, attr, getattr(setting,attr)) +settings = Settings() \ No newline at end of file diff --git a/config/api.py b/emailall/config/api.py similarity index 100% rename from config/api.py rename to emailall/config/api.py diff --git a/config/log.py b/emailall/config/log.py similarity index 100% rename from config/log.py rename to emailall/config/log.py diff --git a/config/setting.py b/emailall/config/setting.py similarity index 63% rename from config/setting.py rename to emailall/config/setting.py index ca4a289..449f82a 100644 --- a/config/setting.py +++ b/emailall/config/setting.py @@ -1,3 +1,16 @@ +#!/usr/bin/env python +# coding=utf-8 + +''' +Version: 0.1 +Autor: zmf96 +Email: zmf96@qq.com +Date: 2022-03-04 07:15:27 +LastEditors: zmf96 +LastEditTime: 2022-03-04 07:34:40 +FilePath: /emailall/config/setting.py +Description: +''' #!/usr/bin/python3 # coding=utf-8 # Author: @Tao. @@ -9,6 +22,7 @@ """ # 路径设置 relative_directory = pathlib.Path(__file__).parent.parent # EmailAll代码相对路径 +print(relative_directory) modules_storage_dir = relative_directory.joinpath('modules') # modules存放目录 result_save_dir = relative_directory.joinpath('result') diff --git a/emailall/lib.py b/emailall/lib.py new file mode 100644 index 0000000..3f7fca3 --- /dev/null +++ b/emailall/lib.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python +# coding=utf-8 + +''' +Version: 0.1 +Autor: zmf96 +Email: zmf96@qq.com +Date: 2022-03-04 04:58:33 +LastEditors: zmf96 +LastEditTime: 2022-03-04 10:01:37 +FilePath: /emailall/lib.py +Description: +''' +from emailall.modules.collect import Collect +from emailall.config import settings + + +def run_emailall(domain): + col = Collect(domain) + col.run() + emails = set() + for datas in settings.emails: + for data in datas: + emails.update(data['emails']) + + return emails + + +if __name__ == "__main__": + print(run_emailall('example.com')) diff --git a/modules/__init__.py b/emailall/modules/__init__.py similarity index 100% rename from modules/__init__.py rename to emailall/modules/__init__.py diff --git a/modules/collect.py b/emailall/modules/collect.py similarity index 74% rename from modules/collect.py rename to emailall/modules/collect.py index ad89b56..c84114a 100644 --- a/modules/collect.py +++ b/emailall/modules/collect.py @@ -1,3 +1,16 @@ +#!/usr/bin/env python +# coding=utf-8 + +''' +Version: 0.1 +Autor: zmf96 +Email: zmf96@qq.com +Date: 2022-03-04 07:15:27 +LastEditors: zmf96 +LastEditTime: 2022-03-04 08:05:37 +FilePath: /emailall/modules/collect.py +Description: +''' #!/usr/bin/python3 # coding=utf-8 # Author: @Tao. @@ -5,8 +18,8 @@ import threading import importlib -from config.log import logger -from config import settings +from emailall.config.log import logger +from emailall.config import settings class Collect(object): @@ -20,12 +33,13 @@ def get_mod(self): """ Get modules """ - modules = ['certificates', 'check', 'datasets', - 'dnsquery', 'intelligence', 'search'] + # modules = ['certificates', 'check', 'datasets', + # 'dnsquery', 'intelligence', 'search'] + modules = ['datasets','search'] for module in modules: module_path = settings.modules_storage_dir.joinpath(module) for path in module_path.rglob('*.py'): - import_module = f'modules.{module}.{path.stem}' + import_module = f'emailall.modules.{module}.{path.stem}' self.modules.append(import_module) def import_func(self): diff --git a/modules/datasets/Emailf.py b/emailall/modules/datasets/Emailf.py similarity index 95% rename from modules/datasets/Emailf.py rename to emailall/modules/datasets/Emailf.py index b1301b9..7a89efc 100644 --- a/modules/datasets/Emailf.py +++ b/emailall/modules/datasets/Emailf.py @@ -5,9 +5,9 @@ # @url : http://github.com/Taonn # @author : Tao. (Taonn) -from common.search import Search +from emailall.common.search import Search from lxml import etree -from config import settings +from emailall.config import settings from prettytable import PrettyTable diff --git a/modules/datasets/phonebook.py b/emailall/modules/datasets/phonebook.py similarity index 95% rename from modules/datasets/phonebook.py rename to emailall/modules/datasets/phonebook.py index fcb49d8..b2c3588 100644 --- a/modules/datasets/phonebook.py +++ b/emailall/modules/datasets/phonebook.py @@ -4,9 +4,9 @@ # @name : EmailAll - Email Information Gathering Tools # @url : http://github.com/Taonn # @author : Tao. (Taonn) -from common.search import Search -from config import settings -from config.log import logger +from emailall.common.search import Search +from emailall.config import settings +from emailall.config.log import logger class PhoneBook(Search): diff --git a/modules/datasets/skymem.py b/emailall/modules/datasets/skymem.py similarity index 96% rename from modules/datasets/skymem.py rename to emailall/modules/datasets/skymem.py index dbbfbca..23030a1 100644 --- a/modules/datasets/skymem.py +++ b/emailall/modules/datasets/skymem.py @@ -5,7 +5,7 @@ # @url : http://github.com/Taonn # @author : Tao. (Taonn) -from common.search import Search +from emailall.common.search import Search import re diff --git a/modules/datasets/snov.py b/emailall/modules/datasets/snov.py similarity index 96% rename from modules/datasets/snov.py rename to emailall/modules/datasets/snov.py index 7b6d367..f62682d 100644 --- a/modules/datasets/snov.py +++ b/emailall/modules/datasets/snov.py @@ -7,10 +7,10 @@ import requests import re -from common.search import Search +from emailall.common.search import Search from urllib.parse import unquote, quote -from config import settings -from config.log import logger +from emailall.config import settings +from emailall.config.log import logger class Snov(Search): diff --git a/modules/datasets/veryvp.py b/emailall/modules/datasets/veryvp.py similarity index 96% rename from modules/datasets/veryvp.py rename to emailall/modules/datasets/veryvp.py index 89284ec..ec67f34 100644 --- a/modules/datasets/veryvp.py +++ b/emailall/modules/datasets/veryvp.py @@ -4,9 +4,9 @@ # @name : EmailAll - Email Information Gathering Tools # @url : http://github.com/Taonn # @author : Tao. (Taonn) -from common.search import Search +from emailall.common.search import Search from urllib.parse import unquote,quote -from config import settings +from emailall.config import settings import requests import json diff --git a/modules/module.py b/emailall/modules/module.py similarity index 98% rename from modules/module.py rename to emailall/modules/module.py index d0d5b18..14c1bb0 100644 --- a/modules/module.py +++ b/emailall/modules/module.py @@ -7,10 +7,10 @@ import requests import urllib3 -from config.log import logger +from emailall.config.log import logger from prettytable import PrettyTable from fake_useragent import UserAgent -from common import utils +from emailall.common import utils urllib3.disable_warnings() diff --git a/modules/search/ask.py b/emailall/modules/search/ask.py similarity index 94% rename from modules/search/ask.py rename to emailall/modules/search/ask.py index 4167cbf..fa2e4fc 100644 --- a/modules/search/ask.py +++ b/emailall/modules/search/ask.py @@ -7,10 +7,10 @@ import time -from common.search import Search -from config.log import logger +from emailall.common.search import Search +from emailall.config.log import logger from lxml import etree -from config import settings +from emailall.config import settings class Ask(Search): diff --git a/modules/search/baidu.py b/emailall/modules/search/baidu.py similarity index 95% rename from modules/search/baidu.py rename to emailall/modules/search/baidu.py index d658e03..caf5f1a 100644 --- a/modules/search/baidu.py +++ b/emailall/modules/search/baidu.py @@ -7,8 +7,8 @@ import time -from common.search import Search -from config.setting import emails +from emailall.common.search import Search +from emailall.config.setting import emails from lxml import etree diff --git a/modules/search/bingcn.py b/emailall/modules/search/bingcn.py similarity index 96% rename from modules/search/bingcn.py rename to emailall/modules/search/bingcn.py index 7e45d3a..e3e7714 100644 --- a/modules/search/bingcn.py +++ b/emailall/modules/search/bingcn.py @@ -7,8 +7,8 @@ import time -from common.search import Search -from config.setting import emails +from emailall.common.search import Search +from emailall.config.setting import emails from lxml import etree diff --git a/modules/search/githubapi.py b/emailall/modules/search/githubapi.py similarity index 94% rename from modules/search/githubapi.py rename to emailall/modules/search/githubapi.py index 158dc1d..9cce172 100644 --- a/modules/search/githubapi.py +++ b/emailall/modules/search/githubapi.py @@ -7,10 +7,10 @@ import time import base64 -from common.search import Search -from config import settings -from config.log import logger -from common import utils +from emailall.common.search import Search +from emailall.config import settings +from emailall.config.log import logger +from emailall.common import utils class Github(Search): diff --git a/modules/search/google.py b/emailall/modules/search/google.py similarity index 95% rename from modules/search/google.py rename to emailall/modules/search/google.py index b4db82b..c335697 100644 --- a/modules/search/google.py +++ b/emailall/modules/search/google.py @@ -4,12 +4,12 @@ # @name : EmailAll - Email Information Gathering Tools # @url : http://github.com/Taonn # @author : Tao. (Taonn) -from common.search import Search +from emailall.common.search import Search import time import re from urllib.parse import unquote -from config.log import logger -from config import settings +from emailall.config.log import logger +from emailall.config import settings class Google(Search): diff --git a/modules/search/qwant.py b/emailall/modules/search/qwant.py similarity index 90% rename from modules/search/qwant.py rename to emailall/modules/search/qwant.py index 5ccaab3..bba58d4 100644 --- a/modules/search/qwant.py +++ b/emailall/modules/search/qwant.py @@ -1,17 +1,10 @@ -#!/usr/bin/python3 -# -*- coding:utf-8 -*- -# -# @name : EmailAll - Email Information Gathering Tools -# @url : http://github.com/Taonn -# @author : Tao. (Taonn) - # !/usr/bin/python3 # -*- coding:utf-8 -*- # # @name : EmailAll - Email Information Gathering Tools # @url : http://github.com/Taonn # @author : Tao. (Taonn) -from common.search import Search +from emailall.common.search import Search import time diff --git a/modules/search/so.py b/emailall/modules/search/so.py similarity index 96% rename from modules/search/so.py rename to emailall/modules/search/so.py index 4eca35a..7aa0fe5 100644 --- a/modules/search/so.py +++ b/emailall/modules/search/so.py @@ -6,8 +6,8 @@ # @author : Tao. (Taonn) import time -from common.search import Search -from config.log import logger +from emailall.common.search import Search +from emailall.config.log import logger from lxml import etree import re diff --git a/modules/search/sogou.py b/emailall/modules/search/sogou.py similarity index 96% rename from modules/search/sogou.py rename to emailall/modules/search/sogou.py index b0894ce..86de2fa 100644 --- a/modules/search/sogou.py +++ b/emailall/modules/search/sogou.py @@ -5,8 +5,8 @@ # @url : http://github.com/Taonn # @author : Tao. (Taonn) import time -from common.search import Search -from config.log import logger +from emailall.common.search import Search +from emailall.config.log import logger from lxml import etree import re diff --git a/emailall.py b/main.py similarity index 85% rename from emailall.py rename to main.py index ee2d94d..47c75e8 100644 --- a/emailall.py +++ b/main.py @@ -1,11 +1,24 @@ +#!/usr/bin/env python +# coding=utf-8 + +''' +Version: 0.1 +Autor: zmf96 +Email: zmf96@qq.com +Date: 2022-03-04 07:15:27 +LastEditors: zmf96 +LastEditTime: 2022-03-04 07:31:44 +FilePath: /emailall.py +Description: +''' import fire -from config.log import logger +from emailall.config.log import logger from datetime import datetime -from common import utils -from modules.collect import Collect -from common.output import Output -from config import settings +from emailall.common import utils +from emailall.modules.collect import Collect +from emailall.common.output import Output +from emailall.config import settings import time yellow = '\033[01;33m' diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..71a5920 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,286 @@ +[[package]] +name = "certifi" +version = "2021.10.8" +description = "Python package for providing Mozilla's CA Bundle." +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "charset-normalizer" +version = "2.0.12" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +category = "main" +optional = false +python-versions = ">=3.5.0" + +[package.extras] +unicode_backport = ["unicodedata2"] + +[[package]] +name = "colorama" +version = "0.4.4" +description = "Cross-platform colored terminal text." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "fake-useragent" +version = "0.1.11" +description = "Up to date simple useragent faker with real world database" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "fire" +version = "0.4.0" +description = "A library for automatically generating command line interfaces." +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +six = "*" +termcolor = "*" + +[[package]] +name = "idna" +version = "3.3" +description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "loguru" +version = "0.6.0" +description = "Python logging made (stupidly) simple" +category = "main" +optional = false +python-versions = ">=3.5" + +[package.dependencies] +colorama = {version = ">=0.3.4", markers = "sys_platform == \"win32\""} +win32-setctime = {version = ">=1.0.0", markers = "sys_platform == \"win32\""} + +[package.extras] +dev = ["colorama (>=0.3.4)", "docutils (==0.16)", "flake8 (>=3.7.7)", "tox (>=3.9.0)", "pytest (>=4.6.2)", "pytest-cov (>=2.7.1)", "black (>=19.10b0)", "isort (>=5.1.1)", "Sphinx (>=4.1.1)", "sphinx-autobuild (>=0.7.1)", "sphinx-rtd-theme (>=0.4.3)"] + +[[package]] +name = "lxml" +version = "4.8.0" +description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*" + +[package.extras] +cssselect = ["cssselect (>=0.7)"] +html5 = ["html5lib"] +htmlsoup = ["beautifulsoup4"] +source = ["Cython (>=0.29.7)"] + +[[package]] +name = "prettytable" +version = "3.1.1" +description = "A simple Python library for easily displaying tabular data in a visually appealing ASCII table format" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +wcwidth = "*" + +[package.extras] +tests = ["pytest", "pytest-cov", "pytest-lazy-fixture"] + +[[package]] +name = "requests" +version = "2.27.1" +description = "Python HTTP for Humans." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = {version = ">=2.0.0,<2.1.0", markers = "python_version >= \"3\""} +idna = {version = ">=2.5,<4", markers = "python_version >= \"3\""} +urllib3 = ">=1.21.1,<1.27" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] +use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "termcolor" +version = "1.1.0" +description = "ANSII Color formatting for output in terminal." +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "urllib3" +version = "1.26.8" +description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" + +[package.extras] +brotli = ["brotlipy (>=0.6.0)"] +secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] +socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] + +[[package]] +name = "wcwidth" +version = "0.2.5" +description = "Measures the displayed width of unicode strings in a terminal" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "win32-setctime" +version = "1.1.0" +description = "A small Python utility to set file creation time on Windows" +category = "main" +optional = false +python-versions = ">=3.5" + +[package.extras] +dev = ["pytest (>=4.6.2)", "black (>=19.3b0)"] + +[metadata] +lock-version = "1.1" +python-versions = "^3.8" +content-hash = "17bee61c12dbfaa9111713ee49746a77cb36023a58f5236bc9d4054c4345e4c4" + +[metadata.files] +certifi = [ + {file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"}, + {file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"}, +] +charset-normalizer = [ + {file = "charset-normalizer-2.0.12.tar.gz", hash = "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597"}, + {file = "charset_normalizer-2.0.12-py3-none-any.whl", hash = "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"}, +] +colorama = [ + {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, + {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, +] +fake-useragent = [ + {file = "fake-useragent-0.1.11.tar.gz", hash = "sha256:c104998b750eb097eefc28ae28e92d66397598d2cf41a31aa45d5559ef1adf35"}, +] +fire = [ + {file = "fire-0.4.0.tar.gz", hash = "sha256:c5e2b8763699d1142393a46d0e3e790c5eb2f0706082df8f647878842c216a62"}, +] +idna = [ + {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, + {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, +] +loguru = [ + {file = "loguru-0.6.0-py3-none-any.whl", hash = "sha256:4e2414d534a2ab57573365b3e6d0234dfb1d84b68b7f3b948e6fb743860a77c3"}, + {file = "loguru-0.6.0.tar.gz", hash = "sha256:066bd06758d0a513e9836fd9c6b5a75bfb3fd36841f4b996bc60b547a309d41c"}, +] +lxml = [ + {file = "lxml-4.8.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:e1ab2fac607842ac36864e358c42feb0960ae62c34aa4caaf12ada0a1fb5d99b"}, + {file = "lxml-4.8.0-cp27-cp27m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28d1af847786f68bec57961f31221125c29d6f52d9187c01cd34dc14e2b29430"}, + {file = "lxml-4.8.0-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:b92d40121dcbd74831b690a75533da703750f7041b4bf951befc657c37e5695a"}, + {file = "lxml-4.8.0-cp27-cp27m-win32.whl", hash = "sha256:e01f9531ba5420838c801c21c1b0f45dbc9607cb22ea2cf132844453bec863a5"}, + {file = "lxml-4.8.0-cp27-cp27m-win_amd64.whl", hash = "sha256:6259b511b0f2527e6d55ad87acc1c07b3cbffc3d5e050d7e7bcfa151b8202df9"}, + {file = "lxml-4.8.0-cp27-cp27mu-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1010042bfcac2b2dc6098260a2ed022968dbdfaf285fc65a3acf8e4eb1ffd1bc"}, + {file = "lxml-4.8.0-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:fa56bb08b3dd8eac3a8c5b7d075c94e74f755fd9d8a04543ae8d37b1612dd170"}, + {file = "lxml-4.8.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:31ba2cbc64516dcdd6c24418daa7abff989ddf3ba6d3ea6f6ce6f2ed6e754ec9"}, + {file = "lxml-4.8.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:31499847fc5f73ee17dbe1b8e24c6dafc4e8d5b48803d17d22988976b0171f03"}, + {file = "lxml-4.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:5f7d7d9afc7b293147e2d506a4596641d60181a35279ef3aa5778d0d9d9123fe"}, + {file = "lxml-4.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:a3c5f1a719aa11866ffc530d54ad965063a8cbbecae6515acbd5f0fae8f48eaa"}, + {file = "lxml-4.8.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6268e27873a3d191849204d00d03f65c0e343b3bcb518a6eaae05677c95621d1"}, + {file = "lxml-4.8.0-cp310-cp310-win32.whl", hash = "sha256:330bff92c26d4aee79c5bc4d9967858bdbe73fdbdbacb5daf623a03a914fe05b"}, + {file = "lxml-4.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:b2582b238e1658c4061ebe1b4df53c435190d22457642377fd0cb30685cdfb76"}, + {file = "lxml-4.8.0-cp35-cp35m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a2bfc7e2a0601b475477c954bf167dee6d0f55cb167e3f3e7cefad906e7759f6"}, + {file = "lxml-4.8.0-cp35-cp35m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a1547ff4b8a833511eeaceacbcd17b043214fcdb385148f9c1bc5556ca9623e2"}, + {file = "lxml-4.8.0-cp35-cp35m-win32.whl", hash = "sha256:a9f1c3489736ff8e1c7652e9dc39f80cff820f23624f23d9eab6e122ac99b150"}, + {file = "lxml-4.8.0-cp35-cp35m-win_amd64.whl", hash = "sha256:530f278849031b0eb12f46cca0e5db01cfe5177ab13bd6878c6e739319bae654"}, + {file = "lxml-4.8.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:078306d19a33920004addeb5f4630781aaeabb6a8d01398045fcde085091a169"}, + {file = "lxml-4.8.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:86545e351e879d0b72b620db6a3b96346921fa87b3d366d6c074e5a9a0b8dadb"}, + {file = "lxml-4.8.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24f5c5ae618395ed871b3d8ebfcbb36e3f1091fd847bf54c4de623f9107942f3"}, + {file = "lxml-4.8.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:bbab6faf6568484707acc052f4dfc3802bdb0cafe079383fbaa23f1cdae9ecd4"}, + {file = "lxml-4.8.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7993232bd4044392c47779a3c7e8889fea6883be46281d45a81451acfd704d7e"}, + {file = "lxml-4.8.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6d6483b1229470e1d8835e52e0ff3c6973b9b97b24cd1c116dca90b57a2cc613"}, + {file = "lxml-4.8.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:ad4332a532e2d5acb231a2e5d33f943750091ee435daffca3fec0a53224e7e33"}, + {file = "lxml-4.8.0-cp36-cp36m-win32.whl", hash = "sha256:db3535733f59e5605a88a706824dfcb9bd06725e709ecb017e165fc1d6e7d429"}, + {file = "lxml-4.8.0-cp36-cp36m-win_amd64.whl", hash = "sha256:5f148b0c6133fb928503cfcdfdba395010f997aa44bcf6474fcdd0c5398d9b63"}, + {file = "lxml-4.8.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:8a31f24e2a0b6317f33aafbb2f0895c0bce772980ae60c2c640d82caac49628a"}, + {file = "lxml-4.8.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:719544565c2937c21a6f76d520e6e52b726d132815adb3447ccffbe9f44203c4"}, + {file = "lxml-4.8.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:c0b88ed1ae66777a798dc54f627e32d3b81c8009967c63993c450ee4cbcbec15"}, + {file = "lxml-4.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:fa9b7c450be85bfc6cd39f6df8c5b8cbd76b5d6fc1f69efec80203f9894b885f"}, + {file = "lxml-4.8.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e9f84ed9f4d50b74fbc77298ee5c870f67cb7e91dcdc1a6915cb1ff6a317476c"}, + {file = "lxml-4.8.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1d650812b52d98679ed6c6b3b55cbb8fe5a5460a0aef29aeb08dc0b44577df85"}, + {file = "lxml-4.8.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:80bbaddf2baab7e6de4bc47405e34948e694a9efe0861c61cdc23aa774fcb141"}, + {file = "lxml-4.8.0-cp37-cp37m-win32.whl", hash = "sha256:6f7b82934c08e28a2d537d870293236b1000d94d0b4583825ab9649aef7ddf63"}, + {file = "lxml-4.8.0-cp37-cp37m-win_amd64.whl", hash = "sha256:e1fd7d2fe11f1cb63d3336d147c852f6d07de0d0020d704c6031b46a30b02ca8"}, + {file = "lxml-4.8.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:5045ee1ccd45a89c4daec1160217d363fcd23811e26734688007c26f28c9e9e7"}, + {file = "lxml-4.8.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:0c1978ff1fd81ed9dcbba4f91cf09faf1f8082c9d72eb122e92294716c605428"}, + {file = "lxml-4.8.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:52cbf2ff155b19dc4d4100f7442f6a697938bf4493f8d3b0c51d45568d5666b5"}, + {file = "lxml-4.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:ce13d6291a5f47c1c8dbd375baa78551053bc6b5e5c0e9bb8e39c0a8359fd52f"}, + {file = "lxml-4.8.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e11527dc23d5ef44d76fef11213215c34f36af1608074561fcc561d983aeb870"}, + {file = "lxml-4.8.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:60d2f60bd5a2a979df28ab309352cdcf8181bda0cca4529769a945f09aba06f9"}, + {file = "lxml-4.8.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:62f93eac69ec0f4be98d1b96f4d6b964855b8255c345c17ff12c20b93f247b68"}, + {file = "lxml-4.8.0-cp38-cp38-win32.whl", hash = "sha256:20b8a746a026017acf07da39fdb10aa80ad9877046c9182442bf80c84a1c4696"}, + {file = "lxml-4.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:891dc8f522d7059ff0024cd3ae79fd224752676447f9c678f2a5c14b84d9a939"}, + {file = "lxml-4.8.0-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:b6fc2e2fb6f532cf48b5fed57567ef286addcef38c28874458a41b7837a57807"}, + {file = "lxml-4.8.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:74eb65ec61e3c7c019d7169387d1b6ffcfea1b9ec5894d116a9a903636e4a0b1"}, + {file = "lxml-4.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:627e79894770783c129cc5e89b947e52aa26e8e0557c7e205368a809da4b7939"}, + {file = "lxml-4.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:545bd39c9481f2e3f2727c78c169425efbfb3fbba6e7db4f46a80ebb249819ca"}, + {file = "lxml-4.8.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5a58d0b12f5053e270510bf12f753a76aaf3d74c453c00942ed7d2c804ca845c"}, + {file = "lxml-4.8.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:ec4b4e75fc68da9dc0ed73dcdb431c25c57775383fec325d23a770a64e7ebc87"}, + {file = "lxml-4.8.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5804e04feb4e61babf3911c2a974a5b86f66ee227cc5006230b00ac6d285b3a9"}, + {file = "lxml-4.8.0-cp39-cp39-win32.whl", hash = "sha256:aa0cf4922da7a3c905d000b35065df6184c0dc1d866dd3b86fd961905bbad2ea"}, + {file = "lxml-4.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:dd10383f1d6b7edf247d0960a3db274c07e96cf3a3fc7c41c8448f93eac3fb1c"}, + {file = "lxml-4.8.0-pp37-pypy37_pp73-macosx_10_14_x86_64.whl", hash = "sha256:2403a6d6fb61c285969b71f4a3527873fe93fd0abe0832d858a17fe68c8fa507"}, + {file = "lxml-4.8.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:986b7a96228c9b4942ec420eff37556c5777bfba6758edcb95421e4a614b57f9"}, + {file = "lxml-4.8.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:6fe4ef4402df0250b75ba876c3795510d782def5c1e63890bde02d622570d39e"}, + {file = "lxml-4.8.0-pp38-pypy38_pp73-macosx_10_14_x86_64.whl", hash = "sha256:f10ce66fcdeb3543df51d423ede7e238be98412232fca5daec3e54bcd16b8da0"}, + {file = "lxml-4.8.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:730766072fd5dcb219dd2b95c4c49752a54f00157f322bc6d71f7d2a31fecd79"}, + {file = "lxml-4.8.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:8b99ec73073b37f9ebe8caf399001848fced9c08064effdbfc4da2b5a8d07b93"}, + {file = "lxml-4.8.0.tar.gz", hash = "sha256:f63f62fc60e6228a4ca9abae28228f35e1bd3ce675013d1dfb828688d50c6e23"}, +] +prettytable = [ + {file = "prettytable-3.1.1-py3-none-any.whl", hash = "sha256:f546d42de21ac14d791c91e4e9814f02271f4a5bf27b894457914be7513dc92b"}, + {file = "prettytable-3.1.1.tar.gz", hash = "sha256:43c9e23272ca253d038ae76fe3adde89794e92e7fcab2ddf5b94b38642ef4f21"}, +] +requests = [ + {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"}, + {file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"}, +] +six = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] +termcolor = [ + {file = "termcolor-1.1.0.tar.gz", hash = "sha256:1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b"}, +] +urllib3 = [ + {file = "urllib3-1.26.8-py2.py3-none-any.whl", hash = "sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed"}, + {file = "urllib3-1.26.8.tar.gz", hash = "sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c"}, +] +wcwidth = [ + {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, + {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, +] +win32-setctime = [ + {file = "win32_setctime-1.1.0-py3-none-any.whl", hash = "sha256:231db239e959c2fe7eb1d7dc129f11172354f98361c4fa2d6d2d7e278baa8aad"}, + {file = "win32_setctime-1.1.0.tar.gz", hash = "sha256:15cf5750465118d6929ae4de4eb46e8edae9a5634350c01ba582df868e932cb2"}, +] diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..d6b36be --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,21 @@ +[tool.poetry] +name = "emailall" +version = "0.1.0" +description = "EmailAll is a powerful Email Collect tool —— 一款强大的邮箱收集工具" +authors = ["zmf963 "] + +[tool.poetry.dependencies] +python = "^3.8" +fake-useragent = "^0.1.11" +loguru = "^0.6.0" +lxml = "^4.8.0" +prettytable = "^3.1.1" +requests = "^2.27.1" +urllib3 = "^1.26.8" +fire = "^0.4.0" + +[tool.poetry.dev-dependencies] + +[build-system] +requires = ["poetry-core>=1.0.0"] +build-backend = "poetry.core.masonry.api"