### Summary

I'm behind a proxy so I have to use workarounds to be able to download gpg keys.

However, ansible.builtin.apt_repository doesn't detect correctly already existing GPG keys using apt-key so it tries to download them again using apt-key --recv-keys which fails because I'm behind a proxy.

In the output attached to the "actual results" section, I had modified apt_repository.py to print apt-key export rc, stdout and stderr.

### Issue Type

Bug Report

### Component Name

apt_repository

### Ansible Version

```console
$ ansible --version
ansible [core 2.12.10]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3/dist-packages/ansible
  ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible
  python version = 3.8.10 (default, Nov 14 2022, 12:59:47) [GCC 9.4.0]
  jinja version = 2.10.1
  libyaml = True
```


### Configuration

```console
# if using a version older than ansible-core 2.12 you should omit the '-t all'
$ ansible-config dump --only-changed -t all

BECOME:  
======   

CACHE:   
=====    

CALLBACK:
======== 

CLICONF:
```


### OS / Environment

Ubuntu 20.04, provisioning using Vagrant and the ansible_local provisioner.

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
I'm behind a proxy so I have to use the following workaround to be able to download gpg keys:

```yaml
- name: Install wireshark-dev gpg key
  ansible.builtin.apt_key:
    data: "{{ lookup('url', 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xd875551314eca0f0', split_lines=False) }}"
    state: present
  register: pkg_result
  until: pkg_result is success

- name: Adding wireshark-dev ppa repository
  ansible.builtin.apt_repository:
    repo: 'ppa:wireshark-dev/stable'
    state: present
```




### Expected Results

ansible.builtin.apt_repository should not try to download the existing GPG key using apt-key.

However, it tries to download it and this fails because I'm behind a proxy.
I've found the following code to be the culprit in the apt_repository.py module:
```python
    def _key_already_exists(self, key_fingerprint):

        if self.apt_key_bin:
            rc, out, err = self.module.run_command([self.apt_key_bin, 'export', key_fingerprint], check_rc=True)
            found = len(err) == 0
```

The code checks for an empty stderr, but apt-key issues the following warning message on stderr: 
> Warning: apt-key output should not be parsed (stdout is not a terminal)

When a key doesn't not exist locally, here is the content of stderr:
> Warning: apt-key output should not be parsed (stdout is not a terminal)
> gpg: WARNING: nothing exported

In version 2.12.10, the easiest way to patch it is to change line 456 to the following:
```python
        return ("nothing exported" not in err)
```

In the current master branch, the easiest way to patch it is to change line 475 to the following:
```python
            found = ("nothing exported" not in err)
```

### Actual Results

