semvec/pypi-packages huggingface dataset:
host-rate-limit 1.0.0
Rate limit function calls based on URL's host.

## Per-host rate limiting for asynchronous web scraping
[![TravisCI](https://travis-ci.org/djkelleher/pyppeteer-cluster.svg?branch=master)](https://travis-ci.org/github/djkelleher/pyppeteer-cluster)
[![codecov](https://codecov.io/gh/djkelleher/pyppeteer-cluster/branch/master/graph/badge.svg?token=IWXL8WQT3N)](https://codecov.io/gh/djkelleher/pyppeteer-cluster)
[![Python 3.7](https://img.shields.io/badge/python-3.6-blue.svg)](https://www.python.org/downloads/release/python-360/)
[![Python 3.7](https://img.shields.io/badge/python-3.7-blue.svg)](https://www.python.org/downloads/release/python-370/)
[![Python 3.8](https://img.shields.io/badge/python-3.8-blue.svg)](https://www.python.org/downloads/release/python-380/)
[![Python 3.9](https://img.shields.io/badge/python-3.9-blue.svg)](https://www.python.org/downloads/release/python-390/)

### Usage
```python
from host_rate_limit import RateLimiter

host_requests_per_sec = {
    'www.amazon.com': (1.25, 3), # wait between 1/3 and 1/1.25 seconds between dispatching requests to amazon.com
    'www.ebay.com': 0.33, # wait 1/0.33 second between dispatching requests to amazon.com
    'twitter.com': 1, # send 1 request per second to twitter.com
}

rate_limiter = RateLimiter(default_rate_limit=(1,2), # send between 1 and 2 requests per second to every host that is not listed in host_requests_per_sec
                           host_requests_per_sec=host_requests_per_sec)

async def request(url):
    await rate_limiter.maybe_sleep(url)
    # request would be dispatched now..
    # response = await http_client.get(url)

# asynchronously dispatch a batch of requests.
# urls: List[str]
await asyncio.gather(
    *[asyncio.create_task(request(url)) for url in urls])
```
jailrootdetector 0.1.2
Identify root and jailbreak detection in mobile applications
Requires Python: >=3.7,<4.0

#+TITLE: jailrootDetector

Attempted automation to detect root and jailbreak detection in mobile applications.

* Example Usage

Detect common detection strings like "jailbroken" and "rooted" as well as a few others. The script leverages [[https://www.radare.org/r/][radare2]] and [[https://sourceware.org/binutils/docs/binutils/strings.html][GNU strings]] to attempt to quickly identify if that application is going to give you a hard time.

** Demo

#+begin_src shell :results output :dir ./jailrootdetector/ :exports both
  jrd --help
#+end_src

The script *does not* extract the IPA or APK, It assums you know how to do that ;) .

#+RESULTS:
: usage: jrd [-h] (--dex DEX | --ios IOS)
: 
: [+] root & jailbreak detection
: 
: optional arguments:
:   -h, --help  show this help message and exit
:   --dex DEX   path to android dex file
:   --ios IOS   path to extracted payload binary

Once you have an extracted app, then run the script with the relevant option, for example;

#+begin_src shell :results output :dir ./jailrootdetector/ :exports both
  jrd --ios ./Documents/IPAs/Discord/Payload/Discord.app/Discord
#+end_src

Then the script will atempt to find hard-coded well known detection strings, frist with [[https://www.radare.org/r/][radare2]] and then falls back to [[https://sourceware.org/binutils/docs/binutils/strings.html][GNU strings]].

#+RESULTS:
#+begin_example
  [+] searching

  [+] detection strings found: 

  /Applications/Cydia.app
  /bin/sh
  /bin/bash
  jailbroken
  0x100d1be97 11 10 jailbroken
  0x100d1c0dc 13 12 isJailbroken
  0x100d1c0e9 22 21 TB,R,N,V_isJailbroken
  0x100ddcc6b 20 19 computeIsJailbroken
  0x100ddcd0a 13 12 isJailbroken
  0x100ddcd57 14 13 _isJailbroken
#+end_example

* Installation

You can install with =pip3=.

#+begin_src shell :results output
  pip3 install jailrootdetector
#+end_src

Or you can install with [[https://python-poetry.org/][poetry]]

#+begin_src shell :results output
  git clone https://gitlab.com/JxTx/jailrootdetector && \
    cd jailrootdetector && \
    poetry install && \
    poetry shell
    jrd --help
#+end_src

if all else fails, here is a checklist of dependencies.

 - [[https://www.radare.org/r/][radare2]]
   - Use the [[https://www.radare.org/r/down.html][installation documentation]] for this.
 - [[https://www.radare.org/n/r2pipe.html][r2pipe]]
   - This can be installed with =pip3 install r2pipe=
 - [[https://pypi.org/project/sh/][sh]]
   - This can be installed with =pip3 install sh=
 - [[https://sourceware.org/binutils/docs/binutils/strings.html][GNU Strings]]
   - This should already be installed on your system, if not you should be able to install it with your package manager.