A news curator and newsletter subscription package for Django

Overview

django-newsfeed

What is django-newsfeed?

django-newsfeed is a news curator and newsletter subscription package for django. It can be used to create a news curator website which sends newsletters to their subscribers also it can be used to add a news subscription section to your website.

Features

  • Create monthly, weekly or daily issues with draft issue support.
  • Create posts with different categories.
  • Archive and display all of the issues in your website.
  • Newsletter e-mail subscription (ajax support) with e-mail verification.
  • Newsletter e-mail unsubscription (ajax support).
  • Sending newsletters for each issue to all the subscribers.
  • Fully customizable templates.
  • Uses Django's internal tools for sending email.
  • Efficient mass mailing support.

Requirements

  • Python: 3.6, 3.7, 3.8, 3.9, 3.10
  • Django: 2.2, 3.0, 3.1, 3.2, 4.0

Example Project

You can view the example project for this package here. This is a news-curator and newsletter subscription application that only uses this package. It also uses celery, celery-beat and redis to send email newsletters in the background. The styles in the example project uses bootstrap.

Documentation

Installation

Install django-newsfeed using pip:

pip install django-newsfeed

Then add newsfeed to your INSTALLED_APPS:

INSTALLED_APPS = [
    ...
    'newsfeed',
]

Then add newsfeed to your projects urls.py:

urlpatterns = [
    ...
    path('newsfeed/', include('newsfeed.urls', namespace='newsfeed')),
    ...
]

Usage

Available views

We provide these views out of the box:

  • latest_issue: newsfeed/
  • issue_list: newsfeed/issues/
  • issue_detail: newsfeed/issues/<slug:issue_number>/
  • newsletter_subscribe: newsfeed/subscribe/
  • newsletter_subscription_confirm: newsfeed/subscribe/confirm/<uuid:token>/
  • newsletter_unsubscribe: newsfeed/unsubscribe/

Templates

The basic templates are provided for all the views and emails with django-newsfeed. You can override the templates to add your own design.

Just add newsfeed directory inside your templates directory add templates with the same name as the showed tree below. more on template overriding on the django docs

Template Tree for django-newfeed:

templates
    └── newsfeed
        ├── base.html
        ├── email
        │     ├── email_verification.html
        │     ├── email_verification_subject.txt
        │     ├── email_verification.txt
        │     └── newsletter_email.html
        ├── issue_detail.html
        ├── issue_list.html
        ├── issue_posts.html
        ├── latest_issue.html
        ├── messages.html
        ├── newsletter_subscribe.html
        ├── newsletter_subscription_confirm.html
        ├── newsletter_unsubscribe.html
        └── subscription_form.html

Subscription confirmation Email

We send subscription confirmation email to the new subscribers. you can override these template to change the styles:

templates
    └── newsfeed
        ├── email
        │     ├── email_verification.html
        │     ├── email_verification_subject.txt
        │     ├── email_verification.txt

Admin Actions

These actions are available from the admin panel:

  • publish issues: The selected issues will be published.
  • mark issues as draft: The selected issues will be marked as draft.
  • hide posts: The selected posts will be hidden from the issues.
  • make posts visible: The selected posts will visible on the issues.
  • send newsletters: Sends selected newsletters to all the subscribers.

(send newsletters action should be overridden to use a background task queue. See the example project to see an example using celery)

Send Email Newsletter

We provide a class to handle sending email newsletters to the subscribers. We do not provide any background task queue by default. But it is fairly easy to set it up.

See the example project to see an example using celery and celery-beat.

You can override this template to change the style of the newsletter:

templates
    └── newsfeed
        ├── email
        │     └── newsletter_email.html

Settings Configuration

The below settings are available for django-newsfeed. Add these settings to your projects settings.py as required.

NEWSFEED_SITE_BASE_URL

  • default: http://127.0.0.1:8000 (your sites URL)
  • required: True

This settings is required. You need to add your websites URL here in production. This is used to generate confirmation URL and unsubscribe URL for the emails.

NEWSFEED_EMAIL_CONFIRMATION_EXPIRE_DAYS

  • default: 3 (after number of days confirmation link expires)
  • required: False

This settings tells django-newsfeed to expire the confirmation link in specified number of days.

