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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vysion
3
- Version: 2.0.9
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.9](https://pypi.org/project/vysion/)
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.9](https://pypi.org/project/vysion/)
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
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "vysion"
3
- version = "2.0.9"
3
+ version = "2.0.11"
4
4
  description = "The official Python client library for Vysion"
5
5
  homepage = "https://vysion.ai"
6
6
  repository = "https://github.com/ByronLabs/vysion-py"
@@ -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))
@@ -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
- @field_validator("messageId")
303
- def validate_messageId(cls, v: int) -> int:
304
- if not v:
305
- raise ValueError("MessageId field cannot be empty")
306
- return v
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("channelId")
338
- def validate_channelId(cls, v: int) -> int:
359
+ @field_validator("creationDate")
360
+ def validate_creationDate(cls, v: datetime) -> datetime:
339
361
  if not v:
340
- raise ValueError("channelId field cannot be empty")
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]
@@ -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.11"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes