re-common 10.0.22__py3-none-any.whl → 10.0.24__py3-none-any.whl

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.
Files changed (202) hide show
  1. re_common/baselibrary/__init__.py +4 -4
  2. re_common/baselibrary/baseabs/__init__.py +6 -6
  3. re_common/baselibrary/baseabs/baseabs.py +26 -26
  4. re_common/baselibrary/database/mbuilder.py +132 -132
  5. re_common/baselibrary/database/moudle.py +93 -93
  6. re_common/baselibrary/database/msqlite3.py +194 -194
  7. re_common/baselibrary/database/mysql.py +169 -169
  8. re_common/baselibrary/database/sql_factory.py +26 -26
  9. re_common/baselibrary/mthread/MThreadingRun.py +486 -486
  10. re_common/baselibrary/mthread/MThreadingRunEvent.py +349 -349
  11. re_common/baselibrary/mthread/__init__.py +2 -2
  12. re_common/baselibrary/mthread/mythreading.py +695 -695
  13. re_common/baselibrary/pakge_other/socks.py +404 -404
  14. re_common/baselibrary/readconfig/config_factory.py +18 -18
  15. re_common/baselibrary/readconfig/ini_config.py +317 -317
  16. re_common/baselibrary/readconfig/toml_config.py +49 -49
  17. re_common/baselibrary/temporary/envdata.py +36 -36
  18. re_common/baselibrary/tools/all_requests/aiohttp_request.py +118 -118
  19. re_common/baselibrary/tools/all_requests/httpx_requet.py +102 -102
  20. re_common/baselibrary/tools/all_requests/mrequest.py +412 -412
  21. re_common/baselibrary/tools/all_requests/requests_request.py +81 -81
  22. re_common/baselibrary/tools/batch_compre/bijiao_batch.py +31 -31
  23. re_common/baselibrary/tools/contrast_db3.py +123 -123
  24. re_common/baselibrary/tools/copy_file.py +39 -39
  25. re_common/baselibrary/tools/db3_2_sizedb3.py +102 -102
  26. re_common/baselibrary/tools/foreachgz.py +39 -39
  27. re_common/baselibrary/tools/get_attr.py +10 -10
  28. re_common/baselibrary/tools/image_to_pdf.py +61 -61
  29. re_common/baselibrary/tools/java_code_deal.py +139 -139
  30. re_common/baselibrary/tools/javacode.py +79 -79
  31. re_common/baselibrary/tools/mdb_db3.py +48 -48
  32. re_common/baselibrary/tools/merge_file.py +171 -171
  33. re_common/baselibrary/tools/merge_gz_file.py +165 -165
  34. re_common/baselibrary/tools/mhdfstools/down_hdfs_files.py +42 -42
  35. re_common/baselibrary/tools/mhdfstools/hdfst.py +42 -42
  36. re_common/baselibrary/tools/mhdfstools/up_hdfs_files.py +38 -38
  37. re_common/baselibrary/tools/mongo_tools.py +50 -50
  38. re_common/baselibrary/tools/move_file.py +170 -170
  39. re_common/baselibrary/tools/move_mongo/mongo_table_to_file.py +63 -63
  40. re_common/baselibrary/tools/move_mongo/move_mongo_table.py +354 -354
  41. re_common/baselibrary/tools/move_mongo/use_mttf.py +18 -18
  42. re_common/baselibrary/tools/move_mongo/use_mv.py +93 -93
  43. re_common/baselibrary/tools/mpandas/mpandasreadexcel.py +125 -125
  44. re_common/baselibrary/tools/mpandas/pandas_visualization.py +7 -7
  45. re_common/baselibrary/tools/myparsel.py +104 -104
  46. re_common/baselibrary/tools/rename_dir_file.py +37 -37
  47. re_common/baselibrary/tools/sequoiadb_utils.py +398 -398
  48. re_common/baselibrary/tools/split_line_to_many.py +25 -25
  49. re_common/baselibrary/tools/stringtodicts.py +33 -33
  50. re_common/baselibrary/tools/workwechant_bot.py +84 -84
  51. re_common/baselibrary/utils/baseaiohttp.py +296 -296
  52. re_common/baselibrary/utils/baseaiomysql.py +87 -87
  53. re_common/baselibrary/utils/baseallstep.py +191 -191
  54. re_common/baselibrary/utils/baseavro.py +19 -19
  55. re_common/baselibrary/utils/baseboto3.py +291 -291
  56. re_common/baselibrary/utils/basecsv.py +32 -32
  57. re_common/baselibrary/utils/basedict.py +133 -133
  58. re_common/baselibrary/utils/basedir.py +241 -241
  59. re_common/baselibrary/utils/baseencode.py +351 -351
  60. re_common/baselibrary/utils/baseencoding.py +28 -28
  61. re_common/baselibrary/utils/baseesdsl.py +86 -86
  62. re_common/baselibrary/utils/baseexcel.py +264 -264
  63. re_common/baselibrary/utils/baseexcept.py +109 -109
  64. re_common/baselibrary/utils/basefile.py +654 -654
  65. re_common/baselibrary/utils/baseftp.py +214 -214
  66. re_common/baselibrary/utils/basegzip.py +60 -60
  67. re_common/baselibrary/utils/basehdfs.py +135 -135
  68. re_common/baselibrary/utils/basehttpx.py +268 -268
  69. re_common/baselibrary/utils/baseip.py +87 -87
  70. re_common/baselibrary/utils/basejson.py +2 -2
  71. re_common/baselibrary/utils/baselist.py +32 -32
  72. re_common/baselibrary/utils/basemotor.py +190 -190
  73. re_common/baselibrary/utils/basemssql.py +98 -98
  74. re_common/baselibrary/utils/baseodbc.py +113 -113
  75. re_common/baselibrary/utils/basepandas.py +302 -302
  76. re_common/baselibrary/utils/basepeewee.py +11 -11
  77. re_common/baselibrary/utils/basepika.py +180 -180
  78. re_common/baselibrary/utils/basepydash.py +143 -143
  79. re_common/baselibrary/utils/basepymongo.py +230 -230
  80. re_common/baselibrary/utils/basequeue.py +22 -22
  81. re_common/baselibrary/utils/baserar.py +57 -57
  82. re_common/baselibrary/utils/baserequest.py +279 -279
  83. re_common/baselibrary/utils/baseset.py +8 -8
  84. re_common/baselibrary/utils/basesmb.py +403 -403
  85. re_common/baselibrary/utils/basestring.py +382 -382
  86. re_common/baselibrary/utils/basetime.py +320 -320
  87. re_common/baselibrary/utils/baseurl.py +121 -121
  88. re_common/baselibrary/utils/basezip.py +57 -57
  89. re_common/baselibrary/utils/core/__init__.py +7 -7
  90. re_common/baselibrary/utils/core/bottomutils.py +18 -18
  91. re_common/baselibrary/utils/core/mdeprecated.py +327 -327
  92. re_common/baselibrary/utils/core/mlamada.py +16 -16
  93. re_common/baselibrary/utils/core/msginfo.py +25 -25
  94. re_common/baselibrary/utils/core/requests_core.py +103 -103
  95. re_common/baselibrary/utils/fateadm.py +429 -429
  96. re_common/baselibrary/utils/importfun.py +123 -123
  97. re_common/baselibrary/utils/mfaker.py +57 -57
  98. re_common/baselibrary/utils/my_abc/__init__.py +3 -3
  99. re_common/baselibrary/utils/my_abc/better_abc.py +32 -32
  100. re_common/baselibrary/utils/mylogger.py +414 -414
  101. re_common/baselibrary/utils/myredisclient.py +861 -861
  102. re_common/baselibrary/utils/pipupgrade.py +21 -21
  103. re_common/baselibrary/utils/ringlist.py +85 -85
  104. re_common/baselibrary/utils/version_compare.py +36 -36
  105. re_common/baselibrary/utils/ydmhttp.py +126 -126
  106. re_common/facade/lazy_import.py +11 -11
  107. re_common/facade/loggerfacade.py +25 -25
  108. re_common/facade/mysqlfacade.py +467 -467
  109. re_common/facade/now.py +31 -31
  110. re_common/facade/sqlite3facade.py +257 -257
  111. re_common/facade/use/mq_use_facade.py +83 -83
  112. re_common/facade/use/proxy_use_facade.py +19 -19
  113. re_common/libtest/base_dict_test.py +19 -19
  114. re_common/libtest/baseavro_test.py +13 -13
  115. re_common/libtest/basefile_test.py +14 -14
  116. re_common/libtest/basemssql_test.py +77 -77
  117. re_common/libtest/baseodbc_test.py +7 -7
  118. re_common/libtest/basepandas_test.py +38 -38
  119. re_common/libtest/get_attr_test/get_attr_test_settings.py +14 -14
  120. re_common/libtest/get_attr_test/settings.py +54 -54
  121. re_common/libtest/idencode_test.py +53 -53
  122. re_common/libtest/iniconfig_test.py +35 -35
  123. re_common/libtest/ip_test.py +34 -34
  124. re_common/libtest/merge_file_test.py +20 -20
  125. re_common/libtest/mfaker_test.py +8 -8
  126. re_common/libtest/mm3_test.py +31 -31
  127. re_common/libtest/mylogger_test.py +88 -88
  128. re_common/libtest/myparsel_test.py +27 -27
  129. re_common/libtest/mysql_test.py +151 -151
  130. re_common/libtest/pymongo_test.py +21 -21
  131. re_common/libtest/split_test.py +11 -11
  132. re_common/libtest/sqlite3_merge_test.py +5 -5
  133. re_common/libtest/sqlite3_test.py +34 -34
  134. re_common/libtest/tomlconfig_test.py +30 -30
  135. re_common/libtest/use_tools_test/__init__.py +2 -2
  136. re_common/libtest/user/__init__.py +4 -4
  137. re_common/studio/__init__.py +4 -4
  138. re_common/studio/assignment_expressions.py +36 -36
  139. re_common/studio/mydash/test1.py +18 -18
  140. re_common/studio/pydashstudio/first.py +9 -9
  141. re_common/studio/streamlitstudio/first_app.py +65 -65
  142. re_common/studio/streamlitstudio/uber_pickups.py +23 -23
  143. re_common/studio/test.py +18 -18
  144. re_common/v2/baselibrary/business_utils/BusinessStringUtil.py +195 -0
  145. re_common/v2/baselibrary/business_utils/__init__.py +0 -0
  146. re_common/v2/baselibrary/business_utils/rel_tools.py +6 -0
  147. re_common/v2/baselibrary/decorators/utils.py +59 -59
  148. re_common/v2/baselibrary/s3object/baseboto3.py +230 -230
  149. re_common/v2/baselibrary/tools/WeChatRobot.py +95 -79
  150. re_common/v2/baselibrary/tools/ac_ahocorasick.py +75 -75
  151. re_common/v2/baselibrary/tools/dict_tools.py +37 -37
  152. re_common/v2/baselibrary/tools/dolphinscheduler.py +187 -187
  153. re_common/v2/baselibrary/tools/hdfs_data_processer.py +338 -338
  154. re_common/v2/baselibrary/tools/list_tools.py +65 -65
  155. re_common/v2/baselibrary/tools/search_hash_tools.py +54 -54
  156. re_common/v2/baselibrary/tools/text_matcher.py +326 -326
  157. re_common/v2/baselibrary/tools/unionfind_tools.py +60 -60
  158. re_common/v2/baselibrary/utils/BusinessStringUtil.py +196 -196
  159. re_common/v2/baselibrary/utils/author_smi.py +360 -360
  160. re_common/v2/baselibrary/utils/base_string_similarity.py +158 -158
  161. re_common/v2/baselibrary/utils/basedict.py +37 -37
  162. re_common/v2/baselibrary/utils/basehdfs.py +161 -161
  163. re_common/v2/baselibrary/utils/basepika.py +180 -180
  164. re_common/v2/baselibrary/utils/basetime.py +77 -77
  165. re_common/v2/baselibrary/utils/db.py +38 -38
  166. re_common/v2/baselibrary/utils/json_cls.py +16 -16
  167. re_common/v2/baselibrary/utils/mq.py +83 -83
  168. re_common/v2/baselibrary/utils/n_ary_expression_tree.py +243 -243
  169. re_common/v2/baselibrary/utils/string_bool.py +186 -149
  170. re_common/v2/baselibrary/utils/string_clear.py +227 -204
  171. re_common/v2/baselibrary/utils/string_smi.py +18 -18
  172. re_common/v2/baselibrary/utils/stringutils.py +213 -213
  173. re_common/vip/base_step_process.py +11 -11
  174. re_common/vip/baseencodeid.py +90 -90
  175. re_common/vip/changetaskname.py +28 -28
  176. re_common/vip/core_var.py +24 -24
  177. re_common/vip/mmh3Hash.py +89 -89
  178. re_common/vip/proxy/allproxys.py +127 -127
  179. re_common/vip/proxy/allproxys_thread.py +159 -159
  180. re_common/vip/proxy/cnki_proxy.py +153 -153
  181. re_common/vip/proxy/kuaidaili.py +87 -87
  182. re_common/vip/proxy/proxy_all.py +113 -113
  183. re_common/vip/proxy/update_kuaidaili_0.py +42 -42
  184. re_common/vip/proxy/wanfang_proxy.py +152 -152
  185. re_common/vip/proxy/wp_proxy_all.py +181 -181
  186. re_common/vip/read_rawid_to_txt.py +91 -91
  187. re_common/vip/title/__init__.py +5 -5
  188. re_common/vip/title/transform/TransformBookTitleToZt.py +125 -125
  189. re_common/vip/title/transform/TransformConferenceTitleToZt.py +139 -139
  190. re_common/vip/title/transform/TransformCstadTitleToZt.py +195 -195
  191. re_common/vip/title/transform/TransformJournalTitleToZt.py +203 -203
  192. re_common/vip/title/transform/TransformPatentTitleToZt.py +132 -132
  193. re_common/vip/title/transform/TransformRegulationTitleToZt.py +114 -114
  194. re_common/vip/title/transform/TransformStandardTitleToZt.py +135 -135
  195. re_common/vip/title/transform/TransformThesisTitleToZt.py +135 -135
  196. re_common/vip/title/transform/__init__.py +10 -10
  197. {re_common-10.0.22.dist-info → re_common-10.0.24.dist-info}/LICENSE +201 -201
  198. {re_common-10.0.22.dist-info → re_common-10.0.24.dist-info}/METADATA +16 -16
  199. re_common-10.0.24.dist-info/RECORD +230 -0
  200. {re_common-10.0.22.dist-info → re_common-10.0.24.dist-info}/WHEEL +1 -1
  201. re_common-10.0.22.dist-info/RECORD +0 -227
  202. {re_common-10.0.22.dist-info → re_common-10.0.24.dist-info}/top_level.txt +0 -0
