Repository: sunpy/sunpy

Issue:
Remote RHESSI tests failing
### Describe the bug

The remote data tests that try and access https://hesperia.gsfc.nasa.gov have been failing for a while (~> a week from memory?). A search for RHESSI data gives me https://hesperia.gsfc.nasa.gov/ssw/hessi/doc/guides/hessi_data_access.htm that is also 404'ing, so I presume the whole RHESSI servers and website are just down? Worth asking someone in the know though.

```python
FAILED ../../.tox/py39-online/lib/python3.9/site-packages/sunpy/database/tests/test_tables.py::test_entry_from_qr_block_kev
FAILED ../../.tox/py39-online/lib/python3.9/site-packages/sunpy/database/tests/test_tables.py::test_entries_from_fido_search_result
FAILED ../../.tox/py39-online/lib/python3.9/site-packages/sunpy/net/scraper.py::sunpy.net.scraper.Scraper.filelist
FAILED ../../.tox/py39-online/lib/python3.9/site-packages/sunpy/net/dataretriever/sources/rhessi.py::sunpy.net.dataretriever.sources.rhessi.RHESSIClient.get_observing_summary_filename
FAILED ../../.tox/py39-online/lib/python3.9/site-packages/sunpy/net/tests/test_scraper.py::testFilesRange_sameDirectory_remote
FAILED ../../docs/intro/acquiring_data/fido.rst::fido.rst
```


Discussion:
Yes, the Goddard server is offline, with no ETA yet for its return.

Resolving patch:
diff --git a/sunpy/net/dataretriever/sources/rhessi.py b/sunpy/net/dataretriever/sources/rhessi.py
--- a/sunpy/net/dataretriever/sources/rhessi.py
+++ b/sunpy/net/dataretriever/sources/rhessi.py
@@ -148,7 +148,7 @@ def get_observing_summary_filename(self, time_range):
         --------
         >>> from sunpy.net.dataretriever.sources.rhessi import RHESSIClient
         >>> RHESSIClient().get_observing_summary_filename(('2011/04/04', '2011/04/04'))   # doctest: +REMOTE_DATA
