cobweb-launcher 1.3.7__tar.gz → 1.3.9__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.
Files changed (46) hide show
  1. {cobweb-launcher-1.3.7/cobweb_launcher.egg-info → cobweb-launcher-1.3.9}/PKG-INFO +1 -1
  2. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/base/__init__.py +9 -9
  3. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/base/dotting.py +1 -1
  4. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/schedulers/scheduler_api.py +4 -2
  5. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/schedulers/scheduler_redis.py +4 -2
  6. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/utils/oss.py +7 -7
  7. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9/cobweb_launcher.egg-info}/PKG-INFO +1 -1
  8. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/setup.py +1 -1
  9. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/LICENSE +0 -0
  10. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/README.md +0 -0
  11. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/__init__.py +0 -0
  12. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/base/basic.py +0 -0
  13. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/base/common_queue.py +0 -0
  14. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/base/item.py +0 -0
  15. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/base/log.py +0 -0
  16. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/base/request.py +0 -0
  17. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/base/response.py +0 -0
  18. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/base/seed.py +0 -0
  19. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/constant.py +0 -0
  20. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/crawlers/__init__.py +0 -0
  21. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/crawlers/crawler.py +0 -0
  22. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/db/__init__.py +0 -0
  23. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/db/api_db.py +0 -0
  24. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/db/redis_db.py +0 -0
  25. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/exceptions/__init__.py +0 -0
  26. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/exceptions/oss_db_exception.py +0 -0
  27. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/launchers/__init__.py +0 -0
  28. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/launchers/launcher.py +0 -0
  29. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/launchers/launcher_air.py +0 -0
  30. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/launchers/launcher_api.py +0 -0
  31. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/launchers/launcher_pro.py +0 -0
  32. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/pipelines/__init__.py +0 -0
  33. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/pipelines/pipeline.py +0 -0
  34. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/pipelines/pipeline_console.py +0 -0
  35. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/pipelines/pipeline_loghub.py +0 -0
  36. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/schedulers/__init__.py +0 -0
  37. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/setting.py +0 -0
  38. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/utils/__init__.py +0 -0
  39. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/utils/bloom.py +0 -0
  40. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb/utils/tools.py +0 -0
  41. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb_launcher.egg-info/SOURCES.txt +0 -0
  42. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb_launcher.egg-info/dependency_links.txt +0 -0
  43. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb_launcher.egg-info/requires.txt +0 -0
  44. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/cobweb_launcher.egg-info/top_level.txt +0 -0
  45. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/setup.cfg +0 -0
  46. {cobweb-launcher-1.3.7 → cobweb-launcher-1.3.9}/test/test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cobweb-launcher
3
- Version: 1.3.7
3
+ Version: 1.3.9
4
4
  Summary: spider_hole
5
5
  Home-page: https://github.com/Juannie-PP/cobweb
6
6
  Author: Juannie-PP
@@ -1,3 +1,4 @@
1
+ import os
1
2
  import time
2
3
  import traceback
3
4
  import threading
@@ -12,7 +13,7 @@ from .basic import Seed, Request, Response
12
13
  from .item import BaseItem, ConsoleItem
13
14
  # from .seed import Seed
14
15
  from .log import logger
15
- # from .dotting import LoghubDot
16
+ from .dotting import LoghubDot
16
17
 
17
18
 
18
19
  class TaskQueue:
@@ -25,8 +26,7 @@ class TaskQueue:
25
26
  DONE = Queue() # 下载完成队列
26
27
  UPLOAD = Queue() # 任务上传队列
27
28
  DELETE = Queue() # 任务删除队列
28
-
29
- # DOT = LoghubDot()
29
+ DOT = LoghubDot()
30
30
 
31
31
  @staticmethod
32
32
  def is_empty():
@@ -43,6 +43,7 @@ class TaskQueue:
43
43
  @staticmethod
44
44
  def process_task(it: Union[Seed, Request, Response, BaseItem], crawler_func: Callable):
45
45
  try:
46
+ start_time = time.time()
46
47
  iterators = crawler_func(it)
47
48
  if not isgenerator(iterators):
48
49
  raise TypeError(f"{crawler_func.__name__} function isn't a generator")
@@ -57,12 +58,11 @@ class TaskQueue:
57
58
  TaskQueue.SEED.push(tk)
58
59
  else:
59
60
  raise TypeError(f"{crawler_func.__name__} function return type isn't supported")
60
- # TaskQueue.DOT.build(
61
- # topic=f"{self.project}:{self.task}",
62
- # cost_time=end_time - start_time,
63
- # **download_item.to_dict
64
- # )
65
- # todo: 数据打点
61
+ TaskQueue.DOT.build(
62
+ topic=f"{os.getenv('PROJECT')}:{os.getenv('TASK')}",
63
+ cost_time=round(time.time() - start_time, 2),
64
+ **tk.to_dict
65
+ )
66
66
  except Exception as e:
67
67
  it.params.retry += 1