@@ -1,21 +1,21 @@
1
- # coding=utf-8
2
- # pip v10.0.0以上版本需要导入下面的包
3
- from subprocess import call
4
-
5
- from pip._internal.utils.misc import get_installed_distributions
6
-
7
- '''
8
- 用于升级python的扩展包一次性升级所有另外提供命令行方式
9
- pip install pip-review
10
- pip-review --local --interactive
11
-
12
- 环境迁移
13
- pip freeze > requirements.txt
14
-
15
- pip uninstall -ry requirements.txt
16
-
17
- pip install -r requirements.txt
18
- '''
19
- for dist in get_installed_distributions():
20
- call("pip install --upgrade " + dist.project_name, shell=True)
21
-
1
+ # coding=utf-8
2
+ # pip v10.0.0以上版本需要导入下面的包
3
+ from subprocess import call
4
+
5
+ from pip._internal.utils.misc import get_installed_distributions
6
+
7
+ '''
8
+ 用于升级python的扩展包一次性升级所有另外提供命令行方式
9
+ pip install pip-review
10
+ pip-review --local --interactive
11
+
12
+ 环境迁移
13
+ pip freeze > requirements.txt
14
+
15
+ pip uninstall -ry requirements.txt
16
+
17
+ pip install -r requirements.txt
18
+ '''
19
+ for dist in get_installed_distributions():
20
+ call("pip install --upgrade " + dist.project_name, shell=True)
21
+
@@ -1,85 +1,85 @@
1
- import random
2
-
3
-
4
- class RingList(object):
5
- def __init__(self):
6
- """
7
- 环形列表初始化
8
- """
9
- self.objlist = list()
10
- # 列表中数据总量
11
- self.num = 0
12
- self.index = 0
13
-
14
- def append(self, p_object):
15
- """
16
-
17
- :param p_object: 增加到环形列表的元素
18
- :return:
19
- """
20
- self.num += 1
21
- self.objlist.append(p_object)
22
-
23
- def pop(self, index=None):
24
- """
25
-
26
- :param index: 如果给index值,将会返回固定的该索引位置的值;如果不给,将会循环输出该列表的值
27
- :return:
28
- """
29
- if self.num == 0:
30
- return None
31
- if index is not None:
32
- self.index = index
33
- obj = self.objlist[self.index % self.num]
34
- self.index += 1
35
- return obj
36
-
37
- def exist(self, mstring):
38
- """
39
-
40
- :param mstring: 需要验证是否存在的字符串
41
- :return:
42
- """
43
- if mstring:
44
- if mstring in self.objlist:
45
- return True
46
- else:
47
- return False
48
- else:
49
- print("传入的string为空的")
50
- return False
51
-
52
- def remove(self, mstring):
53
- """
54
-
55
- :param mstring: 需要删除的字符串
56
- :return:
57
- """
58
- if mstring:
59
- if mstring in self.objlist:
60
- self.objlist.remove(mstring)
61
- self.num = self.num - 1
62
-
63
- def length(self):
64
- """
65
- 获取列表当前长度 及环型列表现在的长度
66
- :return:
67
- """
68
- return len(self.objlist)
69
-
70
- def get_random(self):
71
- """
72
- 获取随机代理
73
- :return:
74
- """
75
- return random.choice(self.objlist)
76
-
77
- # if __name__ == "__main__":
78
- # ringList = RingList()
79
- # for i in range(1,100):
80
- # ringList.append(i)
81
- # # print(ringList.objlist)
82
- # # print(ringList.num)
83
- # # print()
84
- # while True:
85
- # print(ringList.pop())
1
+ import random
2
+
3
+
4
+ class RingList(object):
5
+ def __init__(self):
6
+ """
7
+ 环形列表初始化
8
+ """
9
+ self.objlist = list()
10
+ # 列表中数据总量
11
+ self.num = 0
12
+ self.index = 0
13
+
14
+ def append(self, p_object):
15
+ """
16
+
17
+ :param p_object: 增加到环形列表的元素
18
+ :return:
19
+ """
20
+ self.num += 1
21
+ self.objlist.append(p_object)
22
+
23
+ def pop(self, index=None):
24
+ """
25
+
26
+ :param index: 如果给index值,将会返回固定的该索引位置的值;如果不给,将会循环输出该列表的值
27
+ :return:
28
+ """
29
+ if self.num == 0:
30
+ return None
31
+ if index is not None:
32
+ self.index = index
33
+ obj = self.objlist[self.index % self.num]
34
+ self.index += 1
35
+ return obj
36
+
37
+ def exist(self, mstring):
38
+ """
39
+
40
+ :param mstring: 需要验证是否存在的字符串
41
+ :return:
42
+ """
43
+ if mstring:
44
+ if mstring in self.objlist:
45
+ return True
46
+ else:
47
+ return False
48
+ else:
49
+ print("传入的string为空的")
50
+ return False
51
+
52
+ def remove(self, mstring):
53
+ """
54
+
55
+ :param mstring: 需要删除的字符串
56
+ :return:
57
+ """
58
+ if mstring:
59
+ if mstring in self.objlist:
60
+ self.objlist.remove(mstring)
61
+ self.num = self.num - 1
62
+
63
+ def length(self):
64
+ """
65
+ 获取列表当前长度 及环型列表现在的长度
66
+ :return:
67
+ """
68
+ return len(self.objlist)
69
+
70
+ def get_random(self):
71
+ """
72
+ 获取随机代理
73
+ :return:
74
+ """
75
+ return random.choice(self.objlist)
76
+
77
+ # if __name__ == "__main__":
78
+ # ringList = RingList()
79
+ # for i in range(1,100):
80
+ # ringList.append(i)
81
+ # # print(ringList.objlist)
82
+ # # print(ringList.num)
83
+ # # print()
84
+ # while True:
85
+ # print(ringList.pop())
@@ -1,36 +1,36 @@
1
- def compare(a: str, b: str):
2
- '''
3
- 比较两个版本的大小,需要按.分割后比较各个部分的大小
4
- :return 返回较大的版本号
5
- '''
6
- lena = len(a.split('.')) # 获取版本字符串的组成部分
7
- lenb = len(b.split('.'))
8
- a2 = a + '.0' * (lenb-lena) # b比a长的时候补全a
9
- b2 = b + '.0' * (lena-lenb)
10
- for i in range(max(lena, lenb)): # 对每个部分进行比较,需要转化为整数进行比较
11
- if int(a2.split('.')[i]) > int(b2.split('.')[i]):
12
- return a
13
- elif int(a2.split('.')[i]) < int(b2.split('.')[i]):
14
- return b
15
- else: # 比较到最后都相等,则返回第一个版本
16
- if i == max(lena, lenb)-1:
17
- return a
18
-
19
-
20
- def compare_bool(a: str, b: str):
21
- '''
22
- 比较两个版本的大小,需要按.分割后比较各个部分的大小
23
- :return 如果 a >= b 返回true
24
- '''
25
- lena = len(a.split('.')) # 获取版本字符串的组成部分
26
- lenb = len(b.split('.'))
27
- a2 = a + '.0' * (lenb-lena) # b比a长的时候补全a
28
- b2 = b + '.0' * (lena-lenb)
29
- for i in range(max(lena, lenb)): # 对每个部分进行比较,需要转化为整数进行比较
30
- if int(a2.split('.')[i]) > int(b2.split('.')[i]):
31
- return True
32
- elif int(a2.split('.')[i]) < int(b2.split('.')[i]):
33
- return False
34
- else: # 比较到最后都相等,则返回第一个版本
35
- if i == max(lena, lenb)-1:
36
- return True
1
+ def compare(a: str, b: str):
2
+ '''
3
+ 比较两个版本的大小,需要按.分割后比较各个部分的大小
4
+ :return 返回较大的版本号
5
+ '''
6
+ lena = len(a.split('.')) # 获取版本字符串的组成部分
7
+ lenb = len(b.split('.'))
8
+ a2 = a + '.0' * (lenb-lena) # b比a长的时候补全a
9
+ b2 = b + '.0' * (lena-lenb)
10
+ for i in range(max(lena, lenb)): # 对每个部分进行比较,需要转化为整数进行比较
11
+ if int(a2.split('.')[i]) > int(b2.split('.')[i]):
12
+ return a
13
+ elif int(a2.split('.')[i]) < int(b2.split('.')[i]):
14
+ return b
15
+ else: # 比较到最后都相等,则返回第一个版本
16
+ if i == max(lena, lenb)-1:
17
+ return a
18
+
19
+
20
+ def compare_bool(a: str, b: str):
21
+ '''
22
+ 比较两个版本的大小,需要按.分割后比较各个部分的大小
23
+ :return 如果 a >= b 返回true
24
+ '''
25
+ lena = len(a.split('.')) # 获取版本字符串的组成部分
26
+ lenb = len(b.split('.'))
27
+ a2 = a + '.0' * (lenb-lena) # b比a长的时候补全a
28
+ b2 = b + '.0' * (lena-lenb)
29
+ for i in range(max(lena, lenb)): # 对每个部分进行比较,需要转化为整数进行比较
30
+ if int(a2.split('.')[i]) > int(b2.split('.')[i]):
31
+ return True
32
+ elif int(a2.split('.')[i]) < int(b2.split('.')[i]):
33
+ return False
34
+ else: # 比较到最后都相等,则返回第一个版本
35
+ if i == max(lena, lenb)-1:
36
+ return True
@@ -1,126 +1,126 @@
1
- import json
2
- import requests
3
- import time
4
-
5
-
6
- ######################################################################
7
-
8
- class YDMHttp(object):
9
- """
10
- 云打码已废弃,(跑路)
11
- """
12
-
13
- def __init__(self, username='office', password='officeHelper$123', appid=1, appkey='22cc5376925e9387a23cf797cb9ba745'):
14
- self.username = username
15
- self.password = password
16
- self.appid = str(appid)
17
- self.appkey = appkey
18
- self.apiurl = 'http://api.yundama.com/api.php'
19
-
20
- def request(self, fields, files=[]):
21
- response = self.post_url(self.apiurl, fields, files)
22
- response = json.loads(response)
23
- return response
24
-
25
- def balance(self):
26
- data = {'method': 'balance', 'username': self.username, 'password': self.password, 'appid': self.appid,
27
- 'appkey': self.appkey}
28
- response = self.request(data)
29
- if (response):
30
- if (response['ret'] and response['ret'] < 0):
31
- return response['ret']
32
- else:
33
- return response['balance']
34
- else:
35
- return -9001
36
-
37
- def login(self):
38
- data = {'method': 'login', 'username': self.username, 'password': self.password, 'appid': self.appid,
39
- 'appkey': self.appkey}
40
- response = self.request(data)
41
- if (response):
42
- if (response['ret'] and response['ret'] < 0):
43
- return response['ret']
44
- else:
45
- return response['uid']
46
- else:
47
- return -9001
48
-
49
- def upload(self, filename, codetype, timeout):
50
- data = {'method': 'upload', 'username': self.username, 'password': self.password, 'appid': self.appid,
51
- 'appkey': self.appkey, 'codetype': str(codetype), 'timeout': str(timeout)}
52
- file = {'file': filename}
53
- response = self.request(data, file)
54
- if (response):
55
- if (response['ret'] and response['ret'] < 0):
56
- return response['ret']
57
- else:
58
- return response['cid']
59
- else:
60
- return -9001
61
-
62
- def result(self, cid):
63
- data = {'method': 'result', 'username': self.username, 'password': self.password, 'appid': self.appid,
64
- 'appkey': self.appkey, 'cid': str(cid)}
65
- response = self.request(data)
66
- return response and response['text'] or ''
67
-
68
- def decode(self, filename, codetype, timeout):
69
- cid = self.upload(filename, codetype, timeout)
70
- if (cid > 0):
71
- for i in range(0, timeout):
72
- result = self.result(cid)
73
- if (result != ''):
74
- return cid, result
75
- else:
76
- time.sleep(1)
77
- return -3003, ''
78
- else:
79
- return cid, ''
80
-
81
- def report(self, cid):
82
- data = {'method': 'report', 'username': self.username, 'password': self.password, 'appid': self.appid,
83
- 'appkey': self.appkey, 'cid': str(cid), 'flag': '0'}
84
- response = self.request(data)
85
- if (response):
86
- return response['ret']
87
- else:
88
- return -9001
89
-
90
- def post_url(self, url, fields, files=[]):
91
- # 在传入二进制时,下面两行官方代码需注释掉
92
- # for key in files:
93
- # files[key] = open(files[key], 'rb');
94
- res = requests.post(url, files=files, data=fields)
95
- return res.text
96
-
97
-
98
- ######################################################################
99
-
100
- def Img2Code(self, content, codetype='1004', timeout=5):
101
- """
102
-
103
- :param content: 图片文件
104
- :param codetype: 验证码类型,
105
- 例:1004表示4位字母数字,不同类型收费不同。请准确填写,否则影响识别率。
106
- 在此查询所有类型 http://www.yundama.com/price.html
107
- :param timeout: 超时时间,秒
108
- :return: 验证码
109
- """
110
-
111
- # 登陆云打码
112
- uid = self.login()
113
- print('uid: %s' % uid)
114
-
115
- # 查询余额
116
- balance = self.balance()
117
- print('balance: %s' % balance)
118
- if int(balance) < 100000:
119
- print('Warning: Need Money !!!!!!!!!!!!!!!!!!!!!!!!!')
120
-
121
- # 开始识别,图片路径,验证码类型ID,超时时间(秒),识别结果
122
- cid, result = self.decode(content, codetype, timeout)
123
- print('cid: %s, result: %s' % (cid, result))
124
- return result
125
-
126
-
1
+ import json
2
+ import requests
3
+ import time
4
+
5
+
6
+ ######################################################################
7
+
8
+ class YDMHttp(object):
9
+ """
10
+ 云打码已废弃,(跑路)
11
+ """
12
+
13
+ def __init__(self, username='office', password='officeHelper$123', appid=1, appkey='22cc5376925e9387a23cf797cb9ba745'):
14
+ self.username = username
15
+ self.password = password
16
+ self.appid = str(appid)
17
+ self.appkey = appkey
18
+ self.apiurl = 'http://api.yundama.com/api.php'
19
+
20
+ def request(self, fields, files=[]):
21
+ response = self.post_url(self.apiurl, fields, files)
22
+ response = json.loads(response)
23
+ return response
24
+
25
+ def balance(self):
26
+ data = {'method': 'balance', 'username': self.username, 'password': self.password, 'appid': self.appid,
27
+ 'appkey': self.appkey}
28
+ response = self.request(data)
29
+ if (response):
30
+ if (response['ret'] and response['ret'] < 0):
31
+ return response['ret']
32
+ else:
33
+ return response['balance']
34
+ else:
35
+ return -9001
36
+
37
+ def login(self):
38
+ data = {'method': 'login', 'username': self.username, 'password': self.password, 'appid': self.appid,
39
+ 'appkey': self.appkey}
40
+ response = self.request(data)
41
+ if (response):
42
+ if (response['ret'] and response['ret'] < 0):
43
+ return response['ret']
44
+ else:
45
+ return response['uid']
46
+ else:
47
+ return -9001
48
+
49
+ def upload(self, filename, codetype, timeout):
50
+ data = {'method': 'upload', 'username': self.username, 'password': self.password, 'appid': self.appid,
51
+ 'appkey': self.appkey, 'codetype': str(codetype), 'timeout': str(timeout)}
52
+ file = {'file': filename}
53
+ response = self.request(data, file)
54
+ if (response):
55
+ if (response['ret'] and response['ret'] < 0):
56
+ return response['ret']
57
+ else:
58
+ return response['cid']
59
+ else:
60
+ return -9001
61
+
62
+ def result(self, cid):
63
+ data = {'method': 'result', 'username': self.username, 'password': self.password, 'appid': self.appid,
64
+ 'appkey': self.appkey, 'cid': str(cid)}
65
+ response = self.request(data)
66
+ return response and response['text'] or ''
67
+
68
+ def decode(self, filename, codetype, timeout):
69
+ cid = self.upload(filename, codetype, timeout)
70
+ if (cid > 0):
71
+ for i in range(0, timeout):
72
+ result = self.result(cid)
73
+ if (result != ''):
74
+ return cid, result
75
+ else:
76
+ time.sleep(1)
77
+ return -3003, ''
78
+ else:
79
+ return cid, ''
80
+
81
+ def report(self, cid):
82
+ data = {'method': 'report', 'username': self.username, 'password': self.password, 'appid': self.appid,
83
+ 'appkey': self.appkey, 'cid': str(cid), 'flag': '0'}
84
+ response = self.request(data)
85
+ if (response):
86
+ return response['ret']
87
+ else:
88
+ return -9001
89
+
90
+ def post_url(self, url, fields, files=[]):
91
+ # 在传入二进制时,下面两行官方代码需注释掉
92
+ # for key in files:
93
+ # files[key] = open(files[key], 'rb');
94
+ res = requests.post(url, files=files, data=fields)
95
+ return res.text
96
+
97
+
98
+ ######################################################################
99
+
100
+ def Img2Code(self, content, codetype='1004', timeout=5):
101
+ """
102
+
103
+ :param content: 图片文件
104
+ :param codetype: 验证码类型,
105
+ 例:1004表示4位字母数字,不同类型收费不同。请准确填写,否则影响识别率。
106
+ 在此查询所有类型 http://www.yundama.com/price.html
107
+ :param timeout: 超时时间,秒
108
+ :return: 验证码
109
+ """
110
+
111
+ # 登陆云打码
112
+ uid = self.login()
113
+ print('uid: %s' % uid)
114
+
115
+ # 查询余额
116
+ balance = self.balance()
117
+ print('balance: %s' % balance)
118
+ if int(balance) < 100000:
119
+ print('Warning: Need Money !!!!!!!!!!!!!!!!!!!!!!!!!')
120
+
121
+ # 开始识别,图片路径,验证码类型ID,超时时间(秒),识别结果
122
+ cid, result = self.decode(content, codetype, timeout)
123
+ print('cid: %s, result: %s' % (cid, result))
124
+ return result
125
+
126
+
@@ -1,11 +1,11 @@
1
- # 延迟导入 主要是为了使用时不去安装多余的
2
-
3
-
4
- def get_TomlConfig():
5
- from re_common.baselibrary.readconfig.toml_config import TomlConfig
6
- return TomlConfig
7
-
8
-
9
- def get_streamlogger():
10
- from re_common.baselibrary import MLogger
11
- return MLogger().streamlogger
1
+ # 延迟导入 主要是为了使用时不去安装多余的
2
+
3
+
4
+ def get_TomlConfig():
5
+ from re_common.baselibrary.readconfig.toml_config import TomlConfig
6
+ return TomlConfig
7
+
8
+
9
+ def get_streamlogger():
10
+ from re_common.baselibrary import MLogger
11
+ return MLogger().streamlogger
@@ -1,25 +1,25 @@
1
- """
2
- 提供logger的使用外观 外观模式
3
- """
4
- from re_common.baselibrary import MLogger
5
-
6
-
7
- def get_streamlogger():
8
- """
9
- 提供一个输出流的logger
10
- :return:
11
- """
12
- return MLogger().streamlogger
13
-
14
-
15
- def get_filelogger(filedir):
16
- """
17
- 文件流的logger
18
- :param filedir:
19
- :return:
20
- """
21
- return MLogger(filedir).filelogger
22
-
23
-
24
- def get_timerotatingfilelogger(filedir, fileter=None):
25
- return MLogger(filedir, fileter).timerotatingfilelogger
1
+ """
2
+ 提供logger的使用外观 外观模式
3
+ """
4
+ from re_common.baselibrary import MLogger
5
+
6
+
7
+ def get_streamlogger():
8
+ """
9
+ 提供一个输出流的logger
10
+ :return:
11
+ """
12
+ return MLogger().streamlogger
13
+
14
+
15
+ def get_filelogger(filedir):
16
+ """
17
+ 文件流的logger
18
+ :param filedir:
19
+ :return:
20
+ """
21
+ return MLogger(filedir).filelogger
22
+
23
+
24
+ def get_timerotatingfilelogger(filedir, fileter=None):
25
+ return MLogger(filedir, fileter).timerotatingfilelogger