```console
36122 1674752689.12920: _low_level_execute_command() done: rc=1, stdout=rc=0, out=-----BEGIN PGP PUBLIC KEY BLOCK-----

mQINBFUDPR4BEADzM3Hc8HzTOu9fypxMIOGtcUVTCGSSI0NgtdTp96HZGtuQlweB
inSEVSauBcPYvW3UTt0fbOotMt6rACFUiH0bs1y20rXuHgVFkQmSfTQT+qDaCYud
g2MV8RFObQ+/MQrjnSqpSiNoLagW4+x6whY9wIlT4gpHbZLZ74/4ZxMkKdDFFQyn
jonQHW1w4iZXoMUGeFUcR7koZo5UKK+3DmNaWP2oj9sHzlHeFpXoshiLY05uL0E0
Tzu3+NHTbjMl88BezfYYfMawgIJyaA9PIoDe+Z/72dwjWYWWjqCsKv2BqBMScp82
5Ewa2i1aeH2RQ/l8ipZzcKKqK5y5LfIb6AgwsDStFet+43Gt1F1GoaOckkxdOpal
Mg/sNGORVHVV3/kxfGzQyj2KakfbkaGCSGRnj8iarhLhxr9tR8QP2kdCOBWkmYXJ
esei7hfrpA5BbrkUEyQ4lSCnPW8tBXfjgdUjv0kcs/nTOTg7v4FbhzvK0+fKSnjL
Pe+4fH8NNQLC79/EAiQztKTHojKFVUQfydn5VQO1nJ/Fq0ulyuMk23ezddqbtvs4
5UXIrzJSro5nJnigKGRR9Was6M8wdnke8qhqWN5pCmO5txx1AIZdOkwh0UqaVnTF
Kt0kDW/PkDGzm7qYCYLqphXi9Z4Dg2y9zGOnjxpTt30T6M2kl/GV6RFoHQARAQAB
tBhMYXVuY2hwYWQgUFBBIGZvciBSRU1udXiJAjgEEwECACIFAlUDPR4CGwMGCwkI
BwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEL/0UBZ4jeEVSMwQAN7pAtv1DzaXwaRL
N7qLKYheLGe5Y0IK15laxqnsBDqZTy4omLzvRPJ7UP3/EMLn3VSRtCZ2oZUGRfeu
UfW6Ms9tPHzrchXnqKM3oJInA4rvYeQ9NUwntLSY1S46/6NIDmY5t5XnR7gB/L4v
B616fFDYeaygum9BBvIS9VgEP0LFItA6H3eaVR3aWYNAjCIU6K6m9idhAodeo8HC
qgSEIDspXc9lL2rE1hTzUPrv8hpeFCmV6d/JwpSoCs8I7uZ81TjCRae7ydcq8g32
/F9zzHYMHJmCCmv2/zbi/yCroaEWhK7ouz0QtJPsSnytnrSFoTiGvHEd7LWIFxKs
itdV++Oz9IrxqSQ5Ww/+38U/SKOhN5zGl2H2nP8qLpjPyfIa/kNAXGkjHRuitWNA
6saTAFRSYGaitgQZmKzHrXQ4ZjFraMm6jfpwwGhqmIgZDjMWjqPSVV+LxnaaB5RW
n0EZczPCvkkierIy7pgTKeAeKVEkbLysnfwEQVBWxfziShbUWCQLnwXjY5kYStWF
1popjpX75KwbPEQlNgTS83QC20W19g2L+Z0r3NGEyz5hPGhAqbwN89/2sB0hUORK
VCu/lZu4kUIcOBGcSvQsqsBWIIewMPbxm7so/ba8je3WKDoPLqWDyIi5iTGy3WV8
Pw+Ns1dA9rRc3SmwLi01W390osKB
=jXnP
-----END PGP PUBLIC KEY BLOCK-----
, err=Warning: apt-key output should not be parsed (stdout is not a terminal)


{"cmd": "apt-key adv --recv-keys --no-tty --keyserver hkp://keyserver.ubuntu.com:80 E90F33EEF615660D25A02D32BFF45016788DE115", "rc": 2, "stdout": "Executing: /tmp/apt-key-gpghome.t2vhexoMJ0/gpg.1.sh --recv-keys --no-tty -
-keyserver hkp://keyserver.ubuntu.com:80 E90F33EEF615660D25A02D32BFF45016788DE115\n", "stderr": "Warning: apt-key output should not be parsed (stdout is not a terminal)\ngpg: keyserver receive failed: No name\n", "failed"
: true, "msg": "Warning: apt-key output should not be parsed (stdout is not a terminal)\ngpg: keyserver receive failed: No name", "invocation": {"module_args": {"repo": "ppa:remnux/stable", "state": "present", "update_cac
he": true, "update_cache_retries": 5, "update_cache_retry_max_delay": 12, "install_python_apt": true, "validate_certs": true, "mode": null, "filename": null, "codename": null}}}
, stderr=
 36122 1674752689.12943: done with _execute_module (ansible.builtin.apt_repository, {'repo': 'ppa:remnux/stable', 'state': 'present', '_ansible_check_mode': False, '_ansible_no_log': False, '_ansible_debug': True, '_ansible_diff': False, '_ansible_verbosity': 4, '_ansible_version': '2.12.10', '_ansible_module_name': 'ansible.builtin.apt_repository', '_ansible_syslog_facility': 'LOG_USER', '_ansible_selinux_special_fs': ['fuse', 'nfs', 'vboxsf', 'ramfs', '9p', 'vfat'], '_ansible_string_conversion_action': 'warn', '_ansible_socket': None, '_ansible_shell_executable': '/bin/sh', '_ansible_keep_remote_files': False, '_ansible_tmpdir': '/root/.ansible/tmp/ansible-tmp-1674752688.6440187-36122-146911848313704/', '_ansible_remote_tmp': '~/.ansible/tmp'})
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
if new is None:
            return old
        return new
    def modify(self, file, n, enabled=None, source=None, comment=None):
        '''
        This function to be used with iterator, so we don't care of invalid sources.
        If source, enabled, or comment is None, original value from line ``n`` will be preserved.
        '''
        valid, enabled_old, source_old, comment_old = self.files[file][n][1:]
        self.files[file][n] = (n, valid, self._choice(enabled, enabled_old), self._choice(source, source_old), self._choice(comment, comment_old))
    def _add_valid_source(self, source_new, comment_new, file):
        
        
        self.module.log('ading source file: %s | %s | %s' % (source_new, comment_new, file))
        found = False
        for filename, n, enabled, source, comment in self:
            if source == source_new:
                self.modify(filename, n, enabled=True)
                found = True
        if not found:
            if file is None:
                file = self.default_file
            else:
                file = self._expand_path(file)
            if file not in self.files:
                self.files[file] = []
            files = self.files[file]
            files.append((len(files), True, True, source_new, comment_new))
            self.new_repos.add(file)
    def add_source(self, line, comment='', file=None):