vysion 2.0.9__py3-none-any.whl → 2.0.10__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.
vysion/client/client.py CHANGED
@@ -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__("document/url", url, page=page, lte=lte, gte=gte)
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(self, tag: str) -> VysionResponse[DocumentHit]:
218
- url = self._build_api_url__("document/tag", tag)
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, email: str, page: int = 1, lte: datetime = None, gte: datetime = None
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", email, page=page, lte=lte, gte=gte
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, address, page=page, lte=lte, gte=gte
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))
@@ -440,4 +480,4 @@ class RansomwareFeed(DaylyFeed):
440
480
  yield self._make_request(url)
441
481
 
442
482
 
443
- # TODO /api/v1/feeds
483
+ # TODO /api/v1/feeds
vysion/dto/dto.py CHANGED
@@ -298,6 +298,28 @@ class ImMessageHit(BaseModel):
298
298
  sha256sum: Optional[str] = None
299
299
  media: Optional[str] = Field(default_factory=lambda: None)
300
300
  detectionDate: datetime
301
+ serverId: Optional[int] = 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
+ @field_validator("messageId")
306
+ def validate_messageId(cls, v: int) -> int:
307
+ if not v:
308
+ raise ValueError("MessageId field cannot be empty")
309
+ return v
310
+
311
+ class ImMessageCardHit(BaseModel):
312
+ userId: Optional[int] = Field(default_factory=lambda: None)
313
+ username: Optional[str] = Field(default_factory=lambda: None)
314
+ channelId: Optional[int] = Field(default_factory=lambda: None)
315
+ messageId: str
316
+ message: Optional[str] = Field(default_factory=lambda: None)
317
+ channelTitle: Optional[str] = Field(default_factory=lambda: None)
318
+ languages: Optional[List[LanguagePair]] = Field(default_factory=lambda: None)
319
+ detectionDate: datetime
320
+ serverId: Optional[int] = Field(default_factory=lambda: None) #Discord Exclusive
321
+ serverTitle: Optional[str] = Field(default_factory=lambda: None) #Discord Exclusive
322
+ platform: Optional[str] = Field(default_factory=lambda: None)
301
323
 
302
324
  @field_validator("messageId")
303
325
  def validate_messageId(cls, v: int) -> int:
@@ -313,7 +335,10 @@ class ImProfileHit(BaseModel):
313
335
  lastName: Optional[List[str]] = Field(default_factory=lambda: None)
314
336
  detectionDate: datetime
315
337
  profilePhoto: Optional[List[str]] = Field(default_factory=lambda: None)
316
-
338
+ bot: Optional[bool] = Field(default_factory=lambda: None) #Discord Exclusive
339
+ discordLink: Optional[List[str]] = Field(default_factory=lambda: None) #Discord Exclusive
340
+ discriminator: Optional[List[int]] = Field(default_factory=lambda: None) #Discord Exclusive
341
+
317
342
  @field_validator("userId")
318
343
  def validate_userId(cls, v: int) -> int:
319
344
  if not v:
@@ -332,7 +357,9 @@ class ImChannelHit(BaseModel):
332
357
  channelTitles: Optional[List[str]] = Field(default_factory=lambda: None)
333
358
  detectionDate: datetime
334
359
  creationDate: datetime
335
- channelPhoto: Optional[List[str]] = Field(default_factory=lambda: None)
360
+ channelPhoto: Optional[List[str]] = Field(default_factory=lambda: None) #Telegram Exclusive
361
+ serverId: Optional[int] = Field(default_factory=lambda: None) #Discord Exclusive
362
+ serverTitle: Optional[List[str]] = Field(default_factory=lambda: None) #Discord Exclusive
336
363
 
337
364
  @field_validator("channelId")
338
365
  def validate_channelId(cls, v: int) -> int:
@@ -352,6 +379,32 @@ class ImChannelHit(BaseModel):
352
379
  raise ValueError("creationDate field cannot be empty")
353
380
  return v
354
381
 
382
+ class ImServerHit(BaseModel):
383
+ serverId: int
384
+ serverTitles: Optional[List[str]] = Field(default_factory=lambda: None)
385
+ detectionDate: datetime
386
+ creationDate: datetime
387
+ serverPhoto: Optional[List[str]] = Field(default_factory=lambda: None)
388
+ memberCount: Optional[int] = Field(default_factory=lambda: None)
389
+ discordLink: Optional[List[str]] = Field(default_factory=lambda: None)
390
+
391
+ @field_validator("serverId")
392
+ def validate_channelId(cls, v: int) -> int:
393
+ if not v:
394
+ raise ValueError("serverId field cannot be empty")
395
+ return v
396
+
397
+ @field_validator("detectionDate")
398
+ def validate_detectionDate(cls, v: datetime) -> datetime:
399
+ if not v:
400
+ raise ValueError("DetectionDate field cannot be empty")
401
+ return v
402
+
403
+ @field_validator("creationDate")
404
+ def validate_creationDate(cls, v: datetime) -> datetime:
405
+ if not v:
406
+ raise ValueError("creationDate field cannot be empty")
407
+ return v
355
408
 
