We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
[Feature] Add new Authority Type
## Problem
<!-- Describe a problem solved by this feature; or delete the section entirely. -->

We currently lack an authority type for curated image galleries: places like https://stocksnap.io where content is manually curated by the platform, but it isn't a site with social, user-uploaded content, or isn't a formal GLAM institution.

## Description
<!-- Describe the feature and how it solves the problem. -->

Our current authorities:

https://github.com/WordPress/openverse-api/blob/9d0d724651f18cc9f96931e01bea92b8032bd6a0/ingestion_server/ingestion_server/authority.py#L32-L36

Should be modified to:


```diff
boost = {
-   AuthorityTypes.CURATED: 90,
+   AuthorityTypes.CURATED: 87.5,
+   AuthorityTypes.CULTURAL_INSTITUTIONS: 90,
    AuthorityTypes.SOCIAL_MEDIA: 80,
    AuthorityTypes.DEFAULT: 85
}
```

We'll also need to re-classify the existing providers classified as `CURATED` to `CULTURAL_INSTITUTIONS` and add a line for StockSnap here (we might also want to sort these alphabetically):

https://github.com/WordPress/openverse-api/blob/9d0d724651f18cc9f96931e01bea92b8032bd6a0/ingestion_server/ingestion_server/authority.py#L37-L53



## Alternatives
<!-- Describe any alternative solutions or features you have considered. How is this feature better? -->

## Additional context
<!-- Add any other context about the feature here; or delete the section entirely. -->