NEWSFEED_EMAIL_BATCH_SIZE

  • default: 0 (number of emails per batch)
  • required: False

This settings is helpful when there are a lot of subscribers. This settings tells django-newsfeed to send the specified number of emails per batch. if its zero (0) then all of the emails will be sent together.

NEWSFEED_EMAIL_BATCH_WAIT

  • default: 0 (in seconds)
  • required: False

This settings tells django-newsfeed how long it should wait between each batch of newsletter email sent.

NEWSFEED_SUBSCRIPTION_REDIRECT_URL

  • default: /newsfeed/issues/
  • required: False

This is only required if you are not using ajax request on the subscription form. The JavaScript code for ajax is included with django-newsfeed and on by default.

NEWSFEED_UNSUBSCRIPTION_REDIRECT_URL

  • default: /newsfeed/issues/
  • required: False

This is only required if you are not using ajax request on the unsubscription form. The JavaScript code for ajax is included with django-newsfeed and on by default.

Signals

django-newsfeed sends several signals for various actions. You can add receivers to listen to the signals and add your own functionality after each signal is sent. To learn more about signals refer to django Signals Documentation.

Subscriber Signals

  • newsfeed.signals.email_verification_sent(instance)
    Sent after email verification is sent, with Subscriber instance.
  • newsfeed.signals.subscribed(instance)
    Sent after subscription is confirmed, with Subscriber instance.
  • newsfeed.signals.unsubscribed(instance)
    Sent after unsubscription is successful, with Subscriber instance.

Contribute

See CONTRIBUTING.rst for information about contributing to django-newsfeed.

License

The code in this project is released under the GNU General Public License v3.0

