🐸 Identify anything. pyWhat easily lets you identify emails, IP addresses, and more. Feed it a .pcap file or some text and it'll tell you what it is! πŸ§™β€β™€οΈ

Overview

➑️ Discord ⬅️
The easiest way to identify anything
pip3 install pywhat && pywhat --help

Discord PyPI - Downloads Twitter Follow PyPI - Python Version PyPI


πŸ€” What is this?

Imagine this: You come across some mysterious text πŸ§™β€β™‚οΈ 5f4dcc3b5aa765d61d8327deb882cf99 and you wonder what it is. What do you do?

Well, with what all you have to do is ask what "5f4dcc3b5aa765d61d8327deb882cf99" and what will tell you!

what's job is to identify what something is. Whether it be a file or text! Or even the hex of a file! What about text within files? We have that too! what is recursive, it will identify everything in text and more!

βš™ Use Cases

🦠 Wannacry

You come across a new piece of malware called WantToCry. You think back to Wannacry and remember it was stopped because a researcher found a kill-switch in the code.

When a domain, hardcoded into Wannacry, was registered the virus would stop.

You use What to identify all the domains in the malware, and use a domain registrar API to register all the domains. If Wannacry happens again, you can stop it in minutes - not weeks.

🦈 Faster Analysis of Pcap files

Say you have a .pcap file from a network attack. What can identify this and quickly find you:

  • All hashes
  • Credit card numbers
  • Cryptocurrency addresses
  • Social Security Numbers
  • and much more.

With what, you can identify the important things in the pcap in seconds, not minutes.

🌌 Anything

Anytime you have a file and you want to find structured data in it that's useful, What is for you.

Or if you come across some piece of text and you don't know what it is, What will tell you.

File Opening You can pass in a file path by what 'this/is/a/file/path'. What is smart enough to figure out it's a file!

What about a whole directory? What can handle that too! It will recursively search for files and output everything you need!

Filtration You can filter output by using what --rarity 0.2:0.8 --include_tags tag1,tag2 TEXT. Use what --help to get more information.

Sorting You can sort the output by using what -k rarity --reverse TEXT. Use what --help to get more information.

πŸ• API

PyWhat has an API! Click here https://github.com/bee-san/pyWhat/wiki/API to read about it.

πŸ‘Ύ Contributing

what not only thrives on contributors, but can't exist without them! If you want to add a new regex to check for things, you can read our documentation here

We ask contributors to join the Discord for quicker discussions, but it's not needed: Discord