## Implementation
<!-- Replace the [ ] with [x] to check the box. -->
- [ ] 🙋 I would be interested in implementing this feature.


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `ingestion_server/ingestion_server/authority.py`
Content:
```
1 from enum import Enum, auto
2 
3 
4 """
5 Authority is a ranking from 0 to 100 (with 0 being least authoritative)
6 indicating the pedigree of an image. Some examples of things that could impact
7 authority:
8 - The reputation of the website that posted an image
9 - The popularity of the uploader on a social media site in terms of number of
10 followers
11 - Whether the uploader has uploaded images that have previously been flagged for
12 copyright infringement.
13 - etc
14 
15 The authority can be set from the catalog layer through the meta_data field
16 or through the ingestion layer. As of now, we are only factoring in the
17 reputation of the website as a static hand-picked list based on experience
18 and search result quality, with the intention to add more sophisticated and
19 tailored measures of authority later on.
20 
21 Also note that this is just one factor in rankings, and the magnitude of the
22 boost can be adjusted at search-time.
23 """
24 
25 
26 class AuthorityTypes(Enum):
27     CURATED = auto()
28     SOCIAL_MEDIA = auto()
29     DEFAULT = auto()
30 
31 
32 # We want to boost curated collections where each image has been vetted for
33 # cultural significance.
34 boost = {
35     AuthorityTypes.CURATED: 90,
36     AuthorityTypes.SOCIAL_MEDIA: 80,
37     AuthorityTypes.DEFAULT: 85,
38 }
39 authority_types = {
40     "flickr": AuthorityTypes.SOCIAL_MEDIA,
41     "behance": AuthorityTypes.SOCIAL_MEDIA,
42     "thingiverse": AuthorityTypes.SOCIAL_MEDIA,
43     "sketchfab": AuthorityTypes.SOCIAL_MEDIA,
44     "deviantart": AuthorityTypes.SOCIAL_MEDIA,
45     "thorvaldsensmuseum": AuthorityTypes.CURATED,
46     "svgsilh": AuthorityTypes.CURATED,
47     "smithsonian": AuthorityTypes.CURATED,
48     "rijksmuseum": AuthorityTypes.CURATED,
49     "museumsvictoria": AuthorityTypes.CURATED,
50     "met": AuthorityTypes.CURATED,
51     "mccordsmuseum": AuthorityTypes.CURATED,
52     "digitaltmuseum": AuthorityTypes.CURATED,
53     "clevelandmuseum": AuthorityTypes.CURATED,
54     "brooklynmuseum": AuthorityTypes.CURATED,
55 }
56 
57 
58 def get_authority_boost(source):
59     authority_boost = None
60     if source in authority_types:
61         authority_type = authority_types[source]
62         if authority_type in boost:
63             authority_boost = boost[authority_type]
64         else:
65             authority_boost = boost[AuthorityTypes.DEFAULT]
66     return authority_boost
67
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/ingestion_server/ingestion_server/authority.py b/ingestion_server/ingestion_server/authority.py
--- a/ingestion_server/ingestion_server/authority.py
+++ b/ingestion_server/ingestion_server/authority.py
@@ -25,6 +25,7 @@
 
 class AuthorityTypes(Enum):
     CURATED = auto()
+    CULTURAL_INSTITUTION = auto()
     SOCIAL_MEDIA = auto()
     DEFAULT = auto()
 
@@ -32,26 +33,29 @@
 # We want to boost curated collections where each image has been vetted for
 # cultural significance.
 boost = {
-    AuthorityTypes.CURATED: 90,
-    AuthorityTypes.SOCIAL_MEDIA: 80,
-    AuthorityTypes.DEFAULT: 85,
+    AuthorityTypes.CURATED: 85,
+    AuthorityTypes.CULTURAL_INSTITUTION: 90,
+    AuthorityTypes.SOCIAL_MEDIA: 75,
+    AuthorityTypes.DEFAULT: 80,
 }
+
 authority_types = {
     "flickr": AuthorityTypes.SOCIAL_MEDIA,
     "behance": AuthorityTypes.SOCIAL_MEDIA,
     "thingiverse": AuthorityTypes.SOCIAL_MEDIA,
     "sketchfab": AuthorityTypes.SOCIAL_MEDIA,
     "deviantart": AuthorityTypes.SOCIAL_MEDIA,
-    "thorvaldsensmuseum": AuthorityTypes.CURATED,
-    "svgsilh": AuthorityTypes.CURATED,
-    "smithsonian": AuthorityTypes.CURATED,
-    "rijksmuseum": AuthorityTypes.CURATED,
-    "museumsvictoria": AuthorityTypes.CURATED,
-    "met": AuthorityTypes.CURATED,
-    "mccordsmuseum": AuthorityTypes.CURATED,
-    "digitaltmuseum": AuthorityTypes.CURATED,
-    "clevelandmuseum": AuthorityTypes.CURATED,
-    "brooklynmuseum": AuthorityTypes.CURATED,
+    "thorvaldsensmuseum": AuthorityTypes.CULTURAL_INSTITUTION,
+    "svgsilh": AuthorityTypes.CULTURAL_INSTITUTION,
+    "smithsonian": AuthorityTypes.CULTURAL_INSTITUTION,
+    "rijksmuseum": AuthorityTypes.CULTURAL_INSTITUTION,
+    "museumsvictoria": AuthorityTypes.CULTURAL_INSTITUTION,
+    "met": AuthorityTypes.CULTURAL_INSTITUTION,
+    "mccordsmuseum": AuthorityTypes.CULTURAL_INSTITUTION,
+    "digitaltmuseum": AuthorityTypes.CULTURAL_INSTITUTION,
+    "clevelandmuseum": AuthorityTypes.CULTURAL_INSTITUTION,
+    "brooklynmuseum": AuthorityTypes.CULTURAL_INSTITUTION,
+    "stocksnap": AuthorityTypes.CURATED,
 }

{"golden_diff": "diff --git a/ingestion_server/ingestion_server/authority.py b/ingestion_server/ingestion_server/authority.py\n--- a/ingestion_server/ingestion_server/authority.py\n+++ b/ingestion_server/ingestion_server/authority.py\n@@ -25,6 +25,7 @@\n \n class AuthorityTypes(Enum):\n     CURATED = auto()\n+    CULTURAL_INSTITUTION = auto()\n     SOCIAL_MEDIA = auto()\n     DEFAULT = auto()\n \n@@ -32,26 +33,29 @@\n # We want to boost curated collections where each image has been vetted for\n # cultural significance.\n boost = {\n-    AuthorityTypes.CURATED: 90,\n-    AuthorityTypes.SOCIAL_MEDIA: 80,\n-    AuthorityTypes.DEFAULT: 85,\n+    AuthorityTypes.CURATED: 85,\n+    AuthorityTypes.CULTURAL_INSTITUTION: 90,\n+    AuthorityTypes.SOCIAL_MEDIA: 75,\n+    AuthorityTypes.DEFAULT: 80,\n }\n+\n authority_types = {\n     \"flickr\": AuthorityTypes.SOCIAL_MEDIA,\n     \"behance\": AuthorityTypes.SOCIAL_MEDIA,\n     \"thingiverse\": AuthorityTypes.SOCIAL_MEDIA,\n     \"sketchfab\": AuthorityTypes.SOCIAL_MEDIA,\n     \"deviantart\": AuthorityTypes.SOCIAL_MEDIA,\n-    \"thorvaldsensmuseum\": AuthorityTypes.CURATED,\n-    \"svgsilh\": AuthorityTypes.CURATED,\n-    \"smithsonian\": AuthorityTypes.CURATED,\n-    \"rijksmuseum\": AuthorityTypes.CURATED,\n-    \"museumsvictoria\": AuthorityTypes.CURATED,\n-    \"met\": AuthorityTypes.CURATED,\n-    \"mccordsmuseum\": AuthorityTypes.CURATED,\n-    \"digitaltmuseum\": AuthorityTypes.CURATED,\n-    \"clevelandmuseum\": AuthorityTypes.CURATED,\n-    \"brooklynmuseum\": AuthorityTypes.CURATED,\n+    \"thorvaldsensmuseum\": AuthorityTypes.CULTURAL_INSTITUTION,\n+    \"svgsilh\": AuthorityTypes.CULTURAL_INSTITUTION,\n+    \"smithsonian\": AuthorityTypes.CULTURAL_INSTITUTION,\n+    \"rijksmuseum\": AuthorityTypes.CULTURAL_INSTITUTION,\n+    \"museumsvictoria\": AuthorityTypes.CULTURAL_INSTITUTION,\n+    \"met\": AuthorityTypes.CULTURAL_INSTITUTION,\n+    \"mccordsmuseum\": AuthorityTypes.CULTURAL_INSTITUTION,\n+    \"digitaltmuseum\": AuthorityTypes.CULTURAL_INSTITUTION,\n+    \"clevelandmuseum\": AuthorityTypes.CULTURAL_INSTITUTION,\n+    \"brooklynmuseum\": AuthorityTypes.CULTURAL_INSTITUTION,\n+    \"stocksnap\": AuthorityTypes.CURATED,\n }\n", "issue": "[Feature] Add new Authority Type\n## Problem\r\n<!-- Describe a problem solved by this feature; or delete the section entirely. -->\r\n\r\nWe currently lack an authority type for curated image galleries: places like https://stocksnap.io where content is manually curated by the platform, but it isn't a site with social, user-uploaded content, or isn't a formal GLAM institution.\r\n\r\n## Description\r\n<!-- Describe the feature and how it solves the problem. -->\r\n\r\nOur current authorities:\r\n\r\nhttps://github.com/WordPress/openverse-api/blob/9d0d724651f18cc9f96931e01bea92b8032bd6a0/ingestion_server/ingestion_server/authority.py#L32-L36\r\n\r\nShould be modified to:\r\n\r\n\r\n```diff\r\nboost = {\r\n-   AuthorityTypes.CURATED: 90,\r\n+   AuthorityTypes.CURATED: 87.5,\r\n+   AuthorityTypes.CULTURAL_INSTITUTIONS: 90,\r\n    AuthorityTypes.SOCIAL_MEDIA: 80,\r\n    AuthorityTypes.DEFAULT: 85\r\n}\r\n```\r\n\r\nWe'll also need to re-classify the existing providers classified as `CURATED` to `CULTURAL_INSTITUTIONS` and add a line for StockSnap here (we might also want to sort these alphabetically):\r\n\r\nhttps://github.com/WordPress/openverse-api/blob/9d0d724651f18cc9f96931e01bea92b8032bd6a0/ingestion_server/ingestion_server/authority.py#L37-L53\r\n\r\n\r\n\r\n## Alternatives\r\n<!-- Describe any alternative solutions or features you have considered. How is this feature better? -->\r\n\r\n## Additional context\r\n<!-- Add any other context about the feature here; or delete the section entirely. -->\r\n\r\n## Implementation\r\n<!-- Replace the [ ] with [x] to check the box. -->\r\n- [ ] \ud83d\ude4b I would be interested in implementing this feature.\r\n\n", "before_files": [{"content": "from enum import Enum, auto\n\n\n\"\"\"\nAuthority is a ranking from 0 to 100 (with 0 being least authoritative)\nindicating the pedigree of an image. Some examples of things that could impact\nauthority:\n- The reputation of the website that posted an image\n- The popularity of the uploader on a social media site in terms of number of\nfollowers\n- Whether the uploader has uploaded images that have previously been flagged for\ncopyright infringement.\n- etc\n\nThe authority can be set from the catalog layer through the meta_data field\nor through the ingestion layer. As of now, we are only factoring in the\nreputation of the website as a static hand-picked list based on experience\nand search result quality, with the intention to add more sophisticated and\ntailored measures of authority later on.\n\nAlso note that this is just one factor in rankings, and the magnitude of the\nboost can be adjusted at search-time.\n\"\"\"\n\n\nclass AuthorityTypes(Enum):\n    CURATED = auto()\n    SOCIAL_MEDIA = auto()\n    DEFAULT = auto()\n\n\n# We want to boost curated collections where each image has been vetted for\n# cultural significance.\nboost = {\n    AuthorityTypes.CURATED: 90,\n    AuthorityTypes.SOCIAL_MEDIA: 80,\n    AuthorityTypes.DEFAULT: 85,\n}\nauthority_types = {\n    \"flickr\": AuthorityTypes.SOCIAL_MEDIA,\n    \"behance\": AuthorityTypes.SOCIAL_MEDIA,\n    \"thingiverse\": AuthorityTypes.SOCIAL_MEDIA,\n    \"sketchfab\": AuthorityTypes.SOCIAL_MEDIA,\n    \"deviantart\": AuthorityTypes.SOCIAL_MEDIA,\n    \"thorvaldsensmuseum\": AuthorityTypes.CURATED,\n    \"svgsilh\": AuthorityTypes.CURATED,\n    \"smithsonian\": AuthorityTypes.CURATED,\n    \"rijksmuseum\": AuthorityTypes.CURATED,\n    \"museumsvictoria\": AuthorityTypes.CURATED,\n    \"met\": AuthorityTypes.CURATED,\n    \"mccordsmuseum\": AuthorityTypes.CURATED,\n    \"digitaltmuseum\": AuthorityTypes.CURATED,\n    \"clevelandmuseum\": AuthorityTypes.CURATED,\n    \"brooklynmuseum\": AuthorityTypes.CURATED,\n}\n\n\ndef get_authority_boost(source):\n    authority_boost = None\n    if source in authority_types:\n        authority_type = authority_types[source]\n        if authority_type in boost:\n            authority_boost = boost[authority_type]\n        else:\n            authority_boost = boost[AuthorityTypes.DEFAULT]\n    return authority_boost\n", "path": "ingestion_server/ingestion_server/authority.py"}], "after_files": [{"content": "from enum import Enum, auto\n\n\n\"\"\"\nAuthority is a ranking from 0 to 100 (with 0 being least authoritative)\nindicating the pedigree of an image. Some examples of things that could impact\nauthority:\n- The reputation of the website that posted an image\n- The popularity of the uploader on a social media site in terms of number of\nfollowers\n- Whether the uploader has uploaded images that have previously been flagged for\ncopyright infringement.\n- etc\n\nThe authority can be set from the catalog layer through the meta_data field\nor through the ingestion layer. As of now, we are only factoring in the\nreputation of the website as a static hand-picked list based on experience\nand search result quality, with the intention to add more sophisticated and\ntailored measures of authority later on.\n\nAlso note that this is just one factor in rankings, and the magnitude of the\nboost can be adjusted at search-time.\n\"\"\"\n\n\nclass AuthorityTypes(Enum):\n    CURATED = auto()\n    CULTURAL_INSTITUTION = auto()\n    SOCIAL_MEDIA = auto()\n    DEFAULT = auto()\n\n\n# We want to boost curated collections where each image has been vetted for\n# cultural significance.\nboost = {\n    AuthorityTypes.CURATED: 85,\n    AuthorityTypes.CULTURAL_INSTITUTION: 90,\n    AuthorityTypes.SOCIAL_MEDIA: 75,\n    AuthorityTypes.DEFAULT: 80,\n}\n\nauthority_types = {\n    \"flickr\": AuthorityTypes.SOCIAL_MEDIA,\n    \"behance\": AuthorityTypes.SOCIAL_MEDIA,\n    \"thingiverse\": AuthorityTypes.SOCIAL_MEDIA,\n    \"sketchfab\": AuthorityTypes.SOCIAL_MEDIA,\n    \"deviantart\": AuthorityTypes.SOCIAL_MEDIA,\n    \"thorvaldsensmuseum\": AuthorityTypes.CULTURAL_INSTITUTION,\n    \"svgsilh\": AuthorityTypes.CULTURAL_INSTITUTION,\n    \"smithsonian\": AuthorityTypes.CULTURAL_INSTITUTION,\n    \"rijksmuseum\": AuthorityTypes.CULTURAL_INSTITUTION,\n    \"museumsvictoria\": AuthorityTypes.CULTURAL_INSTITUTION,\n    \"met\": AuthorityTypes.CULTURAL_INSTITUTION,\n    \"mccordsmuseum\": AuthorityTypes.CULTURAL_INSTITUTION,\n    \"digitaltmuseum\": AuthorityTypes.CULTURAL_INSTITUTION,\n    \"clevelandmuseum\": AuthorityTypes.CULTURAL_INSTITUTION,\n    \"brooklynmuseum\": AuthorityTypes.CULTURAL_INSTITUTION,\n    \"stocksnap\": AuthorityTypes.CURATED,\n}\n\n\ndef get_authority_boost(source):\n    authority_boost = None\n    if source in authority_types:\n        authority_type = authority_types[source]\n        if authority_type in boost:\n            authority_boost = boost[authority_type]\n        else:\n            authority_boost = boost[AuthorityTypes.DEFAULT]\n    return authority_boost\n", "path": "ingestion_server/ingestion_server/authority.py"}]}