Comments
  • Bump coverage from 5.5 to 7.0.0

    Bump coverage from 5.5 to 7.0.0

    Bumps coverage from 5.5 to 7.0.0.

    Release notes

    Sourced from coverage's releases.

    coverage-5.6b1

    • Third-party packages are now ignored in coverage reporting. This solves a few problems:
      • Coverage will no longer report about other people’s code (issue 876). This is true even when using --source=. with a venv in the current directory.
      • Coverage will no longer generate “Already imported a file that will be measured” warnings about coverage itself (issue 905).
    • The HTML report uses j/k to move up and down among the highlighted chunks of code. They used to highlight the current chunk, but 5.0 broke that behavior. Now the highlighting is working again.
    • The JSON report now includes percent_covered_display, a string with the total percentage, rounded to the same number of decimal places as the other reports’ totals.
    Changelog

    Sourced from coverage's changelog.

    Version 7.0.0 — 2022-12-18

    Nothing new beyond 7.0.0b1.

    .. _changes_7-0-0b1:

    Version 7.0.0b1 — 2022-12-03

    A number of changes have been made to file path handling, including pattern matching and path remapping with the [paths] setting (see :ref:config_paths). These changes might affect you, and require you to update your settings.

    (This release includes the changes from 6.6.0b1 <changes_6-6-0b1_>_, since 6.6.0 was never released.)

    • Changes to file pattern matching, which might require updating your configuration:

      • Previously, * would incorrectly match directory separators, making precise matching difficult. This is now fixed, closing issue 1407_.

      • Now ** matches any number of nested directories, including none.

    • Improvements to combining data files when using the :ref:config_run_relative_files setting, which might require updating your configuration:

      • During coverage combine, relative file paths are implicitly combined without needing a [paths] configuration setting. This also fixed issue 991_.

      • A [paths] setting like */foo will now match foo/bar.py so that relative file paths can be combined more easily.

      • The :ref:config_run_relative_files setting is properly interpreted in more places, fixing issue 1280_.

    • When remapping file paths with [paths], a path will be remapped only if the resulting path exists. The documentation has long said the prefix had to exist, but it was never enforced. This fixes issue 608, improves issue 649, and closes issue 757_.

    • Reporting operations now implicitly use the [paths] setting to remap file paths within a single data file. Combining multiple files still requires the coverage combine step, but this simplifies some single-file situations. Closes issue 1212_ and issue 713_.

    ... (truncated)

    Commits

    Dependabot compatibility score

    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.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump django from 3.2.14 to 4.1.4

    Bump django from 3.2.14 to 4.1.4

    Bumps django from 3.2.14 to 4.1.4.

    Commits
    • 2ff479f [4.1.x] Bumped version for 4.1.4 release.
    • 65d31d9 [4.1.x] Added release date for 4.1.4.
    • 2417056 [4.1.x] Fixed #24048 -- Corrected QuerySet.only() docs about interaction with...
    • 423fa4c [4.1.x] Updated various links to HTTPS and new locations.
    • 29c9bba [4.1.x] Fixed #34199 -- Added example to StringAgg docs.
    • a196dcc [4.1.x] Fixed typo in docs/ref/contrib/postgres/aggregates.txt.
    • 58156f4 [4.1.x] Refs #33397, Refs #34160 -- Added release note for resolving output_f...
    • 44f7550 [4.1.x] Doc's check_password()'s setter and preferred arguments.
    • 8a623d1 [4.1.x] Adjusted BaseFormSet.get_form_kwargs example in docs.
    • 754c0c5 [4.1.x] Fixed #34064 -- Adjusted locale override wording in settings docs.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    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.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump model-bakery from 1.6.0 to 1.8.0

    Bump model-bakery from 1.6.0 to 1.8.0

    Bumps model-bakery from 1.6.0 to 1.8.0.

    Release notes

    Sourced from model-bakery's releases.

    1.8.0

    What's Changed

    Full Changelog: https://github.com/model-bakers/model_bakery/compare/1.7.1...1.8.0

    1.7.1

    What's Changed

    Dependencies

    Full Changelog: https://github.com/model-bakers/model_bakery/compare/1.7.0...1.7.1

    1.7.0

    Changed

    Dependencies

    Full Changelog: https://github.com/model-bakers/model_bakery/compare/1.6.0...1.7.0

    Changelog

    Sourced from model-bakery's changelog.

    1.8.0

    Changed

    1.7.1

    Changed

    1.7.0

    Changed

    Commits

    Dependabot compatibility score

    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.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump model-bakery from 1.6.0 to 1.7.1

    Bump model-bakery from 1.6.0 to 1.7.1

    Bumps model-bakery from 1.6.0 to 1.7.1.

    Release notes

    Sourced from model-bakery's releases.

    1.7.1

    What's Changed

    Dependencies

    Full Changelog: https://github.com/model-bakers/model_bakery/compare/1.7.0...1.7.1

    1.7.0

    Changed

    Dependencies

    Full Changelog: https://github.com/model-bakers/model_bakery/compare/1.6.0...1.7.0

    Changelog

    Sourced from model-bakery's changelog.

    1.7.1

    Changed

    1.7.0

    Changed

    Commits

    Dependabot compatibility score

    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.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump django from 3.2.14 to 4.1.2

    Bump django from 3.2.14 to 4.1.2

    Bumps django from 3.2.14 to 4.1.2.

    Commits
    • 6e9c6a0 [4.1.x] Bumped version for 4.1.2 release.
    • 9d656ea [4.1.x] Fixed CVE-2022-41323 -- Prevented locales being interpreted as regula...
    • 7843c43 [4.1.x] Refs #32987 -- Relaxed system check for template tag modules with the...
    • f783148 [4.1.x] Clarified how to reference RelatedObjectDoesNotExist exceptions.
    • 96c541e [4.1.x] Refs #34058 -- Fixed changing/deleting sequences when altering pre-Dj...
    • 7a16758 [4.1.x] Fixed #33984 -- Reverted "Fixed #32980 -- Made models cache related m...
    • ecf6506 [4.1.x] Fixed #34062 -- Updated View.http_method_not_allowed() to support async.
    • 97353bc [4.1.x] Fixed #34058 -- Changed sequence types when altering pre-Django 4.1 a...
    • 7607fc8 [4.1.x] Fixed #33026 -- Mentioned RequestFactory in testing tools docs.
    • b826b38 [4.1.x] Refs #34010 -- Made --debug-mode work for parallel tests using spawn.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    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.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump coverage from 5.5 to 6.5.0

    Bump coverage from 5.5 to 6.5.0

    Bumps coverage from 5.5 to 6.5.0.

    Release notes

    Sourced from coverage's releases.

    coverage-5.6b1

    • Third-party packages are now ignored in coverage reporting. This solves a few problems:
      • Coverage will no longer report about other people’s code (issue 876). This is true even when using --source=. with a venv in the current directory.
      • Coverage will no longer generate “Already imported a file that will be measured” warnings about coverage itself (issue 905).
    • The HTML report uses j/k to move up and down among the highlighted chunks of code. They used to highlight the current chunk, but 5.0 broke that behavior. Now the highlighting is working again.
    • The JSON report now includes percent_covered_display, a string with the total percentage, rounded to the same number of decimal places as the other reports’ totals.
    Changelog

    Sourced from coverage's changelog.

    Version 6.5.0 — 2022-09-29

    • The JSON report now includes details of which branches were taken, and which are missing for each file. Thanks, Christoph Blessing (pull 1438). Closes issue 1425.

    • Starting with coverage.py 6.2, class statements were marked as a branch. This wasn't right, and has been reverted, fixing issue 1449_. Note this will very slightly reduce your coverage total if you are measuring branch coverage.

    • Packaging is now compliant with PEP 517, closing issue 1395.

    • A new debug option --debug=pathmap shows details of the remapping of paths that happens during combine due to the [paths] setting.

    • Fix an internal problem with caching of invalid Python parsing. Found by OSS-Fuzz, fixing their bug 50381_.

    .. _bug 50381: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=50381 .. _PEP 517: https://peps.python.org/pep-0517/ .. _issue 1395: nedbat/coveragepy#1395 .. _issue 1425: nedbat/coveragepy#1425 .. _pull 1438: nedbat/coveragepy#1438 .. _issue 1449: nedbat/coveragepy#1449

    .. _changes_6-4-4:

    Version 6.4.4 — 2022-08-16

    • Wheels are now provided for Python 3.11.

    .. _changes_6-4-3:

    Version 6.4.3 — 2022-08-06

    • Fix a failure when combining data files if the file names contained glob-like patterns (pull 1405_). Thanks, Michael Krebs and Benjamin Schubert.

    • Fix a messaging failure when combining Windows data files on a different drive than the current directory. (pull 1430, fixing issue 1428). Thanks, Lorenzo Micò.

    • Fix path calculations when running in the root directory, as you might do in

    ... (truncated)

    Commits
    • 0ac2453 docs: sample html report
    • 0954c85 build: prep for 6.5.0
    • 95195b1 docs: changelog for json report branch details
    • 789f175 fix: keep negative arc values
    • aabc540 feat: include branches taken and missed in JSON report. #1425
    • a59fc44 docs: minor tweaks to db docs
    • d296083 docs: add a note to the class-branch change
    • 7f07df6 chore: make upgrade
    • 6bc29a9 build: use the badge action coloring
    • fd36918 fix: class statements shouldn't be branches. #1449
    • Additional commits viewable in compare view

    Dependabot compatibility score

    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.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump django from 3.2.14 to 4.1.1

    Bump django from 3.2.14 to 4.1.1

    Bumps django from 3.2.14 to 4.1.1.

    Commits

    Dependabot compatibility score

    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.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump coverage from 5.5 to 6.4.4

    Bump coverage from 5.5 to 6.4.4

    Bumps coverage from 5.5 to 6.4.4.

    Release notes

    Sourced from coverage's releases.

    coverage-5.6b1

    • Third-party packages are now ignored in coverage reporting. This solves a few problems:
      • Coverage will no longer report about other people’s code (issue 876). This is true even when using --source=. with a venv in the current directory.
      • Coverage will no longer generate “Already imported a file that will be measured” warnings about coverage itself (issue 905).
    • The HTML report uses j/k to move up and down among the highlighted chunks of code. They used to highlight the current chunk, but 5.0 broke that behavior. Now the highlighting is working again.
    • The JSON report now includes percent_covered_display, a string with the total percentage, rounded to the same number of decimal places as the other reports’ totals.
    Changelog

    Sourced from coverage's changelog.

    Version 6.4.4 — 2022-08-16

    • Wheels are now provided for Python 3.11.

    .. _changes_6-4-3:

    Version 6.4.3 — 2022-08-06

    • Fix a failure when combining data files if the file names contained glob-like patterns (pull 1405_). Thanks, Michael Krebs and Benjamin Schubert.

    • Fix a messaging failure when combining Windows data files on a different drive than the current directory. (pull 1430, fixing issue 1428). Thanks, Lorenzo Micò.

    • Fix path calculations when running in the root directory, as you might do in a Docker container: pull 1403_, thanks Arthur Rio.

    • Filtering in the HTML report wouldn't work when reloading the index page. This is now fixed (pull 1413_). Thanks, Marc Legendre.

    • Fix a problem with Cython code measurement (pull 1347, fixing issue 972). Thanks, Matus Valo.

    .. _issue 972: nedbat/coveragepy#972 .. _pull 1347: nedbat/coveragepy#1347 .. _pull 1403: nedbat/coveragepy#1403 .. _pull 1405: nedbat/coveragepy#1405 .. _pull 1413: nedbat/coveragepy#1413 .. _issue 1428: nedbat/coveragepy#1428 .. _pull 1430: nedbat/coveragepy#1430

    .. _changes_6-4-2:

    Version 6.4.2 — 2022-07-12

    • Updated for a small change in Python 3.11.0 beta 4: modules now start with a line with line number 0, which is ignored. This line cannnot be executed, so coverage totals were thrown off. This line is now ignored by coverage.py, but this also means that truly empty modules (like __init__.py) have no lines in them, rather than one phantom line. Fixes issue 1419_.

    • Internal debugging data added to sys.modules is now an actual module, to avoid confusing code that examines everything in sys.modules. Thanks,

    ... (truncated)

    Commits
    • 24985c0 docs: sample html report
    • 12d5d17 build: prep for 6.4.4
    • 007c616 build: update 3.11 references to rc1
    • 66ddb0b build: make upgrade (with hashes)
    • f7907ee docs: add some make upgrade instructions to the Makefile
    • 18b57e1 build: use hashed pins
    • 1dba030 build: pin windows-only transitive dependencies
    • b076ffe build: 3.11 is rc now - make wheels for it
    • 87de75d docs: don't use tabs while we work out the docutil version pinning
    • 4eee7dc build: don't install multiple .pip files
    • Additional commits viewable in compare view

    Dependabot compatibility score

    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.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump model-bakery from 1.6.0 to 1.7.0

    Bump model-bakery from 1.6.0 to 1.7.0

    Bumps model-bakery from 1.6.0 to 1.7.0.

    Release notes

    Sourced from model-bakery's releases.

    1.7.0

    Changed

    Dependencies

    Full Changelog: https://github.com/model-bakers/model_bakery/compare/1.6.0...1.7.0

    Changelog

    Sourced from model-bakery's changelog.

    1.7.0

    Changed

    Commits

    Dependabot compatibility score

    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.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump django from 3.2.14 to 4.1

    Bump django from 3.2.14 to 4.1

    Bumps django from 3.2.14 to 4.1.

    Commits
    • c8eb9a7 [4.1.x] Bumped version for 4.0 release.
    • 6cd2f97 [4.1.x] Updated release notes for Django 4.1 release.
    • c721b56 [4.1.x] Added CVE-2022-36359 to security archive.
    • 4691666 [4.1.x] Fixed CVE-2022-36359 -- Escaped filename in Content-Disposition header.
    • 5359607 [4.1.x] Adjusted version 4.0.7 release notes.
    • a3bab93 [4.1.x] Updated translations from Transifex.
    • 064c810 [4.1.x] Doc'd TextField.db_collation as optional.
    • 8aab03a [4.1.x] Fixed #33876, Refs #32229 -- Made management forms render with div.ht...
    • bdff4d5 [4.1.x] Fixed collation tests on MySQL 8.0.30+.
    • 70bd1d4 [4.1.x] Ignored d3f5782a335823401aa51cae02dd5e789029143a formatting changes i...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    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.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump coverage from 5.5 to 6.4.3

    Bump coverage from 5.5 to 6.4.3

    Bumps coverage from 5.5 to 6.4.3.

    Release notes

    Sourced from coverage's releases.

    coverage-5.6b1

    • Third-party packages are now ignored in coverage reporting. This solves a few problems:
      • Coverage will no longer report about other people’s code (issue 876). This is true even when using --source=. with a venv in the current directory.
      • Coverage will no longer generate “Already imported a file that will be measured” warnings about coverage itself (issue 905).
    • The HTML report uses j/k to move up and down among the highlighted chunks of code. They used to highlight the current chunk, but 5.0 broke that behavior. Now the highlighting is working again.
    • The JSON report now includes percent_covered_display, a string with the total percentage, rounded to the same number of decimal places as the other reports’ totals.
    Changelog

    Sourced from coverage's changelog.

    Version 6.4.3 — 2022-08-06

    • Fix a failure when combining data files if the file names contained glob-like patterns (pull 1405_). Thanks, Michael Krebs and Benjamin Schubert.

    • Fix a messaging failure when combining Windows data files on a different drive than the current directory. (pull 1430, fixing issue 1428). Thanks, Lorenzo Micò.

    • Fix path calculations when running in the root directory, as you might do in a Docker container: pull 1403_, thanks Arthur Rio.

    • Filtering in the HTML report wouldn't work when reloading the index page. This is now fixed (pull 1413_). Thanks, Marc Legendre.

    • Fix a problem with Cython code measurement (pull 1347, fixing issue 972). Thanks, Matus Valo.

    .. _issue 972: nedbat/coveragepy#972 .. _pull 1347: nedbat/coveragepy#1347 .. _pull 1403: nedbat/coveragepy#1403 .. _pull 1405: nedbat/coveragepy#1405 .. _pull 1413: nedbat/coveragepy#1413 .. _issue 1428: nedbat/coveragepy#1428 .. _pull 1430: nedbat/coveragepy#1430

    .. _changes_6-4-2:

    Version 6.4.2 — 2022-07-12

    • Updated for a small change in Python 3.11.0 beta 4: modules now start with a line with line number 0, which is ignored. This line cannnot be executed, so coverage totals were thrown off. This line is now ignored by coverage.py, but this also means that truly empty modules (like __init__.py) have no lines in them, rather than one phantom line. Fixes issue 1419_.

    • Internal debugging data added to sys.modules is now an actual module, to avoid confusing code that examines everything in sys.modules. Thanks, Yilei Yang (pull 1399_).

    .. _pull 1399: nedbat/coveragepy#1399 .. _issue 1419: nedbat/coveragepy#1419

    .. _changes_6-4-1:

    ... (truncated)

    Commits

    Dependabot compatibility score

    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.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump django from 3.2.14 to 4.1.5

    Bump django from 3.2.14 to 4.1.5

    Bumps django from 3.2.14 to 4.1.5.

    Commits
    • eba81c8 [4.1.x] Bumped version for 4.1.5 release.
    • 7bcf84d [4.1.x] Added release date for 4.1.5.
    • a9ed890 [4.1.x] Disabled auto-created table of contents entries on Sphinx 5.2+.
    • 46b28bb [4.1.x] Updated translations from Transifex.
    • f92ecd5 [4.1.x] Refs DEP 12 -- Renamed TB to Steering Council wherever mentioned.
    • 78bb8f9 [4.1.x] Fixed typo in docs/topics/async.txt.
    • 54bdc99 [4.1.x] Fixed typo in docs/topics/http/sessions.txt.
    • 2d15678 [4.1.x] Fixed #34213 -- Updated PostgreSQL package names in installing PostGI...
    • 1106c99 [4.1.x] Removed KyngChaos packages from docs.
    • af3cfc8 [4.1.x] Fixed #34205 -- Fixed Meta.constraints validation crash with ArrayFie...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    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.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump coverage from 5.5 to 7.0.1

    Bump coverage from 5.5 to 7.0.1

    Bumps coverage from 5.5 to 7.0.1.

    Release notes

    Sourced from coverage's releases.

    coverage-5.6b1

    • Third-party packages are now ignored in coverage reporting. This solves a few problems:
      • Coverage will no longer report about other people’s code (issue 876). This is true even when using --source=. with a venv in the current directory.
      • Coverage will no longer generate “Already imported a file that will be measured” warnings about coverage itself (issue 905).
    • The HTML report uses j/k to move up and down among the highlighted chunks of code. They used to highlight the current chunk, but 5.0 broke that behavior. Now the highlighting is working again.
    • The JSON report now includes percent_covered_display, a string with the total percentage, rounded to the same number of decimal places as the other reports’ totals.
    Changelog

    Sourced from coverage's changelog.

    Version 7.0.1 — 2022-12-23

    • When checking if a file mapping resolved to a file that exists, we weren't considering files in .whl files. This is now fixed, closing issue 1511_.

    • File pattern rules were too strict, forbidding plus signs and curly braces in directory and file names. This is now fixed, closing issue 1513_.

    • Unusual Unicode or control characters in source files could prevent reporting. This is now fixed, closing issue 1512_.

    • The PyPy wheel now installs on PyPy 3.7, 3.8, and 3.9, closing issue 1510_.

    .. _issue 1510: nedbat/coveragepy#1510 .. _issue 1511: nedbat/coveragepy#1511 .. _issue 1512: nedbat/coveragepy#1512 .. _issue 1513: nedbat/coveragepy#1513

    .. _changes_7-0-0:

    Version 7.0.0 — 2022-12-18

    Nothing new beyond 7.0.0b1.

    .. _changes_7-0-0b1:

    Version 7.0.0b1 — 2022-12-03

    A number of changes have been made to file path handling, including pattern matching and path remapping with the [paths] setting (see :ref:config_paths). These changes might affect you, and require you to update your settings.

    (This release includes the changes from 6.6.0b1 <changes_6-6-0b1_>_, since 6.6.0 was never released.)

    • Changes to file pattern matching, which might require updating your configuration:

      • Previously, * would incorrectly match directory separators, making precise matching difficult. This is now fixed, closing issue 1407_.

      • Now ** matches any number of nested directories, including none.

    • Improvements to combining data files when using the

    ... (truncated)

    Commits
    • c5cda3a docs: releases take a little bit longer now
    • 9d4226e docs: latest sample HTML report
    • 8c77758 docs: prep for 7.0.1
    • da1b282 fix: also look into .whl files for source
    • d327a70 fix: more information when mapping rules aren't working right.
    • 35e249f fix: certain strange characters caused reporting to fail. #1512
    • 152cdc7 fix: don't forbid plus signs in file names. #1513
    • 31513b4 chore: make upgrade
    • 873b059 test: don't run tests on Windows PyPy-3.9
    • 5c5caa2 build: PyPy wheel now installs on 3.7, 3.8, and 3.9. #1510
    • Additional commits viewable in compare view

    Dependabot compatibility score

    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.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump model-bakery from 1.6.0 to 1.9.0

    Bump model-bakery from 1.6.0 to 1.9.0

    Bumps model-bakery from 1.6.0 to 1.9.0.

    Release notes

    Sourced from model-bakery's releases.

    1.9.0

    What's Changed

    Full Changelog: https://github.com/model-bakers/model_bakery/compare/1.8.0...1.9.0

    1.8.0

    What's Changed

    Full Changelog: https://github.com/model-bakers/model_bakery/compare/1.7.1...1.8.0

    1.7.1

    What's Changed

    Dependencies

    Full Changelog: https://github.com/model-bakers/model_bakery/compare/1.7.0...1.7.1

    1.7.0

    Changed

    Dependencies

    Full Changelog: https://github.com/model-bakers/model_bakery/compare/1.6.0...1.7.0

    Changelog

    Sourced from model-bakery's changelog.

    1.9.0

    1.8.0

    Changed

    1.7.1

    Changed

    1.7.0

    Changed

    Commits

    Dependabot compatibility score

    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.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Add option to Unsubscribe via Unique URL in the Sent E-mail

    Add option to Unsubscribe via Unique URL in the Sent E-mail

    The current architecture allows malicious unsubscribe. The solution adopted by mailchimp, for example, is to only allow unsubscribe via a link sent with every email, which contains a token which is used to verify authenticity. I'm not sure if this should be the only route to unsubscribe, but it should certainly be an option.

    Presumably, the token should be fixed for a given user, so that the unsubscribe link works from any email. Although what happens if a naive user forwards a newsletter? I think one needs a "You have been unsubscribed, if this wasn't your intention, you can resubscribe by clicking this link" confirmation email, perhaps?

    enhancement Design Decision Needed 
    opened by KimSJ 3
