dublib 0.23.2__tar.gz → 0.23.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dublib-0.23.2/src/dublib.egg-info → dublib-0.23.4}/PKG-INFO +1 -1
- {dublib-0.23.2 → dublib-0.23.4}/pyproject.toml +1 -1
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/CLI/Terminalyzer.py +5 -4
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/WebRequestor.py +49 -30
- {dublib-0.23.2 → dublib-0.23.4/src/dublib.egg-info}/PKG-INFO +1 -1
- {dublib-0.23.2 → dublib-0.23.4}/LICENSE +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/README.md +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/setup.cfg +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/CLI/Templates/Bus.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/CLI/Templates/__init__.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/CLI/TextStyler/Codes.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/CLI/TextStyler/Escapes.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/CLI/TextStyler/FastStyler.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/CLI/TextStyler/__init__.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/CLI/readline.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/Core.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/Engine/Bus.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/Engine/Configurator.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/Engine/GetText.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/Engine/Patcher.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/Exceptions/CLI.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/Exceptions/TelebotUtils.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/Exceptions/WebRequestor.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/Exceptions/__init__.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/Methods/Data.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/Methods/Decorators.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/Methods/Filesystem.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/Methods/System.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/Polyglot/HTML.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/Polyglot/Markdown.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/Polyglot/__init__.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/TelebotUtils/Cache.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/TelebotUtils/Master/Decorators.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/TelebotUtils/Master/__init__.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/TelebotUtils/Users.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib/TelebotUtils/__init__.py +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib.egg-info/SOURCES.txt +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib.egg-info/dependency_links.txt +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib.egg-info/requires.txt +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/src/dublib.egg-info/top_level.txt +0 -0
- {dublib-0.23.2 → dublib-0.23.4}/tests/test_Polyglot.py +0 -0
|
@@ -880,7 +880,7 @@ class Helper:
|
|
|
880
880
|
|
|
881
881
|
#---> Получение данных.
|
|
882
882
|
#==========================================================================================#
|
|
883
|
-
CommandsCategories = {
|
|
883
|
+
CommandsCategories: dict[None | str, list[Command]] = {
|
|
884
884
|
None: []
|
|
885
885
|
}
|
|
886
886
|
|
|
@@ -906,7 +906,9 @@ class Helper:
|
|
|
906
906
|
"Descriptions": []
|
|
907
907
|
}
|
|
908
908
|
|
|
909
|
-
|
|
909
|
+
Commands = sorted(CommandsCategories[Category], key = lambda Element: Element.name)
|
|
910
|
+
|
|
911
|
+
for CurrentCommand in Commands:
|
|
910
912
|
HelpTable["Commands"].append(" " + CurrentCommand.name)
|
|
911
913
|
HelpTable["Descriptions"].append(CurrentCommand.description or "")
|
|
912
914
|
|
|
@@ -919,8 +921,7 @@ class Helper:
|
|
|
919
921
|
TableObject.add_column(Buffer, HelpTable[ColumnName])
|
|
920
922
|
|
|
921
923
|
TableObject.align = "l"
|
|
922
|
-
TableString += TableObject.get_string(header = False)
|
|
923
|
-
if len(CommandsCategories.keys()) > 1: TableString = TableString.lstrip()
|
|
924
|
+
TableString += TableObject.get_string(header = False).strip()
|
|
924
925
|
TableString += "\n\n"
|
|
925
926
|
|
|
926
927
|
self.__Callback(TableString.rstrip())
|
|
@@ -563,6 +563,12 @@ class WebResponse:
|
|
|
563
563
|
|
|
564
564
|
return self.__JSON
|
|
565
565
|
|
|
566
|
+
@property
|
|
567
|
+
def ok(self) -> bool:
|
|
568
|
+
"""Состояние: можно ли считать запрос успешным."""
|
|
569
|
+
|
|
570
|
+
return self.status_code in self.__GoodCodes
|
|
571
|
+
|
|
566
572
|
@property
|
|
567
573
|
def status_code(self) -> int | None:
|
|
568
574
|
"""Код ответа."""
|
|
@@ -596,15 +602,22 @@ class WebResponse:
|
|
|
596
602
|
# >>>>> ПУБЛИЧНЫЕ МЕТОДЫ <<<<< #
|
|
597
603
|
#==========================================================================================#
|
|
598
604
|
|
|
599
|
-
def __init__(self):
|
|
605
|
+
def __init__(self, config: WebConfig | None = None):
|
|
600
606
|
"""Унифицированный контейнер ответа на веб-запросы."""
|
|
601
607
|
|
|
608
|
+
self.__GoodCodes = config.good_codes or WebConfig().good_codes
|
|
609
|
+
|
|
602
610
|
self.__StatusCode = None
|
|
603
611
|
self.__Content = None
|
|
604
612
|
self.__JSON = None
|
|
605
613
|
self.__Text = None
|
|
606
614
|
self.__Exceptions = list()
|
|
607
615
|
|
|
616
|
+
def __bool__(self) -> bool:
|
|
617
|
+
"""Интерпретирует ответ в логическое значение: успешен ли запрос."""
|
|
618
|
+
|
|
619
|
+
return self.ok
|
|
620
|
+
|
|
608
621
|
def __str__(self) -> str:
|
|
609
622
|
"""Интерпретирует ответ в строку."""
|
|
610
623
|
|
|
@@ -724,10 +737,12 @@ class WebRequestor:
|
|
|
724
737
|
# >>>>> МЕТОДЫ ЗАПРОСОВ БИБЛИОТЕКИ CURL_CFFI <<<<< #
|
|
725
738
|
#==========================================================================================#
|
|
726
739
|
|
|
727
|
-
def __curl_cffi_GET(self, url: str, proxy: Proxy | None = None, params: dict | None = None, headers: dict | None = None, cookies: dict | None = None) -> curl_cffi_requests.Response:
|
|
740
|
+
def __curl_cffi_GET(self, response: WebResponse, url: str, proxy: Proxy | None = None, params: dict | None = None, headers: dict | None = None, cookies: dict | None = None) -> curl_cffi_requests.Response:
|
|
728
741
|
"""
|
|
729
742
|
Отправляет GET запрос через библиотеку **curl_cffi**.
|
|
730
743
|
|
|
744
|
+
:param response: Контейнер ответа.
|
|
745
|
+
:type response: WebResponse
|
|
731
746
|
:param url: Адрес запроса.
|
|
732
747
|
:type url: str
|
|
733
748
|
:param proxy: Данные прокси.
|
|
@@ -742,10 +757,9 @@ class WebRequestor:
|
|
|
742
757
|
:rtype: requests.Response
|
|
743
758
|
"""
|
|
744
759
|
|
|
745
|
-
Response = WebResponse()
|
|
746
760
|
headers = self.__MergeHeaders(headers)
|
|
747
761
|
|
|
748
|
-
|
|
762
|
+
response.parse_response(self.__Session.get(
|
|
749
763
|
url = url,
|
|
750
764
|
params = params,
|
|
751
765
|
headers = headers,
|
|
@@ -754,12 +768,14 @@ class WebRequestor:
|
|
|
754
768
|
verify = self.__Config.verify_ssl
|
|
755
769
|
))
|
|
756
770
|
|
|
757
|
-
return
|
|
771
|
+
return response
|
|
758
772
|
|
|
759
|
-
def __curl_cffi_POST(self, url: str, proxy: Proxy | None = None, params: dict | None = None, headers: dict | None = None, cookies: dict | None = None, data: Any = None, json: dict | None = None) -> curl_cffi_requests.Response:
|
|
773
|
+
def __curl_cffi_POST(self, response: WebResponse, url: str, proxy: Proxy | None = None, params: dict | None = None, headers: dict | None = None, cookies: dict | None = None, data: Any = None, json: dict | None = None) -> curl_cffi_requests.Response:
|
|
760
774
|
"""
|
|
761
775
|
Отправляет POST запрос через библиотеку **curl_cffi**.
|
|
762
776
|
|
|
777
|
+
:param response: Контейнер ответа.
|
|
778
|
+
:type response: WebResponse
|
|
763
779
|
:param url: Адрес запроса.
|
|
764
780
|
:type url: str
|
|
765
781
|
:param proxy: Данные прокси.
|
|
@@ -778,10 +794,9 @@ class WebRequestor:
|
|
|
778
794
|
:rtype: requests.Response
|
|
779
795
|
"""
|
|
780
796
|
|
|
781
|
-
Response = WebResponse()
|
|
782
797
|
headers = self.__MergeHeaders(headers)
|
|
783
798
|
|
|
784
|
-
|
|
799
|
+
response.parse_response(self.__Session.post(
|
|
785
800
|
url = url,
|
|
786
801
|
params = params,
|
|
787
802
|
headers = headers,
|
|
@@ -792,16 +807,18 @@ class WebRequestor:
|
|
|
792
807
|
verify = self.__Config.verify_ssl
|
|
793
808
|
))
|
|
794
809
|
|
|
795
|
-
return
|
|
810
|
+
return response
|
|
796
811
|
|
|
797
812
|
#==========================================================================================#
|
|
798
813
|
# >>>>> МЕТОДЫ ЗАПРОСОВ БИБЛИОТЕКИ HTTPX <<<<< #
|
|
799
814
|
#==========================================================================================#
|
|
800
815
|
|
|
801
|
-
def __httpx_GET(self, url: str, proxy: Proxy | None = None, params: dict | None = None, headers: dict | None = None, cookies: dict | None = None) -> httpx.Response:
|
|
816
|
+
def __httpx_GET(self, response: WebResponse, url: str, proxy: Proxy | None = None, params: dict | None = None, headers: dict | None = None, cookies: dict | None = None) -> httpx.Response:
|
|
802
817
|
"""
|
|
803
818
|
Отправляет GET запрос через библиотеку **httpx**.
|
|
804
819
|
|
|
820
|
+
:param response: Контейнер ответа.
|
|
821
|
+
:type response: WebResponse
|
|
805
822
|
:param url: Адрес запроса.
|
|
806
823
|
:type url: str
|
|
807
824
|
:param proxy: Данные прокси.
|
|
@@ -816,7 +833,6 @@ class WebRequestor:
|
|
|
816
833
|
:rtype: requests.Response
|
|
817
834
|
"""
|
|
818
835
|
|
|
819
|
-
Response = WebResponse()
|
|
820
836
|
headers = self.__MergeHeaders(headers)
|
|
821
837
|
CurrentCookies = self.cookies or dict()
|
|
822
838
|
cookies = cookies or dict()
|
|
@@ -831,14 +847,16 @@ class WebRequestor:
|
|
|
831
847
|
verify = self.__Config.verify_ssl
|
|
832
848
|
)
|
|
833
849
|
|
|
834
|
-
|
|
850
|
+
response.parse_response(self.__Session.get(url))
|
|
835
851
|
|
|
836
|
-
return
|
|
852
|
+
return response
|
|
837
853
|
|
|
838
|
-
def __httpx_POST(self, url: str, proxy: Proxy | None = None, params: dict | None = None, headers: dict | None = None, cookies: dict | None = None, data: Any = None, json: dict | None = None) -> httpx.Response:
|
|
854
|
+
def __httpx_POST(self, response: WebResponse, url: str, proxy: Proxy | None = None, params: dict | None = None, headers: dict | None = None, cookies: dict | None = None, data: Any = None, json: dict | None = None) -> httpx.Response:
|
|
839
855
|
"""
|
|
840
856
|
Отправляет POST запрос через библиотеку **httpx**.
|
|
841
857
|
|
|
858
|
+
:param response: Контейнер ответа.
|
|
859
|
+
:type response: WebResponse
|
|
842
860
|
:param url: Адрес запроса.
|
|
843
861
|
:type url: str
|
|
844
862
|
:param proxy: Данные прокси.
|
|
@@ -857,7 +875,6 @@ class WebRequestor:
|
|
|
857
875
|
:rtype: requests.Response
|
|
858
876
|
"""
|
|
859
877
|
|
|
860
|
-
Response = WebResponse()
|
|
861
878
|
headers = self.__MergeHeaders(headers)
|
|
862
879
|
CurrentCookies = self.cookies or dict()
|
|
863
880
|
cookies = cookies or dict()
|
|
@@ -874,18 +891,20 @@ class WebRequestor:
|
|
|
874
891
|
verify = self.__Config.verify_ssl
|
|
875
892
|
)
|
|
876
893
|
|
|
877
|
-
|
|
894
|
+
response.parse_response(self.__Session.post(url, data = data, json = json))
|
|
878
895
|
|
|
879
|
-
return
|
|
896
|
+
return response
|
|
880
897
|
|
|
881
898
|
#==========================================================================================#
|
|
882
899
|
# >>>>> МЕТОДЫ ЗАПРОСОВ БИБЛИОТЕКИ REQUESTS <<<<< #
|
|
883
900
|
#==========================================================================================#
|
|
884
901
|
|
|
885
|
-
def __requests_GET(self, url: str, proxy: Proxy | None = None, params: dict | None = None, headers: dict | None = None, cookies: dict | None = None) -> requests.Response:
|
|
902
|
+
def __requests_GET(self, response: WebResponse, url: str, proxy: Proxy | None = None, params: dict | None = None, headers: dict | None = None, cookies: dict | None = None) -> requests.Response:
|
|
886
903
|
"""
|
|
887
904
|
Отправляет GET запрос через библиотеку **requests**.
|
|
888
905
|
|
|
906
|
+
:param response: Контейнер ответа.
|
|
907
|
+
:type response: WebResponse
|
|
889
908
|
:param url: Адрес запроса.
|
|
890
909
|
:type url: str
|
|
891
910
|
:param proxy: Данные прокси.
|
|
@@ -900,10 +919,9 @@ class WebRequestor:
|
|
|
900
919
|
:rtype: requests.Response
|
|
901
920
|
"""
|
|
902
921
|
|
|
903
|
-
Response = WebResponse()
|
|
904
922
|
headers = self.__MergeHeaders(headers)
|
|
905
923
|
|
|
906
|
-
|
|
924
|
+
response.parse_response(self.__Session.get(
|
|
907
925
|
url = url,
|
|
908
926
|
params = params,
|
|
909
927
|
headers = headers,
|
|
@@ -913,12 +931,14 @@ class WebRequestor:
|
|
|
913
931
|
verify = self.__Config.verify_ssl
|
|
914
932
|
))
|
|
915
933
|
|
|
916
|
-
return
|
|
934
|
+
return response
|
|
917
935
|
|
|
918
|
-
def __requests_POST(self, url: str, proxy: Proxy | None = None, params: dict | None = None, headers: dict | None = None, cookies: dict | None = None, data: Any = None, json: dict | None = None) -> requests.Response:
|
|
936
|
+
def __requests_POST(self, response: WebResponse, url: str, proxy: Proxy | None = None, params: dict | None = None, headers: dict | None = None, cookies: dict | None = None, data: Any = None, json: dict | None = None) -> requests.Response:
|
|
919
937
|
"""
|
|
920
938
|
Отправляет POST запрос через библиотеку **requests**.
|
|
921
939
|
|
|
940
|
+
:param response: Контейнер ответа.
|
|
941
|
+
:type response: WebResponse
|
|
922
942
|
:param url: Адрес запроса.
|
|
923
943
|
:type url: str
|
|
924
944
|
:param proxy: Данные прокси.
|
|
@@ -937,10 +957,9 @@ class WebRequestor:
|
|
|
937
957
|
:rtype: requests.Response
|
|
938
958
|
"""
|
|
939
959
|
|
|
940
|
-
Response = WebResponse()
|
|
941
960
|
headers = self.__MergeHeaders(headers)
|
|
942
961
|
|
|
943
|
-
|
|
962
|
+
response.parse_response(self.__Session.get(
|
|
944
963
|
url = url,
|
|
945
964
|
params = params,
|
|
946
965
|
headers = headers,
|
|
@@ -952,7 +971,7 @@ class WebRequestor:
|
|
|
952
971
|
verify = self.__Config.verify_ssl
|
|
953
972
|
))
|
|
954
973
|
|
|
955
|
-
return
|
|
974
|
+
return response
|
|
956
975
|
|
|
957
976
|
#==========================================================================================#
|
|
958
977
|
# >>>>> ОБЩИЕ МЕТОДЫ <<<<< #
|
|
@@ -1024,17 +1043,17 @@ class WebRequestor:
|
|
|
1024
1043
|
"""
|
|
1025
1044
|
|
|
1026
1045
|
tries = 1 + self.__Config.retries
|
|
1027
|
-
Response = WebResponse()
|
|
1046
|
+
Response = WebResponse(self.__Config)
|
|
1028
1047
|
Try = 0
|
|
1029
1048
|
LibName = self.__Config.lib.value
|
|
1030
1049
|
|
|
1031
|
-
while Try < tries and
|
|
1050
|
+
while Try < tries and not Response.ok:
|
|
1032
1051
|
if Try > 0: sleep(self.__Config.delay)
|
|
1033
1052
|
Try += 1
|
|
1034
1053
|
|
|
1035
1054
|
try:
|
|
1036
1055
|
CurrentProxy = random.choice(self.__Proxies) if self.__Proxies else None
|
|
1037
|
-
|
|
1056
|
+
self.__RequestsMethods[request_type][self.__Config.lib](Response, url, CurrentProxy, **kwargs)
|
|
1038
1057
|
|
|
1039
1058
|
#---> Переключение HTTP/HTTPS протоколов прокси при неудачном запросе.
|
|
1040
1059
|
#==========================================================================================#
|
|
@@ -1047,7 +1066,7 @@ class WebRequestor:
|
|
|
1047
1066
|
case Protocols.HTTP: CurrentProxy.set_protocol(Protocols.HTTPS)
|
|
1048
1067
|
case Protocols.HTTPS: CurrentProxy.set_protocol(Protocols.HTTP)
|
|
1049
1068
|
|
|
1050
|
-
NewResponse: WebResponse = self.__RequestsMethods[request_type][self.__Config.lib](url, CurrentProxy, **kwargs)
|
|
1069
|
+
NewResponse: WebResponse = self.__RequestsMethods[request_type][self.__Config.lib](NewResponse, url, CurrentProxy, **kwargs)
|
|
1051
1070
|
if NewResponse.status_code in self.__Config.good_codes: Response = NewResponse
|
|
1052
1071
|
|
|
1053
1072
|
except Exception as ExceptionData:
|
|
@@ -1098,4 +1117,4 @@ class WebRequestor:
|
|
|
1098
1117
|
:rtype: WebResponse
|
|
1099
1118
|
"""
|
|
1100
1119
|
|
|
1101
|
-
return self.request(RequestsTypes.POST, url, params = params, headers = headers, cookies = cookies, data = data, json = json)
|
|
1120
|
+
return self.request(RequestsTypes.POST, url, params = params, headers = headers, cookies = cookies, data = data, json = json)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|