golden hour
/lib/python2.7/site-packages/certbot/_internal
⬆️ Go Up
Upload
File/Folder
Size
Actions
__init__.py
184 B
Del
OK
__init__.pyc
349 B
Del
OK
__init__.pyo
349 B
Del
OK
account.py
14.5 KB
Del
OK
account.pyc
14.89 KB
Del
OK
account.pyo
14.89 KB
Del
OK
auth_handler.py
18.38 KB
Del
OK
auth_handler.pyc
17.21 KB
Del
OK
auth_handler.pyo
17.1 KB
Del
OK
cert_manager.py
15.59 KB
Del
OK
cert_manager.pyc
16.42 KB
Del
OK
cert_manager.pyo
16.42 KB
Del
OK
cli
-
Del
OK
client.py
30.2 KB
Del
OK
client.pyc
26.95 KB
Del
OK
client.pyo
26.95 KB
Del
OK
configuration.py
5.75 KB
Del
OK
configuration.pyc
7.77 KB
Del
OK
configuration.pyo
7.77 KB
Del
OK
constants.py
6.37 KB
Del
OK
constants.pyc
5.02 KB
Del
OK
constants.pyo
5.02 KB
Del
OK
display
-
Del
OK
eff.py
4.56 KB
Del
OK
eff.pyc
5.2 KB
Del
OK
eff.pyo
5.2 KB
Del
OK
error_handler.py
7.05 KB
Del
OK
error_handler.pyc
6.59 KB
Del
OK
error_handler.pyo
6.59 KB
Del
OK
hooks.py
7.88 KB
Del
OK
hooks.pyc
9.28 KB
Del
OK
hooks.pyo
9.28 KB
Del
OK
lock.py
9.94 KB
Del
OK
lock.pyc
9.92 KB
Del
OK
lock.pyo
9.92 KB
Del
OK
log.py
13.43 KB
Del
OK
log.pyc
13.56 KB
Del
OK
log.pyo
13.45 KB
Del
OK
main.py
50.33 KB
Del
OK
main.pyc
43.83 KB
Del
OK
main.pyo
43.61 KB
Del
OK
plugins
-
Del
OK
renewal.py
22.29 KB
Del
OK
renewal.pyc
17.4 KB
Del
OK
renewal.pyo
17.4 KB
Del
OK
reporter.py
3.48 KB
Del
OK
reporter.pyc
3.75 KB
Del
OK
reporter.pyo
3.68 KB
Del
OK
snap_config.py
3.38 KB
Del
OK
snap_config.pyc
4.73 KB
Del
OK
snap_config.pyo
4.73 KB
Del
OK
storage.py
45.96 KB
Del
OK
storage.pyc
42.26 KB
Del
OK
storage.pyo
42.26 KB
Del
OK
updater.py
3.87 KB
Del
OK
updater.pyc
4.35 KB
Del
OK
updater.pyo
4.35 KB
Del
OK
Edit: eff.py
"""Subscribes users to the EFF newsletter.""" import logging import requests import zope.component from acme.magic_typing import Optional # pylint: disable=unused-import from certbot import interfaces from certbot.display import util as display_util from certbot._internal import constants from certbot._internal.account import Account # pylint: disable=unused-import from certbot._internal.account import AccountFileStorage from certbot.interfaces import IConfig # pylint: disable=unused-import logger = logging.getLogger(__name__) def prepare_subscription(config, acc): # type: (IConfig, Account) -> None """High level function to store potential EFF newsletter subscriptions. The user may be asked if they want to sign up for the newsletter if they have not given their explicit approval or refusal using --eff-mail or --no-eff-mail flag. Decision about EFF subscription will be stored in the account metadata. :param IConfig config: Client configuration. :param Account acc: Current client account. """ if config.eff_email is False: return if config.eff_email is True: if config.email is None: _report_failure("you didn't provide an e-mail address") else: acc.meta = acc.meta.update(register_to_eff=config.email) elif config.email and _want_subscription(): acc.meta = acc.meta.update(register_to_eff=config.email) if acc.meta.register_to_eff: storage = AccountFileStorage(config) storage.update_meta(acc) def handle_subscription(config, acc): # type: (IConfig, Account) -> None """High level function to take care of EFF newsletter subscriptions. Once subscription is handled, it will not be handled again. :param IConfig config: Client configuration. :param Account acc: Current client account. """ if config.dry_run: return if acc.meta.register_to_eff: subscribe(acc.meta.register_to_eff) acc.meta = acc.meta.update(register_to_eff=None) storage = AccountFileStorage(config) storage.update_meta(acc) def _want_subscription(): # type: () -> bool """Does the user want to be subscribed to the EFF newsletter? :returns: True if we should subscribe the user, otherwise, False :rtype: bool """ prompt = ( 'Would you be willing, once your first certificate is successfully issued, ' 'to share your email address with the Electronic Frontier Foundation, a ' "founding partner of the Let's Encrypt project and the non-profit organization " "that develops Certbot? We'd like to send you email about our work encrypting " "the web, EFF news, campaigns, and ways to support digital freedom. ") display = zope.component.getUtility(interfaces.IDisplay) return display.yesno(prompt, default=False) def subscribe(email): # type: (str) -> None """Subscribe the user to the EFF mailing list. :param str email: the e-mail address to subscribe """ url = constants.EFF_SUBSCRIBE_URI data = {'data_type': 'json', 'email': email, 'form_id': 'eff_supporters_library_subscribe_form'} logger.info('Subscribe to the EFF mailing list (email: %s).', email) logger.debug('Sending POST request to %s:\n%s', url, data) _check_response(requests.post(url, data=data)) def _check_response(response): # type: (requests.Response) -> None """Check for errors in the server's response. If an error occurred, it will be reported to the user. :param requests.Response response: the server's response to the subscription request """ logger.debug('Received response:\n%s', response.content) try: response.raise_for_status() if not response.json()['status']: _report_failure('your e-mail address appears to be invalid') except requests.exceptions.HTTPError: _report_failure() except (ValueError, KeyError): _report_failure('there was a problem with the server response') def _report_failure(reason=None): # type: (Optional[str]) -> None """Notify the user of failing to sign them up for the newsletter. :param reason: a phrase describing what the problem was beginning with a lowercase letter and no closing punctuation :type reason: `str` or `None` """ msg = ['We were unable to subscribe you the EFF mailing list'] if reason is not None: msg.append(' because ') msg.append(reason) msg.append('. You can try again later by visiting https://act.eff.org.') display_util.notify(''.join(msg))
Save