Comments
  • Filtration support

    Filtration support

    Add filtration support(#29)

    • You can check available tags by using pywhat --tags or
    from pywhat import *
    print(pywhat_tags)
    
    • Filtration CLI: pywhat --rarity min:max --include_tags tag1,tag2 --exclude_tags tag1,tag2 TEXT 'min' and 'max' can be omitted.

    ToDo:

    • [x] Finish work on distributions
    • [x] Update CLI
    • [x] Move API to __init__.py' for easy access
    • [x] TESTS
    • [x] Clean up the mess
    opened by ghost 27
  • Added recursion support

    Added recursion support

    Want to search the whole folder and see what all of the files in that folder contain? pyWhat can now do exactly that!

    • if input is a directory, recursively search through it (#43)
    • now that pyWhat is searching for multiple files at once, if a file is identified with magic numbers, it will also print the name of the file, so it will be easier to see which one is identified
    • it pyWhat is printing matches from multiple files, it will also print in which file each match is located in a new Filename row (if input is only text, this row is not there)
    • API now by default also checks if input is a file or a folder. If you want to disable this and only treat input as text, add True to identify() like this identify("file.txt", True)
    • hidden file found with recursion has a CTF flag in the name? pyWhat is now also searching for matches inside of filenames!
    • added recursion support to the README and to --help command
    • added links to all of the badges in README (#60)
    • Discover Number can no longer be matched inside of a string
    opened by amadejpapez 13
  • Test regex names capitalization

    Test regex names capitalization

    Prerequisites

    • [x] Have you read the documentation on contributing? https://github.com/bee-san/pyWhat/wiki/Adding-your-own-Regex

    Why do we need this pull request?

    Regex names capitalization are now tested. Some words are ignored:

    • If they contain already one upper case char (e.g: SSH, URL, TOTP) or I also think about brand names like iPhone.
    • If they contain one numeric char like ed25519 or say, i18n.
    • If they are specified in the test (for now "a", "of", "etc).

    What GitHub issues does this fix?

    • #205

    Tell me what you think about the test and if you might have any false positive in my mind

    opened by PabloLec 12
  • Add support for boundaryless regex

    Add support for boundaryless regex

    ToDo:

    • [x] Add Filter class
    • [x] Write tests for Filter class
    • [x] Add suport for boundaryless regex using Filter class
    • [x] Write some more tests
    • [x] Update README
    • [x] Update CLI
    • [x] Add flag that disables boundaryless
    • [x] Replace re.search()
    opened by ghost 9
  • add unix timestamp support

    add unix timestamp support

    Hello, for my first contributions I've picked something simple: unix epoch timestamps:

    $ poetry run pywhat 1623914861
    
    Possible Identification
    ┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
    ┃ Matched Text ┃ Identified as         ┃ Description                                             ┃
    ┑━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
    β”‚ 1623914861   β”‚ Recent Unix Timestamp β”‚ Seconds elapsed since unix epoch: 1970, between year    β”‚
    β”‚              β”‚                       β”‚ 2001 and 2286                                           β”‚
    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
    β”‚ 1623914861   β”‚ Phone Number          β”‚ None                                                    β”‚
    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
    β”‚ 1623914861   β”‚ Unix Timestamp        β”‚ Seconds elapsed since unix epoch: 1970                  β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
    

    and milliseconds:

    $ poetry run pywhat 1623914861000
    
    Possible Identification
    ┏━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
    ┃ Matched Text  ┃ Identified as                     ┃ Description                                ┃
    ┑━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
    β”‚ 1623914861000 β”‚ Recent Unix Millisecond Timestamp β”‚ Milliseconds elapsed since unix epoch:     β”‚
    β”‚               β”‚                                   β”‚ 1970, between year 2001 and 2286           β”‚
    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
    β”‚ 1623914861000 β”‚ Phone Number                      β”‚ None                                       β”‚
    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
    β”‚ 1623914861000 β”‚ Unix Millisecond Timestamp        β”‚ Milliseconds elapsed since unix epoch:     β”‚
    β”‚               β”‚                                   β”‚ 1970                                       β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
    

    I think it would be great to support non-regex identifiers as this could have been done much more gracefully in python with datetime module. Nevertheless here's regex based implementation! :)

    opened by Granitosaurus 9
  • Easy integration module

    Easy integration module

    I wanted to be able to import pywhat into a Splunk app I'm creating, and I figured more people than just myself would want an easy way to import its functionality into another script.

    opened by habitualdev 9
  • Add datadog client token

    Add datadog client token

    ⚠ Pull Requests not made with this template will be automatically closed πŸ”₯

    Prerequisites

    • [x] Have you read the documentation on contributing? https://github.com/bee-san/pyWhat/wiki/Adding-your-own-Regex

    Why do we need this pull request?

    • With the client token you can send events and logs pf a web and mobile application to Datadog.

    What GitHub issues does this fix?

    • no issue realted to it

    Copy / paste of output

    Please copy and paste the output of PyWhat with your new addition using an example that tests this addition below:

    $ poetry run pywhat pub85abf45b82e2f86f25003d559bca07d9
    Matched on: pub85abf45b82e2f86f25003d559bca07d9
    Name: Datadog Client Token
    Description: Client tokens are used to send events and logs from web and mobile applications.
    
    Matched on: b85abf45b82e2f86f25003d5
    Name: ObjectID
    
    
    opened by gruebel 8
  • refactor tests/test_regex_identifier.py

    refactor tests/test_regex_identifier.py

    ⚠ Pull Requests not made with this template will be automatically closed πŸ”₯

    Prerequisites

    • [x] Have you read the documentation on contributing? https://github.com/bee-san/pyWhat/wiki/Adding-your-own-Regex

    Why do we need this pull request?

    Currently, the tests files are quite long. I've attempted moving the test data into regex.json and using pytest.mark.parmaterize to "generate" tests using the test data now in regex.json. This makes it much easier to maintain test_regex_identifier.py as to change all _assert_match_first_item tests, you only have to change one test:

    @pytest.mark.parametrize(
        "name,match",
        [
            (regex["Name"], match)
            for regex in database
            for match in regex.get("Matches", [])
        ],
    )
    def test_regex_match(name: str, match: str):
        res = r.check([match])
        _assert_match_first_item(name, res)
    

    What GitHub issues does this fix?

    Related to #199 Related to #195

    Contributions to this PR are welcome!

    opened by jyooru 7
  • Tests to check if sorted by rarity, if correct regex format,...

    Tests to check if sorted by rarity, if correct regex format,...

    • added 3 bigger tests:
      • check if every regex has a test in test_regex_identifier.py (this requires at least one test with a full regex pattern name because previously a lot of tests asserted just one or two words to match to the name)
      • check if regexes are sorted by rarity in regex.json (fixes #106)
      • check if regexes have ^(regex)$ format and fail if there are any in-between boundaries (fixes #106)
      • I have also added meaningfull messages, so if one of these tests fail, users will be able to easily see why and how to fix it
    • fixed typo in the Placekey name
    opened by amadejpapez 7
  • Add new RegEx for facebook tokens

    Add new RegEx for facebook tokens

    Prerequisites

    • [x] Have you read the documentation on contributing? https://github.com/bee-san/pyWhat/wiki/Adding-your-own-Regex

    Why do we need this pull request?

    • Add new RegEx and tests for facebook app tokens and access token based on v12 API https://developers.facebook.com/docs/facebook-login/access-tokens/

    What GitHub issues does this fix?

    • Fixes #150

    Copy / paste of output

    Please copy and paste the output of PyWhat with your new addition using an example that tests this addition below:

    pywhat "12013331233|asdqwe12312312asdaslwke123asdalwfldfqwe"
    <b>
    Matched on: 12013331233|asdqwe12312312asdaslwke123asdalwfldfqwe
    Name: Facebook App Token
    Link:  https://developers.facebook.com/tools/debug/accesstoken/?access_token=12013331233|asdqwe12312312asdaslwke123asdal
    wfldfqwe</b>
    
     pywhat "EAujR29N634fMDl1lPcagf55ZpzH5s4UZQBl49z0wbI6L4uBV4n6ugPUp6whoIco3dI0uOLyQ4mFx2xp56N0vXqwUuixvlMP6K1JKBSrj30NOXDVvUc20TuqH968ZYg253m96wMH2uK8tKE743hAJ747yrFMP4E7Zpt2yl1pGUmyPN6x79Dp1YqDv4seodn2"
    Matched on: Pcagf55ZpzH5s4UZQBl49z0wbI6L4uBV4n6ugPUp6w
    Name: Bitcoin Cash (BCH) Wallet Address
    Link:  https://www.blockchain.com/bch/address/Pcagf55ZpzH5s4UZQBl49z0wbI6L4uBV4n6ugPUp6w
    
    Matched on: Q4mFx2xp56N0vXqwUuixvlMP6K1JKBSrj30NOXDVvU
    Name: Bitcoin Cash (BCH) Wallet Address
    Link:  https://www.blockchain.com/bch/address/Q4mFx2xp56N0vXqwUuixvlMP6K1JKBSrj30NOXDVvU
    
    Matched on: qH968ZYg253m96wMH2uK8tKE743hAJ747yrFMP4E7Z
    Name: Bitcoin Cash (BCH) Wallet Address
    Link:  https://www.blockchain.com/bch/address/qH968ZYg253m96wMH2uK8tKE743hAJ747yrFMP4E7Z
    
    Matched on: EAujR29N634fMDl1lPcagf55ZpzH5s4UZQBl49z0wbI6L4uBV4n6ugPUp6whoIco3dI0uOLyQ4mFx2xp56N0vXqwUuixvlMP6K1JKBSrj30N
    OXDVvUc20TuqH968ZYg253m96wMH2uK8tKE743hAJ747yrFMP4E7Zpt2yl1pGUmyPN6x79Dp1YqDv4seodn2
    Name: Facebook Access Token
    Link:  https://developers.facebook.com/tools/debug/accesstoken/?access_token=EAujR29N634fMDl1lPcagf55ZpzH5s4UZQBl49z0wbI
    6L4uBV4n6ugPUp6whoIco3dI0uOLyQ4mFx2xp56N0vXqwUuixvlMP6K1JKBSrj30NOXDVvUc20TuqH968ZYg253m96wMH2uK8tKE743hAJ747yrFMP4E7Zpt
    2yl1pGUmyPN6x79Dp1YqDv4seodn2
    
    Matched on: 3m96wMH2uK8tKE743hAJ747yrFMP4E7Zpt
    Name: Bitcoin (β‚Ώ) Wallet Address
    Link:  https://www.blockchain.com/btc/address/3m96wMH2uK8tKE743hAJ747yrFMP4E7Zpt
    
    Matched on: 1pGUmyPN6x79Dp1YqDv4seodn2
    Name: Bitcoin (β‚Ώ) Wallet Address
    Link:  https://www.blockchain.com/btc/address/1pGUmyPN6x79Dp1YqDv4seodn2
    
    Matched on: N634
    Name: Latitude & Longitude Coordinates
    Link:  https://www.google.com/maps/place/N634
    
    Matched on: E743
    Name: Latitude & Longitude Coordinates
    Link:  https://www.google.com/maps/place/E743
    
    Matched on: MDl1lPcagf55ZpzH5s4UZQBl49z0wbI6L4
    Name: Litecoin (LTC) Wallet Address
    Link:  https://live.blockcypher.com/ltc/address/MDl1lPcagf55ZpzH5s4UZQBl49z0wbI6L4
    
    Matched on: LyQ4mFx2xp56N0vXqwUuixvlMP6K1JKBSr
    Name: Litecoin (LTC) Wallet Address
    Link:  https://live.blockcypher.com/ltc/address/LyQ4mFx2xp56N0vXqwUuixvlMP6K1JKBSr
    
    Matched on: m96wMH2uK8tKE743hAJ747yrFMP4E7Zpt2
    Name: Litecoin (LTC) Wallet Address
    Link:  https://live.blockcypher.com/ltc/address/m96wMH2uK8tKE743hAJ747yrFMP4E7Zpt2
    
    Matched on: R29N634fMDl1lPcagf55ZpzH5s4UZQBl49
    Name: Ripple (XRP) Wallet Address
    Link:  https://xrpscan.com/account/R29N634fMDl1lPcagf55ZpzH5s4UZQBl49
    
    Matched on: rj30NOXDVvUc20TuqH968ZYg253m96wMH2
    Name: Ripple (XRP) Wallet Address
    Link:  https://xrpscan.com/account/rj30NOXDVvUc20TuqH968ZYg253m96wMH2
    
    Matched on: rFMP4E7Zpt2yl1pGUmyPN6x79Dp1YqDv4s
    Name: Ripple (XRP) Wallet Address
    Link:  https://xrpscan.com/account/rFMP4E7Zpt2yl1pGUmyPN6x79Dp1YqDv4s
    
    Matched on: 634fMDl1lPcagf55ZpzH5s4UZQBl49z0wbI6L4uB
    Name: Google ReCaptcha API Key
    Exploit: Use the command below to verify that API key is valid:
      $ curl -X POST -d "secret=634fMDl1lPcagf55ZpzH5s4UZQBl49z0wbI6L4uB&response=RESPONSE_TO_VERIFY"
    https://www.google.com/recaptcha/api/siteverify
    
    
    Matched on: 6ugPUp6whoIco3dI0uOLyQ4mFx2xp56N0vXqwUui
    Name: Google ReCaptcha API Key
    Exploit: Use the command below to verify that API key is valid:
      $ curl -X POST -d "secret=6ugPUp6whoIco3dI0uOLyQ4mFx2xp56N0vXqwUui&response=RESPONSE_TO_VERIFY"
    https://www.google.com/recaptcha/api/siteverify
    
    
    Matched on: 6K1JKBSrj30NOXDVvUc20TuqH968ZYg253m96wMH
    Name: Google ReCaptcha API Key
    Exploit: Use the command below to verify that API key is valid:
      $ curl -X POST -d "secret=6K1JKBSrj30NOXDVvUc20TuqH968ZYg253m96wMH&response=RESPONSE_TO_VERIFY"
    https://www.google.com/recaptcha/api/siteverify
    
    opened by nodtem66 6
  • Lat / Long matches incorrectly

    Lat / Long matches incorrectly

    $ poetry run pywhat acb6d73d95a10d30aef9894603e90963   
    
    Matched on: e90963
    Name: Latitude & Longitude Coordinates
    Link:  https://www.google.com/maps/place/e90963
    

    Bug found in #196

    help wanted good first issue hacktoberfest priority Regex issue 
    opened by bee-san 6
  • Added Youtube Vedio ID Test Cases

    Added Youtube Vedio ID Test Cases

    ⚠ Pull Requests not made with this template will be automatically closed πŸ”₯

    Prerequisites

    • [x] Have you read the documentation on contributing? https://github.com/bee-san/pyWhat/wiki/Adding-your-own-Regex

    Why do we need this pull request?

    • Added testcases for Youtube Vedio ID

    What GitHub issues does this fix?

    Copy / paste of output

    Please copy and paste the output of PyWhat with your new addition using an example that tests this addition below:

    
    
    opened by Rodrous 0
  • Phone Number matches incorrectly

    Phone Number matches incorrectly

    ⚠ Pull Requests not made with this template will be automatically closed πŸ”₯

    Prerequisites

    • [ ] Have you read the documentation on contributing? https://github.com/bee-san/pyWhat/wiki/Adding-your-own-Regex

    Why do we need this pull request?

    • Explain the why behind your PR. We can see what it does from the code. But why does it do that?

    What GitHub issues does this fix?

    • Fixes #10000

    Copy / paste of output

    Please copy and paste the output of PyWhat with your new addition using an example that tests this addition below:

    
    
    opened by HamiedAsadi 0
  • Youtube links are not parsed correctly

    Youtube links are not parsed correctly

    "dQw4w9WgXcQ" is a youtube link endings for videos.

    I'm using the current version on github and it is returning nothing found. Is this the same for everyone?

    It is the same for all youtube links.

    opened by Croquembouche 0
  • Implement support for multiple input files handling

    Implement support for multiple input files handling

    Prerequisites

    • [X] Have you read the documentation on contributing? https://github.com/bee-san/pyWhat/wiki/Adding-your-own-Regex

    Why do we need this pull request?

    This will allow pyWhat to handle being given multiple inputs.

    What GitHub issues does this fix?

    • Fixes #171

    Copy / paste of output

    Please copy and paste the output of PyWhat with your new addition using an example that tests this addition below:

     what "0x52908400098527886E0F7030069857D2E4169EE7" noxfile.py
    Matched on: 5290840009852
    Name: Phone Number
    
    Matched on: 7030069857
    Name: Phone Number
    
    Matched on: 529084000
    Name: American Social Security Number
    Description: An American Identification Number
    
    Matched on: 030069857
    Name: American Social Security Number
    Description: An American Identification Number
    
    Matched on: 5290840009852788
    Name: MasterCard Number
    
    Matched on: 0x52908400098527886E0F7030069857D2E4169EE7
    Name: Ethereum (ETH) Wallet Address
    Link:  https://etherscan.io/address/0x52908400098527886E0F7030069857D2E4169EE7
    
    Matched on: 52908400098
    Name: Turkish Identification Number
    Matched on: nox.ses
    Name: Uniform Resource Locator (URL)
    
    Matched on: nox.options.ses
    Name: Uniform Resource Locator (URL)
    
    Matched on: environ.ge
    Name: Uniform Resource Locator (URL)
    
    Matched on: nox.options.sessions.app
    Name: Uniform Resource Locator (URL)
    
    Matched on: noxfile.py
    Name: Uniform Resource Locator (URL)
    
    Matched on: conf.py
    Name: Uniform Resource Locator (URL)
    
    Matched on: nox.sessions.Session.in
    Name: Uniform Resource Locator (URL)
    
    Matched on: Session.in
    Name: Uniform Resource Locator (URL)
    
    Matched on: session.run
    Name: Uniform Resource Locator (URL)
    
    Matched on: session.in
    Name: Uniform Resource Locator (URL)
    
    Matched on: nox.ses
    Name: Uniform Resource Locator (URL)
    
    Matched on: session.run
    Name: Uniform Resource Locator (URL)
    
    Matched on: session.run
    Name: Uniform Resource Locator (URL)
    
    Matched on: nox.ses
    Name: Uniform Resource Locator (URL)
    
    Matched on: session.run
    Name: Uniform Resource Locator (URL)
    
    opened by sgaist 0
  • Added Guilded webhook regex with tests & added tests for Discord webhooks

    Added Guilded webhook regex with tests & added tests for Discord webhooks

    Prerequisites

    • [x] Have you read the documentation on contributing? https://github.com/bee-san/pyWhat/wiki/Adding-your-own-Regex

    Why do we need this pull request?

    Adds regex for Guilded (guilded.gg) webhooks Adds fixtures & tests for both Discord (#216) and Guilded webhooks

    What GitHub issues does this fix?

    Adds tests to #216

    Copy / paste of output

    $ pywhat "https://api.guilded.gg/webhooks/1fa5fe35-74e7-4f17-bf53-52d02293fea6/zhXzVecRvaMCWEcOCIuIMYQyeeKemUCswca24Q68cCQCgg4oYKewamAiEkaI2uCS8Q2sgwy2qUOe2c4yE2em786"
    Matched on: QyeeKemUCswca24Q68cCQCgg4oYKewamAiEkaI2uCS
    Name: Bitcoin Cash (BCH) Wallet Address
    Link:  https://www.blockchain.com/bch/address/QyeeKemUCswca24Q68cCQCgg4oYKewamAiEkaI2uCS
    
    Matched on: https://api.guilded.gg/webhooks/1fa5fe35-74e7-4f17-bf53-52d02293fea6/zhXzVecRvaMCWEcOCIuIMYQyeeKemUCswca24Q68cCQCgg4oYKewamAiEkaI2uCS8Q2sgwy2qUOe2c4yE2em78
    Name: Guilded Webhook
    
    Matched on: https://api.guilded.gg/webhooks/1fa5fe35-74e7-4f17-bf53-52d02293fea6/zhXzVecRvaMCWEcOCIuIMYQyeeKemUCswca24Q68cCQCgg4oYKewamAiEkaI2uCS8Q2sgwy2qUOe2c4yE2em786
    Name: Uniform Resource Locator (URL)
    
    Matched on: 1fa5fe35-74e7-4f17-bf53-52d02293fea6
    Name: UUID
    Link:  https://www.uuidtools.com/api/decode/1fa5fe35-74e7-4f17-bf53-52d02293fea6
    
    Matched on: MCWEcOCIuIMYQyeeKemUCswca24Q68cCQC
    Name: Litecoin (LTC) Wallet Address
    Link:  https://live.blockcypher.com/ltc/address/MCWEcOCIuIMYQyeeKemUCswca24Q68cCQC
    
    Matched on: mAiEkaI2uCS8Q2sgwy2qUOe2c4yE2em786
    Name: Litecoin (LTC) Wallet Address
    Link:  https://live.blockcypher.com/ltc/address/mAiEkaI2uCS8Q2sgwy2qUOe2c4yE2em786
    
    Matched on: RvaMCWEcOCIuIMYQyeeKemUCswca24Q68c
    Name: Ripple (XRP) Wallet Address
    Link:  https://xrpscan.com/account/RvaMCWEcOCIuIMYQyeeKemUCswca24Q68c
    
    Matched on: 68cCQCgg4oYKewamAiEkaI2uCS8Q2sgwy2qUOe2c
    Name: Google ReCaptcha API Key
    Exploit: Use the command below to verify that API key is valid:
      $ curl -X POST -d "secret=68cCQCgg4oYKewamAiEkaI2uCS8Q2sgwy2qUOe2c&response=RESPONSE_TO_VERIFY" https://www.google.com/recaptcha/api/siteverify
    
    opened by IlluminatiFish 3
Releases(5.1.0)
  • 5.1.0(Dec 4, 2021)

    What's Changed

    • Use the Flake8 Pytest plugin by @SkeletalDemise in https://github.com/bee-san/pyWhat/pull/220
    • New Mailchimp keys by @spicyyboi in https://github.com/bee-san/pyWhat/pull/223
    • Patch #197 Lat / Long matches incorrectly by @nodtem66 in https://github.com/bee-san/pyWhat/pull/226
    • fix: Amazon EC2 ID getting matched a lot by @amadejpapez in https://github.com/bee-san/pyWhat/pull/229
    • fix: improved URL regex by @amadejpapez in https://github.com/bee-san/pyWhat/pull/230
    • feat: UPS tracking numbers by @P403n1x87 in https://github.com/bee-san/pyWhat/pull/228
    • Add new RegEx for facebook tokens by @nodtem66 in https://github.com/bee-san/pyWhat/pull/225
    • ci: disable testing python 3.6 on macos as it is no longer supported by @jyooru in https://github.com/bee-san/pyWhat/pull/237
    • Fixed #231 Datadog API by @nodtem66 in https://github.com/bee-san/pyWhat/pull/235
    • Improve JWT RegExp by @nodtem66 in https://github.com/bee-san/pyWhat/pull/236

    New Contributors

    • @nodtem66 made their first contribution in https://github.com/bee-san/pyWhat/pull/226

    Full Changelog: https://github.com/bee-san/pyWhat/compare/5.0.0...5.1.0

    Source code(tar.gz)
    Source code(zip)
  • 5.0.0(Oct 22, 2021)

    ⚠ Breaking

    These regexes were changed to rarity of 0 and no longer appear by default in the CLI https://github.com/bee-san/pyWhat/pull/198/files

    What's Changed

    • Add sshpass by @PabloLec in https://github.com/bee-san/pyWhat/pull/204
    • Test regex names capitalization by @PabloLec in https://github.com/bee-san/pyWhat/pull/206
    • Switch ipv6 and ipv4 tags around by @bee-san in https://github.com/bee-san/pyWhat/pull/209
    • Improve printing by @piatrashkakanstantinass in https://github.com/bee-san/pyWhat/pull/207
    • Add mount commands and fstab entries with clear credentials by @PabloLec in https://github.com/bee-san/pyWhat/pull/210
    • refactor tests/test_regex_identifier.py by @jyooru in https://github.com/bee-san/pyWhat/pull/202
    • Update Slack Webhook regex with tests by @gVirtu in https://github.com/bee-san/pyWhat/pull/214
    • Remove duplicate regexes, add test to spot duplicate regexes by @Hexiro in https://github.com/bee-san/pyWhat/pull/215
    • flake8 by @jyooru in https://github.com/bee-san/pyWhat/pull/195
    • Added loads of test candidates and updated discord webhook regex by @IlluminatiFish in https://github.com/bee-san/pyWhat/pull/216
    • perf: fix RegexIdentifier.check regression by @P403n1x87 in https://github.com/bee-san/pyWhat/pull/218
    • ci: test python 3.10 by @jyooru in https://github.com/bee-san/pyWhat/pull/221
    • Add DOI support by @spicyyboi in https://github.com/bee-san/pyWhat/pull/219

    New Contributors

    • @gVirtu made their first contribution in https://github.com/bee-san/pyWhat/pull/214
    • @IlluminatiFish made their first contribution in https://github.com/bee-san/pyWhat/pull/216
    • @P403n1x87 made their first contribution in https://github.com/bee-san/pyWhat/pull/218
    • @spicyyboi made their first contribution in https://github.com/bee-san/pyWhat/pull/219

    Full Changelog: https://github.com/bee-san/pyWhat/compare/4.3.1...5.0.0

    Source code(tar.gz)
    Source code(zip)
  • 4.3.1(Oct 10, 2021)

    We set a bunch of the most spammiest regex down to 0, to reduce the amount of spam you see when using PyWhat! πŸ₯³

    What's Changed

    • Add datadog client token by @gruebel in https://github.com/bee-san/pyWhat/pull/196
    • Set some regex to 0 by @bee-san in https://github.com/bee-san/pyWhat/pull/198

    Full Changelog: https://github.com/bee-san/pyWhat/compare/4.3.0...4.2.1

    Source code(tar.gz)
    Source code(zip)
  • 4.3.0(Oct 9, 2021)

    Turns a lot of spammy regex down to 0.1 so you won't see them unless you want to. Also adds some new regex :)

    What's Changed

    • Turn ULID, GUID and youtube video ID to 0.1 by @bee-san in https://github.com/bee-san/pyWhat/pull/188
    • setup coverage by @jyooru in https://github.com/bee-san/pyWhat/pull/191
    • Add TOTP URIs by @PabloLec in https://github.com/bee-san/pyWhat/pull/190
    • Create PULL_REQUEST_TEMPLATE.md by @bee-san in https://github.com/bee-san/pyWhat/pull/192
    • Set unix timestamp to 0.1 and 4.3.0 release by @bee-san in https://github.com/bee-san/pyWhat/pull/193

    New Contributors

    • @jyooru made their first contribution in https://github.com/bee-san/pyWhat/pull/191

    Full Changelog: https://github.com/bee-san/pyWhat/compare/4.2.0...4.3.0

    Source code(tar.gz)
    Source code(zip)
  • 4.2.0(Oct 8, 2021)

    No breaking changes, just good old fashioned additions :)

    What's Changed

    • Added / fixed tests and regex by @0xmostafam in https://github.com/bee-san/pyWhat/pull/175
    • Fixed AWS SNS and Google Calendar regexes and added tests for them by @alb in https://github.com/bee-san/pyWhat/pull/176
    • Fix nox tests by @SkeletalDemise in https://github.com/bee-san/pyWhat/pull/172
    • Revert "Fix nox tests" by @bee-san in https://github.com/bee-san/pyWhat/pull/180
    • leverage falseness of empty dicts by @gruebel in https://github.com/bee-san/pyWhat/pull/181
    • Add regex and tests for PEM formatted private key by @alfredtso in https://github.com/bee-san/pyWhat/pull/179
    • Fix Python 3.8 and Python 3.9 CI checks by @SkeletalDemise in https://github.com/bee-san/pyWhat/pull/182
    • Add numerous new tags by @SkeletalDemise in https://github.com/bee-san/pyWhat/pull/183
    • Add ULID, UUID and ObjectID regexes by @SkeletalDemise in https://github.com/bee-san/pyWhat/pull/186
    • Added support for Notion Notes and API keys by @alb in https://github.com/bee-san/pyWhat/pull/177
    • Add GitHub App Token test by @SkeletalDemise in https://github.com/bee-san/pyWhat/pull/185

    New Contributors

    • @alb made their first contribution in https://github.com/bee-san/pyWhat/pull/176
    • @gruebel made their first contribution in https://github.com/bee-san/pyWhat/pull/181
    • @alfredtso made their first contribution in https://github.com/bee-san/pyWhat/pull/179

    Full Changelog: https://github.com/bee-san/pyWhat/compare/4.1.0...4.2.0

    Source code(tar.gz)
    Source code(zip)
  • 4.1.0(Oct 5, 2021)

    Stuff you want to know

    • Curl webhooks in the exploit section for bug bounties are automatically filled in
    • We now support piping, so you can do curl skerritt.blog | pywhat
    • When in bug bounty mode (--includes "Bug Bounty") we no longer print "Nothing found!" so you can alert on any printing :)
    • A bunch of new Regex!

    What's Changed

    • Updates bug bounty commands by @bee-san in https://github.com/bee-san/pyWhat/pull/154
    • New Relic Keys by @colinodell in https://github.com/bee-san/pyWhat/pull/156
    • Automatically fill in the Curl webhook by @colinodell in https://github.com/bee-san/pyWhat/pull/157
    • Create CONTRIBUTING.md by @bee-san in https://github.com/bee-san/pyWhat/pull/139
    • Bug fixes and cleanup by @piatrashkakanstantinass in https://github.com/bee-san/pyWhat/pull/147
    • Add pipeline support by @piatrashkakanstantinass in https://github.com/bee-san/pyWhat/pull/159
    • Add black and isort tests by @piatrashkakanstantinass in https://github.com/bee-san/pyWhat/pull/161
    • Do not print 'Nothing found!' in bug bounty mode by @Alireza-Sampour in https://github.com/bee-san/pyWhat/pull/165
    • [ImgBot] Optimize images by @imgbot in https://github.com/bee-san/pyWhat/pull/166
    • Add Keyhacks information to Exploits where applicable by @vanjo9800 in https://github.com/bee-san/pyWhat/pull/162
    • Fix exploit token replacement when having multiple matches by @vanjo9800 in https://github.com/bee-san/pyWhat/pull/167
    • Added Turkish regexes by @sonniki in https://github.com/bee-san/pyWhat/pull/169
    • Adding test for pypi upload token by @davidclarance in https://github.com/bee-san/pyWhat/pull/170
    • added nano; simplify by @Hexiro in https://github.com/bee-san/pyWhat/pull/168
    • Regex Tests: Added Hawk API test and Fixed Discord WebHook Regex by @0xmostafam in https://github.com/bee-san/pyWhat/pull/173

    New Contributors

    • @colinodell made their first contribution in https://github.com/bee-san/pyWhat/pull/156
    • @Alireza-Sampour made their first contribution in https://github.com/bee-san/pyWhat/pull/165
    • @vanjo9800 made their first contribution in https://github.com/bee-san/pyWhat/pull/162
    • @sonniki made their first contribution in https://github.com/bee-san/pyWhat/pull/169
    • @davidclarance made their first contribution in https://github.com/bee-san/pyWhat/pull/170
    • @Hexiro made their first contribution in https://github.com/bee-san/pyWhat/pull/168
    • @0xmostafam made their first contribution in https://github.com/bee-san/pyWhat/pull/173

    Full Changelog: https://github.com/bee-san/pyWhat/compare/4.0.0...4.1.0

    Source code(tar.gz)
    Source code(zip)
  • 4.0.0(Oct 2, 2021)

    In this release we added 67 new bug bounty regex!

    Run PyWhat in your toolchains with pywhat --include "Bug Bounty" to find all the bugs πŸ›πŸ›

    We also switched to a new raw mode so you can easily check for links :)

    Source code(tar.gz)
    Source code(zip)
  • 3.4.1(Aug 28, 2021)

  • 3.4.0(Aug 27, 2021)

    What’s Changed

    • Implement subcategories (#127) @piatrashkakanstantinass
    • Make searching filenames for matches optional (#128) @amadejpapez
    • Better regex for BTC, BCH and XMR wallets (#129) @amadejpapez
    • Fix for --json command option (#135) @amadejpapez
    • Remove children data from identify() return object (#134) @piatrashkakanstantinass
    • Release 3.4.0 :) (#132) @bee-san
    Source code(tar.gz)
    Source code(zip)
  • 3.3.0(Jul 31, 2021)

    What’s Changed

    • Completely remove Name-That-Hash support (#124) @amadejpapez
    • Added and removed some of the tags (#123) @amadejpapez
    • Fix json error (#122) @piatrashkakanstantinass
    • [ImgBot] Optimize images (#121) @imgbot
    • Sort TLDs by length (#119) @piatrashkakanstantinass
    • Updated gifs, images and text in the README (#120) @amadejpapez
    • Fix discord badge (#113) @piatrashkakanstantinass
    • Update dev-dependencies (#111) @piatrashkakanstantinass
    • Fix url for EUI-48 Identifier (#112) @logocomune
    • Identify Discord tokens (#110) @amadejpapez
    • Tests to check if sorted by rarity, if correct regex format,... (#109) @amadejpapez
    • Adding AWS credential types (#91) @belialboy
    • Add PGP public keys for #84 (#105) @baldoarturo
    • Amazon Standard Identification Number (ASIN) (#104) @mimiflynn
    • add unix timestamp support (#85) @Granitosaurus
    • Add support for boundaryless regex (#86) @piatrashkakanstantinass
    Source code(tar.gz)
    Source code(zip)
  • 3.2.0(Jun 27, 2021)

    What’s Changed

    • Add Placekey universal identifier regex (#82) @chrisbergeron
    • Update pyproject.toml (#101) @piatrashkakanstantinass
    • Add short-names to tags #69 (#96) @RackReaver
    • Add ability to return results as json. (#98) @RackReaver
    • Add regex for various API keys (#99) @ryansonshine
    • Add support for MAC addresses and other EUI-48 addresses (#88) @holmanb
    Source code(tar.gz)
    Source code(zip)
  • 3.1.0(Jun 25, 2021)

    What’s Changed

    • Add common SSH public key formats (#90) @PabloLec
    • Black and isort stuff (#81) @piatrashkakanstantinass
    • Update CLI (#80) @piatrashkakanstantinass
    • Improved detection of URLs with a valid list of TLDs (#74) @amadejpapez
    • only_text is set to True by default, updated tests (#79) @amadejpapez
    • Print folder name alongside of the file name in table (#77) @amadejpapez
    • Changed default rarity to 0.1:1, updated docs and tests (#78) @bee-san
    Source code(tar.gz)
    Source code(zip)
  • 2.0.0(Jun 12, 2021)

    This breaks the API. Please read https://github.com/bee-san/pyWhat/wiki/API

    What’s Changed

    • Recursion fixes (#72) @amadejpapez
    • Add sorting (#71) @piatrashkakanstantinass
    • Added recursion support (#58) @amadejpapez
    Source code(tar.gz)
    Source code(zip)
  • 1.2.0(Jun 6, 2021)

    What’s Changed

    • Filtration support (#62) @piatrashkakanstantinass ^^ This is the big one! Read my docs here. https://github.com/bee-san/pyWhat/wiki/API or run what --help to see how to use it!

    • Fix unicode decode err (#63) @davidlatwe

    • Minor fixes (#54) @piatrashkakanstantinass

    • Add phone number support (#52) @piatrashkakanstantinass

    • Script for getting TLDs (#53) @swanandx

    • Fix YouTube Id test name (#48) @piatrashkakanstantinass

    • Remove language identifier (#49) @bee-san

    • Added JWT and AWS Regex (#44) @bee-san

    • Improved detection for emails (#41) @amadejpapez

    • Added "plural_name": false to all current regex (#40) @bee-san

    Source code(tar.gz)
    Source code(zip)
  • 1.1.0(May 24, 2021)

    What’s Changed

    • Changed regex from plural to singular and added better linking (#32) @bee-san
    • pyWhat can now detect Ripple, Bitcoin Cash, Litecoin and Monero wallet addresses!
    • added regex for IPv6
    • if there is a port number alongside of the IP address, it will now grab that too
    • improved detection for coordinates, added formats like N 32Β° 53.733 W 096Β° 48.358" and made it less restrictive (20,80 is no longer a coordinate)
    • made YouTube id regex more restrictive: now it requires at least one number, at least one uppercase letter and at least one lowercase letter (078-05-1120 no longer matches, but 078-05-1aA0 does), should fix #33 issue
    • added a much better URL regex from @SkeletalDemise
    • URL regex is now also case insensitive (before URL starting with HTTP would not match)
    • and with all of the changes requested in #26 :D
    Source code(tar.gz)
    Source code(zip)
  • 1.0.1(May 23, 2021)

  • 0.2.5(May 21, 2021)

  • 0.2.4(May 21, 2021)

  • 0.2.3(May 20, 2021)

Owner
Brandon
Creator of RustScan, Ciphey, Name-That-Hash, Search-That-Hash and more 🌌 Infrastructure @ Monzo
Brandon
strbind - lapidary text converter for translate an text file to the C-style string

strbind strbind - lapidary text converter for translate an text file to the C-style string. My motivation is fast adding large text chunks to the C co

Mihail Zaytsev 1 Oct 22, 2021
TextStatistics - Get a text file wich contains English text

TextStatistics This program get a text file wich contains English text. The program analyses the text, and print some information. For this program I

null 2 Nov 15, 2021
A Python library that provides an easy way to identify devices like mobile phones, tablets and their capabilities by parsing (browser) user agent strings.

Python User Agents user_agents is a Python library that provides an easy way to identify/detect devices like mobile phones, tablets and their capabili

Selwin Ong 1.3k Dec 22, 2022
Add your new words to a text file and get them randomly.

Memorize-New-Words In this very very very little project, I've wrote a code to memorize new english words. Therefore you can add the words and their m

Mostafa 2 Jul 4, 2022
A python Tk GUI that creates, writes text and attaches images into a custom spreadsheet file

A python Tk GUI that creates, writes text and attaches images into a custom spreadsheet file

Mirko Simunovic 13 Dec 9, 2022
Export solved codewars kata challenges to a text file.

Codewars Kata Exporter Note:this is not totally my work.i've edited the project to make more easier and faster for me.you can find the original work h

Oussama Ben Sassi 4 Aug 13, 2021
Markup is an online annotation tool that can be used to transform unstructured documents into structured formats for NLP and ML tasks, such as named-entity recognition. Markup learns as you annotate in order to predict and suggest complex annotations. Markup also provides integrated access to existing and custom ontologies, enabling the prediction and suggestion of ontology mappings based on the text you're annotating.

Markup is an online annotation tool that can be used to transform unstructured documents into structured formats for NLP and ML tasks, such as named-entity recognition. Markup learns as you annotate in order to predict and suggest complex annotations. Markup also provides integrated access to existing and custom ontologies, enabling the prediction and suggestion of ontology mappings based on the text you're annotating.

Samuel Dobbie 146 Dec 18, 2022
text-to-speach bot - You really do NOT have time for read a newsletter? Now you can listen to it

NewsletterReader You really do NOT have time for read a newsletter? Now you can listen to it The Newsletter of Filipe Deschamps is a great place to re

ItanuRomero 8 Sep 18, 2021
Text to ASCII and ASCII to text

Text2ASCII Description This python script (converter.py) contains two functions: encode() is used to return a list of Integer, one item per character

null 4 Jan 22, 2022
A Python app which can convert normal text to Handwritten text.

Text to HandWritten Text ✍️ Converter Watch Tutorial for this project Usage:- Clone my repository. Open CMD in working directory. Run following comman

Kushal Bhavsar 5 Dec 11, 2022
A python tool to convert Bangla Bijoy text to Unicode text.

Unicode Converter A python tool to convert Bangla Bijoy text to Unicode text. Installation Unicode Converter can be installed via PyPi. Make sure pip

Shahad Mahmud 10 Sep 29, 2022
Redlines produces a Markdown text showing the differences between two strings/text

Redlines Redlines produces a Markdown text showing the differences between two strings/text. The changes are represented with strike-throughs and unde

Houfu Ang 2 Apr 8, 2022
Answer some questions and get your brawler csvs ready!

BRAWL-STARS-V11-BRAWLER-MAKER-TOOL Answer some questions and get your brawler csvs ready! HOW TO RUN on android: Install pydroid3 from playstore, and

null 9 Jan 7, 2023
This is an AI that is supposed to say you if your text is formal or not

This is an AI that is supposed to say you if your text is formal or not. It's written in Python 3 and has some german examples (because I'm german yk) in the text.json file. This file contains the text which the AI. The TXT-file isn't important but necessary.

null 1 Jan 12, 2022
split Word file by chapter

split Word file by chapter we use the mircosoft word api to code this tool api url:https://docs.microsoft.com/zh-cn/dotnet/api/ if this tool is good f

wisdom under lemon trees 5 Nov 6, 2021
Fixes mojibake and other glitches in Unicode text, after the fact.

ftfy: fixes text for you >>> print(fix_encoding("(à¸‑'Γ’Ε’Β£')à¸‑")) (ΰΈ‡'⌣')ΰΈ‡ Full documentation: https://ftfy.readthedocs.org Testimonials β€œMy life is li

Luminoso Technologies, Inc. 3.4k Jan 8, 2023
A production-ready pipeline for text mining and subject indexing

A production-ready pipeline for text mining and subject indexing

UF Open Source Club 12 Nov 6, 2022
Code Jam for creating a text-based adventure game engine and custom worlds

Text Based Adventure Jam Author: Devin McIntyre Our goal is two-fold: Create a text based adventure game engine that can parse a standard file format

HTTPChat 4 Dec 26, 2021
This is REST-API for Indonesian Text Summarization using Non-Negative Matrix Factorization for the algorithm to summarize documents and FastAPI for the framework.

Indonesian Text Summarization Using FastAPI This is REST-API for Indonesian Text Summarization using Non-Negative Matrix Factorization for the algorit

Viqi Nurhaqiqi 2 Nov 3, 2022