Releases(0.8.8)
Owner
Maksudul Haque
Web Developer, Open Source Contributor
Maksudul Haque
check disk storage's amount and if necessary, send alert message by email

DiskStorageAmountChecker What is this script? (このスクリプトは何ですか?) This script check disk storage's available amount of specified servers and send alerting

Hajime Kurita 1 Oct 22, 2021
An offline Phishing Email Analyzer.

An offline Phishing Email Analyzer.

Kamran Saifullah (Frog Man) 11 Oct 19, 2022
Send email notification when receiving Facebook message.

Send email notification when receiving Facebook message.

Radon Rosborough 4 May 08, 2022
Search email inbox with python and filter with search criteria via IMAP4 and fastapi or console

Search email inbox with python and filter with search criteria via IMAP4 and fastapi or console

Karma Computing 0 Sep 07, 2021
Mail hosting made simple

Modoboa Modoboa is a mail hosting and management platform including a modern and simplified Web User Interface. It provides useful components such as

Modoboa 2.4k Jan 03, 2023
ok-mail-helper是一个基于imap/smtp协议邮件客户端,使用python3.x开发

ok-mail-helper ok-mail-helper是一个基于imap/smtp协议邮件客户端,使用python3.x开发,支持邮件接收并解析、邮件发送,用户可在自己的项目中直接引入、开箱即用,或者结合flask等web框架轻松做成http接口供前端调用、把邮箱管理集成到自己的系统中,亦可通过