356
409
  class ImFeedHit(BaseModel):
357
410
  id: str
vysion/version.py CHANGED
@@ -15,4 +15,4 @@ See the License for the specific language governing permissions and
15
15
  limitations under the License.
16
16
  """
17
17
 
18
- __version__ = "2.0.9"
18
+ __version__ = "2.0.10"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vysion
3
- Version: 2.0.9
3
+ Version: 2.0.10
4
4
  Summary: The official Python client library for Vysion
5
5
  Home-page: https://vysion.ai
6
6
  License: Apache-2.0
@@ -25,11 +25,11 @@ Description-Content-Type: text/markdown
25
25
 
26
26
  # Vysion-PY
27
27
 
28
- Welcome to the PyPi webpage for Vysion, our implementation as a Python library to use the Vysion tool. Vysion is a dark web intelligence tool that provides information collected from web pages from Tor, I2P, cybercrime forums on the clearnet, etc. Vysion API also provides a feed of information on ransomware attacks published by the various ransomware groups currently active.
28
+ Welcome to the open source repository for vysion-py, our implementation as a Python library to use the Vysion tool. Vysion is a dark web intelligence tool that provides information collected from web pages from Tor, I2P, cybercrime forums on the clearnet, etc. Vysion API also provides a feed of information on ransomware attacks published by the various ransomware groups currently active.
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.9](https://pypi.org/project/vysion/)
32
+ Latest version: [2.0.10](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
 
@@ -1,9 +1,9 @@
1
1
  vysion/__init__.py,sha256=yxJiM-S29q8GB3PBff9tV70P2nvydd8aKLEprLkXw5o,664
2
2
  vysion/client/__init__.py,sha256=aVHmBuetPdybp7TgcNzUx4HkxTjEuXYzSdDYiYfFQd0,630
3
- vysion/client/client.py,sha256=r120ivh3ZQ4vdCs2mNCatfQVY51wSnGmJ68cxMp_NCg,12674
3
+ vysion/client/client.py,sha256=kBWCDXh2fJZWBTVQ5jPLL9tGL-1W5U1belWuLRxjkLM,13388
4
4
  vysion/client/error.py,sha256=-3NGr9ngTGSy-ctqk6S9eMBAvtY3lnjv9i0KiuRjd5g,1158
5
5
  vysion/dto/__init__.py,sha256=ct8JxVMfJ0APiOTgr9ju-JIuBlXOrPkx7n2qISSXUts,605
6
- vysion/dto/dto.py,sha256=z4gBgPJL220n2VCQINfC-u2Ppoa1Pd1rGNjuhgjD8rU,13133
6
+ vysion/dto/dto.py,sha256=WO66TqdCX1DQK9eogUjS0Qkw2puiWiv2TuFUDbL7VMk,15770
7
7
  vysion/dto/tag.py,sha256=whGPsdasgYm8oijrL7MRSMmapzaoCmKNeaJ5ih0aBIk,1503
8
8
  vysion/dto/util.py,sha256=yIooNK3TsbjSsla6JFLvnKBbahUymx87qpH3VKalKV0,4491
9
9
  vysion/model/__init__.py,sha256=rJX9eNW9-jQGTgwm97W04jhZa-dV_dSTTTFcbWg73w0,606
@@ -15,8 +15,8 @@ vysion/model/enum/services.py,sha256=fUfZEO0RNNctU4Gzae5TV3c7BU5A_cEwaEb1tzqgcr0
15
15
  vysion/taxonomy/__init__.py,sha256=Bc364AYxRCyjIn26-XBPeEDCPe3Hma4r5RAI8R8eblU,635
16
16
  vysion/taxonomy/flavours.py,sha256=ubImHBE8v0zhzFy_2YozAQk2SzN1XDQwHAxb2RebtCo,2347
17
17
  vysion/taxonomy/taxonomy.py,sha256=mG6vHX5Eyp38AKyJBgfBDqdpEmDMbkv8TA8YUBzko54,12227
18
- vysion/version.py,sha256=tfQ_yF7VCqWEp5qBP4sV1EF51Mq1b4fCO5EM8Q7PwMM,610
19
- vysion-2.0.9.dist-info/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
20
- vysion-2.0.9.dist-info/METADATA,sha256=4MMfpfBUJUuG5IIHqGVgfO0OepEhCl3WWCPyVWXqAiY,1958
21
- vysion-2.0.9.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
22
- vysion-2.0.9.dist-info/RECORD,,
18
+ vysion/version.py,sha256=Xdhe9b17_dbpIMf7nWYeq2yIy4gslHyYQcarHteCl9Y,611
19
+ vysion-2.0.10.dist-info/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
20
+ vysion-2.0.10.dist-info/METADATA,sha256=nLKGS1xTgG7CAwH71HeWrg4NuPZWHEyf__ficSjXu0c,1973
21
+ vysion-2.0.10.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
22
+ vysion-2.0.10.dist-info/RECORD,,