reyfetch 1.0.40__py3-none-any.whl → 1.0.42__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.
- reyfetch/__init__.py +1 -1
- reyfetch/rali.py +10 -10
- reyfetch/rall.py +1 -1
- reyfetch/rbaidu.py +9 -9
- reyfetch/rbase.py +6 -6
- reyfetch/rdouban.py +14 -14
- reyfetch/rgeneral.py +1 -1
- reyfetch/rsina.py +1 -1
- reyfetch/rtoutiao.py +1 -1
- reyfetch/rweibo.py +2 -2
- {reyfetch-1.0.40.dist-info → reyfetch-1.0.42.dist-info}/METADATA +1 -1
- reyfetch-1.0.42.dist-info/RECORD +14 -0
- reyfetch-1.0.40.dist-info/RECORD +0 -14
- {reyfetch-1.0.40.dist-info → reyfetch-1.0.42.dist-info}/WHEEL +0 -0
- {reyfetch-1.0.40.dist-info → reyfetch-1.0.42.dist-info}/licenses/LICENSE +0 -0
reyfetch/__init__.py
CHANGED
reyfetch/rali.py
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
# -*- coding: utf-8 -*-
|
3
3
|
|
4
4
|
"""
|
5
|
-
@Time : 2025-07-17
|
5
|
+
@Time : 2025-07-17
|
6
6
|
@Author : Rey
|
7
7
|
@Contact : reyxbo@163.com
|
8
8
|
@Explain : Ali Web fetch methods.
|
@@ -12,7 +12,7 @@
|
|
12
12
|
from typing import Any, TypedDict, NotRequired, Literal, overload, NoReturn
|
13
13
|
from collections.abc import Hashable, Iterable, Generator
|
14
14
|
from json import loads as json_loads
|
15
|
-
from reydb import rorm,
|
15
|
+
from reydb import rorm, DatabaseEngine
|
16
16
|
from reykit.rbase import throw
|
17
17
|
from reykit.rnet import request as reykit_request
|
18
18
|
from reykit.rtime import now
|
@@ -98,7 +98,7 @@ class FetchRequestAliQwen(FetchRequestAli, FetchRequestWithDatabase):
|
|
98
98
|
def __init__(
|
99
99
|
self,
|
100
100
|
key: str,
|
101
|
-
|
101
|
+
db_engine: DatabaseEngine | None = None,
|
102
102
|
system: str | None = None,
|
103
103
|
rand: float = 0.5,
|
104
104
|
history_max_char: int | None = None,
|
@@ -110,7 +110,7 @@ class FetchRequestAliQwen(FetchRequestAli, FetchRequestWithDatabase):
|
|
110
110
|
Parameters
|
111
111
|
----------
|
112
112
|
key : API key.
|
113
|
-
|
113
|
+
db_engine: Database engine, insert request record to table.
|
114
114
|
system : AI system description.
|
115
115
|
rand : AI reply randomness, value range is `[0,1]`.
|
116
116
|
history_max_char : History messages record maximum character count.
|
@@ -124,7 +124,7 @@ class FetchRequestAliQwen(FetchRequestAli, FetchRequestWithDatabase):
|
|
124
124
|
# Build.
|
125
125
|
self.key = key
|
126
126
|
self.auth = 'Bearer ' + key
|
127
|
-
self.
|
127
|
+
self.db_engine = db_engine
|
128
128
|
self.system = system
|
129
129
|
self.rand = rand
|
130
130
|
self.history_max_char = history_max_char
|
@@ -135,7 +135,7 @@ class FetchRequestAliQwen(FetchRequestAli, FetchRequestWithDatabase):
|
|
135
135
|
self.db_record = FetchRequestDatabaseRecord(self, 'ali_qwen')
|
136
136
|
|
137
137
|
## Build Database.
|
138
|
-
if self.
|
138
|
+
if self.db_engine is not None:
|
139
139
|
self.build_db()
|
140
140
|
|
141
141
|
|
@@ -831,11 +831,11 @@ class FetchRequestAliQwen(FetchRequestAli, FetchRequestWithDatabase):
|
|
831
831
|
"""
|
832
832
|
|
833
833
|
# Check.
|
834
|
-
if self.
|
835
|
-
throw(ValueError, self.
|
834
|
+
if self.db_engine is None:
|
835
|
+
throw(ValueError, self.db_engine)
|
836
836
|
|
837
837
|
# Parameter.
|
838
|
-
database = self.
|
838
|
+
database = self.db_engine.database
|
839
839
|
|
840
840
|
## Table.
|
841
841
|
tables = [DatabaseORMTableAliQwen]
|
@@ -957,7 +957,7 @@ class FetchRequestAliQwen(FetchRequestAli, FetchRequestWithDatabase):
|
|
957
957
|
]
|
958
958
|
|
959
959
|
# Build.
|
960
|
-
self.
|
960
|
+
self.db_engine.build.build(tables=tables, views_stats=views_stats, skip=True)
|
961
961
|
|
962
962
|
|
963
963
|
def insert_db(self, record: ChatRecord) -> None:
|
reyfetch/rall.py
CHANGED
reyfetch/rbaidu.py
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
# -*- coding: utf-8 -*-
|
3
3
|
|
4
4
|
"""
|
5
|
-
@Time : 2024-01-11
|
5
|
+
@Time : 2024-01-11
|
6
6
|
@Author : Rey
|
7
7
|
@Contact : reyxbo@163.com
|
8
8
|
@Explain : Baidu Web fetch methods.
|
@@ -11,7 +11,7 @@
|
|
11
11
|
|
12
12
|
from typing import TypedDict
|
13
13
|
from enum import StrEnum
|
14
|
-
from reydb import rorm,
|
14
|
+
from reydb import rorm, DatabaseEngine
|
15
15
|
from reykit.rbase import throw
|
16
16
|
from reykit.rnet import request as reykit_request
|
17
17
|
from reykit.ros import get_md5
|
@@ -119,7 +119,7 @@ class FetchRequestBaiduTranslate(FetchRequestBaidu, FetchRequestWithDatabase):
|
|
119
119
|
self,
|
120
120
|
appid: str,
|
121
121
|
appkey: str,
|
122
|
-
|
122
|
+
db_engine: DatabaseEngine | None = None,
|
123
123
|
max_len: int = 6000
|
124
124
|
) -> None:
|
125
125
|
"""
|
@@ -136,14 +136,14 @@ class FetchRequestBaiduTranslate(FetchRequestBaidu, FetchRequestWithDatabase):
|
|
136
136
|
# Build.
|
137
137
|
self.appid = appid
|
138
138
|
self.appkey = appkey
|
139
|
-
self.
|
139
|
+
self.db_engine = db_engine
|
140
140
|
self.max_len = max_len
|
141
141
|
|
142
142
|
# Database.
|
143
143
|
self.db_record = FetchRequestDatabaseRecord(self, 'baidu_trans')
|
144
144
|
|
145
145
|
## Build Database.
|
146
|
-
if self.
|
146
|
+
if self.db_engine is not None:
|
147
147
|
self.build_db()
|
148
148
|
|
149
149
|
|
@@ -328,11 +328,11 @@ class FetchRequestBaiduTranslate(FetchRequestBaidu, FetchRequestWithDatabase):
|
|
328
328
|
"""
|
329
329
|
|
330
330
|
# Check.
|
331
|
-
if self.
|
332
|
-
throw(ValueError, self.
|
331
|
+
if self.db_engine is None:
|
332
|
+
throw(ValueError, self.db_engine)
|
333
333
|
|
334
334
|
# Parameter.
|
335
|
-
database = self.
|
335
|
+
database = self.db_engine.database
|
336
336
|
|
337
337
|
## Table.
|
338
338
|
tables = [DatabaseORMTableBaiduTrans]
|
@@ -422,7 +422,7 @@ class FetchRequestBaiduTranslate(FetchRequestBaidu, FetchRequestWithDatabase):
|
|
422
422
|
]
|
423
423
|
|
424
424
|
# Build.
|
425
|
-
self.
|
425
|
+
self.db_engine.build.build(tables=tables, views_stats=views_stats, skip=True)
|
426
426
|
|
427
427
|
|
428
428
|
__call__ = trans
|
reyfetch/rbase.py
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
# -*- coding: utf-8 -*-
|
3
3
|
|
4
4
|
"""
|
5
|
-
@Time : 2023-12-29
|
5
|
+
@Time : 2023-12-29
|
6
6
|
@Author : Rey
|
7
7
|
@Contact : reyxbo@163.com
|
8
8
|
@Explain : Base methods.
|
@@ -105,7 +105,7 @@ class FetchBrowser(FetchBase):
|
|
105
105
|
|
106
106
|
# Parameter.
|
107
107
|
params = params or {}
|
108
|
-
url = join_url(url, params)
|
108
|
+
url = join_url(url, **params)
|
109
109
|
|
110
110
|
# Request.
|
111
111
|
self.driver.get(url)
|
@@ -165,7 +165,7 @@ class FetchRequestWithDatabase(FetchRequest):
|
|
165
165
|
Can create database used `self.build_db` method.
|
166
166
|
"""
|
167
167
|
|
168
|
-
|
168
|
+
db_engine: Database | None
|
169
169
|
build_db: MethodType
|
170
170
|
|
171
171
|
|
@@ -207,7 +207,7 @@ class FetchRequestDatabaseRecord(FetchRequest):
|
|
207
207
|
"""
|
208
208
|
|
209
209
|
# Check.
|
210
|
-
if self.api.
|
210
|
+
if self.api.db_engine is None:
|
211
211
|
return
|
212
212
|
|
213
213
|
# Parameter.
|
@@ -224,7 +224,7 @@ class FetchRequestDatabaseRecord(FetchRequest):
|
|
224
224
|
"""
|
225
225
|
|
226
226
|
# Check.
|
227
|
-
if self.api.
|
227
|
+
if self.api.db_engine is None:
|
228
228
|
return
|
229
229
|
|
230
230
|
# Parameter.
|
@@ -232,7 +232,7 @@ class FetchRequestDatabaseRecord(FetchRequest):
|
|
232
232
|
record = self.data.setdefault(thread_id, {})
|
233
233
|
|
234
234
|
# Insert.
|
235
|
-
self.api.
|
235
|
+
self.api.db_engine.execute.insert(self.table, record)
|
236
236
|
|
237
237
|
# Delete.
|
238
238
|
del self.data[thread_id]
|
reyfetch/rdouban.py
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
# -*- coding: utf-8 -*-
|
3
3
|
|
4
4
|
"""
|
5
|
-
@Time : 2025-08-25
|
5
|
+
@Time : 2025-08-25
|
6
6
|
@Author : Rey
|
7
7
|
@Contact : reyxbo@163.com
|
8
8
|
@Explain : Douban Web fetch methods.
|
@@ -11,7 +11,7 @@
|
|
11
11
|
|
12
12
|
from typing import TypedDict
|
13
13
|
from bs4 import BeautifulSoup
|
14
|
-
from reydb import rorm,
|
14
|
+
from reydb import rorm, DatabaseEngine
|
15
15
|
from reykit.rbase import throw
|
16
16
|
from reykit.rnet import request
|
17
17
|
from reykit.rre import search, findall, sub
|
@@ -111,22 +111,22 @@ class FetchCrawlDouban(FetchCrawl):
|
|
111
111
|
"""
|
112
112
|
|
113
113
|
|
114
|
-
def __init__(self,
|
114
|
+
def __init__(self, db_engine: DatabaseEngine | None = None) -> None:
|
115
115
|
"""
|
116
116
|
Build instance attributes.
|
117
117
|
|
118
118
|
Parameters
|
119
119
|
----------
|
120
|
-
|
120
|
+
db_engine : Database engine.
|
121
121
|
- `None`: Not use database.
|
122
122
|
- `Database`: Automatic record to database.
|
123
123
|
"""
|
124
124
|
|
125
125
|
# Build.
|
126
|
-
self.
|
126
|
+
self.db_engine = db_engine
|
127
127
|
|
128
128
|
# Build Database.
|
129
|
-
if self.
|
129
|
+
if self.db_engine is not None:
|
130
130
|
self.build_db()
|
131
131
|
|
132
132
|
|
@@ -242,7 +242,7 @@ class FetchCrawlDouban(FetchCrawl):
|
|
242
242
|
table = list(table_dict.values())
|
243
243
|
|
244
244
|
# Database.
|
245
|
-
if self.
|
245
|
+
if self.db_engine is not None:
|
246
246
|
update_fields = (
|
247
247
|
'id',
|
248
248
|
'type',
|
@@ -255,7 +255,7 @@ class FetchCrawlDouban(FetchCrawl):
|
|
255
255
|
'episode_now',
|
256
256
|
'year'
|
257
257
|
)
|
258
|
-
self.
|
258
|
+
self.db_engine.execute.insert(
|
259
259
|
'douban_media',
|
260
260
|
table,
|
261
261
|
update_fields
|
@@ -424,10 +424,10 @@ class FetchCrawlDouban(FetchCrawl):
|
|
424
424
|
infos['video'] = url.replace('#content', '', 1)
|
425
425
|
|
426
426
|
# Database.
|
427
|
-
if self.
|
427
|
+
if self.db_engine is not None:
|
428
428
|
data = {'id': id_}
|
429
429
|
data.update(infos)
|
430
|
-
self.
|
430
|
+
self.db_engine.execute.insert(
|
431
431
|
'douban_media',
|
432
432
|
data,
|
433
433
|
'update'
|
@@ -470,11 +470,11 @@ class FetchCrawlDouban(FetchCrawl):
|
|
470
470
|
"""
|
471
471
|
|
472
472
|
# Check.
|
473
|
-
if self.
|
474
|
-
throw(ValueError, self.
|
473
|
+
if self.db_engine is None:
|
474
|
+
throw(ValueError, self.db_engine)
|
475
475
|
|
476
476
|
# Parameter.
|
477
|
-
database = self.
|
477
|
+
database = self.db_engine.database
|
478
478
|
|
479
479
|
## Table.
|
480
480
|
tables = [DatabaseORMTableDoubanMedia]
|
@@ -556,4 +556,4 @@ class FetchCrawlDouban(FetchCrawl):
|
|
556
556
|
]
|
557
557
|
|
558
558
|
# Build.
|
559
|
-
self.
|
559
|
+
self.db_engine.build.build(tables=tables, views_stats=views_stats, skip=True)
|
reyfetch/rgeneral.py
CHANGED
reyfetch/rsina.py
CHANGED
reyfetch/rtoutiao.py
CHANGED
reyfetch/rweibo.py
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
# -*- coding: utf-8 -*-
|
3
3
|
|
4
4
|
"""
|
5
|
-
@Time : 2024-01-22
|
5
|
+
@Time : 2024-01-22
|
6
6
|
@Author : Rey
|
7
7
|
@Contact : reyxbo@163.com
|
8
8
|
@Explain : Weibo Web fetch methods.
|
@@ -67,7 +67,7 @@ def crawl_weibo_hot_search() -> list[dict[Literal['rank', 'time', 'title', 'type
|
|
67
67
|
'hot': info['num'],
|
68
68
|
'url': join_url(
|
69
69
|
'https://s.weibo.com/weibo',
|
70
|
-
|
70
|
+
q=f'#{info['word']}#'
|
71
71
|
)
|
72
72
|
}
|
73
73
|
for info in table
|
@@ -0,0 +1,14 @@
|
|
1
|
+
reyfetch/__init__.py,sha256=RA8i9mePfgDrav97DX2JDj3riBx9Im_jWzfbUFz7sc8,475
|
2
|
+
reyfetch/rali.py,sha256=gaeKhAHkVP2pCVKnbH_dx6gEDvTeSOy4QqF0X6kYUMI,33155
|
3
|
+
reyfetch/rall.py,sha256=3HckqK8UoRfxSu2yNCEYjX6MByxVqv0qRmthBzQFgHU,341
|
4
|
+
reyfetch/rbaidu.py,sha256=Z-qYl_KzdNEipVJYfm_wgCZHWHIBaHp2z3hkNp--Xso,13501
|
5
|
+
reyfetch/rbase.py,sha256=iD4_Ty6qjdZREJazvtAqekHU5HAxKKu35K9H3y5Dkt8,4817
|
6
|
+
reyfetch/rdouban.py,sha256=mc5tNdGwBGNNVlvuWC0OVtGGaJPBGfUcPouQvpuWNy8,19027
|
7
|
+
reyfetch/rgeneral.py,sha256=DuXdyrPGj2lVhzdxzCwbI0WvzMZiB8KLHmflQ4cqHgg,3788
|
8
|
+
reyfetch/rsina.py,sha256=V1uv-iXyB3b6oDyR_pQYOaHUKjrplEZe2Mm9rnYmJUw,6880
|
9
|
+
reyfetch/rtoutiao.py,sha256=KwzmFQcRU5_tM4juhdMvUhpaGL4cuIo2pE5BwuXjOIk,1662
|
10
|
+
reyfetch/rweibo.py,sha256=RiedsF5zGo6QBrjhMdo9NqYPjwbHJ8FJ7zJJ_5ZPrXk,2506
|
11
|
+
reyfetch-1.0.42.dist-info/METADATA,sha256=tMxOGTTBSuRt08Vn2bThU0GJ1IOj2gnUn-8_leJIv-s,1610
|
12
|
+
reyfetch-1.0.42.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
13
|
+
reyfetch-1.0.42.dist-info/licenses/LICENSE,sha256=UYLPqp7BvPiH8yEZduJqmmyEl6hlM3lKrFIefiD4rvk,1059
|
14
|
+
reyfetch-1.0.42.dist-info/RECORD,,
|
reyfetch-1.0.40.dist-info/RECORD
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
reyfetch/__init__.py,sha256=gDkQmFLZGToSqb1HVfvGxvc9t3mt8slg7_MVc44llns,484
|
2
|
-
reyfetch/rali.py,sha256=J5quMAi85SfFy6CoRh-seyacvUw_16Z_gs_3t-RJY58,33094
|
3
|
-
reyfetch/rall.py,sha256=86TMZiNsv-UinZ2L3_m3ugTHekUWnfVlWMedte0MOwQ,350
|
4
|
-
reyfetch/rbaidu.py,sha256=Uskx2vhL_06XmLJqRf03_vSISlXO2MJ0VfGjxYCOIHg,13442
|
5
|
-
reyfetch/rbase.py,sha256=WandpXTAH_CGYCeNyUsWLm5-qIxf7vKnom80DIGVumQ,4796
|
6
|
-
reyfetch/rdouban.py,sha256=_gmhpSbkLcpEcrNz1qokL4o8X5-Ppy3eEdhS8H-vr0Y,18937
|
7
|
-
reyfetch/rgeneral.py,sha256=s270rtlVv1owkGF57Tjs8Oc5bJRD_XtWISpKlEJ7mbE,3797
|
8
|
-
reyfetch/rsina.py,sha256=WONT6NN67seYjlvXZ39RbibticdDAuauGk6SAvtdEq8,6889
|
9
|
-
reyfetch/rtoutiao.py,sha256=zLPnf2_XSC0d2RZgtMVoVyWpA2UDGNXYpRjYi3DGabI,1671
|
10
|
-
reyfetch/rweibo.py,sha256=T58q6wOv0p7j6WBH4we5k9x8IgFhQN__wqsqTHYMbmU,2522
|
11
|
-
reyfetch-1.0.40.dist-info/METADATA,sha256=JRce82d6RWeQi1t9kBegphbiy-M_-OHG2muL78KQM4Y,1610
|
12
|
-
reyfetch-1.0.40.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
13
|
-
reyfetch-1.0.40.dist-info/licenses/LICENSE,sha256=UYLPqp7BvPiH8yEZduJqmmyEl6hlM3lKrFIefiD4rvk,1059
|
14
|
-
reyfetch-1.0.40.dist-info/RECORD,,
|
File without changes
|
File without changes
|