vysion 2.0.9__tar.gz → 2.0.11__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.
- {vysion-2.0.9 → vysion-2.0.11}/PKG-INFO +2 -2
- {vysion-2.0.9 → vysion-2.0.11}/README.md +1 -1
- {vysion-2.0.9 → vysion-2.0.11}/pyproject.toml +1 -1
- {vysion-2.0.9 → vysion-2.0.11}/vysion/client/client.py +49 -7
- {vysion-2.0.9 → vysion-2.0.11}/vysion/dto/dto.py +48 -18
- {vysion-2.0.9 → vysion-2.0.11}/vysion/version.py +1 -1
- {vysion-2.0.9 → vysion-2.0.11}/LICENSE +0 -0
- {vysion-2.0.9 → vysion-2.0.11}/vysion/__init__.py +0 -0
- {vysion-2.0.9 → vysion-2.0.11}/vysion/client/__init__.py +0 -0
- {vysion-2.0.9 → vysion-2.0.11}/vysion/client/error.py +0 -0
- {vysion-2.0.9 → vysion-2.0.11}/vysion/dto/__init__.py +0 -0
- {vysion-2.0.9 → vysion-2.0.11}/vysion/dto/tag.py +0 -0
- {vysion-2.0.9 → vysion-2.0.11}/vysion/dto/util.py +0 -0
- {vysion-2.0.9 → vysion-2.0.11}/vysion/model/__init__.py +0 -0
- {vysion-2.0.9 → vysion-2.0.11}/vysion/model/enum/__init__.py +0 -0
- {vysion-2.0.9 → vysion-2.0.11}/vysion/model/enum/languages.py +0 -0
- {vysion-2.0.9 → vysion-2.0.11}/vysion/model/enum/networks.py +0 -0
- {vysion-2.0.9 → vysion-2.0.11}/vysion/model/enum/ransom_groups.py +0 -0
- {vysion-2.0.9 → vysion-2.0.11}/vysion/model/enum/services.py +0 -0
- {vysion-2.0.9 → vysion-2.0.11}/vysion/taxonomy/__init__.py +0 -0
- {vysion-2.0.9 → vysion-2.0.11}/vysion/taxonomy/flavours.py +0 -0
- {vysion-2.0.9 → vysion-2.0.11}/vysion/taxonomy/taxonomy.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: vysion
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.11
|
|
4
4
|
Summary: The official Python client library for Vysion
|
|
5
5
|
Home-page: https://vysion.ai
|
|
6
6
|
License: Apache-2.0
|
|
@@ -29,7 +29,7 @@ Welcome to the PyPi webpage for Vysion, our implementation as a Python library t
|
|
|
29
29
|
|
|
30
30
|
You can request a demo for the web app or an API-key to use in this library at [vysion.ai](https://vysion.ai).
|
|
31
31
|
|
|
32
|
-
Latest version: [2.0.
|
|
32
|
+
Latest version: [2.0.11](https://pypi.org/project/vysion/)
|
|
33
33
|
|
|
34
34
|
You can visit [the documentation](https://developers.vysion.ai/?python) for more information on the searches and requests performed with the library or directly on the API.
|
|
35
35
|
|
|
@@ -4,7 +4,7 @@ Welcome to the PyPi webpage for Vysion, our implementation as a Python library t
|
|
|
4
4
|
|
|
5
5
|
You can request a demo for the web app or an API-key to use in this library at [vysion.ai](https://vysion.ai).
|
|
6
6
|
|
|
7
|
-
Latest version: [2.0.
|
|
7
|
+
Latest version: [2.0.11](https://pypi.org/project/vysion/)
|
|
8
8
|
|
|
9
9
|
You can visit [the documentation](https://developers.vysion.ai/?python) for more information on the searches and requests performed with the library or directly on the API.
|
|
10
10
|
|
|
@@ -205,27 +205,59 @@ class Client(BaseClient):
|
|
|
205
205
|
self,
|
|
206
206
|
url: str,
|
|
207
207
|
page: int = 1,
|
|
208
|
+
page_size: int = 10,
|
|
208
209
|
lte: datetime = None,
|
|
209
210
|
gte: datetime = None,
|
|
210
211
|
) -> VysionResponse[DocumentHit]:
|
|
211
|
-
url = self._build_api_url__(
|
|
212
|
+
url = self._build_api_url__(
|
|
213
|
+
"document/url",
|
|
214
|
+
url,
|
|
215
|
+
page=page,
|
|
216
|
+
page_size=page_size,
|
|
217
|
+
lte=lte,
|
|
218
|
+
gte=gte,
|
|
219
|
+
)
|
|
212
220
|
|
|
213
221
|
result = VysionResponse[DocumentHit].model_validate(self._make_request(url))
|
|
214
222
|
return result.data
|
|
215
223
|
|
|
216
224
|
@vysion_error_manager
|
|
217
|
-
def get_tag(
|
|
218
|
-
|
|
225
|
+
def get_tag(
|
|
226
|
+
self,
|
|
227
|
+
tag: str,
|
|
228
|
+
gte: datetime = None,
|
|
229
|
+
lte: datetime = None,
|
|
230
|
+
page: int = 1,
|
|
231
|
+
page_size: int = 10,
|
|
232
|
+
) -> VysionResponse[DocumentHit]:
|
|
233
|
+
url = self._build_api_url__(
|
|
234
|
+
"document/tag",
|
|
235
|
+
tag,
|
|
236
|
+
gte=gte,
|
|
237
|
+
lte=lte,
|
|
238
|
+
page=page,
|
|
239
|
+
page_size=page_size,
|
|
240
|
+
)
|
|
219
241
|
|
|
220
242
|
result = VysionResponse[DocumentHit].model_validate(self._make_request(url))
|
|
221
243
|
return result.data
|
|
222
244
|
|
|
223
245
|
@vysion_error_manager
|
|
224
246
|
def find_email(
|
|
225
|
-
self,
|
|
247
|
+
self,
|
|
248
|
+
email: str,
|
|
249
|
+
page: int = 1,
|
|
250
|
+
page_size: int = 10,
|
|
251
|
+
lte: datetime = None,
|
|
252
|
+
gte: datetime = None
|
|
226
253
|
) -> VysionResponse[DocumentHit]:
|
|
227
254
|
url = self._build_api_url__(
|
|
228
|
-
"document/email",
|
|
255
|
+
"document/email",
|
|
256
|
+
email,
|
|
257
|
+
page=page,
|
|
258
|
+
page_size=page_size,
|
|
259
|
+
lte=lte,
|
|
260
|
+
gte=gte
|
|
229
261
|
)
|
|
230
262
|
|
|
231
263
|
result = VysionResponse[DocumentHit].model_validate(self._make_request(url))
|
|
@@ -237,6 +269,7 @@ class Client(BaseClient):
|
|
|
237
269
|
country_code: str,
|
|
238
270
|
phone_number: str,
|
|
239
271
|
page: int = 1,
|
|
272
|
+
page_size: int = 10,
|
|
240
273
|
lte: datetime = None,
|
|
241
274
|
gte: datetime = None,
|
|
242
275
|
) -> VysionResponse[DocumentHit]:
|
|
@@ -244,6 +277,7 @@ class Client(BaseClient):
|
|
|
244
277
|
"document/phone/" + country_code,
|
|
245
278
|
phone_number,
|
|
246
279
|
page=page,
|
|
280
|
+
page_size=page_size,
|
|
247
281
|
lte=lte,
|
|
248
282
|
gte=gte,
|
|
249
283
|
)
|
|
@@ -257,11 +291,17 @@ class Client(BaseClient):
|
|
|
257
291
|
chain: str,
|
|
258
292
|
address: str,
|
|
259
293
|
page: int = 1,
|
|
294
|
+
page_size: int = 10,
|
|
260
295
|
lte: datetime = None,
|
|
261
296
|
gte: datetime = None,
|
|
262
297
|
) -> VysionResponse[DocumentHit]:
|
|
263
298
|
url = self._build_api_url__(
|
|
264
|
-
"document/wallet/" + chain,
|
|
299
|
+
"document/wallet/" + chain,
|
|
300
|
+
address,
|
|
301
|
+
page=page,
|
|
302
|
+
page_size=page_size,
|
|
303
|
+
lte=lte,
|
|
304
|
+
gte=gte
|
|
265
305
|
)
|
|
266
306
|
|
|
267
307
|
result = VysionResponse[DocumentHit].model_validate(self._make_request(url))
|
|
@@ -357,6 +397,7 @@ class Client(BaseClient):
|
|
|
357
397
|
gte: datetime = None,
|
|
358
398
|
lte: datetime = None,
|
|
359
399
|
page: int = 1,
|
|
400
|
+
page_size: int = 10,
|
|
360
401
|
username: str = None,
|
|
361
402
|
) -> VysionResponse[ImMessageHit]:
|
|
362
403
|
url = self._build_api_url__(
|
|
@@ -365,6 +406,7 @@ class Client(BaseClient):
|
|
|
365
406
|
gte=gte,
|
|
366
407
|
lte=lte,
|
|
367
408
|
page=page,
|
|
409
|
+
page_size=page_size,
|
|
368
410
|
username=username,
|
|
369
411
|
)
|
|
370
412
|
|
|
@@ -440,4 +482,4 @@ class RansomwareFeed(DaylyFeed):
|
|
|
440
482
|
yield self._make_request(url)
|
|
441
483
|
|
|
442
484
|
|
|
443
|
-
# TODO /api/v1/feeds
|
|
485
|
+
# TODO /api/v1/feeds
|
|
@@ -287,10 +287,10 @@ class LanguagePair(BaseModel):
|
|
|
287
287
|
|
|
288
288
|
|
|
289
289
|
class ImMessageHit(BaseModel):
|
|
290
|
-
userId: Optional[int] = Field(default_factory=lambda: None)
|
|
290
|
+
userId: Optional[Union[int, str]] = Field(default_factory=lambda: None)
|
|
291
291
|
username: Optional[str] = Field(default_factory=lambda: None)
|
|
292
|
-
channelId: Optional[int] = Field(default_factory=lambda: None)
|
|
293
|
-
messageId: str
|
|
292
|
+
channelId: Optional[Union[int, str]] = Field(default_factory=lambda: None)
|
|
293
|
+
messageId: Union[int, str]
|
|
294
294
|
message: Optional[str] = Field(default_factory=lambda: None)
|
|
295
295
|
channelTitle: Optional[str] = Field(default_factory=lambda: None)
|
|
296
296
|
languages: Optional[List[LanguagePair]] = Field(default_factory=lambda: None)
|
|
@@ -298,22 +298,35 @@ class ImMessageHit(BaseModel):
|
|
|
298
298
|
sha256sum: Optional[str] = None
|
|
299
299
|
media: Optional[str] = Field(default_factory=lambda: None)
|
|
300
300
|
detectionDate: datetime
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
301
|
+
serverId: Optional[Union[int, str]] = Field(default_factory=lambda: None) #Discord Exclusive
|
|
302
|
+
serverTitle: Optional[str] = Field(default_factory=lambda: None) #Discord Exclusive
|
|
303
|
+
platform: Optional[str] = Field(default_factory=lambda: None) #Discord Exclusive
|
|
304
|
+
|
|
305
|
+
class ImMessageCardHit(BaseModel):
|
|
306
|
+
userId: Optional[Union[int, str]] = Field(default_factory=lambda: None)
|
|
307
|
+
username: Optional[str] = Field(default_factory=lambda: None)
|
|
308
|
+
channelId: Optional[int] = Field(default_factory=lambda: None)
|
|
309
|
+
messageId: Union[int, str]
|
|
310
|
+
message: Optional[str] = Field(default_factory=lambda: None)
|
|
311
|
+
channelTitle: Optional[str] = Field(default_factory=lambda: None)
|
|
312
|
+
languages: Optional[List[LanguagePair]] = Field(default_factory=lambda: None)
|
|
313
|
+
detectionDate: datetime
|
|
314
|
+
serverId: Optional[Union[int, str]] = Field(default_factory=lambda: None) #Discord Exclusive
|
|
315
|
+
serverTitle: Optional[str] = Field(default_factory=lambda: None) #Discord Exclusive
|
|
316
|
+
platform: Optional[str] = Field(default_factory=lambda: None)
|
|
308
317
|
|
|
309
318
|
class ImProfileHit(BaseModel):
|
|
310
|
-
userId: int
|
|
319
|
+
userId: Union[int, str]
|
|
311
320
|
usernames: Optional[List[str]] = Field(default_factory=lambda: None)
|
|
312
321
|
firstName: Optional[List[str]] = Field(default_factory=lambda: None)
|
|
313
322
|
lastName: Optional[List[str]] = Field(default_factory=lambda: None)
|
|
314
323
|
detectionDate: datetime
|
|
315
324
|
profilePhoto: Optional[List[str]] = Field(default_factory=lambda: None)
|
|
316
|
-
|
|
325
|
+
bot: Optional[bool] = Field(default_factory=lambda: None) #Discord Exclusive
|
|
326
|
+
discordLink: Optional[List[str]] = Field(default_factory=lambda: None) #Discord Exclusive
|
|
327
|
+
discriminator: Optional[List[int]] = Field(default_factory=lambda: None) #Discord Exclusive
|
|
328
|
+
platform: Optional[str] = Field(default_factory=lambda: None)
|
|
329
|
+
|
|
317
330
|
@field_validator("userId")
|
|
318
331
|
def validate_userId(cls, v: int) -> int:
|
|
319
332
|
if not v:
|
|
@@ -328,18 +341,36 @@ class ImProfileHit(BaseModel):
|
|
|
328
341
|
|
|
329
342
|
|
|
330
343
|
class ImChannelHit(BaseModel):
|
|
331
|
-
channelId: int
|
|
344
|
+
channelId: Union[int, str]
|
|
332
345
|
channelTitles: Optional[List[str]] = Field(default_factory=lambda: None)
|
|
333
346
|
detectionDate: datetime
|
|
334
347
|
creationDate: datetime
|
|
335
|
-
channelPhoto: Optional[List[str]] = Field(default_factory=lambda: None)
|
|
348
|
+
channelPhoto: Optional[List[str]] = Field(default_factory=lambda: None) #Telegram Exclusive
|
|
349
|
+
serverId: Optional[Union[int, str]] = Field(default_factory=lambda: None) #Discord Exclusive
|
|
350
|
+
serverTitle: Optional[List[str]] = Field(default_factory=lambda: None) #Discord Exclusive
|
|
351
|
+
platform: Optional[str] = Field(default_factory=lambda: None)
|
|
352
|
+
|
|
353
|
+
@field_validator("detectionDate")
|
|
354
|
+
def validate_detectionDate(cls, v: datetime) -> datetime:
|
|
355
|
+
if not v:
|
|
356
|
+
raise ValueError("DetectionDate field cannot be empty")
|
|
357
|
+
return v
|
|
336
358
|
|
|
337
|
-
@field_validator("
|
|
338
|
-
def
|
|
359
|
+
@field_validator("creationDate")
|
|
360
|
+
def validate_creationDate(cls, v: datetime) -> datetime:
|
|
339
361
|
if not v:
|
|
340
|
-
raise ValueError("
|
|
362
|
+
raise ValueError("creationDate field cannot be empty")
|
|
341
363
|
return v
|
|
342
364
|
|
|
365
|
+
class ImServerHit(BaseModel):
|
|
366
|
+
serverId: Union[int, str]
|
|
367
|
+
serverTitles: Optional[List[str]] = Field(default_factory=lambda: None)
|
|
368
|
+
detectionDate: datetime
|
|
369
|
+
creationDate: datetime
|
|
370
|
+
serverPhoto: Optional[List[str]] = Field(default_factory=lambda: None)
|
|
371
|
+
memberCount: Optional[int] = Field(default_factory=lambda: None)
|
|
372
|
+
discordLink: Optional[List[str]] = Field(default_factory=lambda: None)
|
|
373
|
+
|
|
343
374
|
@field_validator("detectionDate")
|
|
344
375
|
def validate_detectionDate(cls, v: datetime) -> datetime:
|
|
345
376
|
if not v:
|
|
@@ -352,7 +383,6 @@ class ImChannelHit(BaseModel):
|
|
|
352
383
|
raise ValueError("creationDate field cannot be empty")
|
|
353
384
|
return v
|
|
354
385
|
|
|
355
|
-
|
|
356
386
|
class ImFeedHit(BaseModel):
|
|
357
387
|
id: str
|
|
358
388
|
telegram: List[str]
|
|
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
|