xlvchao 1 Feb 08, 2022
Automated email sending application.

autoMail Automated email sending application. This application sends email to a user when added to database. Email message contains the temperature of

Bhat Owais 1 Feb 12, 2022
Esio_dev 3 Oct 15, 2021
Dotfiles and some scripts for NeoMutt

Mutt dotfiles Robust Mutt configs with examples for the following account types: Generic IMAP/SMTP Google (Gmail/Gsuite etc) via IMAP/SMTP Microsoft O

CEUK 29 Jan 04, 2023
send email & telegram message whenever an analog in is recieved

send email & telegram message whenever an analog in is recieved (so when attached to an alarm siren out it will alert via mail)

Naor Livne 2 Feb 11, 2022
Suplantar mails de empresas como google, facebook, github, etc...

Suplantar mails de empresas como google, facebook, github, etc...

piter 3 Feb 05, 2022
xxnx its a simple smtp tool for mails spaming

xxnx its a simple smtp tool for mails spaming what is smpt? Simple Mail Transfer Protocol or smtp service. The Simple Mail Transfer Protocol (SMTP) is

0xD4$H 3 Feb 27, 2022
A CLI client for sending text emails. (Currently only gmail supported)

emailCLI A CLI client for sending text emails. (Currently only gmail supported)

Amethist 3 Dec 17, 2021
SMTP checker to check Mail Access via SMTP