68
68
  if isinstance(it, Request):
@@ -27,7 +27,7 @@ class LoghubDot:
27
27
  log_items.append(log_item)
28
28
  request = PutLogsRequest(
29
29
  project="databee-download-log",
30
- logstore="cobweb_log",
30
+ logstore="download-logging",
31
31
  topic=topic,
32
32
  logitems=log_items,
33
33
  compress=True
@@ -59,10 +59,12 @@ class ApiScheduler:
59
59
  def refresh(self, key, items: dict[str, int]):
60
60
  refresh_time = int(time.time())
61
61
  its = {k: -refresh_time - v / 1000 for k, v in items}
62
- self._db.zadd(key, item=its, xx=True)
62
+ if its:
63
+ self._db.zadd(key, item=its, xx=True)
63
64
 
64
65
  def delete(self, key, values):
65
- self._db.zrem(key, *values)
66
+ if values:
67
+ self._db.zrem(key, *values)
66
68
 
67
69
 
68
70
 
@@ -59,10 +59,12 @@ class RedisScheduler:
59
59
  def refresh(self, key, items: dict[str, int]):
60
60
  refresh_time = int(time.time())
61
61
  its = {k: -refresh_time - v / 1000 for k, v in items}
62
- self._db.zadd(key, item=its, xx=True)
62
+ if its:
63
+ self._db.zadd(key, item=its, xx=True)
63
64
 
64
65
  def delete(self, key, values):
65
- self._db.zrem(key, *values)
66
+ if values:
67
+ self._db.zrem(key, *values)
66
68
 
67
69
 
68
70
 
@@ -1,9 +1,9 @@
1
- from typing import List
1
+ # from typing import List
2
2
  from cobweb import setting
3
3
  from requests import Response
4
4
  from oss2 import Auth, Bucket, models, PartIterator
5
5
  from cobweb.exceptions import oss_db_exception
6
- from cobweb.base.decorators import decorator_oss_db
6
+ from cobweb.base import Decorators
7
7
 
8
8
 
9
9
  class OssUtil:
@@ -40,17 +40,17 @@ class OssUtil:
40
40
  def head(self, key: str) -> models.HeadObjectResult:
41
41
  return self._client.head_object(key)
42
42
 
43
- @decorator_oss_db(exception=oss_db_exception.OssDBInitPartError)
43
+ @Decorators.decorator_oss_db(exception=oss_db_exception.OssDBInitPartError)
44
44
  def init_part(self, key) -> models.InitMultipartUploadResult:
45
45
  """初始化分片上传"""
46
46
  return self._client.init_multipart_upload(key)
47
47
 
48
- @decorator_oss_db(exception=oss_db_exception.OssDBPutObjError)
48
+ @Decorators.decorator_oss_db(exception=oss_db_exception.OssDBPutObjError)
49
49
  def put(self, key, data) -> models.PutObjectResult:
50
50
  """文件上传"""
51
51
  return self._client.put_object(key, data)
52
52
 
53
- @decorator_oss_db(exception=oss_db_exception.OssDBPutPartError)
53
+ @Decorators.decorator_oss_db(exception=oss_db_exception.OssDBPutPartError)
54
54
  def put_part(self, key, upload_id, position, data) -> models.PutObjectResult:
55
55
  """分片上传"""
56
56
  return self._client.upload_part(key, upload_id, position, data)
@@ -59,13 +59,13 @@ class OssUtil:
59
59
  """获取分片列表"""
60
60
  return [part_info for part_info in PartIterator(self._client, key, upload_id)]
61
61
 
62
- @decorator_oss_db(exception=oss_db_exception.OssDBMergeError)
62
+ @Decorators.decorator_oss_db(exception=oss_db_exception.OssDBMergeError)
63
63
  def merge(self, key, upload_id, parts=None) -> models.PutObjectResult:
64
64
  """合并分片"""
65
65
  headers = None if parts else {"x-oss-complete-all": "yes"}
66
66
  return self._client.complete_multipart_upload(key, upload_id, parts, headers=headers)
67
67
 
68
- @decorator_oss_db(exception=oss_db_exception.OssDBAppendObjError)
68
+ @Decorators.decorator_oss_db(exception=oss_db_exception.OssDBAppendObjError)
69
69
  def append(self, key, position, data) -> models.AppendObjectResult:
70
70
  """追加上传"""
71
71
  return self._client.append_object(key, position, data)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cobweb-launcher
3
- Version: 1.3.7
3
+ Version: 1.3.9
4
4
  Summary: spider_hole
5
5
  Home-page: https://github.com/Juannie-PP/cobweb
6
6
  Author: Juannie-PP
@@ -5,7 +5,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
5
5
 
6
6
  setup(
7
7
  name="cobweb-launcher",
8
- version="1.3.7",
8
+ version="1.3.9",
9
9
  packages=find_packages(),
10
10
  url="https://github.com/Juannie-PP/cobweb",
11
11
  license="MIT",
File without changes