<p align="center">
<a href="https://github.com/nickatnight/fastapi-spam/actions">
<img alt="GitHub Actions status" src="https://github.com/nickatnight/fastapi-spam/actions/workflows/main.yaml/badge.svg">
</a>
<a href="https://codecov.io/gh/nickatnight/fastapi-spam">
<img alt="Coverage" src="https://codecov.io/gh/nickatnight/fastapi-spam/branch/main/graph/badge.svg?token=FUZyqlCbbl"/>
</a>
<a href="https://pypi.org/project/fastapi-spam/">
<img alt="PyPi Shield" src="https://img.shields.io/pypi/v/fastapi-spam">
</a>
<a href="https://docs.astral.sh/uv/">
<img alt="uv version" src="https://img.shields.io/badge/uv-0.7.18+-purple">
</a>
<a href="https://www.python.org/downloads/">
<img alt="Python Versions Shield" src="https://img.shields.io/badge/Python-3.12+-blue?logo=python&logoColor=white">
</a>
<a href="https://github.com/nickatnight/fastapi-spam/blob/master/LICENSE">
<img alt="License Shield" src="https://img.shields.io/github/license/nickatnight/fastapi-spam">
</a>
</p>
# 🍔 fastapi-spam
FastAPI middleware to redirect spam requests to a random 10 hours of video. Ported from [django-spam](https://github.com/Tivix/django-spam) (I'm the creator), which was inspired by this [Nick Craver Tweet](https://twitter.com/nick_craver/status/720062942960623616) from 2018.
## Installation
```bash
pip install fastapi-spam
```
## Usage
Add the `TenHoursOfRedirect` middleware to your FastAPI app.
```python
from fastapi import FastAPI
from fastapi_spam.middleware import TenHoursOfRedirect
app = FastAPI()
...
app.add_middleware(TenHoursOfRedirect)
```
The middleware can also be used with a Starlette application.
Raw data
{
"_id": null,
"home_page": null,
"name": "fastapi-spam",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": "Python, package, packaging, FastAPI, Spam, Middleware",
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/9a/a0/a02aafb316de56c3f1d82cbf9c71cf3db8fe041ce4050d63a3d2a9dcf2b4/fastapi_spam-0.0.1.tar.gz",
"platform": null,
"description": "<p align=\"center\">\n <a href=\"https://github.com/nickatnight/fastapi-spam/actions\">\n <img alt=\"GitHub Actions status\" src=\"https://github.com/nickatnight/fastapi-spam/actions/workflows/main.yaml/badge.svg\">\n </a>\n <a href=\"https://codecov.io/gh/nickatnight/fastapi-spam\">\n <img alt=\"Coverage\" src=\"https://codecov.io/gh/nickatnight/fastapi-spam/branch/main/graph/badge.svg?token=FUZyqlCbbl\"/>\n </a>\n <a href=\"https://pypi.org/project/fastapi-spam/\">\n <img alt=\"PyPi Shield\" src=\"https://img.shields.io/pypi/v/fastapi-spam\">\n </a>\n <a href=\"https://docs.astral.sh/uv/\">\n <img alt=\"uv version\" src=\"https://img.shields.io/badge/uv-0.7.18+-purple\">\n </a>\n <a href=\"https://www.python.org/downloads/\">\n <img alt=\"Python Versions Shield\" src=\"https://img.shields.io/badge/Python-3.12+-blue?logo=python&logoColor=white\">\n </a>\n <a href=\"https://github.com/nickatnight/fastapi-spam/blob/master/LICENSE\">\n <img alt=\"License Shield\" src=\"https://img.shields.io/github/license/nickatnight/fastapi-spam\">\n </a>\n</p>\n\n# \ud83c\udf54 fastapi-spam\n\nFastAPI middleware to redirect spam requests to a random 10 hours of video. Ported from [django-spam](https://github.com/Tivix/django-spam) (I'm the creator), which was inspired by this [Nick Craver Tweet](https://twitter.com/nick_craver/status/720062942960623616) from 2018.\n\n## Installation\n\n```bash\npip install fastapi-spam\n```\n\n## Usage\n\nAdd the `TenHoursOfRedirect` middleware to your FastAPI app.\n\n```python\nfrom fastapi import FastAPI\n\nfrom fastapi_spam.middleware import TenHoursOfRedirect\n\n\napp = FastAPI()\n\n...\n\napp.add_middleware(TenHoursOfRedirect)\n```\n\nThe middleware can also be used with a Starlette application.\n",
"bugtrack_url": null,
"license": null,
"summary": "FastAPI middleware to redirect spam requests to a random 10 hours of video",
"version": "0.0.1",
"project_urls": {
"Homepage": "https://github.com/nickatnight/fastapi-spam",
"Issues": "https://github.com/nickatnight/fastapi-spam/issues"
},
"split_keywords": [
"python",
" package",
" packaging",
" fastapi",
" spam",
" middleware"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "b00d1c66f9ec32a3579dea0b3444ed9d010c427764bd86c824ea9899ed46185c",
"md5": "d8de0bcaf5e94eb2acbcb976afa67d48",
"sha256": "9e1f7210f61f4fbc181799d9d4ebd47e4d9854d24f3993041c1aa136acb24e9f"
},
"downloads": -1,
"filename": "fastapi_spam-0.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d8de0bcaf5e94eb2acbcb976afa67d48",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 4852,
"upload_time": "2025-07-25T00:57:59",
"upload_time_iso_8601": "2025-07-25T00:57:59.484621Z",
"url": "https://files.pythonhosted.org/packages/b0/0d/1c66f9ec32a3579dea0b3444ed9d010c427764bd86c824ea9899ed46185c/fastapi_spam-0.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9aa0a02aafb316de56c3f1d82cbf9c71cf3db8fe041ce4050d63a3d2a9dcf2b4",
"md5": "a68c12634a73e641764680b98932e2d6",
"sha256": "942feb608cc772f59ab54d945d7861b1cb2d17a6f691e9c71cbdcba2169b7d1c"
},
"downloads": -1,
"filename": "fastapi_spam-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "a68c12634a73e641764680b98932e2d6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 5269,
"upload_time": "2025-07-25T00:58:00",
"upload_time_iso_8601": "2025-07-25T00:58:00.745980Z",
"url": "https://files.pythonhosted.org/packages/9a/a0/a02aafb316de56c3f1d82cbf9c71cf3db8fe041ce4050d63a3d2a9dcf2b4/fastapi_spam-0.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-25 00:58:00",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "nickatnight",
"github_project": "fastapi-spam",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "fastapi-spam"
}