SMTP checker to check Mail Access via SMTP with easy usage ! Medusa has been written and tested with Python 3.8. It should run on any OS as long as Python and all dependencies are installed.

h3x0 23 Dec 05, 2022
Fast Anonymous Email Sending Tool

Email-Fake Fast Anonymous Email Sending Tool 🏆 Github Statistics : Termux For Install: pkg install python pkg install python2 git clone https://githu

Aryan 7 May 28, 2022
An API to send emails through python3's smtplib module.

An API to send emails through python3's smtplib module. Just configure your SMTP server credentials and you are ready to send a lot of emails through API, designed to be used as a newsletter service.

Adnan Ahmad 15 Nov 24, 2022
Temp-SMS-Receive - A Program Which Allows You To Receive Temp SMS

Welcome to Temp-SMS-Receive 👋 A Program Which Allows You To Receive Temp SMS AP

Sandaru Ashen Fernando 21 Dec 10, 2022
A python program capable of accessing passwords associated with emails through leaked databases.

passfind A python program capable of accessing passwords associated with emails through leaked databases. A python program capable of accessing passwo

6 Aug 14, 2022
faceFarm is an active yahoo email detection script that functions to take over the facebook account using email.

faceFarm – The simple Email Detector. Email Valid Detector for Facebook (Yahoo) faceFarm is an active yahoo email detection script that functions to t

Fadjrir Herlambang 2 Jan 18, 2022
A news curator and newsletter subscription package for Django

django-newsfeed What is django-newsfeed? django-newsfeed is a news curator and newsletter subscription package for django. It can be used to create a

Maksudul Haque 179 Nov 14, 2022