1{
2 lib,
3 base58,
4 beautifulsoup4,
5 bech32,
6 buildPythonPackage,
7 cashaddress,
8 cbor,
9 docx2python,
10 eth-hash,
11 fetchFromGitHub,
12 intervaltree,
13 langdetect,
14 lxml,
15 pdfminer-six,
16 phonenumbers,
17 python-magic,
18 pythonOlder,
19 readabilipy,
20 setuptools,
21}:
22
23buildPythonPackage rec {
24 pname = "iocsearcher";
25 version = "2.4.8";
26 pyproject = true;
27
28 disabled = pythonOlder "3.7";
29
30 src = fetchFromGitHub {
31 owner = "malicialab";
32 repo = "iocsearcher";
33 # https://github.com/malicialab/iocsearcher/issues/6
34 rev = "be29cb4090284155b49a358e7fe2d24371b6a981";
35 hash = "sha256-LMpFK1Z1KaKUCm/X9Sh+Gp9GNKrGWp7N4UjAOVkhmSU=";
36 };
37
38 build-system = [ setuptools ];
39
40 dependencies = [
41 base58
42 beautifulsoup4
43 bech32
44 cashaddress
45 cbor
46 docx2python
47 eth-hash
48 intervaltree
49 langdetect
50 lxml
51 pdfminer-six
52 phonenumbers
53 python-magic
54 readabilipy
55 ]
56 ++ eth-hash.optional-dependencies.pycryptodome;
57
58 # Module has no tests
59 doCheck = false;
60
61 pythonImportsCheck = [ "iocsearcher" ];
62
63 meta = with lib; {
64 description = "Library and command line tool for extracting indicators of compromise (IOCs)";
65 homepage = "https://github.com/malicialab/iocsearcher";
66 changelog = "https://github.com/malicialab/iocsearcher/releases/tag/v${version}";
67 license = licenses.mit;
68 maintainers = with maintainers; [ fab ];
69 mainProgram = "iocsearcher";
70 };
71}