Spamnesty lets you waste spammers' time by pretending it's a person and talking to them. The URL to the service is:
To run Spamnesty, just clone this repository, install docker-compose and start everything up:
~~~ pip install docker-compose docker-compose up
docker-compose run web /code/manage.py createsuperuser
If you access http://localhost/, you should see the Spamnesty home page!
To access the admin interface, create a user:
~~~ docker-compose run web /code/manage.py createsuperuser ~~~
and go to http://localhost/entrary/ the log in.
To contribute, just issue a merge request on our repository. Make sure tests pass first, though:
~~~ docker-compose run web /code/manage.py test ~~~
Here's a sequence diagram of how the flow works:
Bumps redis from 3.5.3 to 4.5.3.
Sourced from redis's releases.
4.5.3
Changes
Update urgency: HIGH: There is a critical bug that may affect a subset of users. Upgrade!
🐛 Bug Fixes
4.5.2
Changes
🚀 New Features
- Introduce AbstractConnection so that UnixDomainSocketConnection can call super().init (#2588)
- Added queue_class to REDIS_ALLOWED_KEYS (#2577)
- Made search document subscriptable (#2615)
- Sped up the protocol parsing (#2596)
🐛 Bug Fixes
- Fix behaviour of async PythonParser to match RedisParser as for issue #2349 (#2582)
- Replace async_timeout by asyncio.timeout (#2602)
- Update json().arrindex() default values (#2611)
🧰 Maintenance
- Coverage for pypy-3.9 (#2608)
- Developer Experience: Adding redis version compatibility details to the README (#2621)
- Remove redundant assignment to RedisCluster.nodes_manager. (#2620)
- Developer Experience: [types] update return type of smismember to list[int] (#2617)
- Developer Experience: [docs] ConnectionPool SSL example (#2605)
- Developer Experience: Fixed CredentialsProvider examples (#2587)
- Developer Experience: Update README to make pip install copy-pastable on zsh (#2584)
- Developer Experience: Fix for
lpop
andrpop
return typing (#2590)Contributors
We'd like to thank all the contributors who worked on this release!
@CrimsonGlory
,@Galtozzy
,@aksinha334
,@barshaul
,@chayim
,@davemcphee
,@dvora-h
,@kristjanvalur
,@ryin1
,@sileht
,@thebarbershop
,@uglide
,@woutdenolf
and@zakaf
4.5.1
Changes
🐛 Bug Fixes
Contributors
We'd like to thank all the contributors who worked on this release!
... (truncated)
Sourced from redis's changelog.
* Allow data to drain from async PythonParser when reading during a disconnect() * Use asyncio.timeout() instead of async_timeout.timeout() for python >= 3.11 ([#2602](https://github.com/redis/redis-py/issues/2602)) * Add test and fix async HiredisParser when reading during a disconnect() ([#2349](https://github.com/redis/redis-py/issues/2349)) * Use hiredis-py pack_command if available. * Support `.unlink()` in ClusterPipeline * Simplify synchronous SocketBuffer state management * Fix string cleanse in Redis Graph * Make PythonParser resumable in case of error ([#2510](https://github.com/redis/redis-py/issues/2510)) * Add `timeout=None` in `SentinelConnectionManager.read_response` * Documentation fix: password protected socket connection ([#2374](https://github.com/redis/redis-py/issues/2374)) * Allow `timeout=None` in `PubSub.get_message()` to wait forever * add `nowait` flag to `asyncio.Connection.disconnect()` * Update README.md links * Fix timezone handling for datetime to unixtime conversions * Fix start_id type for XAUTOCLAIM * Remove verbose logging from cluster.py * Add retry mechanism to async version of Connection * Compare commands case-insensitively in the asyncio command parser * Allow negative `retries` for `Retry` class to retry forever * Add `items` parameter to `hset` signature * Create codeql-analysis.yml ([#1988](https://github.com/redis/redis-py/issues/1988)). Thanks @chayim * Add limited support for Lua scripting with RedisCluster * Implement `.lock()` method on RedisCluster * Fix cursor returned by SCAN for RedisCluster & change default target to PRIMARIES * Fix scan_iter for RedisCluster * Remove verbose logging when initializing ClusterPubSub, ClusterPipeline or RedisCluster * Fix broken connection writer lock-up for asyncio ([#2065](https://github.com/redis/redis-py/issues/2065)) * Fix auth bug when provided with no username ([#2086](https://github.com/redis/redis-py/issues/2086)) * Fix missing ClusterPipeline._lock ([#2189](https://github.com/redis/redis-py/issues/2189)) * Added dynaminc_startup_nodes configuration to RedisCluster * Fix reusing the old nodes' connections when cluster topology refresh is being done * Fix RedisCluster to immediately raise AuthenticationError without a retry * ClusterPipeline Doesn't Handle ConnectionError for Dead Hosts ([#2225](https://github.com/redis/redis-py/issues/2225)) * Remove compatibility code for old versions of Hiredis, drop Packaging dependency * The `deprecated` library is no longer a dependency * Failover handling improvements for RedisCluster and Async RedisCluster ([#2377](https://github.com/redis/redis-py/issues/2377)) * Fixed "cannot pickle '_thread.lock' object" bug ([#2354](https://github.com/redis/redis-py/issues/2354), [#2297](https://github.com/redis/redis-py/issues/2297)) * Added CredentialsProvider class to support password rotation * Enable Lock for asyncio cluster mode * Fix Sentinel.execute_command doesn't execute across the entire sentinel cluster bug ([#2458](https://github.com/redis/redis-py/issues/2458)) * Added a replacement for the default cluster node in the event of failure ([#2463](https://github.com/redis/redis-py/issues/2463)) * Fix for Unhandled exception related to self.host with unix socket ([#2496](https://github.com/redis/redis-py/issues/2496))
... (truncated)
66a4d6b
AsyncIO Race Condition Fix (#2641)318b114
Version 4.5.2 (#2627)1b2f408
Fix behaviour of async PythonParser to match RedisParser as for issue #2349 (...7d474f9
introduce AbstractConnection so that UnixDomainSocketConnection can call supe...c871723
pypy-3.9 CI (#2608)d63313b
add queue_class to REDIS_ALLOWED_KEYS (#2577)c61eeb2
Adding supported redis/library details (#2621)25e85e5
fix: replace async_timeout by asyncio.timeout (#2602)91ab12a
Remove redundant assignment. (#2620)8bfd492
Making search document subscriptable (#2615)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
Bumps werkzeug from 1.0.1 to 2.2.3.
Sourced from werkzeug's releases.
2.2.3
This is a fix release for the 2.2.x release branch.
- Changes: https://werkzeug.palletsprojects.com/en/2.2.x/changes/#version-2-2-3
- Milestone: https://github.com/pallets/werkzeug/milestone/26?closed=1
This release contains security fixes for:
- https://github.com/pallets/werkzeug/security/advisories/GHSA-xg9f-g7g7-2323
- https://github.com/pallets/werkzeug/security/advisories/GHSA-px8h-6qxv-m22q
2.2.2
This is a fix release for the 2.2.0 feature release.
- Changes: https://werkzeug.palletsprojects.com/en/2.2.x/changes/#version-2-2-2
- Milestone: https://github.com/pallets/werkzeug/milestone/25?closed=1
2.2.1
This is a fix release for the 2.2.0 feature release.
- Changes: https://werkzeug.palletsprojects.com/en/2.2.x/changes/#version-2-2-1
- Milestone: https://github.com/pallets/werkzeug/milestone/24?closed=1
2.2.0
This is a feature release, which includes new features and removes previously deprecated features. The 2.2.x branch is now the supported bugfix branch, the 2.1.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as pip-tools to pin all dependencies and control upgrades.
- Changes: https://werkzeug.palletsprojects.com/en/2.2.x/changes/#version-2-2-0
- Milestone: https://github.com/pallets/werkzeug/milestone/20?closed=1
2.1.2
This is a fix release for the 2.1.0 feature release.
- Changes: https://werkzeug.palletsprojects.com/en/2.1.x/changes/#version-2-1-2
- Milestone: https://github.com/pallets/werkzeug/milestone/22?closed=1
2.1.1
This is a fix release for the 2.1.0 feature release.
- Changes: https://werkzeug.palletsprojects.com/en/2.1.x/changes/#version-2-1-1
- Milestone: https://github.com/pallets/werkzeug/milestone/19?closed=1
2.1.0
This is a feature release, which includes new features and removes previously deprecated features. The 2.1.x branch is now the supported bugfix branch, the 2.0.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as pip-tools to pin all dependencies and control upgrades.
- Changes: https://werkzeug.palletsprojects.com/en/2.1.x/changes/#version-2-1-0
- Milestone: https://github.com/pallets/werkzeug/milestone/16?closed=1
2.0.3
... (truncated)
Sourced from werkzeug's changelog.
Version 2.2.3
Released 2023-02-14
- Ensure that URL rules using path converters will redirect with strict slashes when the trailing slash is missing. :issue:
2533
- Type signature for
get_json
specifies that return type is not optional whensilent=False
. :issue:2508
parse_content_range_header
returnsNone
for a value likebytes */-1
where the length is invalid, instead of raising anAssertionError
. :issue:2531
- Address remaining
ResourceWarning
related to the socket used byrun_simple
. Removeprepare_socket
, which now happens when creating the server. :issue:2421
- Update pre-existing headers for
multipart/form-data
requests with the test client. :issue:2549
- Fix handling of header extended parameters such that they are no longer quoted. :issue:
2529
LimitedStream.read
works correctly when wrapping a stream that may not return the requested size in oneread
call. :issue:2558
- A cookie header that starts with
=
is treated as an empty key and discarded, rather than stripping the leading==
.- Specify a maximum number of multipart parts, default 1000, after which a
RequestEntityTooLarge
exception is raised on parsing. This mitigates a DoS attack where a larger number of form/file parts would result in disproportionate resource use.Version 2.2.2
Released 2022-08-08
- Fix router to restore the 2.1
strict_slashes == False
behaviour whereby leaf-requests match branch rules and vice versa. :pr:2489
- Fix router to identify invalid rules rather than hang parsing them, and to correctly parse
/
within converter arguments. :pr:2489
- Update subpackage imports in :mod:
werkzeug.routing
to use theimport as
syntax for explicitly re-exporting public attributes. :pr:2493
- Parsing of some invalid header characters is more robust. :pr:
2494
- When starting the development server, a warning not to use it in a production deployment is always shown. :issue:
2480
LocalProxy.__wrapped__
is always set to the wrapped object when the proxy is unbound, fixing an issue in doctest that would cause it to fail. :issue:2485
- Address one
ResourceWarning
related to the socket used byrun_simple
. :issue:2421
... (truncated)
22a254f
release version 2.2.3517cac5
Merge pull request from GHSA-xg9f-g7g7-2323babc8d9
rewrite docs about request data limits09449ee
clean up docsfe899d0
limit the maximum number of multipart form partscf275f4
Merge pull request from GHSA-px8h-6qxv-m22q8c2b4b8
don't strip leading = when parsing cookie7c7ce5c
[pre-commit.ci] pre-commit autoupdate (#2585)19ae03e
[pre-commit.ci] auto fixes from pre-commit.com hooksa83d3b8
[pre-commit.ci] pre-commit autoupdateDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
Bumps joblib from 0.15.1 to 1.2.0.
Sourced from joblib's changelog.
Release 1.2.0
Fix a security issue where
eval(pre_dispatch)
could potentially run arbitrary code. Now only basic numerics are supported. joblib/joblib#1327Make sure that joblib works even when multiprocessing is not available, for instance with Pyodide joblib/joblib#1256
Avoid unnecessary warnings when workers and main process delete the temporary memmap folder contents concurrently. joblib/joblib#1263
Fix memory alignment bug for pickles containing numpy arrays. This is especially important when loading the pickle with
mmap_mode != None
as the resultingnumpy.memmap
object would not be able to correct the misalignment without performing a memory copy. This bug would cause invalid computation and segmentation faults with native code that would directly access the underlying data buffer of a numpy array, for instance C/C++/Cython code compiled with older GCC versions or some old OpenBLAS written in platform specific assembly. joblib/joblib#1254Vendor cloudpickle 2.2.0 which adds support for PyPy 3.8+.
Vendor loky 3.3.0 which fixes several bugs including:
robustly forcibly terminating worker processes in case of a crash (joblib/joblib#1269);
avoiding leaking worker processes in case of nested loky parallel calls;
reliability spawn the correct number of reusable workers.
Release 1.1.0
Fix byte order inconsistency issue during deserialization using joblib.load in cross-endian environment: the numpy arrays are now always loaded to use the system byte order, independently of the byte order of the system that serialized the pickle. joblib/joblib#1181
Fix joblib.Memory bug with the
ignore
parameter when the cached function is a decorated function.
... (truncated)
5991350
Release 1.2.03fa2188
MAINT cleanup numpy warnings related to np.matrix in tests (#1340)cea26ff
CI test the future loky-3.3.0 branch (#1338)8aca6f4
MAINT: remove pytest.warns(None) warnings in pytest 7 (#1264)067ed4f
XFAIL test_child_raises_parent_exits_cleanly with multiprocessing (#1339)ac4ebd5
MAINT add back pytest warnings plugin (#1337)a23427d
Test child raises parent exits cleanly more reliable on macos (#1335)ac09691
[MAINT] various test updates (#1334)4a314b1
Vendor loky 3.2.0 (#1333)bdf47e9
Make test_parallel_with_interactively_defined_functions_default_backend timeo...Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
Bumps django from 1.11.29 to 2.2.28.
5c33000
[2.2.x] Bumped version for 2.2.28 release.29a6c98
[2.2.x] Fixed CVE-2022-28347 -- Protected QuerySet.explain(**options) against...2c09e68
[2.2.x] Fixed CVE-2022-28346 -- Protected QuerySet.annotate(), aggregate(), a...8352b98
[2.2.x] Added stub release notes for 2.2.28.2801f29
[2.2.x] Reverted "Fixed forms_tests.tests.test_renderers with Jinja 3.1.0+."e03648f
[2.2.x] Fixed forms_tests.tests.test_renderers with Jinja 3.1.0+.9d13d8c
[2.2.x] Fixed typo in release notes.047ece3
[2.2.x] Added CVE-2022-22818 and CVE-2022-23833 to security archive.2427b2f
[2.2.x] Post-release version bump.e541f2d
[2.2.x] Bumped version for 2.2.27 release.Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
Bumps ipython from 7.15.0 to 7.16.3.
d43c7c7
release 7.16.35fa1e40
Merge pull request from GHSA-pq7m-3gw7-gq5x8df8971
back to dev9f477b7
release 7.16.2138f266
bring back release helper from master branch5aa3634
Merge pull request #13341 from meeseeksmachine/auto-backport-of-pr-13335-on-7...bcae8e0
Backport PR #13335: What's new 7.16.28fcdcd3
Pin Jedi to <0.17.2.2486838
release 7.16.120bdc6f
fix conda buildDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
I love writing code, making stupid devices and writing about writing code and making stupid devices.
GitHub Repository