-        ['https://.../hessidata/metadata/catalog/hsi_obssumm_20110404_058.fits']
+        ['...://.../hessidata/metadata/catalog/hsi_obssumm_20110404_058.fits']
         """
         dt = TimeRange(time_range)
         # remove time from dates
diff --git a/sunpy/net/scraper.py b/sunpy/net/scraper.py
--- a/sunpy/net/scraper.py
+++ b/sunpy/net/scraper.py
@@ -63,16 +63,14 @@ class Scraper:
 
     Examples
     --------
-    >>> # Downloading data from SolarMonitor.org
     >>> from sunpy.net import Scraper
-    >>> solmon_pattern = ('http://solarmonitor.org/data/'
-    ...                   '%Y/%m/%d/fits/{instrument}/'
-    ...                   '{instrument}_{wave:05d}_fd_%Y%m%d_%H%M%S.fts.gz')
-    >>> solmon = Scraper(solmon_pattern, instrument = 'swap', wave = 174)
-    >>> print(solmon.pattern)
-    http://solarmonitor.org/data/%Y/%m/%d/fits/swap/swap_00174_fd_%Y%m%d_%H%M%S.fts.gz
-    >>> print(solmon.now)  # doctest: +SKIP
-    http://solarmonitor.org/data/2017/11/20/fits/swap/swap_00174_fd_20171120_193933.fts.gz
+    >>> pattern = ('http://proba2.oma.be/{instrument}/data/bsd/%Y/%m/%d/'
+    ...            '{instrument}_lv1_%Y%m%d_%H%M%S.fits')
+    >>> swap = Scraper(pattern, instrument='swap')
+    >>> print(swap.pattern)
+    http://proba2.oma.be/swap/data/bsd/%Y/%m/%d/swap_lv1_%Y%m%d_%H%M%S.fits
+    >>> print(swap.now)  # doctest: +SKIP
+    http://proba2.oma.be/swap/data/bsd/2022/12/21/swap_lv1_20221221_112433.fits
 
     Notes
     -----
@@ -260,17 +258,15 @@ def filelist(self, timerange):
         Examples
         --------
         >>> from sunpy.net import Scraper
-        >>> solmon_pattern = ('http://solarmonitor.org/data/'
-        ...                   '%Y/%m/%d/fits/{instrument}/'
-        ...                   '{instrument}_{wave:05d}_fd_%Y%m%d_%H%M%S.fts.gz')
-        >>> solmon = Scraper(solmon_pattern, instrument = 'swap', wave = 174)
+        >>> pattern = ('http://proba2.oma.be/{instrument}/data/bsd/%Y/%m/%d/'
+        ...            '{instrument}_lv1_%Y%m%d_%H%M%S.fits')
+        >>> swap = Scraper(pattern, instrument='swap')
         >>> from sunpy.time import TimeRange
-        >>> timerange = TimeRange('2015-01-01','2015-01-01T16:00:00')
-        >>> print(solmon.filelist(timerange))  # doctest: +REMOTE_DATA
-        ['http://solarmonitor.org/data/2015/01/01/fits/swap/swap_00174_fd_20150101_025423.fts.gz',
-         'http://solarmonitor.org/data/2015/01/01/fits/swap/swap_00174_fd_20150101_061145.fts.gz',
-         'http://solarmonitor.org/data/2015/01/01/fits/swap/swap_00174_fd_20150101_093037.fts.gz',
-         'http://solarmonitor.org/data/2015/01/01/fits/swap/swap_00174_fd_20150101_124927.fts.gz']
+        >>> timerange = TimeRange('2015-01-01T00:08:00','2015-01-01T00:12:00')
+        >>> print(swap.filelist(timerange))  # doctest: +REMOTE_DATA
+        ['http://proba2.oma.be/swap/data/bsd/2015/01/01/swap_lv1_20150101_000857.fits',
+         'http://proba2.oma.be/swap/data/bsd/2015/01/01/swap_lv1_20150101_001027.fits',
+         'http://proba2.oma.be/swap/data/bsd/2015/01/01/swap_lv1_20150101_001157.fits']
 
         Notes
         -----


Test patch:
diff --git a/sunpy/database/tests/test_tables.py b/sunpy/database/tests/test_tables.py
--- a/sunpy/database/tests/test_tables.py
+++ b/sunpy/database/tests/test_tables.py
@@ -189,11 +189,11 @@ def test_entries_from_fido_search_result(fido_search_result):
         observation_time_end=datetime(2012, 1, 1, 23, 59, 59, 999000),
         wavemin=17634850.470588233, wavemax=17634850.470588233,
         instrument='NORH')
-    # 1 entry from rhessi
+    # 2 entries from rhessi
+    assert entries[66].fileid.endswith("/metadata/catalog/hsi_obssumm_20120101_032.fits")
     assert entries[66] == DatabaseEntry(
         source="RHESSI", provider='NASA', physobs='summary_lightcurve',
-        fileid=("https://hesperia.gsfc.nasa.gov/"
-                "hessidata/metadata/catalog/hsi_obssumm_20120101_032.fits"),
+        fileid=entries[66].fileid,
         observation_time_start=datetime(2012, 1, 1, 0, 0),
         observation_time_end=datetime(2012, 1, 1, 23, 59, 59, 999000),
         wavemin=np.nan, wavemax=np.nan,
diff --git a/sunpy/net/tests/test_scraper.py b/sunpy/net/tests/test_scraper.py
--- a/sunpy/net/tests/test_scraper.py
+++ b/sunpy/net/tests/test_scraper.py
@@ -179,16 +179,15 @@ def testFilesRange_sameDirectory_local():
 
 @pytest.mark.remote_data
 def testFilesRange_sameDirectory_remote():
-    pattern = ('http://solarmonitor.org/data/%Y/%m/%d/'
-               'fits/{instrument}/'
-               '{instrument}_00174_fd_%Y%m%d_%H%M%S.fts.gz')
+    pattern = ('http://proba2.oma.be/{instrument}/data/bsd/%Y/%m/%d/'
+               '{instrument}_lv1_%Y%m%d_%H%M%S.fits')
     s = Scraper(pattern, instrument='swap')
     startdate = parse_time((2014, 5, 14, 0, 0))
-    enddate = parse_time((2014, 5, 14, 6, 30))
+    enddate = parse_time((2014, 5, 14, 0, 5))
     timerange = TimeRange(startdate, enddate)
     assert len(s.filelist(timerange)) == 2
-    startdate = parse_time((2014, 5, 14, 21, 0))
-    enddate = parse_time((2014, 5, 14, 23, 30))
+    startdate = parse_time((2014, 5, 14, 0, 6))
+    enddate = parse_time((2014, 5, 14, 0, 7))
     timerange = TimeRange(startdate, enddate)
     assert len(s.filelist(timerange)) == 0